SJA1000滤波器配置(精辟).pdf

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SJA1000滤波器配置(精辟)

CAN 总线的滤波器设置就像给总线上的节点设置了一层过滤网,只有符合要求的 CAN 信息 帧才可以通过,其余的一概滤除。 在验收滤波器的帮助下,只有当接收信息中的识别位和验收滤波器预定义的值相等时,CAN 控制器才允许将已接收信息存入RXFIFO。 验收滤波器由验收代码寄存器(ACRn)和验收屏蔽寄存器AMRn 定义,要接收的信息的位模式 在验收代码寄存器中定义,相应的验收屏蔽寄存器允许定义某些位为“不影响”,即可为任 意值。 一、BasicCAN 模式下SJA1000 滤波器 在验收滤波器的帮助下 CAN 控制器能够允许 RXFIFO 只接收同识别码和验收滤波器中预设 值相一致的信息,验收滤波器通过验收代码寄存器ACR 和验收屏蔽寄存器AMR 来定义。复 位请求位被置高,验收代码寄存器ACR 可以访问(读/写)。复位请求位被置高,验收屏蔽寄 存器AMR 可以访问(读/写)。验收屏蔽寄存器定义验收代码寄存器的相应位对验收滤波器 是“相关的”或 “无影响的”。 滤波的规则是:每一位验收屏蔽分别对应每一位验收代码,当该位验收屏蔽位为“1”的时 候(即设为无关),接收的相应帧 ID 位无论是否和相应的验收代码位相同均会表示为接收; 当验收屏蔽位为“0 ”的时候(即设为相关),只有相应的帧ID 位和相应的验收代码位值相 同的情况才会表示为接收。只有在所有的位都表示为接收的时候,CAN 控制器才会接收该报 文。 举例:如何设置滤波器,接收标识符为0000 1010 的CAN 帧? 在SJA1000 复位模式下,设置寄存器CDR.7 为“0 ”,即设置 CAN 控制器SJA1000 工作于BasicCAN 模式。 设置验收代码寄存器ACR0=0x0A ; 根据滤波器信息帧与滤波器的位对应关系,将需要参与滤波的信息位对应的验收屏蔽寄存器 位设置为0,设置AMR=0x00 ; 如此设置,SJA1000 接收标识符ID.10~ID.3 为0000 1010 的CAN 帧。 二、PeliCAN 模式下SJA1000 滤波器 有两种不同的过滤模式可在模式寄存器中选择MOD.3, AFM 。 单滤波器模式:AFM 位是1; 双滤波器模式:AFM 位是0 。 SJA1000 验收滤波器由4 个验收码寄存器ACR0 、ACR1 、ACR2 、ACR3 和4 个验收屏蔽寄存器 AMR0 、AMR1 、AMR2 、AMR3 组成。ACR 的值是预设的验收代码值,AMR 值用于表征相对 应的ACR 值是否用作验收滤波,这8 个寄存器在SJA1000 的复位模式下设置。 滤波的规则和BasicCAN 模式下的滤波规则相同。滤波的方式有两种,由模式寄存器中的AFM (MOD.3 )位选择:单滤波器模式(AFM 位是1)、双滤波器模式(AFM 位是0 )。 1、单滤波器的配置 这种滤波器配置定义了一个长滤波器(4 字节、32 位),由 4 个验收码寄存器和4 个验收屏 蔽寄存器组成的验收滤波器,滤波器字节和信息字节之间位的对应关系取决于当前接收帧格 式。 (1)、接收CAN 标准帧时单滤波器配置: 对于标准帧,11 位标识符、RTR 位、数据场前两个字节参与滤波; 对与参与滤波的数据,所有AMR 为0 的位所对应的ACR 位和参与滤波数据的对应位必须相 同才算验收通过; 如果由于置位 RTR=1 位而没有数据字节,或因为设置相应的数据长度代码而没有或只有一 个数据字节信息,报文也会被接收。对于一个成功接收的报文,所有单个位在滤波器中的比 较结果都必须为“接受”; 注意:AMR1 和 ACR1 的低四位是不用的,为了和将来的产品兼容,这些位可通过设置 AMR1.3 、AMR1.2 、AMR1.1 和AMR1.0 为1 而定为“不影响”。 举例:如何设置单滤波,接收标识符为0000 1010 010 的CAN 标准帧? 在SJA1000 复位模式下,设置寄存器CDR.7 为“1”,即设置 CAN 控制器SJA1000 工作于PeliCAN 模式。 设置模式寄存器的验收滤波器模式位(AFM )为1,选择单滤波器模式; 设置验收代码寄存器ACR0=0x0A 、ACR1=0x40 、ACR2=ACR3=0x00 ; 根据单滤波器时信息帧与滤波器的位对应关系,将需要参与滤波的信息位对应的验收屏蔽寄 存器位设置为0,设置AMR0=0x00 ,AMR1=0x0F 、AMR2=AMR3=0XFF

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档