CAN总线总结

更新时间:2023-04-24 02:31:43 阅读: 评论:0


2023年4月24日发(作者:水岸山居)

CAN总线技术学习(一)

CAN总线是控制器局域网络(Controller Area NetworkCAN)的简称,是德

BOSCH公司开发,是国际上应用最广泛的现场总线之一,CAN最大的树 总线已成为汽

车计算机和嵌入式工控局域网标准总线。

为了全面了解CAN总线,需要先对其有个整体的概念,这中间还有一个小

故事,一个应届毕业生到公司去元宵节有哪些风俗 应聘,负责招聘的经理问他:“你会哪方面的技

术?”,毕业生说:“我会CAN总线”,经理疑惑的问:“你会看什么总线?”。那

么什么是CAN总线呢?

1、首先CAN总线是一种串行总线,不是并行的,是用来传输电子数据的,

就像串口总线、USB总线、以太网一样;

2CAN总线是半双工传输模式,发的时候不能收,收的时候不能发;

3CAN总线使用双线传输,一根定义为CAN_H,一根定义为CAN_L,使用差

分信号传输(差分信号就是通过计算两线压差);

4CAN总线的波特率最高可达1Mbps,传输距离最远10公里,传输波特

率和传输距离成反比,波特率越高有效传输距离越短;

5、组网时总线两端CAN_HCAN_L之间要分别连接一个120欧的终端电

阻(起吸收反射波、高频抗干扰的作用)

那么CAN总线有什么优势呢?

1CAN总线作为现场总线只有两根传输线,比以太网组网简单,成本也低很

多,在不需要大数据量传输的设备通讯上有相当的优势;

2CAN总线使用差分信号和屏蔽线传输,抗干扰能力强,数据传输稳定,

因为在某点有干扰时两根信号会被同步干扰,不会影响信号传输的信息;

3CAN总线波特率最高可达1Mbps,传输速率相对串口快很多,同时总线

协议中加入CRC校验,相对于串口的奇偶校验,数据安全性强;

4CAN总线使用差分双线传输,易于组网,布线简单;

5CAN总线通讯不分主从,网络上每个设备都可以主动发送数据;

6CAN总线协议应用非破坏性逐位仲裁机制,即通过发送帧的帧ID的大

小作为优先级判断网络上数据发送冲突,优先级高的信息发送,优先级低

的数据停止发送,极大提供总线的利用率;

7CAN总线协议设置对发送的自动重发机制,当发送监测到发送冲突时,

止发送,等总线空闲后自动重发;

8、通过设置总线控制器中验收寄存器和屏蔽寄存器,可以使节点在硬件层

允许接收某些帧或屏蔽接收某些无用帧,节约单片机ECU接收和判断处

理读中国朗诵稿 的时间。

综上所述,CAN总线在设计成本、传输速率、传输稳定性、传输安全性、

易于组网以及总线协议完善设计方面的优势,使其在现代汽车、工控局域网络领

域得到广泛的应用。

CAN总线既然作为一种现场总线,用途就是在不同设备间传输数据,基本

的逻辑框图如图1所示:

1 CAN总线逻辑框图

CAN总线通讯主要包括:主控制器(一般为单片机)CAN总线控制器(图例为

SJA1000,方框中为一个芯片器件)和收发器,主控制器初始化设置CAN总线控

制器工作,CAN总线控制器为主要CAN总线逻辑器件,负责将数据转换为总线协

议串行信号和将收发器接收到的信号转换为有效数据,并屏蔽无效数据,监测故

障错误并报告,收发器将CAN总线收发信号转换成半双工CAN总线差分信号.

的单片机将CAN控制器芯片功能集成在单片机中,如富士通MB90340系列、

STM32f10x系列等。

CAN总线组网的逻辑框图如图2所示:

如图所示,多关于春天的故事 个CAN总线节点通过差分信号连接到CAN总线网络上,网络两

端(CAN_HCAN_L之间)分别连接一个120欧姆的终端电阻(吸收反射波,抗

干扰)。各节点不分主从,都可以主动向总线上发送CAN信息,也可以设置CAN

控制器的验收屏蔽寄存器有选择的接收总线上的信息。

2 CAN总线网络框图

CAN总线技术学习(二)

CAN总线信息以帧的形式传输,每个帧包括多个段:起始位SOF、仲裁段、控

制段、数据段、CRC校验、确认位、结束位等,各个段依次串行被传输到总线上。

起始位、CRC校验、确认位和结束位由控制器硬件自动生成,软件可以配置仲裁

段、控制段和数据段的内容.每个CAN帧最多发送数据段长度为8个字节即64

位。

CAN总线协议有两种:CAN20ACAN2.0B协议,CAN20A支持帧ID11

