Last Updated on 2026-05-12 by MarsRain
CAN总线
与传统车辆内部结构区别
点对点的方式布线方法、成本、重量等缺陷过于明显,无论是对于后面的电器元件的扩展都十分不友好,所以CAN总线结构问世解决了这些缺点。
主要优点
总线的方式有良好的扩展性,只需要在总线挂相关的节点接入总线即可,线数也大量减少,减少成本
数据传输具有瓶颈,单线限制带宽
CAN内部结构
微控制器——与应用层的数据交互
CAN控制器——报文封装,用二进制码流传给收发器
CAN收发器——根据can协议,将数据比特流转发为电信号
CAN的整体结构——CAN_H CAN_L
数据链路层
寻址方式——确定发送与数据之间的关系,方法:
点对点的寻址——一对一
广播寻址——一对多
总线访问机制
节点没有主从之分,都可以访问主线。主线在任意时刻只能被一个节点访问
非破坏性仲裁机制——访问冲突时,根据报文的id进行优先级裁定。即使是没有被访问的报文,后续依然可以重复发送,直到被总线接收
仲裁厂——线与机制、回读机制
根据节点发送的数据帧和总线报文帧数的比较,节点会根据不同的返回结果进入不同的机制。AB节点同时传输报文,会触发线与机制。此时AB传输的数据报文的同一帧会做与计算,最终计算出的帧数为0的数据流会被总线读取。假设A的数据被读取了,而未被读取的B的数据流会返回B节点,进入接收模式,等待下一次的发送机会。总线处理完A的数据之后,B就可以重新发送。这就是回读机制
注:每个报文id都具有唯一性,所以尽管前面的帧数会相同,总会有一个不相同的地方出发线与机制,决出优先级

访问优先级——当报文的高位0的个数越多,优先级越高
CAN报文结构
标准帧 id位11位big和0~8个有效字节组成
远程帧 不包括有效字节
扩展帧IDE id有29bit,商用偏多
扩展远程帧 更少见
结构:
SOF真起始+仲裁厂+控制场+数据场+CRC校验场+AFK应答场+EOF真结束
位填充的规则
只要总线出现连续五个极性相同的位,就会在下一位填充一个极性相反的位。所以不可能在一个保温结构中出现六个连续极性相同的位。填充位也会纳入“连续五个极性相同”的计算
CAN数据传输的保护机制
CRC校验:对前面数据场的数据监控
错误帧
发送原则:当错误被检测到,立即发送下一位的错误帧
格式:
错误标志位+错误界定符
Error-Active Node:6个0+8个1
000000+11111111
其他节点报错的时候也会添加在“6个0”当中,最终结果可能会导致变成12个0
Erro-Passive Node:6个1+8个1
错误都是成对出现,所有参与通信的节点,可能都会出现错误。那么为了保持数据的一致性,所有的节点可能就会抛弃正在传输的数据,再次重新发送。
错误界定
主动错误/被动错误/Bus Off
根据两个参数寄存器——TEC、REC进行确定
对于每一个节点每次成功发送/接收一个帧,会-1;相反,则+8
对于发送节点在发送帧过程中,检测到一个错误,则TEC数值+8;接收节点率先接收到错误帧,REC+8,如果说在其他节点已经发现的错误帧的基础上仍然有错误帧,则REC+1
CAN FD总线
整体改善
随着时代的发展,车辆网中的数据传输量越来越庞大,而CAN总线很难满足过大的数据传输,所以CAN FD又在CAN的基础上升级。相较于CAN总线的1Mbit/s的数据流而言,FD在两个方面做出改善:
支持更高的传输速率
但并不是一直维持着高速率传输,而是可变速率传输。
FD报文结构:仲裁段和数据段
CAN FD最高能够支持8Mbit/s的通信速率
CAN FD数据场的扩充
传统CAN的数据场长度最多8个字节
CAN FD最大可达64个字节
CAN FD 协议
两个报文格式:
CAN FD标准帧:11bit,扩展到64字节
CAN FD扩展帧:29bit,扩展到64字节
删除远程帧
CAN FD报文结构
和CAN报文结构类似,只是添加了新的标志位:
RRS FDF BRS ESI
RRS替换RTR
FDF:添加在IDE(扩展帧)之后,用于识别是否为传统报文。FDF=0,传统报文;FDF=1,CAN FD报文
IED:IED=0是传统CAN扩展帧报文,IED=1,CAN FD扩展帧报文
BRS(速率切换位):BRS=0,CAN FD保持恒定速度,BRS=1,切换较高的速率值
ESI(错误状态指示位):发送节点会通过ESI通知其他节点此时的错误状态。ESI=1,被动在错误状态;ESI=0,主动错误状态

在CAN FD中的CRC检验场中,CAN FD会根据数据场的长度变化而使用不同的CRC校验。同时,还和CAN的CRC不同,使用的是固定位置的填充机制。
FlexRay总线
物理层
flexray可支持不限于任何物理限定的物理拓补,节点两端通过两根信号线——bp bm进行连接,线长还不得超过24m,以免影响通信。
当节点存在四个或以上时,拓补结构可选择被动新型和总线型。
现实场景中,多个拓补图会组合使用来确保flexray总线正常运作





