CAN总线验收滤波解读ppt课件.ppt

上传人:牧羊曲112 文档编号:2004003 上传时间:2022-12-30 格式:PPT 页数:18 大小:2.66MB
返回 下载 相关 举报
CAN总线验收滤波解读ppt课件.ppt_第1页
第1页 / 共18页
CAN总线验收滤波解读ppt课件.ppt_第2页
第2页 / 共18页
CAN总线验收滤波解读ppt课件.ppt_第3页
第3页 / 共18页
CAN总线验收滤波解读ppt课件.ppt_第4页
第4页 / 共18页
CAN总线验收滤波解读ppt课件.ppt_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《CAN总线验收滤波解读ppt课件.ppt》由会员分享,可在线阅读,更多相关《CAN总线验收滤波解读ppt课件.ppt(18页珍藏版)》请在三一办公上搜索。

1、第3章 CAN控制器驱动,SJA1000中断,SJA1000硬件连接测试,SJA1000初始化,SJA1000接收CAN帧,第3章:CAN控制器驱动,SJA1000编程基础,SJA1000发送CAN帧,SJA1000验收滤波器,虚拟CAN驱动,验收滤波的作用,SJA1000验收滤波器原理,SJA1000延时滤波器设置函数,测试例程,3.6 SJA1000验收滤波器,生存者-消费者模型,01010101,01010101,01010101,01010101,01010101,01010101,01010101,生产者,消费者,发送CAN帧的节点,其发送的数据被网络中的所有消费者接收。,接收CAN

2、帧的节点,接收总线上的所有CAN帧。,CAN节点不需要接收并处理所有的CAN报文帧。则CAN控制器可以通过滤波器来过滤不需要接收的CAN报文帧。,生产者,消费者,验收滤波作用,-将验收通过的帧放入接收FIFO,过滤不需要处理的CAN帧,降低节点主控制器的处理负载。,SJA1000,CAN内核,验收滤波器,接收FIFO,接口管理逻辑,发送缓冲区,收发器,TX,RX,CAN-H,CAN-L,-丢弃验收不通过的帧,验收滤波的作用,SJA1000验收滤波器原理,SJA1000延时滤波器设置函数,测试例程,3.6 SJA1000验收滤波器,单滤波原理,SJA1000通过对帧ID和数据字节逐位比较,将符合

3、要求的报文存入RXFIFO。,ACR验收代码位,AMR验收屏蔽位,ACR,| AMR,信息位,输出逻辑 =,输出逻辑,信息位,& 其它位的比较结果,验收通过标准:输出逻辑为1的帧验收通过,被存入接收FIFO,单滤波原理真值表,ACR验收代码位,AMR验收屏蔽位,输出逻辑,信息位,0,0,其它位比较结果有一个为0,则验收不通过,0,其它位比较结果都为1,屏蔽位为0,信息位与验收代码位不同,则验收不通过,其它位比较结果都为1,屏蔽位为0,信息位与验收代码位形同,则验收通过,其它位比较结果都为1,屏蔽位为1,则验收通过,假设:验收代码寄存器ACR0ACR3分别为0 x21,0 x00,0 x05,0

4、 x24;验收屏蔽代码寄存器AMR0AMR3分别为0 x00,0 x00,0 x00,0 x03。,ACR3=0X03,AMR2=0X00,AMR1=0X00,AMR0=0X00,ACR2=0X24,ACR2=0X05,ACR1=0X00,ACR0=0X21,AMR0AMR3,ACR0ACR3,单滤波标准帧比较规则,结论:帧ID= 0 x108 , RTR = 0 , DATA1= 0 x05 , DATA2= 0 x240 x27的标准帧能被验收通过 。,要求:对标准帧,在单滤波模式下比较帧ID、RTR位和前两个数据字节。,接收到CAN 数据:,AMR位为1的位对应信息为不做比较,AMR为0

