打印

CAN总线的优先级是怎么定义的?

[复制链接]
7239|5
手机看帖
扫描二维码
随时随地手机跟帖
沙发
3B1105| | 2010-8-31 23:15 | 只看该作者
不需要吧,这个CAN协议里面有说的,你自己看看吧

使用特权

评论回复
板凳
huzixian| | 2010-8-31 23:16 | 只看该作者
ID小的优先级高

使用特权

评论回复
地板
思行合一| | 2010-8-31 23:17 | 只看该作者
在CAN总线上,若同一个时刻,既有节点向总线上发送隐形电平(1),也有节点发送显性电平(0),那么此时总线上表现出来的为显性(0)。

       当总线空闲时,有多个节点同时需要发送报文,那么每个节点的发送器将会对发送位的电平和被监控的总线电平做比较,如果电平相同,那么该节点可以继续发送,如果发送的为一“隐性”电平(1),但是监控到一“显性”电平(0),那么该节点失去仲裁,必须退出发送状态,只到下一次总线空闲的时候在参与总线的仲裁竞争。

     由以上也可以看出,当有多个节点同时争夺总线的控制权,ID最小的那个节点将会胜出,所以在CAN总线上,节点的ID越小,优先级越高。

     晚了,明天再续;

     先列举2种特殊情况,根据仲裁来判断优先级。

     1.  若在同一时刻,标准格式的报文与扩展格式的报文同时抢占总线,且它们的基础ID相同,则发标准格式的报文节点就会PK成功。这是因为扩展格式在基本ID后,紧接着是SRR位,与IDE位,且这两位都是隐性位。而在标准格式中,这两位分别对应的位为RTR与r1,其中RTR既可以为隐性位,也可以为显性位,,但是r1必须为显性位。由仲裁规则可以此时标准帧必定胜出。

    2.  同理,如果在同一时刻,具有相同格式,且具有相同ID的数据帧与远程帧争夺总线控制权,那么数据帧必定胜出。因为RTR显性表示数据帧,隐性表示远程帧。

使用特权

评论回复
5
yoyowodeai| | 2010-8-31 23:26 | 只看该作者
大家有没有做过自动识别ID方面的?

使用特权

评论回复
6
yoyowodeai| | 2010-9-1 22:27 | 只看该作者
自动识别ID是不是让主站给子站分配ID呢?但是子站本身也应该可以彼此区分啊!郁闷

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

340

主题

1587

帖子

3

粉丝