汽车can线是哪根怎么找 can总线是什么( 二 )


数据的帧结构图:
数据帧
SOF:表示数据帧的开始;(1位) , 发出一个支配位边缘,网络节点开始与之同步 。
ID:标准格式11位,扩展格式29位包括基本ID(11位)和扩展IDr(18位) 。该部分确定了数据帧的优先级 。值越?。畔燃对礁?。
RTR:远程传输请求位 , 0表示数据?。?1表示远程帧,也就是说,当RTR=1时,报文帧的数据字段为空;(1位)
IDE: (1 bit)标识符扩展位,0表示标准格式,1表示扩展格式;扩展帧的格式与标准帧不同,因此不能存在于同一个can网络中 。
DLC:数据长度码,0-8表示数据长度为0-8字节;(4位)
数据字段:数据字段;(0~8字节)
CRC (15位):
校验域 , 从sof到数据场的所有数据进行encode由发送方填校验算法G(x) = x15 x14 x10 x8 x7 x4 x3 1;(15 bit)
DEL:检查字段和响应字段的隐式定义者;(1位)
ACK:(1位)
应答域,确认数据是否正常接收,所谓正常接收是指不含填充错误、格式错误、 CRC 错误 。发送节点将此位为1,由接收方进行确认 , 收到消息给出一个显性位0如果一个节点都没有确认收到消息,发送方监听此位为隐形位就会报错
SRR:替换远程请求位,在扩展格式中用作占位符 , 必须为1;(1位)
EOF: 7个连续的隐性位(1)表示帧的结束;(7位)
ITM(3位):
帧间空间,Intermission (ITM) , 又称Interframe Space (IFS),连续3个隐性位 , 但它不属于数据帧 。帧间空间是用于将数据帧和远程帧与前面的帧分离开来的帧 。数据帧和远程帧可通过插入帧间空间将本帧与前面的任何?。ㄊ葜 ⒁?刂 ⒋砦笾 ⒐刂 。┓挚?。过载帧和错误帧前不能插入帧间空间 。
2)远程框架
一种?。糜诮邮盏ピ蚓哂邢嗤晔斗姆⑺偷ピ肭笫?。
远程帧的帧结构类似于数据帧,但区别在于:
1、数据帧的 RTR 值为“0”,远程帧的 RTR 值为“1” 。2、远程帧没有数据块 。3、远程帧的 DLC 块表示请求发送单元发送的数据长度 。
格式化图表
远程框架
当总线上同时发送具有相同标识符的数据帧和远程帧时,数据帧将在仲裁中赢得总线控制权,因为数据帧的RTR位是显式的 。
3)错误框架
当检测到错误时 , 用来通知其它单元有错误的一种帧 。
错误帧的帧结构由错误标志和错误限定符组成 。
错误标志:6位,
错误标记
错误限定符:由8-8位隐藏位组成 。
4)过载框架
接收单元通知发送单元它还没有完成接收准备 。
发送过载帧的两种情况:
1.接收单元的状况要求发送节点延迟下一个数据帧或远程帧的传输 。
2.在帧间空间隔的3位内检测到主导位 。
每个节点最多连续发送两个过载帧,由过载标志和过载限定符(8个隐藏位)组成 。
过载框架
数据帧和远程帧的比较:
【汽车can线是哪根怎么找 can总线是什么】比较
CAN总线仲裁仲裁优先级:标识符值越?。?消息的优先级越高 。
与逻辑:只有节点发出的所有信号都是隐性的 , 总线电平才是隐性的 。
所有发送节点在发送数据时,也会检测总线上的电平状态,将总线上的电平与自己发送的电平逐位进行比较 。
1)发 0 出现 1 :报错 。2)发 0 出现 0 :继续 。3)发 1 出现 1: 继续 。4)发 1 出现 0: 竞争失败,转为接收方 。
发送自测
如下图所示,竞争失败的C节点在检测到bus 空空闲时 , 会自动尝试再次发送 。
节点A和C同时发送数据帧,CAN总线按优先级仲裁,C掉电 。
CAN条件接收在CAN总线上,消息被广播 。节点可以通过在控制器中设置过滤器代码和掩码 , 然后检查总线上消息的标识符来确定是否接收该消息 。对于掩码 , “1”表示该位与节点相关,“0”表示该位与节点无关 。
CAN总线数据流
可以过滤STM32的代码
位填充CAN总线采用NRZ编码,没有单独的时钟线,优点是效率高,但是不容易区分位从哪里开始 , 位从哪里结束 。因此 , 为了保证同步通信时有足够的电平跳变,规范应用了比特填充机制,即每连续5个相同电平后插入一个反转电平,接收节点收到消息后自动删除填充比特 。
数据位填充对比图
在帧中,除了CRC定界符、ACK字段和EOF,其余部分都用比特填充 。在填充位的字段中,六个连续的显性位或隐性位的检测被视为错误 。
CAN错误检查错误CRC

推荐阅读