关闭

CAN通信之标准数据帧和扩展数据帧

发表于:2024-5-15 09:56

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:51CTO博客

  CAN协议可以接收和发送11位标准数据帧和29位扩展数据帧,CAN标准数据帧和扩展数据帧区别为帧ID长度不同,以便扩展更多CAN节点。
  1.1、标准数据帧
  标准数据帧基于早期的CAN规格(1.0和2.0A版),使用了11位的识别域。
  CAN标准帧帧信息是11字节,包括帧描述符和帧数据两部分。如下表:
  前3字节为帧描述部分。字节1为帧信息,第7位(FF)表示帧格式,在标准帧中FF=0,第6位(RTR)表示帧的类型,RTR=0表示为数据帧,RTR=1表示为远程帧。DLC表示在数据帧时实际的数据长度。
  标准数据帧的 ID 有 11 个位。从 ID10 到 ID0 依次发送,可以出现2^11种报文,帧ID的范围是:000-7FF,禁止高 7 位都为隐性(禁止设定:ID=1111111XXXX)。
  字节2~3为报文识别码,其高11位有效。
  字节4~11为数据帧的实际数据,远程帧时无效。
  1.2、扩展数据帧
  CAN扩展帧帧信息是13字节,包括帧描述符和帧数据两部分,如下表:
  前5字节为帧描述部分。字节1为帧信息,第7位(FF)表示帧格式,在扩展帧中FF=1,第6位(RTR)表示帧的类型,RTR=0表示为数据帧,RTR=1表示为远程帧。DLC表示在数据帧时实际的数据长度。
  扩展格式的 ID 有 29 个位,基本 ID 从 ID28 到 ID18,扩展 ID 由 ID17 到 ID0 表示,基本 ID 和 标准格式的 ID 相同,可以出现2^29种报文,且在数据链路上是有间隙的(对操作者透明),帧ID的范围是0000 0000-1FFF FFFF,禁止高 7 位都为隐性(禁止设定:基本 ID=1111111XXXX)。
  字节2~5为报文识别码,其高28位有效。
  字节6~13为数据帧的实际数据,远程帧时无效。
  标准数据帧和扩展数据帧区别:
  一、扩展帧的仲裁域有29位,可以出现2^29报文,且在数据链路上是有间隙的(对操作者透明),帧ID的范围是0000 0000-1FFF FFFF。(PS:目的就是构造29位的CAN ID,可以实现更加庞大的ID群)
  二、标准帧的仲裁域是连续的11位,可以出现2^11种报文,也就是帧ID的范围是000-7FF;
  三、控制帧中的DLC(数据长度)完全相同,但保留位不同,标准帧IDE、R0,扩展帧R1、R0,必须以显性电平发送(由数据链路层操作),对程序员透明;
  四、 总结: 其它的都一模一样,所以,其实CAN标准帧和扩展帧只是在帧ID的长度上不一样,以能扩展更多的CAN节点,更好地支持上层协议而已。
  五、它们有一个共同的特性:帧ID数值越小,优先级越高。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号