CAN 总线入门教程(2)——CAN Message

这篇博客介绍了CAN协议中的消息类型,包括数据帧、远程帧、错误帧和过载帧。数据帧是最常见的,包含仲裁场、数据场、CRC校验和ACK应答位。远程帧用于请求数据,其仲裁场的RTR位设为隐性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CAN协议使用的是短消息,最大的实用字节为94bits,消息中没有特定的地址信息,但是,CAN总线的信息是contented-addressed,也就是说,CAN信息中已经暗示了地址的信息。

信息帧格式:

1)数据帧(Data Frame)

2)远程帧(Remote Frame)

3)错误帧(Error Frame)

4)过载帧(Overload Frame)


一)数据帧(Data Frame)

数据帧是最常用的信息帧,它由以下几个主要部分构成(因为是简单介绍所以省略了一部分内容)

1)Arbitration Field, 当2个或以上的节点在总线上时,它决定了信息的优先级,Arbitration Field包括了:

    i) CAN 2.0A, 11-bit Identifier 和 1 bit 的RTR bit,RTR bit 在数据帧中起了主导作用

   ii)CAN 2.0B, 29-bit Identifier (包含SRR位和IDE位),1 bit的RTR bit

2)Data Field,包含0到8 bytes 的数据

3)CRC Field,包含15 bits 的校验(checksum),这个校验也用来检测error

4)ACK slot, 成功接收CAN信息的控制器会在信息的最后添加一位ACK bit发送出去,发射器会检测ACK bit是否存在,如果没有,则重新发送一遍信息。

注1)ACK bit的存在并不意味着所有需要的节点都接收到了信息,可以确定的只是1个或2个以上的节点接收到了信息;

注2)Identifier并不是按照字面意思,确认信息内容(只是一个名称)


Control field  is not mentioned in this part for the sake of brevity

\

二)远程帧(Remote Frame)

远程帧和数据帧几乎相同,除了以下两点:

   1)它明确的被标记为 Remote Frame(Arbitration Field 的 RTR 位 是隐性receissive);

   2)它没有数据区(Data Field)


远程帧的目的是为了响应相应数据帧的传输。例如,A节点发送字节仲裁字段为234的远程帧,那么如果B节点初始化正确的话,可能也会用仲裁字段为234的数据帧回应。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值