0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CAN通信中的“过滤”是怎样实现的?

ZLG致远电子 2023-12-27 08:24 次阅读

一个CAN节点接入总线后,滤波不使能的情况下,总线上所有CAN数据帧都能被接收。若仅需接收一个固定范围ID的数据帧,可以通过配置屏蔽码和验收码,从而对数据帧进行过滤处理。数据帧在CAN总线上传输时,CAN节点通过验收滤波器来对比总线上的数据帧的ID与本节点的ID是否一致,若ID一致,CAN控制器才允许将已接收信息存入对应的寄存器中;ID不一致,该数据帧会被丢弃以此减轻CAN控制器的工作量。验收滤波器是由验收代码寄存器(ACR)和验收屏蔽寄存器(AMR)共同组成。用户通过配置验收屏蔽寄存器和验收代码寄存器,进而得出对应的屏蔽码和验收码对CAN数据帧进行过滤处理。本文以SJA1000为例进行说明,其滤波方式分为单滤波和双滤波两种。由模式寄存器AFM位控制,AFM=1时为单滤波;AFM=0时为双滤波。

5872c118-a44e-11ee-9ee2-92fbcf53809c.jpg  双滤波双滤波模式下,定义了两个验收滤波器,接收的数据帧只要通过其中一个验收滤波器,就被认定为有效帧,即能被正常接收并存入寄存器中。ACR0、ACR1和AMR0、AMR1组成第一个验收滤波器,ACR2、ACR3和AMR2、AMR3组成第二个验收滤波器。以接收CAN拓展帧为例,该数据帧的ID段的前两个字节,即29位ID中的高16位参与滤波。ACR0和ACR1控制ID位为No.13-No.28,ACR2和ACR3也控制ID位为No.13-No.28,如表1所示。这意味着该CAN拓展帧ID位No.13-No.28这16位要与这两组验收代码中的其中一组一致才能被该节点正常接收并存入接收缓存区;否则该数据帧会被丢弃,这样达到了两次滤波的效果。表1 AMR、ACR和控制ID位对应表5876675a-a44e-11ee-9ee2-92fbcf53809c.png5885e234-a44e-11ee-9ee2-92fbcf53809c.jpg  单滤波

单滤波模式下,所有AMR为“0”的位所对应的ACR位和参与单滤波数据对应的位需要一致才能被认定为验收滤波通过,如表2所示。接收CAN标准帧时,11位ID、RTR位和DATA段前16位都参与滤波;接收CAN拓展帧时,29位ID和RTR位参与滤波,如图1所示。表2AMR、ACR和滤波ID对应表588c150a-a44e-11ee-9ee2-92fbcf53809c.png58998a00-a44e-11ee-9ee2-92fbcf53809c.jpg

图1CAN标准帧和CAN拓展帧的帧格式示意图


5885e234-a44e-11ee-9ee2-92fbcf53809c.jpg  CSM330A

我司的隔离SPI/UART转CAN芯片CSM330A并未采用单滤波或者双滤波的方式进行接收滤波。CSM330A的验收滤波器是由1个验收屏蔽寄存器和6个验收代码寄存器组成,用户可以通过配置一组屏蔽码“管理”6组验收码。当屏蔽码某位值为 1 时,则该位对应的验收码会被“使能”,被“使能”的“验收码”和产品要接收的 CAN 帧的“帧 ID”相同,该 CAN 帧才会被接收到接收缓冲区。当“屏蔽码”的位值为0时,验收码不起作用,相应位的帧标识为任何值都可被接收,如表3所示。

表3滤波、屏蔽码真值表

58adec2a-a44e-11ee-9ee2-92fbcf53809c.png
5885e234-a44e-11ee-9ee2-92fbcf53809c.jpg  产品应用

CSM330A适用于工业通讯、电池检测充电桩、轨道交通、楼宇自动化等领域。CSM330A协议转换芯片应用在智能汽车司机行为监测的应用方案,如图2所示。ZLG面向DMS行业客户主要提供主控、供电、通讯防护等的模块化方案。主控方面为Cortex-A35 M1808 AI核心板,搭载自研图像传感技术搭配出车载行为检测系统解决方案。可实现驾驶员身份识别,对司机异常操作发出警报和提醒等功能。58b5a03c-a44e-11ee-9ee2-92fbcf53809c.jpg图2司机行为检测应用方案

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117731
  • CAN
    CAN
    +关注

    关注

    56

    文章

    2467

    浏览量

    459248
  • 通信
    +关注

    关注

    18

    文章

    5706

    浏览量

    134396
