can总线怎么传输数据格式过程分析

接口/总线/驱动

1138人已加入

描述

  一、什么是CAN协议

  电子计算机网络用电子语言来说话,各电控单元必须使用和解读相同的电子语言,这种语言称“协议”,汽车电脑网络常见的传输协议有数种。宝来车装用博世公司产品,数据总线采用CAN协议,这个协议是由福特、Internet与博世公司共同开发的高速汽车通信协议。CAN是Controller Area Network(控制单元区域网络)的缩写,意思是控制单元通过网络交换数据。

  二、CAN数据传输系统的优点

  数据总线与其他部件组合在一起就成为数据传输系统,CAN数据传输系统的优点是:

  ①将传感器信号线减至最少,使更多的传感器信号进行高速数据传递。 ②电控单元和电控单元插脚最小化应用,节省电控单元的有限空间。 ③如果系统需要增加新的功能,仅需软件升级即可。 ④各电控单元的监测对所连接的CAN总线进行实时监测,如出现故障该电控单元会存储故障码。

  ⑤CAN数据总线符合国际标准,以便于一辆车上不同厂家的电控单元间进行数据交换。

  三、CAN数据格式

  1.名词

  1)显性和隐性

  显性-0 隐性-1(diff=0)

  CAN总线

  2)数据帧、远程帧、错误帧、过载帧、帧间隔

  数据帧:用于发送节点向接收节点传送数据的帧

  远程帧:用于接收节点向具有相同ID的发送节点请求数据的帧

  错误帧:用于当检测出错误时向其他节点通知错误的帧

  过载帧:用于接收节点通知其尚未做好接受准备的帧

  帧间隔:用于将数据帧及远程帧与前面的帧分离开来的帧

  3)远程数据请求

  通过发送远程帧,一个需要数据的的节点可以请求另一个节点发送相应的数据帧,称为远程数据请求。数据帧和相应的远程帧具有相同的标识符。

  2.CAN标准帧与CAN扩展帧格式

  CAN总线

  数据帧和远程帧都可以使用标准帧格式或者扩展帧格式。

  RTR:远程发送请求位,数据帧中为显性,远程帧中为隐性。

  SRR:替代远程请求位(在扩展格式中在RTR位置,所以得此名),隐性位。此位可判断出标准帧优先于扩展帧。

  IDE:标识符扩展位,标准帧-显性,扩展帧-隐性,表示该帧为标准帧还是扩展帧。

  R1、R0:保留位。

  DLC:数据长度代码,如下图所示,包括下图中的DLC3、DLC2、DLC1、DLC0:

  CAN总线

  CRC段:由CAN控制器自动填充。

  CRC分隔符:隐性位。

  ACK段:2位,由CAN控制器自动填充。包括应答位和应答界定位。应答界定位紧邻帧结束。在应答域中,发送器发出两个隐性位,当接收器正确的接收到有效的报文,该接收器就会在应答位期间,用一显性位填充应答位作为回应,而应答界定位一直保持为隐性。

  帧结束:由7个隐性位组成,由CAN控制器自动填充。两种帧格式可出现在同一总线上

  3.数据帧

  CAN总线

  SOF帧开始:数据帧开始的段

  仲裁段:该帧优先级的段

  控制段:数据的字节数以及保留位的段

  数据段:数据的内容,0~8个字节

  CRC段:检查帧的传输错误的段

  ACK段:确认正常接收的段

  帧结束:数据帧结束的段

  4.远程帧

  CAN总线

  通过发送远程帧,作为数据接收器的节点可以发起各自数据源的数据传送请求,即向数据发送器请求发送具有相同ID的数据帧。

  远程帧由帧起始、仲裁段、控制段、CRC段、ACK段和帧结束组成。

  远程帧没有数据段。

  5.错误帧

  CAN总线

  出错标志有两种:主动(积极)错误标志和被动(消极)错误标志。

  主动(积极)错误标志:6个连续的显行位组成。

  被动(消极)错误标志:6个连续的隐性位组成,有可能被其他节点的显行位覆盖。

  一个错误积极节点如果检测到一个错误条件,会发送一个积极错误标志进行标识。这一错误标志违反了正常的位填充规则(适用于从帧起始到CRC界定符之间的所有场)或破坏了应答场和帧结束场的固定格式,结果是引起其他节点检测到新的错误条件并各自开始发送错误标志,因此,这个在总线上可被检测到的显性位序列是各个节点发出的不同错误标志叠加的结果。该序列的总长度在6~12位之间变化。

  一个消极错误节点如果检测到一个错误条件,会试图发送一个消极错误标志进行指示。这个消极错误节点会一直等待6个具有相同极性的连续位,等待从消极错误标志的起始开始,当检测到6个相同极性的连续位时,消极错误标志发送即完成。

  错误界定符由8个隐性位组成,错误标志发出以后,每个节点都发出隐性位,并一直监视总线直到检测出隐性位,随后开始发送剩余的7个隐性位。

  CAN提供了检测下列错误类型机制:

  1)应答错误

  2)填充错误

  3)CRC错误

  4)格式错误

  6.过载帧

  CAN总线

  存在3中过载条件,引起过载标志的发送。

  1)接收器要求延迟下一次数据帧或远程帧的到达。

  2)在帧间隔间歇场的第一和第二位检测到显性位。

  3)如果一个CAN节点在错误界定符或过载界定符的第8位(最后一位)采样到一个显性位,则节点会发送一个过载帧(而不是错误帧)。错误计数器不会增加。

  最多可产生2个过载帧来延迟下一数据帧或远程帧。

  过载标志由6个显性位组成,其全部形式与积极错误标志一样。过载标志破坏了帧间隔间歇场的固定形式,结果其他节点也检测到一个过载条件,并各自开始发送过载帧。如果在帧间隔间歇场的第3位期间检测到一个显性位,则该位将解释为帧起始。

  注意:1)CAN总线的错误帧、过载帧怎么发出,是硬件自己完成,还是要软件实现?

  答: 當然是由硬件自動發出,不需要軟件參與。

  7.帧间隔

  帧间隔用于分割数据帧和远程帧的帧。

  数据帧和远程帧可通过插入帧间隔将本帧与前面的任何帧(数据帧、远程帧、错误帧、过载帧)分开。过载帧和错误帧之前没有帧间隔,多个过载帧之间也不是通过帧间隔分开的。

  帧间隔包括间歇场、总线空闲场以及可能的暂停发送域。只有刚发送出去前一报文的错误消极节点才需要暂停发送场。

  非错误消极节点或者作为前一报文接收器的节点的帧间隔如图。

  CAN总线

  作为前一报文发送器的错误消极节点的帧间隔如图。

  CAN总线

  间歇场包括3个隐性位。间歇场期间,所有节点均不允许发送数据帧或者远程帧,他唯一的作用是标识一个过载条件。

  注意,如果一个正准备发送报文的CAN节点在间歇场的第三位检测到一个显性位,他将认为这是一个帧的开始,并且在下一位时间,从报文的标识符的第一位开始发送报文,而不再发送一个帧起始位,同时也不会成为报文接收器。

  总线空闲周期为任意长度。在此期间,总线空闲,任何需要发送报文的节点都可以访问总线。

  一个因其他报文正在发送而被挂起的报文,将在间歇场后的第一位开始发送。此时检测到的总线上一个显性位将被解释为一个帧起始。

  暂停发送场是指错误消极节点发送一个报文以后,在开始发送下一个报文或者认可总线处于空闲之前,在间歇场后发出的8个隐性位。如果在此期间一次由其他节点引起的传送开始了,则该节点将成为报文接收器。

  四、CAN数据传输系统构成及过程

  (1)CAN数据传输系统构成

  CAN数据传输系统中每块电脑的内部增加了一个CAN控制器,一个CAN收发器;每块电脑外部连接了两条CAN数据总线。在系统中作为终端的两块电脑,其内部还装有一个数据传递终端(有时数据传递终端安装在电脑外部)。

  (2)各部件功能

  ①CAN控制器作用是接收控制单元中微处理器发出的数据,处理数据并传给CAN收发器。同时CAN控制器也接收收发器收到的数据,处理数据并传给微处理器。

  ②CAN收发器 是一个发送器和接收器的组合,它将CAN控制器提供的数据转化成电信号并通过数据总线发送出去,同时,它也接收总线数据,并将数据传到CAN控制器。

  ③数据传递终端 实际是一个电阻器,作用是避免数据传输终了反射回来,产生反射波而使数据遭到破坏。

  ④CAN数据总线 用以传输数据的双向数据线,分为CAN高位(CAN-high)和低位(CAN—low)数据线。数据没有指定接收器,数据通过数据总线发送给各控制单元,各控制单元接收后进行计算。为了防止外界电磁波干扰和向外辐射,CAN总线采用两条线缠绕在一起,两条线上的电位是相反的,如果一条线的电压是5V,另一条线就是0V,两条线的电压和总等于常值。通过该种办法,CAN总线得到保护而免受外界电磁场干扰,同时CAN总线向外辐射也保持中性,即无辐射。

  (3)数据传递过程

  例如:发动机电脑向某电脑CAN收发器发送数据,该电脑CAN收发器接收到由发动机电脑传来的数据,转换信号并发给本电脑的控制器。CAN数据传输系统的其他电脑收发器均接收到此数据,但是要检查判断此数据是否是所需要的数据,如果不是将忽略掉。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分