位的标准帧,CAN2.0B协议支持帧ID11位的标准帧和帧ID29位的扩展帧,

如图1和图2所示。

图意式咖啡 1 CAN标准帧

2 CAN扩展帧

下面解释几个CAN总线问题:

位填充:上述图中都提到位填充的问题,即当发送的一帧CAN信息中出现连

5个相同位时,控制器会自动填充一个相反的位进去,控制器接收一帧CAN

信息时发现5个相同的位,也会自动把其后的一个翻转位去掉。那么可能我们会

问为什么要做这种看似无用的操作呢?因为CAN总线通讯属于异步通讯,虽然通

讯双方约定设定相同的波特率通讯,但是每一位(bit)的宽度也不可能绝对相

,多个相同的位累积起来可能出现较大的误差,造成接收信息出错,那么如何

解决这个问题呢?CAN协议中规定在位跳转时要做同步补偿,那么这样可以消除

多个位累积造成的错误,但是如果CAN帧信息连续出现多个01,接收方没办

法监测到翻转位,不能做出正确的补偿,可能导致发送方发了100,接收方监

测出110出来的情况出现,所以当发送方连续发送50时,要位填充一个

1进去,然后再发送下面的位,而接收方接收到50后接收到下面的1可以做

出相应的同步补偿,同时要丢弃这个填充位。按照CAN协议规定如果在CAN信息

中接收到连续6个以上的相同位被认为是错误信息,CAN控制器错误计数加1

CAN协议:如上图所示,标准帧标识符(帧ID)11位,扩展帧标识符(帧

ID)有29位,CAN20B协议也兼容CAN20A协议,可以同时识别标准帧和扩

展帧.标准帧和扩展帧的区别在于IDE位,IDE0时表示标准帧,IDE1时表

示扩展帧。

CAN信号:CAN总线使用一对差分信号通讯,CAN_HCAN_L通过识别它

们的压差获取01的信息,上电后两个信号对地下雪简笔画 都会有一定的电压,V_CANH

V_CANL,通过判断V_CANH-V_CANL识别信息,总线信号分为显性(压差为1V

以上,也即数字0)和隐性(压差小于0.5V,也即数字1。一般在没有数据通讯

V_CANHV_CANL都为黄骨鱼的做法 25V所以CAN总线默认为没有压差(隐性,数字1,

当有起始位SOF(数字0,显性)时每个网络上的节点都能监测到,准备接收信

息,如图3所示。

3 CAN总线电压示意图

逐位仲裁机制:CAN节点发送的信息都会被自己接收并判断。当CAN总线上

两个节点同时发送CAN信息时,CAN节点也会比较自己发送的数据和接收的数据

是否一致,由于CAN信号有显性(数字0,压差大于1V)和隐性(数据1,压差

小于0.5V两种,当一个节点发送0而另一个节点发送1时,总线表现为显性0

那么发送1的节点监测到后知道发送总线冲突,自动退出发送,所以可以看出,

CAN总线信息小的优先级高。通过这种方式可以实现非破坏性逐位仲裁,优先级

高的节点正常发送,不受任何影响.

CAN总线技术学习(三)

CAN控制器比较通用的是SJA10怎么给文档加密码 00T,收发器使用比较多的是TAJ1050

82C250,学习CAN总线首先需要准备一块开发板,现在CAN总线开发板很多,一

般都是单片机带CAN控制器和收发器的方式。各种接口的CAN设备也很多,USB

接口、PCI接口,智能非智能的很多种,相对而言,广州周立功的产品种类多,

软件兼容性高,可以参考使用。

学习CAN软件开发,首先就是要熟悉CAN控制器的寄存器配置,不同的CAN

控制器寄存器不同,如何设置也不同,市面上通用的就是SJA1000T的控制器,

芯片中文资料可在网上下载,网上也有很多软件例程,学习起来相对容易。对于

一些集成CAN控制器的单片机来说,CAN寄存器控制一般都不同,总体来说主要

包括三部分:初始化、接收(中断)、发送,流程图分别如图123所示。

1 CAN初始化流游蛇 程

2 CAN发送数据流程

3 中断接收流程

对于CAN总线控制器初始化,主要设置:通讯波特率、验收寄存器、屏蔽

寄存器及滤波方式、设置中断使能等,对于SJA1000首先要设置模式寄存梦见领导人 器,

还要设置输出控制寄存器等.SJA1000支持两种模式:Basic CAN模式(只支持标

准帧)和Peli CAN模式(支持标准帧和扩展帧),在使用两种模式前需要先在模

式寄存器中设置,默认是Basic CAN,因为两种模式下寄存器的地址和含义有区

.


本文发布于:2023-04-24 02:31:43,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/845278.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:can线
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图