5、的位对应的信息位与验收代码位相同才能验收通过。,ACR1=0X00,ACR3=0X03,AMR2=0X00,AMR1=0X00,AMR0=0X00,ACR2=0X24,ACR2=0X05,ACR0=0X21,AMR0AMR3,ACR0ACR3,单滤波扩展帧比较规则,要求:对于扩展帧,单滤波模式下比较帧ID和RTR位。,接收到CAN 数据:,AMR位为1的位对应信息为不做比较,AMR为0的位对应的信息位与验收代码位相同才能验收通过。,假设:验收代码寄存器ACR0ACR3分别为0 x21,0 x00,0 x05,0 x24;验收屏蔽代码寄存器AMR0AMR3分别为0 x00,0 x00,0 x00

6、,0 x03。,结论:帧ID= 0 x42002A4, RTR = 1 远程帧能被验收通过。,双滤波原理,双滤波器定义了两组比较规则,每组规则的判断方式与单滤波器模式相同。,相或,结论:其中一个滤波器比较通过,就能接收该帧。,双滤波标准帧比较规则,ID.28 ID.18 = 0 x052的数据帧验收通过。,要求:对标准帧。滤波器2比较帧ID.28ID.18和RTR位;滤波器1比较ID.28ID.18、第一个字节和RTR位。,假设:验收代码寄存器ACR0ACR3分别为0 x21,0 x10,0 x05,0 x24,屏蔽代码寄存器AMR0AMR3分别为0 x00,0 x00,0 x00,0 x00

7、。,ID.28ID.18 = 0X211,且第一个字节=0 x04的数据帧验收通过。,bit74,bit30,接收到的CAN 数据,接收到的CAN 数据,双滤波扩展帧比较规则,ID.28 ID.13 = 0 x2110的帧能被验收通过。,要求:对扩展帧,两个滤波器都是比较帧的ID.28ID.13。,假设:验收代码寄存器ACR0ACR3分别为0 x21,0 x10,0 x05,0 x24,屏蔽代码寄存器AMR0AMR3分别为0 x00,0 x00,0 x00,0 x00。,ID.28ID.18 = 0X0524的数据帧验收通过。,接收到的CAN 数据,接收到的CAN 数据,验收滤波的作用,SJA

8、1000验收滤波器原理,SJA1000延时滤波器设置函数,测试例程,3.6 SJA1000验收滤波器,SJA1000验收滤波设置函数,void SJA1000_Config_Filter (char mode,char *Filter) SetBitMask(REG_CAN_MOD,RM_AFM_BIT); if (mode 0) SetBitMask(REG_CAN_MOD,AFM_BIT); else ClearBitMask(REG_CAN_MOD,AFM_BIT); WriteSJARegBlock(REG_CAN_ACR0,Filter,8); ClearBitMask(REG_CA

9、N_MOD,RM_AFM_BIT); ,/ 进入复位模式,/ 双滤波模式,/ 单滤波模式,/ 配置验收代码,/ 退出复位模式,验收滤波的作用,SJA1000验收滤波器原理,SJA1000延时滤波器设置函数,测试例程,3.6 SJA1000验收滤波器,测试例程,void main ( ) P72 timerInit(); SJA1000_RST = 1; timerDelay(50); SJA1000_Init(0 x00,0 x14,SJA_CAN_Filter); / 初始化SJA100 SJA1000_Config_Filter(0,SJA_CAN_Filer); for (;) if (SJARcvData(STD_SEND_BUFFER,0 x00) D1 = !D1; / D1取反 ,测试方法:-设置CAN接收滤波器:ACR0ACR3分别为0 x21,0 x10,0 x05,0 x24,AMR0AMR3分别为0 x00,0 x00,0 x00,0 x03,-当接收到报文时LED灯D1闪烁,验收滤波的作用,SJA1000验收滤波器原理,SJA1000延时滤波器设置函数,测试例程,小结,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号