找回密码
 立即注册
首页 业界区 业界 CAN通讯协议

CAN通讯协议

僻嘶 昨天 22:10
CAN通讯是一种多主总线异步通信协议,采用差分信号传输,具有高可靠性、实时性强、抗干扰能力好等特点。它广泛应用于汽车电子、工业控制等领域,用于设备间数据快速准确传输,保障系统稳定运行。
一、CAN物理层

1、电气特性

总线结构物理特征(左:闭环右:开环):
1.png

CAN总线由两根信号线组成,使用的是差分信号,是一种异步通讯CAN总线网络的结构有闭环和开环两种,其对应标准分别在ISO11898(高速CAN标准)ISO11519-2(低速CAN)中描述(对OSI七层模型中的数据链路层和物理层进行了标准化),两种标准对比如下图所示:
2.png
2、CAN的电平形式

CAN是差分通讯,总线电平分为显性电平(Dominant Level)和隐形电平(Recessive Level)两种,总线必须处于两种电平之一,总线上执行逻辑上的线与时,显性电平为0,隐形电平为1
3.png
二、CAN总线帧格式

  帧类型 用途     数据帧 发送设备主动发送数据(广播式)   遥控帧 接收设备主动请求数据(请求式)   错误帧 某个设备检测出错误时向其他设备通知错误   过载帧 接收设备通知其尚未做好接收准备   间隔帧 用于将数据帧及遥控帧与前面的帧分离开  1、数据帧

4.png
帧起始(标准/扩展格式相同)



  • SOF(Start of Frame):帧起始,一个显性位,表示帧开始的段;
仲裁段(标准/扩展格式不同)



  • ID(Identify):

    • 仲裁段,区分功能,同时决定优先级;
    • 标准CAN有11位ID(ID28-ID18),扩展格式ID包含基本ID(ID28-ID18)和扩展ID(ID17-ID0);
    • 禁止高7为ID全为1(隐形);
      
  • (标准ID)RTR(Remote Transmission Request ):远程请求位,区分数据帧和遥控帧;
  • (扩展ID)IDE(Identifier Extension):扩展标志位,区分标准格式和扩展格式;
  • (扩展ID)SRR(Substitute Remote Request):替代RTR,协议升级时留下的无意义位;
控制段(标准/扩展格式不同)



  • r0/r1(Reserve):保留位,为后续协议升级留下空间;
  • DLC(Data Length Code):数据长度,指示数据段有几个字节;
  • (标准ID)IDE(Identifier Extension):扩展标志位,区分标准格式和扩展格式;
数据段(标准/扩展格式相同)



  • Data:数据段,0~8个字节;
CRC段(标准/扩展格式相同)



  • CRC(Cyclic Redundancy Check):15位循环冗余校验,校验数据是否正确;
  • CRC界定符:1隐性位
ACK段(标准/扩展格式相同)



  • ACK(ACK Slot):应答槽位,发送方发送1(隐形),接收方回应0(显性),判断数据有没有被接收方接收;
  • ACK界定符:1隐性位
帧结束(标准/扩展格式相同)



  • EOF(End of Frame ):帧结束,7位隐形位,表示数据位已经传输完毕;
2、遥控帧

遥控帧无数据段,RTR为隐性电平1,其他部分与数据帧相同
5.png
3、错误帧

总线上所有设备都会监督总线的数据,一旦发现“位错误”或“填充错误”或“CRC错误”或“格式错误”或“应答错误” ,这些设备便会发出错误帧来破坏数据,同时终止当前的发送设备。
6.png
4、过载帧

当接收方收到大量数据而无法处理时,其可以发出过载帧,延缓发送方的数据发送,以平衡总线负载,避免数据丢失。
7.png
5、帧间隔

将数据帧和遥控帧与前面的帧分离开
8.png
四、位时序

由发送单元在非同步的情况下发送的每秒钟的位数称为位速率。一个位可分为4段,它们都由Time Quantum(Tq)的最小时间的那位组成。


  • 同步段(SS)
  • 传播时间段(PTS)
  • 相位缓冲段1(PBS1)
  • 相位缓冲段2(PBS2)
1 位分为 4 个段,每个段又由若干个 Tq 构成,这称为位时序。
其中采样点位于PBS1结束后
段及其作用如下图所示:
9.png
五、波特率的计算


\[baud\ rate=\frac{1}{T_{ss}+T_{PTS}+T_{PBS1}+T_{PBS2}} \]
其中每一个段的时间由Tq组成,Tq = 1/CAN时钟频率;
六、位填充

位填充是为防止突发错误而设定的功能。当同样的电平持续5位时则添加一个位的反型数据。如下图所示:
10.png
1、发送单元的工作

在发送数据帧和遥控帧时,SOF~CRC段间的数据,相同电平如果持续5位,在下一个位(第6个位)则
要插入1位与前5位反型的电平。
2、接收单元的工作

在接收数据帧和遥控帧时,SOF~CRC段间的数据,相同电平如果持续5位,需要删除下一个位(第6个
位)再接收。如果这个第6个位的电平与前5位相同,将被视为错误并发送错误帧。
七、附录

1、数据长度码和字节关系

11.png

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册