CAN总线协议:标准CAN和扩展CAN

9 篇文章 4 订阅
8 篇文章 1 订阅

CAN通讯协议是一个载波侦听、基于报文优先级碰撞检测和仲裁(CSMA/CD+AMP)的多路访问协议。CSMA的意思是总线上的每一个节点在企图发送报文前,必须要监听总线,当总线处于空闲时,才可发送。CD+AMP的意思是通过预定编程好的报文优先级逐位仲裁来解决碰撞,报文优先级位于每个报文的标识域。更高级别优先级标识的报文总是能获得总线访问权,即:标识符中最后保持逻辑高电平的会继续传输,因为它具有更高优先级。
在这里插入图片描述

ISO-11898:2003标准,带有11位标识符,提供的最高信号速率从125Kbps到1Mbps。更迟一些的修订标准使用了扩展的29位标识符。

标准CAN

标准CAN只有11位标识符,每帧的数据长度为51+(064)=(51117)位。

标准CAN---11位标识符

· SOF - 帧起始。显性(逻辑0)表示报文的开始,并用于同步总线上的节点。

· 标识符 - 标准CAN具有11位标识符,用来确定报文的优先级。

此域的数值越小,优先级越高。

· RTR - 远程发送请求位。

当需要从另一个节点请求信息时,此位为显性(逻辑0)。

所有节点都能接收这个请求,但是帧标识符确定被指定的节点。

响应数据帧同样被所有节点接收,可以被有兴趣的节点使用。

· IDE - 标识符扩展位,为显性时表示这是一个标准CAN格式,为隐形表示这是扩展CAN格式。

· r0 - 保留位(可能将来标准修订会使用)。

· DLC - 4位数据长度代码表示传输数据的字节数目,一帧CAN最多传输8字节用户数据。

· 数据0~8 – 最多可以传输8字节用户数据。

· CRC - 16位(包括1位定界符)CRC校验码,用来校验用户数据区之前的(包含数据区)传输数据段。

· ACK - 2位,包含应答位和应答界定符。

发送节点的报文帧中,ACK两位是隐性位,当接收器正确地接收到有效的报文,接收器会在应答位期间向发送节点发送一个显性位,表示应答。

如果接收器发现这帧数据有错误,则不向发送节点发送ACK应答,发送节点会稍后重传这帧数据。

· EOF – 7位帧结束标志位,全部为隐性位。

如果这7位出现显性位,则会引起填充错误。

· IFS – 7位帧间隔标志位,CAN控制器将接收到的帧正确的放入消息缓冲区是需要一定时间的,帧间隔可以提供这个时间。

扩展CAN

扩展CAN具有29位标识符,每帧数据长度为71+(064)=(71135)位。

注:不计位填充。

扩展CAN---29位标识符

扩展CAN消息相对于标准CAN消息增加的内容如下:

· SRR – 代替远程请求位,为隐性。所以当标准帧与扩展帧发送相互冲突并且扩展帧的基本标识符与标准帧的标识符相同时,标准帧优先级高于扩展帧。

· IDE – 为隐性位表示标志位扩展帧,18位扩展标识符紧跟着IDE位。

· r1 – 保留

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: CAN总线协议有两种: 1. 原始CAN (Classic CAN) 2. 高级CAN (CAN FD) 原始CAN是一种简单的总线协议,适用于简单的、低速的数据传输应用。 高级CAN是一种改进版本,具有更高的数据传输速率和更大的数据帧长度。 ### 回答2: CAN总线协议是一种用于控制器局域网络通信的协议,它主要用于在各种汽车和工业应用中,实现各个节点之间的通信。目前,主要的CAN总线协议有以下几种: 1. CAN 2.0A协议:CAN2.0A协议是最早提出的CAN总线协议之一。它使用11位标识符,支持最大传输速率为1Mbps。CAN 2.0A协议适用于简单的数据传输和广播通信。 2. CAN 2.0B协议:CAN 2.0B协议CAN总线的一个升级版本。相比CAN 2.0A协议,CAN 2.0B协议使用了29位扩展标识符,支持更高的带宽。它支持最大传输速率为1Mbps或者更高,适用于复杂的数据传输和多节点通信。 3. CAN FD协议:CAN FD协议是一种高速CAN总线协议。FD代表Flexible Data Rate,意味着它可以支持更高的传输速率。CAN FD协议支持更大的数据包大小,传输速率可以达到更高的数值。它可以向下兼容CAN 2.0A和CAN 2.0B协议。 4. SAE J1939协议:SAE J1939协议是用于商用车辆和重型机械设备上的CAN总线协议。它定义了一种通信协议,用于在车辆内部的各个子系统之间进行数据交换。SAE J1939协议支持长距离通信和高速传输。 除了以上的主要CAN总线协议,还有一些其他的CAN总线协议,例如ISO 11898、CANopen等。每种协议都有其特定的应用领域和使用场景。选择合适的CAN总线协议取决于应用需求和硬件能力。 ### 回答3: CAN总线协议是一种在控制领域广泛使用的通信标准。主要应用于汽车、工业自动化等领域。 CAN总线协议主要有两种类型:标准CAN和扩展CAN。标准CAN采用11位消息ID,最多支持2048个节点,并提供最大1Mbps传输速率。而扩展CAN采用29位消息ID,最多支持1亿个节点,并提供最大8Mbps传输速率。 在CAN总线协议中,消息的传输是通过多播方式进行的,节点可以同时发送和接收消息。消息的优先级由消息ID中的字符,越小的ID表示越高的优先级。CAN总线协议还提供了数据帧和远程帧两种类型的消息。 数据帧是最常用的消息类型,用于节点之间的数据传输。一个数据帧由消息ID、数据、CRC等字段组成。数据帧还可以设置为无差错重试模式,以提高传输的可靠性。 远程帧用于节点之间的请求和响应。一个远程帧包含消息ID和请求位,当一个节点发送远程帧时,其他节点会发送带有同样消息ID的数据帧作为响应。 除了消息传输,CAN总线协议还提供了错误检测和处理机制。CAN总线可以检测出位错误、帧错误、CRC错误等,并通过错误检测代码和错误标志位来进行报警或处理。 总的来说,CAN总线协议是一种高可靠性、高速率的通信协议,在广泛应用领域的工控系统和汽车电子系统中都有着重要地位。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值