收藏 人收藏

    评论

    相关推荐

    请问如何在CAN通信中的每个CAN消息对象中添加过滤器?

    如何在CAN通信中的每个CAN消息对象中添加过滤器?
    发表于 01-18 07:59

    请问如何在CAN通信中接收RTR请求?

    如何在 CAN 通信中接收 RTR 请求?
    发表于 01-18 07:40

    在STM32的CAN收发通信中,接收超时为什么不能发出一个报文的功能?

    在STM32的CAN收发通信中,当接收超时(即在限定的时间内仍然没有接收到数据),发出一个报文的功能,查询pending的返回值,为什么不能实现这个功能?超时没有接收也没能发出。 void
    发表于 03-29 07:11

    怎么实现can消息的过滤过程

    。 我怎么能实现can消息的过滤过程。我也做了网络搜索和阅读许多其他教程,但我仍然无法弄清楚要做什么。有使用CAN过滤器Id和
    发表于 10-30 17:53

    CAN通信使用标识符过滤实现固定节点的数据收发

    刚开始接触CAN通信,测试过收发后,还需要使用标识符过滤实现固定节点的数据收发。记录一下“屏蔽位模式”下滤波参数的设置。发送代码如下://can
    发表于 08-19 07:33

    在CubeMX上实现STM32的CAN通信

    CubeMX STM32实现CAN通信——数据收发CAN通信CAN协议CubeMX设置代码部分
    发表于 08-20 06:32

    CAN通信过滤器配置的理解

    总结一些最近做项目对CAN通信过滤器配置的理解;这里我使用STM32F105系列的芯片,有2路CAN,我使用的是CAN2,
    发表于 08-20 07:14

    在串口中断通信中怎样去添加printf重定向功能呢

    在串口中断通信中怎样去添加printf重定向功能呢?
    发表于 12-02 08:06

    PIC16F87X在CAN通信中的应用

    本内容详细介绍了PIC16F87X在CAN通信中的应用 TxBytes equ 0x20 ;SPI发送数据寄存器 TxBase equ 0x2e TxReg equ 0x2f RxBytes equ
    发表于 05-24 17:35 72次下载

    CAN总线在多机通信中的应用

    设计了多个CAN总线的通信节点,通过PCI9810-CAN适配卡上的CAN总线,组成一个局域通信网络,
    发表于 10-19 14:57 67次下载
    <b class='flag-5'>CAN</b>总线在多机<b class='flag-5'>通信中</b>的应用

    CubeMX STM32实现CAN通信——回环测试数据收发

    CubeMX STM32实现CAN通信——数据收发CAN通信CAN协议CubeMX设置代码部分
    发表于 12-04 18:36 13次下载
    CubeMX STM32<b class='flag-5'>实现</b><b class='flag-5'>CAN</b><b class='flag-5'>通信</b>——回环测试数据收发

    PCI接口在CAN通信中有何作用?

    。在CAN(Controller Area Network)通信中,PCI接口扮演着重要的角色,它连接CAN控制器和计算机主板,使得主板能够便捷地与CAN总线
    的头像 发表于 09-14 17:52 757次阅读

    CAN通信波特率不对会怎样

    CAN通信波特率不对会怎样?  CAN通信是一种流行的通信协议,它广泛应用于许多现代车辆的系统中
    的头像 发表于 10-11 17:19 1279次阅读

    Coral3568如何软硬件过滤can帧及优化?

    CAN总线调试时,根据数据的重要性,接收端可以专注于接收重要消息,提高效率。CAN报文帧是用一个标识符或一系列标识符来过滤的。可以使用CAN总线软件和芯片硬件
    的头像 发表于 12-08 15:52 221次阅读
    Coral3568如何软硬件<b class='flag-5'>过滤</b><b class='flag-5'>can</b>帧及优化?

    CAN通信中帧格式的作用

    汽车系统,特别是在控制器区域网络(CAN通信中,不同的帧格式在促进可靠和高效的数据传输方面发挥着独特的作用。
    的头像 发表于 01-09 11:07 275次阅读