- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CAN标识符 过滤器 屏蔽器之间的关系1
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
CAN标识符、过滤器、屏蔽器之间的关系
【问】
看了好多遍数据,也没搞明白CAN 的标识符、CAN 接收过滤器和CAN 接收屏蔽器之间有什么关系,
单独看都明白,一旦联系起来就胡涂了。在一个主控制器对多点通讯网络中,它们各自如何配置,主机要
想发信息给所有的从机,和主机想发信息给某个特定的从机,应该怎么配置这几个寄存器呢?
【回答】
CAN 节点通过标识符来识别CAN 帧是不是自己想要的,识别方法就是通过滤波屏蔽寄存器的设置来完
成,接收滤波寄存器设置了标识符每位的值,接收屏蔽寄存器一般有相同的数量匹配接收滤波寄存器,规定接
收滤波寄存器标识符每一位的值是否需要进行匹配, 比如芯片设置有6 个接收滤波寄存器和6 个接收屏蔽寄
存器,从总线上接收CAN 帧,然后依次将收到的CAN 帧标识符与6 对接收滤波和屏蔽寄存器进行匹配,符合
某对接收滤波和屏蔽寄存器要求了,就停止匹配,将数据接收到对应的缓冲区中.
例如:设置某接收滤波寄存器00000000001 (11 位),接收屏蔽寄存器 11111111101 (11 位),则该对
组合会拒绝接收00000000011 和00000000001 之外所有的标识符对应的CAN 帧,因为屏蔽器规定第二位
(为0 )以外的所有标识符位要严格匹配(与滤波器值一致),第二位的滤波器值和收到的CAN 标识符第
二位值是否一致都可以。
不同的芯片滤波屏蔽寄存器的运行方式不太一致,至少我用过的AT90CAN128 和MCP2515 差别就很大,
不过原理都一样。
【问】
初学 CAN 的朋友应该都会遇到我这样的问题,我的理解是,一个节点向网络中发送一条信息,所有
的节点都能收到,收到后每个节点将收到的标识符自行与自己的比较,符合的才接收,过滤器和屏蔽器决
定标识符中哪些位参与比较,也就是说有些位可以不参与比较就直接接收,这很有用,比如,11 位的标识
符不可能都用来标识下位机号,你一个网络不可能连接那么多节点,11 位的标识符有点浪费,我们可以将
最高3 位用来表示所发送的数据类型,在接收点设置滤波器和屏蔽器只比较节点号部分,先将数据接收下
来,在将最高3 位拿来判断是什么数据,我的试验结果是RXB0SIDH 会被发送端的TXB0SIDH 修改,判
断RXB0SIDH 的最高三位即可知道接收的数据类型,以上是我这几天的学习结果,希望大家共同讨论。
【回答】
非常正确!!!!
如果不做这个硬件滤波,也可以使用软件来解析地址,决定是否需要处理收到的报文,不过这就会增
加CPU 的开销,所以,合理的设定硬件的mask filter ,可以节省很多CPU 时间。
李清林整理 1
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
CAN发送问题
【问】
两个 CAN 节点通信。。一方发送,一方接收。发送方如果没有收到接收方的应答。。、一直就会处于发送
状态。。程序会死在那里。。跳不出来。。。不知道是不是这样。
如何跳出来。。谢谢。
【回答】
n 你自己可以设置一个等待时间,自开始发送起,等待时间到了以后,取消发送。
n 你可以置起发送位后,不需要等待是否发送成功,去干其它事,程序就不会死在这里了。
【问】
应答是CAN 的底层协议吗?置起发送位后。发送方的CAN 控制器自身是不是要等待接收方 的控制器的
应答。。就是我问的CAN 的应答机制。是不是它的底层协议。。。如果收不到应答,CAN 就会死在那里??
问题已经解决。我在每次发完后,,再对CAN 进行下软件复位。
【回答】
一般的做法是:
n 填好数据,置起发送位;
n 去做其它事,到要发送下一笔前,来检查上一次是否已经发
您可能关注的文档
最近下载
- 4AM3U3 In the shop At Panda’s Glasses Shop ppt英语教学课件.pptx
- 2023年四川省成都市高考物理一诊试卷(含答案解析).docx
- 人教版(2024)英语七年级上册Unit 5 Fun Clubs重难点题型专练(含答案).doc VIP
- GB50174-2008电子信息系统机房设计规范.docx
- 2006-年度经教育部备案或审批同意设置的-高等学校本科专业名单.pdf
- 河南省青桐鸣大联考2024-2025学年高二上学期10月月考英语试题(含解析,含听力原文无音频).pdf VIP
- _电缆桥架安装图集.pdf VIP
- 2024入团前基础知识题库(含答案).docx
- 《小萝卜头的故事》PPT课件.pptx
- 大厦高大模板专项施工方案.doc
文档评论(0)