摘要:CAN(Controller Area Network)总线是一种用于车辆电子设备之间通信的标准协议。CAN过滤器是用来过滤CAN总线上收到的消息,从而确保只处理特定的数据帧。在CAN通信中,过滤器的配置对于性能和消息处理的准确性非常重要。
什么是CAN总线?
CAN(Controller Area Network)总线是一种用于车辆电子设备之间通信的标准协议。CAN过滤器是用来过滤CAN总线上收到的消息,从而确保只处理特定的数据帧。在CAN通信中,过滤器的配置对于性能和消息处理的准确性非常重要。
什么是CAN过滤器单过滤模式?
在使用ECAN-E02的单过滤模式前,我们需要知道CAN过滤器的单过滤模式(Single Filter Mode)指的是过滤器只设置一个过滤条件。这种模式下,CAN控制器会基于该单一条件来筛选接收到的CAN消息。符合过滤条件的消息将被接收并传递给上层应用处理,而不符合条件的消息则被丢弃。
主要特点:
• 简单易用:单过滤模式通常比较简单,适用于只关心某一类消息的场景。
• 过滤规则简单:只有一个过滤规则,用来匹配特定的标识符(ID),这对于应用程序来说可以减少复杂性。
• 性能适中:因为只有一个过滤条件,所以单过滤模式通常不会对系统性能产生过大的负担,适合低延迟要求的应用。
ECAN-E02的单过滤器模式
首先观察ECAN-E02的单过滤器模式UI界面:
• CodeHigh 代表的为16-31位的数,CodeLow 代表的为0-15位的数。
• 同理,MaskHigh 代表的为16-31位的数,MaskLow 代表的为0-15位的数。
• ECAN-E02的过滤界面,可以通过直接点击Code,Mask进行数据的配置,1其中,对于ST这一行,RTR代表的是远程帧,ID00-ID10代表的是标准帧ID的11位,DB1[0-7]代表的是数据帧第一个字节的8位,DB2[0-7]代表的则是数据帧第二个字节的8位(由高到低,从左到右,其中“XX”代表无需设置)。
• 对于ET这一行,RTR代表的是远程帧,ID00-ID28代表的是扩展帧ID的29位(“XX”代表无需设置)。
了解了基本的配置后,我们结合测试设置进行分析。
我们要实现效果“使用网页配置为单过滤模式CodeHigh (Hex)配置为0x0020,CodeLow (Hex)配置为0x0008,MaskHigh (Hex)配置为0xFFCF,MaskLow (Hex)配置为0xFFF3,保存参数,重启设备;使用网络调试助手连接设备通道1服务器,使用CAN分析仪连接通道1CAN接口,网络调试助手仅会收到ID为奇数并且第二个数据的第四位为高的标准数据帧(例如数据位为00 08 00 00 00 00 00 00可以被接收)与ID为奇数并且ID第十七位为0第十八位为1的扩展数据帧(例如ID50001可以接收)”。先设置好Code与Mask的值后,进行下一步;
首先观察可以过滤的标准数据帧,观察ST Code Mask这三行,可以发现,帧ID该位可以为1,因此在该位上任何数加一均为奇数,所以只能收到帧ID为奇数的标准帧,接下来再观察数据DB部分;
此时ST DB2[3]对应的Code为1,Mask为0,代表该位必须为高位,Mask判断该位必须为Code值。
所以能接收ID为奇数并且第二个数据的第四位为高的标准数据帧(例如数据位为00 08 00 00 00 00 00 00可以被接收)。
现在观察可以过滤的扩展数据帧格式,观察ET Code Mask三行ID00-ID28分别代表29位的扩展帧ID格式,RTR代表的是远程帧,“XX”代表不用配置。观察格式,首先,ID00位必须满足,该位必须为1,其次,观察到17位,18位对应的Mask,也必须满足第17位为0,第18位为高位的格式,所以ID为奇数并且ID第十七位为0第十八位为1的扩展数据帧(例如ID50001可以接收)。
>>>CAN-Bus转以太网模组
ECAN-E02是亿佰特开发的一款高性能工业级以太网与CAN-Bus的数据转换设备,CAN转换器模组内部集成了1路CAN-Bus接口、1路EtherNet接口,支持TCP/UDP协议,可以轻松完成CAN-Bus网络和以太网网络的互通。该CAN转换器模组支持在-40℃~85℃的温度范围内工作。CAN转换器具有一路10M/100M以太网接口,CAN接口高防护,增加隔离;1路CAN口通信最高波特率为1Mbps,具有TCP Server、TCP Client、UDP等多种工作模式,可通过上位机配置软件配置参数。
来源:亿佰特物联网应用