主题:CAN通讯问题,谢谢

  共有33142人关注过本帖    
whl
1楼


CAN通讯问题,谢谢  发帖心情 Post By:2009-3-17 9:30:00   [只看该作者]

请教几个问题:
1)CAN通讯操作函数的AcceptanceFilter中,过滤器的接收码、接收屏蔽码分别指什么?
2)使用了一块周立功PCI9840的两CAN输出口的板卡。打开CANTEST软件,其中的初始化CAN参数,是否与1)中所述过滤器的接受码、接收屏蔽码对应?
3)在使用PCI9840时。想实现两口间的发送与接收,波特率设置一致,其他设置未改变。请问,为何会出现发送失败?
谢谢

  单帖管理 | 引用 | 回复 回到顶部
zhl
2楼


  发帖心情 Post By:2009-3-17 10:05:00   [只看该作者]

AcceptanceFilter: 根据通讯报文格式定义过滤器的配置,定义为9个字节的过滤器,其中前4个字节用于定义过滤器的接收码,后4个字节用于定义过滤器的接收屏蔽码,最后一个字节用于定义选择单/双滤波模式。其中接收码和屏蔽码分别对应于SJA1000 CAN控制器中的ACR、AMR寄存器的设置参数,滤波的方式请参见SJA1000的数据手册中相关说明。如果不对数据进行滤波,将AMR的值均设为0xff。

  单帖管理 | 引用 | 回复 回到顶部
whl
3楼


  发帖心情 Post By:2009-3-17 10:31:00   [只看该作者]

可以这样理解吗?
通过AcceptanceFilter函数中9个字节的设置,给SJA1000 CAN控制器中的ACR、AMR寄存器赋值。发送的帧信息的数据结构中也含有接收码、接收屏蔽码?CAN控制器只接收与之相对应的接收码、接收屏蔽码的帧信息?
另外,在有信息待接收时,接收器会自动进入中断模式吗?

  单帖管理 | 引用 | 回复 回到顶部
zhl
4楼


  发帖心情 Post By:2009-3-17 12:14:00   [只看该作者]

1)发送帧信息的结构是由帧信息、报文识别码以及数据帧的实际数据组成。请参见网站上“WINCE系统双CAN构建方案”一文对CAN报文帧格式的相关介绍。
2)CAN控制器的接收中断始终打开的,一旦有数据,驱动程序会自动执行中断线程,将接收到的数据帧读取到接收buffer中。

  单帖管理 | 引用 | 回复 回到顶部
whl
5楼


  发帖心情 Post By:2009-3-17 12:58:00   [只看该作者]

发送帧信息的结构我清楚。主要由帧起始,标识场,数据场等几部分组成。
我想表达的意思是:因为CAN总线传输为多播方式,每台设备只接收所需要的帧信息。而如何实现此功能,是否就通过CAN控制器的ACR,AMR寄存器中的接收码,接收屏蔽码?如果是这样,那发送的帧信息中势必也含有这两部分,只接收总线上与ACR,AMR寄存器值相匹配的帧数据?

  单帖管理 | 引用 | 回复 回到顶部
zhl
6楼


  发帖心情 Post By:2009-3-17 16:14:00   [只看该作者]

实现对报文的过滤,就是通过设置CAN控制器中的ACR、AMR来实现的。

  单帖管理 | 引用 | 回复 回到顶部

返回首页

CAN通讯问题,谢谢

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: