车载嵌入式-CAN通信

CAN通信协议介绍

CAN总线的OSI七层模型

ISO/OSI七层参考模型各层定义的主要内容CAN通信协议中的功能
应用层由实际应用程序提供可利用的服务不在CAN协议本身的范围,其他协议如:CANTP协议,UDS协议等
表示层进行数据表现形式的转换。如:文字设定、数据压缩、加密等控制不在CAN协议本身的范围,其他协议如:CANTP协议,UDS协议等
会话层为建立会话式的通信,控制数据正确的接受和发送不在CAN协议本身的范围,其他协议如:CANTP协议,UDS协议等
传输层控制数据传输的顺序,传送错误的恢复等,保证通信的品质。如:单元间的数据交换、地址管理不在CAN协议本身的范围,其他协议如:CANTP协议,UDS协议等
网络层进行数据传送的路由选择或中继。如:单元间的数据交换、地址管理消息再发送功能
数据链路层将物理层收到的信号(位序列)组成有意义的数据,提供传输错误控制等数据传输控制流程。如:访问的方法、数据的形式。通信方式、连接控制方式、同步方式、检错方式。应答方式、通信方式、包(帧)的构成。位的调制方法(包括位时序条件)帧格式(消息的帧化),应答方式,错误检测等
物理层规定了通信时使用的电缆、连接器等的媒体、电器信号规则等,以实现设备间的信号传送。如:信号电平、收发器、电缆、连接器等形态。双绞线,收发器,电平高低等

CAN帧的类型

帧类型用途
数据帧用于发送单元向接收单元传送数据的帧
远程帧用于接收单元向具有相同 ID 的发送单元请求数据的帧。
错误帧用于当检测出错误时向其它单元通知错误的帧。当检测到错误时总会出现到CAN总线上
过载帧用于接收单元通知其尚未做好接收准备的帧。常见于CAN节点和CANFD节点通信时
帧间隔用于将数据帧及遥控帧与前面的帧分离开来的帧。

数据帧的格式

CAN总线的错误类型

错误的种类错误的内容错误的检测帧(段)检测单元
位错误比较输出电平和总线电平(不含填充位),当两电平不一样时所检测到的错误发送单元、接收单元
填充错误在需要位填充的段内,连续检测到 位相同的电平时所检测的错误发送单元、接收单元
CRC错误从接收到的数据计算出的CRC结果与接收到的CRC顺序不同时所检测到的错误接收单元
格式错误检测出与固定格式的位段相反的格式时送检测到的错误接收单元
ACK错误发送单元在ACK槽中检测出隐形电平时(ACK没有被传送过来时)所检测到的错误发送单元

CAN 错误处理

针对CAN错误有:主动错误状态、被动错误状态、总线关闭态

CAN配置方法

BSW针对CAN通信配置主要配置五个模块:EcuCollection、Com、PduR、CanIf、CAN

待处理知识点

CAN Busoff后的快恢复和慢恢复的区别

CAN节点发生busoff,是因为TEC(Transmit Error Counter)>255总线进入了总线关闭态。当节点进入Busoff模式后,为了尽快恢复节点的通信,可以让故障节点进行快恢复,重新参与通信。如果故障节点经过了几次快恢复,仍然没有恢复正常通信,为了降低对同网段其他节点的通信干扰,可以让故障节点进入慢恢复,让故障节点不要过快的加入总线,降低总线对他们的干扰。

  • 27
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值