CAN数据传输顺序,及仲裁过程

原文链接:CAN总线的特点和帧结构

目录

1.1 多主工作方式

1.2 非破坏性仲裁机制

线与机制

仲裁失败识别

1.3 利用仲裁帧,执行仲裁



1.1 多主工作方式

CAN总线是多主工作方式。

是指CAN总线上的所有节点没有主从之分,表现在数据传输上是:

  • 在总线空闲状态下,任意节点都可以向总线上发送信息。即图1所示的所有节点(CAN Node A,B,C,D)都可以向总线发送信息。

  • 最先向总线发送信息的节点获得总线的发送权。即图1所示节点B的ID 0x34获得发送的优先权。

  • 当多个节点同时向总线发送消息时,所发送消息的优先权高的那个节点获得总线的发送权。即图1所示节点A的ID 0x12和节点C的ID 0x67同时向总线发送时,节点A的ID 0x12获得发送权。

 图1 多主工作方式示意图

所谓节点的优先权是根据标识符(Identifier 以下称为 ID)决定。这里 ID 不是表示发送的目的地址,而是表示访问总线的消息的优先级,ID值越小优先级越高。当两个以上的单元同时开始发送消息时,对各消息ID 的每个位进行逐个仲裁比较,仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。这里关于仲裁的机制,接着看下一特点。

1.2 非破坏性仲裁机制

CAN总线的访问采用非破坏性仲裁机制。

非破坏性意味着仲裁的胜出者(即优先级高的信息)不被打扰,不需要重新启动,仲裁的失败者也不会被破坏,而是等着这条信息发送完后,再进行下一次仲裁,直到胜出而获得发送权。这个机制要求相关的物理驱动器必须按线与机制执行,即CAN总线上有显性和隐性两种逻辑电平,当一个节点发送一个显性电平,它会覆盖其他节点发送的隐性电平。从CAN总线信号介绍,我们知道:显性电平为逻辑0,隐性电平为逻辑1。故可见下图2。

 图2 线与机制图解

线与机制

简而言之,线与机制相当于位与计算;显性覆盖隐性,就相当于电路通路时,有一个端点接地(GND),那么整个电路电压就为零了。

了解了线与机制后,来看一个仲裁示例,如下图3:有三个节点同时向总线发送信息,分别为节点1的ID 0x15A,节点2的ID 0x3D2,节点3的ID 0x1F6。仲裁从帧起始位(start of frame)开始,三个ID的第1位均为显性电平(逻辑0),仲裁没有胜负;接着仲裁第2位,节点3 ID 0x1F6为隐性电平(逻辑1),其他两个ID仍为显性电平,故节点3 ID 0x1F6仲裁失败而退出;再接着仲裁第3位,两个ID电平仍然相同,仲裁没有胜负;继续仲裁第4位,这时节点1 ID 0x15A依然为显性电平,而另一个ID为隐性电平,故节点1 ID 0x15A仲裁胜出,向总线继续发送信息。

 图3 仲裁过程示意

仲裁失败识别

针对仲裁失败的节点 ,怎么知道仲裁失败了呢?

如下图4红圈处,节点B发送(Tx) 的隐性电平,回读/接收(Rx)的却是显性电平,故节点B就知道仲裁失败了,从而转为接收状态。也就是说节点发送信息时,会实时判断接收的信息是不是自己发送的。

 图4 节点仲裁失败的处理

通过上述过程可以清晰地看出仲裁并没有破坏总线信号的发送,整个过程精准地按照协议规定执行。

1.3 利用仲裁帧,执行仲裁

仲裁段既然用于仲裁,那么具体是怎么执行仲裁呢?

首先,说明下数据帧和遥控帧各自的两个格式下某些位的数值差别,如下所示:

图片

然后,进行仲裁,情况1:在ID的前11位就能结束仲裁,如下图15,在ID25仲裁就结束。

 

图15 仲裁情况1

当在ID的前11位未结束仲裁,即说明前11位ID相同。这时需要进一步分为4种情况来讨论:

情况2:标准格式的数据帧与遥控帧仲裁,因为ID18后是RTR位,数据帧的RTR位恒为显性,遥控帧的RTR位恒为隐性。此时数据帧将仲裁胜出,即前11位ID号相同时,标准数据帧的优先级高于标准遥控帧。

图片

 

图16 仲裁情况2

情况3:扩展格式的数据帧与遥控帧仲裁,

当前11位ID和后18位ID全相同时,由于这种情况下的SRR位和IDE位均为隐性,故也是看RTR位。扩展数据帧的RTR位恒为显性,扩展遥控帧的RTR位恒为隐性,此时数据帧将仲裁胜出。即前11位ID号相同时,扩展数据帧的优先级高于扩展遥控帧。

在前11位ID相同,后18位ID不相同时,仲裁过程与情况1一样。

图片

 

图17 仲裁情况3

情况4:数据帧的标准格式与扩展格式仲裁,因为ID18后,标准格式的是RTR位,扩展格式的是SRR位,仲裁这两位,而标准格式的RTR位恒为显性,扩展格式的SRR位恒为隐性,故此时标准格式的数据帧仲裁胜出。即前11位ID号相同时,标准数据帧优先级高于扩展数据帧。

图片

 

图18 仲裁情况4

情况5:遥控帧的标准格式与扩展格式仲裁,因为ID18后两者均是IDE位,扩展格式的IDE位恒为隐性,标准格式的IDE位在控制段,恒为显性,故标准格式的遥控帧仲裁胜出。即前11位ID号相同时,标准遥控帧优先级高于扩展遥控帧。

图片

 

图19 仲裁情况5

通过上述分析,我们就知道了仲裁段的各种仲裁情况,尤其是在前11位ID号相同时,根据协议设定的RTR, SRR, IDE,就可以保证:

  • RTR:保证数据帧优先级高于遥控帧;

  • SRR :保证标准数据帧的优先级高于扩展数据帧;

  • IDE :保证标准遥控帧的优先级高于扩展遥控帧。

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

picoasis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值