是时候聊一下CAN总线了(下)——CAN总线帧格式 2024-04-26 12:05:23 文/Edward 1 通讯速率和通讯距离CAN总线是一种串行的差分总线,并且这种差分总线只传递数据信息,因此关于时钟信号收发两方是没有信号进行传递的。因此,CAN总线与绝大多数异步串行总线一样,需要收发双方约定好数据传输的波特率(bit/s)才可以确保数据的正常收发。常用的CAN总线波特率有125Kbits/s,250Kbits/s,500Kbits/s,1MKbits/s等,ISO11898中所定义的CAN总线的波特率最高为1Mbits/s。尽管CAN总线的纠错能力很强,但是为了数据的准确收发,具体选择CAN总线的波特率应该以具体的工况来选择,选择波特率的主要依据为传输线的距离。具体传输距离和CAN波特率的关系可以参考表1。表1 传输距离和CAN波特率的关系 位速率/kbps 1000 500 250 125 100 50 20 10 5 最大距离/m 40 130 270 530 620 1300 3300 6700 10000 2 CAN总线的通讯模型前面我们说了,CAN总线是一种可以允许多主机存在的半双工差分总线,所有节点可以自由地挂载在同一根CAN总线上,组成一个理想中的控制局域网络。在CAN总线传输过程中,所有节点都可以根据自身当前的状态来发送数据,先占据总线者则在当前时间向总线上的所有节点发送数据。而每个CAN节点都有一个叫做CAN ID的唯一标识符,当某个节点发现当前总线上的CAN数据是发给自己的,则将这一帧CAN数据接收后进行处理。当某个节点的CAN数据发送完成后,即释放CAN总线,同时允许别的节点占用总线。另外,现在绝大多数CAN总线控制器都自带硬件地址过滤器,因此,我们可以省去CAN总线的ID软件判断。 3 CAN总线的帧类型CAN总线上的数据被称为CAN报文,CAN报文有四种消息类型:数据帧:从发送端携带数据到接收端。远程帧:总线单元发出远程帧,请求发送具有同一识别符的数据帧。错误帧:任何单元检测到一总线错误就发出错误帧。过载帧:过载帧用以在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。 3.1 数据帧CAN总线上面的报文绝大多数都是数据帧,一个完整的数据帧由七个部分组成,依次为:帧起始(SOF)、数据场(Data Field)、校验场(CRC Field)、应答场(ACK Field)、帧结尾(EOF)。具体数据场的排列如图1所示。需要注意的是,这个标准是CAN2.0A中规定的标准帧。图1 数据帧格式帧起始是数据帧和远程帧开始的标志,它是一个显性位。一个CAN节点只有在总线处于空闲状态时才可以发送帧起始。帧起始发送完成之后,紧接着发送出的就是仲裁场,CAN2.0A的仲裁场一共有12位,如图2所示。在这12位中,前11位表示的是11位标识符,第12位是远程发送请求RTR。在数据帧中RTR为显性,在远程帧中RTR为隐性。所以如果相同标识符的数据帧与远程帧发生冲突,数据帧优先。CAN2.0B的仲裁场一共有32位,它在原有的CAN2.0A的基础上,将CAN ID扩展到了29位,并且向CAN2.0A兼容,如图3所示。图2 CAN2.0A的12位仲裁场图3 CAN2.0B的32位仲裁场仲裁场之后便是控制场。控制场的头两位为保留位,为隐性。后面是数据长度代码DLC(Data Length Code)。数据长度代码指示了数据场中有效的字节个数。DLC的长度为4位二进制数,虽然可以最大范围可以表示到0~15,但是由于CAN总线的数据域长度最大为8个字节,所以DLC的大小最大为8。如果在设置CAN消息时,将DLC错误地设置成了大于8的数,其产生的后果各家的控制器都不相同,有些厂家的控制器会直接将其最大值限定在8,有些厂家的控制器则不会发送任何消息,直接判定为错误传输。如图4所示。图4 控制场的格式控制场传输完成之后,紧接着传输的就是数据场了,数据场里面传输的就是我们想要传输的数据,长度为8个字节,如图5所示。图5 数据段的格式CAN数据每次发送的时候,都会将CAN数据帧里面的有效数据进行CRC校验,并且将最终生成的CRC信息一起包含在数据帧中的CRC域内进行发送。接收端接收到一帧CAN总线数据后,会将接收到的数据进行CRC计算,并且同发出端的CRC校验码进行比较,如果相同,则代表当前接收到的信息是正确的。CRC校验域的格式如图6所示。图6 CRC域在经典CAN中,使用15位CRC,在硬件可使用移位和异或运算完成CRC的计算,而CAN FD规范中对帧数据长度进行了扩展,对于数据长度小于等于16字节的CAN FD帧,采用17位CRC,对于数据长度大于16字节的CAN FD帧采用21位CRC。CAN总线中使用的若干版本CRC生成多项式g整理如图7所示。图7 常用的CAN总线CRC校验算法接下来的两位数据域是ACK区域,即为CAN总线的应答场。应答场长度为2个位,包含应答间隙(ACK SLOT)和应答界定符(ACK DELIMITER)。在应答场里,发送站发送两个“隐性”位。当接收器正确地接收到有效的报文,接收器就会在应答间隙(ACK SLOT)期间(发送ACK信号)向发送器发送一“显性”的位以示应答。应答间隙:所有接收到匹配CRC序列(CRC SEQUENCE)的站会在应答间隙(ACK SLOT)期间用以“显性”的位写入发送器的“隐性”位来作出回答。ACK界定符:ACK界定符是ACK场的第二个位,并且是一个必须为“隐性”的位。因此,应答间隙(ACK SLOT)被两个“隐性”的位所包围,也就是CRC界定符(CRC DELIMITER)和ACK界定符(ACK DELIMITER)。CAN总线的应答场如图8所示。图8 CAN的应答场最后的7位数据是CAN总线的结束帧,为7位连续的1。如图9所示。图9 帧结束以上就是CAN总线数据帧格式的详细内容,我们可以看这一个CAN数据帧排列的所有数据域。如图10所示。图10 CAN总线的完整数据帧 3.2 远程帧作为数据接收器的站,通过发送远程帧,可以启动其资源节点传送它们各自的数据。远程帧和数据帧非常类似,只是远程帧没有数据域。上图就是远程帧的帧格式,它相对与数据帧没有远程帧,但是要注意发送远程帧的时候RTR位要置1,表示发送的是远程帧。图11更加清晰了呈现了这种结构。图11 远程帧的结构看Edward C语言视频,来点零食效果更佳啊。正好又是双12,优惠享不停,小伙伴们赶紧选购吧。详情点击下方链接👇👇👇 赞 (0) 相关推荐 如何用示波器测试CAN信号? 作为目前车载网络领域最成熟.应用最广泛的通信总线之一,CAN总线具有传输可靠性高.速度快.易用等特点.由于其涉及到用户的人身安全,所以在汽车研发.生产.检测.维修等过程中均需做严格的测试. 由于CAN ... 深度解析NRF24L01 本文将深度解析一款烂大街的无线芯片,NRF24L01(及国产完全兼容的SI24R1).实在是现在网上很多写NRF24L01的文章抓不到重点,一些冷门用法没人写,就写了这个文章.推荐选用SI24R1,原 ... 一文搞懂CAN FD总线 上一篇对CAN总线(一文搞懂CAN总线)进行了整理,今天我们来看看它的升级版-CAN FD. 有了CAN,为什么还要CAN FD呢? 随着汽车功能越来越多,CAN总线的局限性也逐渐暴露: 1.CAN总 ... CAN通信在整车应用中的概述及学习资料 CAN历史 博世最初在1985年开发了用于车载网络的控制器区域网络(CAN).过去,汽车制造商使用点对点布线系统连接车辆中的电子设备.制造商开始在车辆中使用越来越多的电子设备,这导致了笨重而昂贵的线束 ... 一文读懂CAN 一文读懂CAN 从应用角度了解下LIN总线 主要内容 LIN总线概述 LIN总线的应用 示例:LIN总线和CAN总线的窗户控制 LIN总线的信号报文 记录LIN总线数据 LIN总线数据记录应用案例 本文将介绍LIN(Local Intercon ... 医案聊斋(续集)下血案 历代中医专家对此多有研究,认为读初诊医案,重在了解病史,抓辨证用药:读复诊医案,重服药变化,病情转归,医家如何应对:读多诊医案,要抓全案发展变化的脉络,治法方药在此过程中起什么作用.总之,要抓住要点, ... 总线概述及常见总线 一. 总线概念 所谓总线(Bus),是指计算机设备和设备之间传输信息的公共数据通道.总线是连接计算机硬件系统内多种设备的通信线路,它的一个重要特征是由总线上的所有设备共享,可以将计算机系统内的多种设备 ... 图解CAN总线数据的组成和帧格式 CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议.在汽车产业中,出于对安全性.舒适性.方便性.低公害.低成本的要求,各种各样的电子控 ... 【硬件】Lin总线 (与Can总线/Uart对比)+ uart模拟lin 【硬件】Lin总线 (与Can总线/Uart对比)+ uart模拟lin 从PCI被“拍在沙滩上”谈并行总线和串行总线 串行总线和并行总线接口 在高速串行总线流行起来之前,芯片之间的互联通过系统同步或者源同步的并行接口传输数据,而所谓的并行接口,是指通信中一个或几个字节(8位)数据是在n*8条并行传输线上同时由源端传到 ... 【夏宇聊交易】技术指标从原理到应用总结(下) 技术指标:从原理到应用总结 25 4月25日的那一期,我们总结了技术分析指标的分类,并以均线,MACD为例分别分析了均值类算法指标,与差值类算法指标的特征和共性.这一期我们将对技术指标里另一类算法-- ... 下等人聊是非,中等人谈问题,上等人论格局 不得不承认,人是分三六九等的.但划分等级的标准无关乎金钱.地位,而在于聪慧.善恶.心胸. 如果以处理事务的角度来看,中国社会有三等人:下等人,专论是非对错:中等人,一心解决问题:上等人,格局决定成就. ... 郑玉超│邻人歪头盛(聊斋小小说 下) ·一篇适合风大夜深阅读的小小说,分上.中.下三辑,本篇是下辑. ·请点击右上角蓝色字体"超哥的随笔"加以关注. 邻人歪头盛(下) □郑玉超 盛宇贵忽想起二十年前的一个深夜,真地发生 ...