CAN总线竞争算法请教 点击:1685 | 回复:9



gongkongedit

    
  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-07-13 02:28:00
楼主
想请教: 对于CAN总线系统,如何进行总线管理?具体如下: 对于每一个节点都规定了固定的标示符,也就相应的规定了优先级别,但是为了防止优先级别高的节点始终霸占总线,想设计一套算法:在高优先级别的节点发过报文之后,就自动降低其优先级。 想问问有没有这种算法? 还有相关的通信规程资料在哪有下载? 非常感谢!!!



永不低头

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 12回
  • 年度积分:0
  • 历史总积分:60
  • 注册:2003年3月02日
发表于:2003-06-04 18:09:00
1楼
我也想过这个问题,不能让一个节点形成总线垄断。记得中断控制器8259中好象有一种算法,是否能参考。

远 方

  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 401回
  • 年度积分:0
  • 历史总积分:561
  • 注册:2002年1月29日
发表于:2003-06-04 23:52:00
2楼
其实很简单啊,你只要改变最前面的标识符里的位元值就可以了,标识符位元值最小优先级越高,0总是会覆盖掉1的。

永不低头

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 12回
  • 年度积分:0
  • 历史总积分:60
  • 注册:2003年3月02日
发表于:2003-06-05 00:24:00
3楼
如果是多个节点呢?》

axsz741

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 10回
  • 年度积分:0
  • 历史总积分:10
  • 注册:2003年4月08日
发表于:2003-06-05 18:37:00
4楼
你可以买一本邬宽明老师出的新书看看。或许有相类似的文章!

远 方

  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 401回
  • 年度积分:0
  • 历史总积分:561
  • 注册:2002年1月29日
发表于:2003-06-06 08:24:00
5楼
当然是针对多节点,如果就两个节点那也不存在优先级的问题 优先级是针对整个总线而言的,所以优先级的划分规则在整个总线系统中表现为一样,这样在所有的节点通讯时才会有优先的概念。

p80c592

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:12
  • 注册:2001年12月08日
发表于:2003-06-14 09:14:00
6楼
自己编一段小程序就可以了,不过要小心一点,否则会造成冲突

super

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 14回
  • 年度积分:0
  • 历史总积分:79
  • 注册:2002年10月12日
发表于:2003-06-25 20:04:00
7楼
如果节点少的话,可不可以一个节点,分3个节点号,分为高中、低,让他们循环使其中一个成为当前节点

HALF

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 8回
  • 年度积分:0
  • 历史总积分:61
  • 注册:2003年5月12日
发表于:2003-06-26 15:12:00
8楼
有一个办法仅供参考:可将不同级别的中断按照可能的需求定时进行;这样可以照顾各点

gz_hjg

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 14回
  • 年度积分:0
  • 历史总积分:23
  • 注册:2002年8月22日
发表于:2003-07-13 02:28:00
9楼
不需要这样做,CAN的标识符一般来说是按照传输信息的紧急程度来编码的,通常编码方式是:报文信息+ID节点。

热门招聘
相关主题

官方公众号

智造工程师