打印
[CAN-bus/DeviceNet]

can滤波器实验问题求助

[复制链接]
2578|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ciniao|  楼主 | 2010-4-19 16:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、can底层驱动:zlg fullcan驱动包    2、硬件:lpc2292 can0口+82c250 /magic2200开发箱can0 模块(lpc2290)
    3、滤波模式:标准帧单个标识符滤波 此模式下,单个标识符表单元结构如下
    31      29           26                                          16
    15      13           10                                           0
    |  |  |  |   |   |   |   |   |           ...                 |   |   |
     控制器号3bit 禁能1bit 未用2bit                标识符ID11bit
首先:我对这控制器号不太明白,才3bit,肯定不是目标地址之类的东西,但是根据教材上描述,是“使用can控制的编号”,我就想,难道所有can控制器的编号只能在0-7之间?于是,在zlg的开发箱上做了一个简单实验,就是改变这3bit的数值,看对滤波是否有影响,实验当中,pc端can控制卡的设备索引号为0,实验结果表明,改变开发箱can模块的控制器编号,对滤波没有影响,接受与否,由11位id决定。
然后我用自己的板子实验,问题出现了!
改变3bit值,竟然对滤波有影响!只有这三位的值与pc机can卡设备编号相同时(为0),才能正常滤波,我不知道这个“与pc机can卡设备编号相同”巧合还是必须的确要一样才行,但是为什么开发板上又会没有影响呢,程序一抹一样的啊,我不知道是不是有自己没有搞懂的地方。谢谢!

相关帖子

沙发
ciniao|  楼主 | 2010-4-19 21:51 | 只看该作者
自己顶一个

使用特权

评论回复
板凳
xjycug| | 2010-5-9 20:10 | 只看该作者
需要看你的控制器采用的是那种协议,在Bosch Can中,有两个被称为仲裁场的16位字,就是32位,其中29位是ID当然可以是标准帧也可以是扩展帧。而还有三个位一个是控制使能,一个控制是否用滤波,还有一个控制传输方向。而还有两个与之对应的被称为掩码的16位字,是作为滤波用的。根据不同公司的协议,控制字也是不同的,不过底层的传输都是符合CAN协议的。

使用特权

评论回复
地板
新好男孩| | 2010-5-13 08:34 | 只看该作者
控制器号 = CAN控制器-1

使用特权

评论回复
5
新好男孩| | 2010-5-13 08:39 | 只看该作者
滤波与CAN控制器接口\禁能\ID号有关.

使用特权

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

本版积分规则

29

主题

134

帖子

0

粉丝