了解CAN总线的人都知道,CAN总线在的帧数据在总线上传送时,其它的CAN控制器是通过验收滤波来决定总线上的数据帧的ID是否和本节点相吻合,如果与本节点吻合,那么总线上的数据就被存入总线控制器的相应寄存器里,否则就抛弃该数据,从而也能够减轻总线控制器的工作量。换句话说,总线上数据帧的ID通过待接收节点的验收滤波后是吻合的,是可以被接收的。
本文引用地址:http://www.eepw.com.cn/article/267958.htm
那么,总线控制器是如何进行验收滤波的呢?验收滤波分单滤波和双滤波。标准帧和扩展帧由于ID长度不同,它们的两种滤波也有所区别。这里我只重点举一个例子,因为只要理解了一种滤波方式,其它的滤波方式都是类似的,也很容易就理解了。
这里就说扩展帧的双滤波方式。所谓双滤波,就是有两次的滤波,但并非两次滤波都需要通过才双通过,两次滤波只要有一次滤波成功那么就默认滤波通过,可以接收数据了。
如上表所示,ACR寄存器是接收代码寄存器,AMR是接收屏蔽寄存器。ACR一般是需要与对应的ID相吻合的,但是如果AMR的相应位上设置为1的时候,ID的那一位数据可以不和AMR的相应位一样,也就是起到屏蔽的作用。
举个例子。如果ACR0=11101111,AMR0=00000000,那么要想通过验收滤波,必须ID.28-ID.21=ACR0=11101111。如果AMR0=00010000,那么ID.28-ID.21=11111111时,也可以通过验收滤波,因为此时AMR0的第五位为1,也就是屏蔽了ACR0的第五位。所以ID的相应位可以不合ACR0一致。
在扩展帧的双滤波方式下,ACR0ACR1分别对应ID.28-ID.13 ,ACR2ACR3分别也对应ID.28-ID.13,这就达到了两次滤波的效果。
另外要说明的一点是:通过验收滤波后符合节点要求的数据就存储到节点的相应寄存器里,其它的帧信息并不做存储。
关键字:CAN总线 学习笔记 验收滤波
引用地址:
CAN总线学习笔记三:验收滤波
推荐阅读最新更新时间:2024-05-02 23:44
在LPC2131微控制器外部实现CAN总线通信设计
Philips公司的LPC213l是基于ARM7TDMI-S的高性能32位RISC微控制器。它具有ARM处理器的所有优点——低功耗、高性能和较为丰富的片上资源,但LPC2131内部没有集成CAN控制器,而无法利用CAN总线来进行通信。为了使得LPC2131能够利用CAN总线进行通信,可以通过外部扩展来实现其功能。目前,比较普通的方法是在LPC2131的外部采用CAN控制器设计CAN总线接口。LPC2131与CAN控制器的接口电路如图1所示。 这种方法中,LPC2131是通过GPIO口与CAN控制器SJA1000相连实现数据交互的。LPC2131通过寄存器IOSET/IOCLR来设定I/O口的高/低状态,虽然可以同时置位/拉低
[单片机]
CAN总线在汽车领域的应用
CAN总线是国际上应用较为广泛的现场总线之一,可实现对车辆本身的控制。对于汽车工业而言,它的实时性、灵活性、可靠性以及低成本,有着较大的市场空间。如发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN总线控制装置。 1 CAN总线的发展 在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发出来。由于这些系统之间通信所用的数据类型及对可靠性要求不尽相同,且因多条总线构成的情况复杂、线束数量增加。原以为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986年德国电气商博世公司开发出面向汽车的CAN通信协议。此后,CAN通过IS01
[嵌入式]
SPI通信协议—STM32f1学习笔记
SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,分别为: 1.MISO,主机数据输入从机数据输出线(“M”表示主机master,“I”表示输入in,“S”表示从机slaver,“O”表示输出out。) 2.MOSI,主机数据输出从机数据输入(同上,顺序不同而已) 3.CS,片选信号,该引脚为高的为主机,引脚低的为从机。单片机以此判断主从机。 4.SCLK。时钟线,由主机提供时钟。 主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。 SPI工作原理: 主机和从机都有一个串行移位寄存器,主机通过想它的SPI串行寄存器写入一个字节来发起一次传输。 主
[单片机]
突破汽车联网传统应用,医疗、能源将成为CAN总线技术新领地
CAN总线刚出现的时候,是作为轿车内的控制器连网手段。在非营利组织CiA (CAN in Automation)的推动下,CAN正在向更多的应用领域渗透。 虽然汽车仍将是CAN技术的自留地,但支持者预期许多新的领域可能应用这种“嵌入网络”。正如CiA总经理Holger Zeltwanger所言,一旦CANopen协议完成标准化,厂商就可以利用该标准“把它们的应用与产品扩散到全新的市场”。有些人把CAN技术称为“嵌入网络”。 在纪念成立15周年的活动期间,CiA在慕尼黑召开的一个记者会上介绍了标准化的进展情况,以及CAN阵营的变化。虽然CiA会员数量在过去三四年里一直停滞在400个左右,但2007年其会员急剧增加。“在过去几年里
[焦点新闻]
基于CAN总线的开关磁阻电机远程控制系统的研究
0 引 言
由于应用环境的复杂,地域的广阔等不利工作条件,给开关磁阻电机的调速控制与相关参数监控带来了很多影响。因此,设计研制一种基于开关磁阻电机的远程控制系统(SRD)具有十分重要的现实意义。
Controller Area 总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。本文主要探讨基于RS-485与CAN总线的开关磁阻电机远程监控系统的构成。SRD调速系统通常采用传统PID控制策略,系统很难保守良好性能。目前,神经网络控制与模糊控制技术应用于SRD取得了一定的成绩。
卡尔曼滤算法是一种递推算法,对于系统存在过程及测量噪声,状态变量受到污染,可以利用卡尔曼滤波技术进行处理。
[嵌入式]
STM8学习笔记---NTC热敏电阻的使用
温度采集是产品开发过程中必不可少的,读取温度的方法有很多种,有专用温度采集芯片,温度传感器,热敏电阻等,各种方法来获取温度。今天总结一下使用热敏电阻来采集温度。 先看看热敏电阻的概念 也就是将温度变化转换为电阻阻值变化,通过通过阻值大小就能间接地判断到当前温度值。而读取电阻值实际应用中是很不方便的。如果将电阻值转换为电压值,然后通过单片机AD采样功能,读取电压值。这样相当于间接的读取到了温度值。 下面总结一下用STM8单片机,通过NTC热敏电阻读取温度值得方法。 首先看看热敏电阻的样子 选用的是5K阻值的NTC热敏电阻,它的阻值和温度对照表如下: 通过一个固定电阻和NTC热敏电阻串联分压,然后将
[单片机]
基于DTMF和CAN总线的家居安防系统设计方案
摘要: 介绍了一种以AT89S52单片机为控制核心, 通过DTMF公用电话网和CAN 总线传递的多节点家居安防系统设计方案。本智能家居安防系统集防火、防盗、防燃气为一体, 可实现自动检测与自动语音拨号报警。详细介绍了DTMF收发电路、通话电路和CAN 总线传输等电路。实验结果表明, 本系统功能实用, 信息传递实时可靠,适用于家居安防或其他场所的安防系统。 1 引言 现在,人们对工作和生活环境不仅要求舒适健康、可靠便利, 而且更加看重安全性,并利用安防系统来提高家庭抵御各种意外情况的能力。现在的安防系统可借助计算机技术、IC 卡技术、通信技术等来实现,CAN总线应用于安防系统对家居智能化发展起到了良好的促进作用。CAN
[安防电子]
STM32入门学习笔记之EEPROM存储实验5
(2)创建at24cxx.c文件并输入以下代码。 /********************************************************************************************************* EEPROM 驱 动 程 序 *********************************************************************************************************/ #include at24cxx.h #include delay.h /************
[单片机]