完美者(wmzhe.com)网站以软件下载为基础,改版后的网站对功能性板块进行扩充,以期能够解决用户在软件使用过程中遇见的所有问题。网站新增了“软件百科”、“锦囊妙技”等频道,可以更好地对用户的软件使用全周期进行更加专业地服务。
CAN 接收滤波计算器(支持SJA1000 和Adawin CAN Card)
适用范围:
1.SIA1000及与其兼容的CANr2制器
2.Adewin CANtest软件及系列CAN卡
用法:无需移位直接复制填充即可。
"锦囊妙技"栏目是聚合全网软件使用的技巧或者软件使用过程中各种问题的解答类文章,栏目设立伊始,小编欢迎各路软件大神朋友们踊跃投稿,在完美者平台分享大家的独门技巧。
本站文章素材来源于网络,大部分文章作者名称佚失,为了更利于用户阅读和使用,根据需要进行了重新排版和部分改编,本站收录文章只是以帮助用户解决实际问题为目的,如有版权问题请联系小编修改或删除,谢谢合作。
软件大小:29.03 KB
你是说CAN的接收滤波器吗?每个芯片略有不同,一般是一个滤波器通过就能进入接收中断。 拿飞思卡尔的CAN来说,是有两个寄存器来滤波的,一个设置接收ID的范围,一个屏蔽接收ID的某些位。
首先,要纠正你一下,CAN总线不是主从结构,部分主从节点或主从站。这是根本,如果你这理解错了,后面会绕很多弯路的。 CAN总线的数据发送是以广播的形式的,如A节点将数据发送到总线上,通过仲裁,优先级高的报文被发送,所有节点解码ID场,只有ID场对应的节点完成全部的数据接收。 你的问题是 1、请确认你所谓的丢失“数据”,确实是发给你称的“从节点”吗?这些数据的ID都是指向“从节点”? 2、如果1点确认无误,请检查ECU的设计和驱动,最好做一个一致性测试,因为理想状态下依然丢失帧,那是很底层的通讯错误,主题体现在物理层、数据链路层,需做一致性测试。 希望对你能有所帮助。
我没用过PIC系列单片机,不知道里面是不是集成了CAN控制器。但万变不离其宗,根据CAN的基本协议,配置方法应该和SJA1000的差不多。SJA1000里面有验收代码寄存器ACR(0~3)和验收屏蔽寄存器AMR(0~3),根据选择CAN的模式不同(basic can和peli can)有不同的配置方法。常用的pelican模式下,可以把验收滤波器设置为32位滤波器,即所有字节的ACR和AMR都起作用。ACR里面存放想要接收的CAN节点的ID,AMR控制哪几个ACR起作用。 比如:AB通信,A的ID为1234,B的ID为5678,如果B要接收到A的数据,ACR0~ACR3分别写入1234,AMR0~AMR3写0,则对应的ACR起作用,如果AMR0~AMR3都写0,那ACR0~ACR3都起作用,如果AMR0~AMR3都写1,那验收滤波器就不对ID进行过滤。 不知道是不是有用,希望能帮到你。
致远电子的USBCAN-II内部用的是SJA1000CAN控制器,也只有SJA1000有单滤波和双滤波的说法。 单滤波器:对于标准帧,;滤波器只比较11位帧ID、RTR位和帧数据的前2个字节;对于扩展帧,滤波器比较29位帧ID和RTR位。 双滤波器:定义两组比较规则,收到的帧只要符合任意一组规则就认为是有效帧。对于标准帧,验收滤波器1比较11位帧ID、RTR位和第1个数据字节,验收滤波器2比较11位帧ID和RTR位;对于扩展帧,两个滤波器都只比较ID前16位,符合条件就接收。