完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
yusea君是精通CAN规范的人。
重复yusea君的实验,同样经历了一些怪异的、不能解释的现象/输出结果,但最终发现还是自己的程序问题;反复修正,使之符合规范,遂找出了对CAN规范中关于仲裁丢失规则的正确理解,及程序处理方法要点。(规范中对这些内容不会讲得很细,只限于以下文字。) CAN仲裁规则: Bus access conflicts are resolved by bit-wise arbitration on the identifiers involved by each station observing the bus level bit for bit. This happens in accordance with the "wired and" mechanism, by which the dominant state overwrites the recessive state. The competition for bus allocation is lost by all those stations (nodes) with recessive transmission and dominant observation. All those "losers" automatically become receivers of the message with the highest priority and do not re-attempt transmission until the bus is available again. (注:所谓 the highest priority 是指当有若干个节点同时竞争总线时,仲裁结果是:所有未获得总线读取权的站都成为具有最高优先权报文的接收站,并接收其报文。) 有篇荷兰人写的文章概念更清晰,他说其它loser节点将由积极发送状态转换为“Listen only” 只听状态。 losers 在听什么?它们听到了什么? (这就是CAN规范内含的精彩内容。) 我最初的疑问:一个SR=0x10的loser还能不能接受并执行“连续发送”的上层命令/程序意图? yusea君说,让701、703同时启动,两边同时“连续发送”。703已经被701阻塞挂起了,它有一个发送任务悬在那里等待运行,它还能接收新的发送任务?一个CAN通信控制器能悬挂几个任务? 规范中明确说明了,竞争失败者不会在总线再次空闲前再次发送报文。只有当最高优先权的报文节点释放总线之后,其他几个losers才再次尝试重新传输报文/竞争总线。 所以,在703号报文发送节点因仲裁失败成为loser之后,在701号报文节点发送完它的每一帧数据之前,它一直是一个接收器。在703节点内部,每发生1次仲裁丢失就应完整接收一帧。仲裁丢失数等于接收帧数。这意味703在701每发送1帧消息,(虽经仲裁失败)必然接收到701发送到总线上的报文,否则它就不是CAN控制器。/或者实验程序出了问题。 下一步的论证命题是: 1、为什么一个loser703不会再次与701积极竞争总线?(除了总线空闲之外,它还听见了什么?)———这里有概念错误!待修改。 2、为完成被挂起的发送任务,一个loser在什么状态条件下,才会再次竞争总线?(总线空闲除外。)?)———这里不严格!待修改。 3、703何时/怎样脱离/摆脱/结束自己的loser状态?(总线空闲除外。) 4、...... 5、...... 所枚举的问题均归纳于:一个因仲裁退出而被挂起的任务在MAC子层上的CAN调度规则。 (规范中都提到了的。) |
|
相关推荐
|
|
完全不明白,好像是在写程序下一步要难的内容,我是有这样的习惯
|
|
|
|
|
|
{:12:}
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
4018 浏览 0 评论
8603 浏览 0 评论
5993 浏览 0 评论
4160 浏览 1 评论
5226 浏览 0 评论
请问一下qspi mtsr引脚传输一次32bit后引脚不拉低怎么解决?
438浏览 2评论
688浏览 2评论
4826浏览 2评论
最近UJA1023开发遇到问题了,各位大神有谁知道可以替代这颗芯片的
615浏览 1评论
851浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 19:19 , Processed in 0.561263 second(s), Total 72, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号