7 第四课 CAN的报文滤波技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
现场总线技术
2.7.2 单滤波技术
单滤波配置器定义了一个长滤波器(4BYTE)。滤波器字 节和信息字节之间的对应关系取决于当前接收帧的格式。 标准帧,只使用前两个数据字节来存放包括RTR位的完 整的识别码。如果由于置位 如果由于置位RTR位没有字节 位没有字节,或者只有 如果由于置位 位没有字节 一个字节,信息也会被接收。 对于一个成功接收的信息,所有单个位的比较后都必须发 出接收信号。
如果没有向滤波器请求数据字节过滤,AMR1和AMR3的 如果没有向滤波器请求数据字节过滤, 和 的 低四位必须被置为1(不影响) 低四位必须被置为 (不影响)。当使用包括RTR位的整 个标识别码时,两个滤波器都同样工作。
现场总线技术
扩展帧
如果接收的是扩展帧信息,定义的两个滤波器是相同的。
两个滤波器都只比较扩展识别码的前两个字节。 两个滤波器都只比较扩展识别码的前两个字节。
现场总线技术
发送出错: 发送出错: 接收出错: 接收出错:
发送错误计数器加8 发送错误计数器加 接收错误计数器加1/8(细节 细节) 接收错误计数器加 细节
报文发送成功: 报文发送成功: 报文接收成功: 报文接收成功:
发送错误计数器减1;除非为 发送错误计数器减 ;除非为0 如果接收计数器处于1- 之间 之间, 如果接收计数器处于 -127之间, 则减1。如果接收错误计数为0,则 则减 。如果接收错误计数为 , 仍保持为0;如果大于127,则将其 仍保持为 ;如果大于 , 值记为119- 之间的某个值 值记为 -127之间的某个值
错误激活状态(Error Active) 错误认可状态(Error Passive) 总线关闭状态
现场总线技术
错误激活状态( 错误激活状态(Error Active) )
错误激活单元可以照常参与总线通信,并且当 检测到错误时,送出去一个活动错误标志。
为了界定故障,每个总线单元都有两个计数器: 为了界定故障,每个总线单元都有两个计数器: 发送出错计数器 接收出错计数器
为了能成功接收信息,所有单个位的比较时至少有 一个滤波器表示接收。
现场总线技术
图2.18 接收扩展帧信息的双滤波器配置
现场总线技术
扩展格式双滤波逻辑图表示
&
滤波器1 验收屏蔽位 验收代码位 信息位 验收屏蔽位 验收代码位
≥1 ≥1 =1 ≥1 =1 ≥1 &
Logic = 1表示接受 Logic = 0不接受
现场总线技术
(2)填充错误:在应使用位填充方法进行编码的报文中, )填充错误:在应使用位填充方法进行编码的报文中, 出现了第6个连续相同的位电平时,将检出一个位填充错误。 出现了第 个连续相同的位电平时,将检出一个位填充错误。 个连续相同的位电平时
(3)CRC错误:CRC序列由发送器CRC计算的结果组成 的。接收器以发送器相同的方法计算CRC。如果计算结果 与接收到的CRC序列不相同,则检出一个CRC错误 (4)形式错误:当固定形式的位场中出现一个或多个非 法位时,则检出一个形式错误。 (5)应答错误:在应答间隙,发送器未检测到显性位时, 则由它检出一个应答错误。
现场总线技术
双滤波技术
双滤波器的配置可以定义两个短滤波器
一条接收的信息要和两个滤波器比较来决定是否放入接 收缓冲器中。 收缓冲器中。
至少有一个滤波器发出接受信号,接收的信息才有效。 至少有一个滤波器发出接受信号,接收的信息才有效。
现场总线技术
标准帧
如果接收的是标准帧信息,被定义的两个滤波器是不一样的。
第一个滤波器比较包括RTR位的整个标准识别码和信息的第 位的整个标准识别码和信息的第 第一个滤波器比较包括 一个数据字节。 一个数据字节。
第二个滤波器只比较包括RTR位的整个标准识别码。 位的整个标准识别码。 第二个滤波器只比较包括 位的整个标准识别码
现场总线技术
图2.17
现场总线技术
标准格式双滤波逻辑图表示
0x XX XX XX XX
ACR: 0X00 00 00 00 AMR: 0Xff ff ff ff
ACR: 0Xff ff ff ff AMR: 0X00 ff ff ff
0x
11 0 1 001 0
ACR: 0X 1101 0010 AMR: 0X 0000 0000
现场总线技术
•函数 函数
If ( (信息位1 = = 验收代码位1) || 验收屏蔽位1 )&&…)
现场总线技术
为了和将来的产品兼容, 的和ACR3的低两位是不 为了和将来的产品兼容,AMR3的和 的和 的低两位是不 用的,这些位可以通过设置AMR3.1、AMR3.0而定义为 用的,这些位可以通过设置 、 而定义为 不影响” “不影响”
滤波器2
现场总线技术
2.8有关 有关CAN总线通信错误及其处理 有关 总线通信错误及其处理
2.8.1CAN总线的通信错误成因及其状态描述 总线的通信错误成因及其状态描述 在CAN总线中存在5种错误类型,它们并不排斥。
(1)位错误,向总线送出一位的某个节点同时也在监视 总线,当监视到总线位数值与送出的位数值不同时,则在 该位时刻检测到一个位错误。
&
滤波器1 验收屏蔽位 验收代码位 信息位 验收屏蔽位 验收代码位
≥1 ≥1 =1 ≥1 =1 ≥1 &
Logic = 1表示接受 Logic = 0不接受
பைடு நூலகம்
滤波器2
现场总线技术
为了成功接收信息, 为了成功接收信息,所有单个位的比较时应至少有一个 滤波器表示接受。 滤波器表示接受。 RTR位置位或数据长度代码是0时表示没有数据字节存在。 无论怎样,只要从开始到RTR位的部分都被表示接收,信 息就可以通过滤波器1。
2.7 CAN的报文滤波技术
CAN的多种数据发送和接收方式:点对点、一点对多点 及全局广播。
通过报文滤波技术: 通过报文滤波技术:
只有当接收信息中的识别位和验收滤波器预定义的值相 等时,CAN控制器器才允许将已接收信息存入RXFIFIO。
现场总线技术
验收滤波器由验收代码寄存器(ACRn)和验收屏蔽寄 存器(AMRn)定义。 模式寄存器中可选择两种不同的过滤模式: (1)单滤波模式 (2)双滤波模式
现场总线技术
图2.15
现场总线技术
标准格式逻辑图表示
信息位 验收代码位 验收屏蔽位
=1 ≥1 &
Logic = 1表示接受 Logic = 0不接受
If ( (信息位1 = = 验收代码位1) || 验收屏蔽位1 )&&…)
现场总线技术
If ( (信息位n = = 验收代码位n) || 验收屏蔽位n )&&…)
现场总线技术
2.8.2 错误检测及其处理
检测到出错条件的站通过发送错误标志进行标定。 当任何站检出位错误、填充错误、形式错误或应 答错误时,由该站在下一位开始发送出错标志。 当检测到CRC错误时,出错标志在应答界定符后面 那一位开始发送,除非其他出错条件的错误标志已 经开始发送。
现场总线技术
CAN总线中,任何一个单元可能处于下列3种故障状态之一: 总线中,任何一个单元可能处于下列 种故障状态之一 种故障状态之一: 总线中
错误认可节点可参与总线通信,但是不允许它送出活动错 误标志,当它检测到错误时,只能送出认可错误标志,并且 发送后仍为错误认可状态。
现场总线技术
总线关闭状态
当发送错误计数器大于或等于255时,节点进入总线关闭状态。 总线关闭状态不允许单元对总线有任何影响。 除非复位。
当错误计数器值大于96时 说明总线被严重干扰。 当错误计数器值大于 时,说明总线被严重干扰。
现场总线技术
错误激活状态: 错误激活状态:
• 发送错误计数器和接收错误计数器均 小于或等于127 小于或等于127
现场总线技术
错误认可状态( 错误认可状态(Error Passive) )
当发送错误计数器等于或大于128,或者接收错误计数器 当发送错误计数器等于或大于 , 等于或大于128时,节点进入错误认可状态。 等于或大于 时 节点进入错误认可状态。
现场总线技术
扩展帧:如果接收的信息是扩展帧格式,包括 扩展帧:如果接收的信息是扩展帧格式,包括RTR位的 位的 全部识别码将被接收过滤使用。 全部识别码将被接收过滤使用。
•
现场总线技术
图2.16
扩展格式逻辑图表示
信息位 验收代码位 验收屏蔽位
=1 ≥1 &
Logic = 1表示接受 Logic = 0不接受
现场总线技术
•流程代码
现场总线技术
注意:
AMR2,AMR3数据位也比较,可通过AMR设置0X_ _FF
为了和将来的产品兼容,AMR1和ACR1的低四位是不用 的。这些位可以通过设置AMR1.3、AMR1.2、 AMR1.1和 AMR1.0为1而定为“不影响”。
现场总线技术
为了和将来的产品兼容, 为了和将来的产品兼容,AMR1和ACR1的低四位是不用 和 的低四位是不用 这些位可以通过设置AMR1.3、AMR1.2、AMR1.4 的,这些位可以通过设置 、 、 而定义为“ 和AMR1.0为1而定义为“不影响” 为 而定义为 不影响”
现场总线技术
故障状态图解
错误激活
REC<127或 TEC<127 REC>127或 TEC>127 出现128个连 续的隐性位
错误认可
TEC>255
总线关闭
现场总线技术