CAN总线的学习

时间:2022-06-04 15:08:42

CANcontroller Area Network 总线的学习

1986 年德国电气商博世公司开发出面向汽车的CAN 通信协议(数据之间的交互),其目的是为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要

  CAN总线 RS-485
相比之下优点

1 网络各节点之间的数据通信实时性强

2开发周期短

3已形成国际标准的现场总线

4最有前途的现场总线之一

 

   特性

RS-485

CAN-bus

单点成本

低廉

稍高

系统成本

较低

总线利用率

网络特性

单主网络

多主网络

数据传输率

容错机制

可靠的错误处理和检错机制

通讯失败率

极低

节点错误的影响

导致整个网络的瘫痪

无任何影响

通讯距离

<1.5km

可达10km(5kbps)

网络调试

困难

非常容易

开发难度

标准Modbus协议

标准CAN-bus协议

后期维护成本

CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。采用这种方法的优点可使网络内的节点个数在理论上不受限制,数据块的标识符可由11位或29位二进制数组成,因此可以定义2或2个以上不同的数据块。结构简单。只有2根线与外部相连,并且内部集成了错误探测和管理模块。

CAN总线特点:(1) 数据通信没有主从之分,任意一个节点可以向任何其他(一个或多个)节点发起数据通信,靠各个节点信息优先级先后顺序来决定通信次序,采用非破坏性仲裁技术,当两个节点同时向网络上传送数据时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响继续传输数据,有效避免了总线冲突;高优先级节点信息在134μs通信; (2) 多个节点同时发起通信时,优先级低的避让优先级高的,不会对通信线路造成拥塞; (3) 通信距离最远可达10KM(速率低于5Kbps)速率可达到1Mbps(通信距离小于40M);(4) CAN总线传输介质可以是双绞线,同轴电缆。CAN总线适用于大数据量短距离通信或者长距离小数据量,实时性要求比较高,多主多从或者各个节点平等的现场中使用。

应用举例

  CAN总线在工控领域主要使用低速-容错CAN即ISO11898-3标准,在汽车领域常使用500Kbps的高速CAN。CAN系统又分为高速和低速,高速CAN系统采用硬线是动力型,速度:500kbps,控制ECU(电子控制单元,行车电脑,车载电脑)、ABS(防抱死制动系统)等;低速CAN是舒适型,速度:125Kbps,主要控制仪表、防盗等

 

CAN总线中存在5种错误类型

位错误:向总线送出一位的某个节点同时也在监视总线,当监视到总线位的电平和送出的电平不同时,则在该位时刻检测到一个位错误。但是在仲裁区的填充位流期间或应答间隙送出隐性位而检测到显性位时,不认为是错误位。送出认可错误标注的发送器,在检测到显性位时也不认为是错误位。

 填充错误:在使用位填充方法进行编码的报文中,出现了第6个连续相同的位电平时,将检 测出一个填充错误。

 CRC(循环冗余校验码)错误:CRC序列是由发送器CRC计算的结果组成的。接收器以和发送器相同的方法计算CRC。如果计算的结果和接收到的CRC序列不同,则检测出一个CRC错误。

 形式错误: 当固定形式的位区中出现一个或多个非法位时,则检测到一个形式错误。

 应答错误:在应答间隙,发送器未检测到显性位时,则由它检测出一个应答错误。

 
 
 
为了界定故障,在每个总线单元中都设有2个计数:发送出错计数和接收出错计数。这些 计数按照下列规则进行。
(1)接收器检查出错误时,接收器错误计数器加1,除非所有检测错误是发送活动错误标志或超载标志期间的位错误。
(2)接收器在送出错误标志后的第一位检查出显性位时,错误计数器加8。
(3)发送器送出一个错误标志时,发送器错误计数器加8。有两种情况例外:其一是如果发 送器为错误认可,由于未检测到显性位应答或检测到应答错误,并且在送出其认可错误标志时,未检测到显性位;另外一种情况是如果仲裁器件产生填充错误,发送器送出一个隐性位错误标志,而检测到的是显性位。除以上两种情况外,发送器错误计数器计数不改变。
(4)发送器送出一个活动错误标志或超载标志时,检测到位错误,则发送器错误计数器加8。
(5)在送出活动错误标志、认可错误标志或超载错误标志后,任何节点都最多允许连续7个显性位。在检测到第11个连续显性位后,或紧随认可错误标志检测到第8个连续的显性位,以及附加的8个连续的显性位的每个序列后,每个发送器的发送错误计数都加8,并且每个接收器的接收错误计数也加8。
(6)报文成功发送后,发送错误计数减1,除非计数值已经为0。
(7)报文成功发送后,如果接收错误计数处于1~197之间,则其值减1;如果接收错误计数为0,则仍保持为0;如果大于127,则将其值记为119~127之间的某个数值。
(8)当发送错误计数等于或大于128,或接收错误计数等于或大于128时,节点进入错误认,可状态,节点送出一个活动错误标志。
(9)当发送错误计数器大于或等于256时,节点进入总线关闭状态。
(1O)当发送错误计数和接收错误计数均小于或等于127时,错误认可节点再次变为错误激活节点。
(11)在检测到总线上11个连续的隐性位发送128次后,总线关闭节点将变为2个错误计数器均为0的错误激活节点。
(12)当错误计数器数值大于96时,说明总线被严重干扰。
CAN总线的学习

 

 

重中之重

can总线在AD中的封装可利用向导TO-来进行绘制