飞思卡尔MC9S12XEP100 CAN学习总结(三) 滤波器配置

发布者:WhisperingWinds最新更新时间:2021-04-02 来源: eefocus关键字:飞思卡尔  MC9S12XEP100  CAN  滤波器配置 手机看文章 扫描二维码
随时随地手机看文章

标准帧和扩展帧

标准帧格式:具有11位标识符;

扩展帧格式:具有29位标识符;

两种帧格式可以出现在同一总线上。

在这里插入图片描述

标准帧

CAN 标准帧的ID结构

在这里插入图片描述

标准帧发送相关代码

msg.id = 0x5C;

CAN0TXIDR0 = (unsigned char)(msg.id>>3);

CAN0TXIDR1 = (unsigned char)(msg.id<<5);


标准帧接收相关代码

msg->id = (unsigned int)(CAN0RXIDR0<<3) | (unsigned char)(CAN0RXIDR1>>5);


后续补充


扩展帧

CAN 扩展帧的ID结构

在这里插入图片描述

在我们给的ID里没包含SRR与IDE与RTT,比如扩展帧ID:0x10F81099,展开为:


0001 0000 1111 1000 0001 0000 1001 1001,这个ID里的标准帧11位于扩展后的18位直接相连的,我们需要把SRR与IDE和RTR加进去就是我们滤波的CANIDAR寄存器的值;


具体方法为,从第19位开始向左移3位,空出SRR和IDE;低18位向左移一位,空出RTR


1 0000 1111 10 xx 00 0001 0000 1001 1001 x


绿色的’x’为移动后空出的位


整理下为:1000 0111 110x x000 0010 0001 0011 001x


空出的位,根据帧类型填就行,也可随便填,我们CANIDMR的值,在该位取1,不关心该为就好了;


例如我们需要过滤出扩展帧0x10F81099;


则根据上面的,得出AR值为: 1000 0111 110x x000 0010 0001 0011 001x,把x取1,则为


1000 0111 1101 1000 0010 0001 0011 0011 即AR寄存器值为 0x87D82133 ,那么MR值只把SRR,IDE,RTR位取1


0000 0000 0001 1000 0000 0000 0000 0001 即MR寄存器值为 0x00180001 ,这样就能过滤出扩展帧ID0xF81099

转载于:https://blog.csdn.net/youmeichifan/article/details/80346990


扩展帧发送相关代码

msg.id = 0x10F81099

CAN0TXIDR0 = (unsigned char)(msg.id>>21);

CAN0TXIDR1 = (((unsigned char)(msg.id>>13))&0xe0)|0x18|(((unsigned char)(msg.id>>15))&0x07);

CAN0TXIDR2 = (unsigned char)(msg.id>>7);

CAN0TXIDR3 = ((unsigned char)(msg.id<<1));


扩展帧接收相关代码

msg->id = (((unsigned long)CAN0RXIDR0)<<21)|((unsigned long)(CAN0RXIDR1&0xe0)<<13)|

((unsigned long)(CAN0RXIDR1&0x07)<<15)|(((unsigned long)CAN0RXIDR2)<<7)|

((unsigned long)(CAN0RXIDR3&0xfe)>>1);


关键字:飞思卡尔  MC9S12XEP100  CAN  滤波器配置 引用地址:飞思卡尔MC9S12XEP100 CAN学习总结(三) 滤波器配置

上一篇:飞思卡尔MC9S12XEP100 CAN学习总结(一) 概述
下一篇:飞思卡尔MC9S12XEP100 CAN学习总结(二) 波特率配置

推荐阅读最新更新时间:2024-11-17 17:33

飞思卡尔 MC9S12】内部Flash读写
上一篇讲到PRM文件与内存映射,其中有个重要寄存器叫做GPAGE,可以全局访问所有地址范围,Flash操作也是基于这个地址。 在讲述Flash读写之前,有一个重要概念要普及,就是Flash操作代码不能存储在被操作的Flash物理块中,例如我要擦除一个Flash中某一个扇区内容,这个擦除动作的代码不能存在这个Flash物理块中(Flash中代码运行时,相当于读操作,此时不能擦写)。 那我们如何擦写Flash呢? 很简单,只有一个解决方案,就是将Flash操作代码存储到RAM中。不过,就我们以往的理解,函数都是存储在Flash中的,如何存储到RAM中呢? 由这个解决方案引申出好几个子解决方案。 一、通过在PRM文件
[单片机]
飞思卡尔初学之PWM调试笔记
M9S12XS128单片机 有8个独立的PWM输出通道,其中每相邻的两个可以级联成一个通道。 本文着重应用实践,理论性的东西少谈为妙,因为理论的东西资料上都有。想借此平台记录下调试心得以免日后遗忘,因本人也是初学该款单片机,难免有错误之处,还希望达人指点。 PWM应用步骤: 一、PLL初始化,这一步应该说不算PWM设置的内容,但是又必须设置,因为这关系着PWM周期值的计算。 从开发板上的晶振来看是16M,但是总线时钟却并不是16M,S12单片机里面有个锁相环设置,要设置好了才准确。具体这个PLL函数我还没去了解。现在是现成套用。 void PLL_Init(void) //PLLCLK=2*OSCCLK*(SYNR+1)/(R
[单片机]
CAN总线抗干扰的6条“军规”
 随着CAN总线在电动汽车、充电桩、电力电子、轨道交通等电磁环境比较恶劣的场合应用越来越多,信号干扰的问题已经严重影响到使用者对CAN总线的信任。究竟如何才能抗干扰?本文展示了致远电子CAN总线抗干扰的6条“军规”。下面就随网络通信小编一起来了解一下相关内容吧。 在汽油车时代,CAN总线遇到的干扰少之又少,即使有一些继电器和电磁阀的脉冲,也不会有很大影响,稍微进行双绞处理,完全可以实现零错误帧。 可是到了电动汽车年代,逆变器、电动机、充电机等大功率设备对CAN的影响足以中断通讯,或者损坏CAN节点,如图1图2所示,就是被逆变器干扰的CAN波形。 图1 干扰前 图2 干扰后 面对干扰,各个汽车厂、零部件厂,测试诊断设备的厂商
[网络通信]
CAN总线调整同步的规则是什么
硬件同步 接收单元在总线空闲状态检测出帧起始时进行的同步调整,在检测出边沿的地方不考虑SJW的值而认为是SS段。硬件同步的过程如下图所示 : 再同步 在接收过程中检测出总线上的电平变化时进行的同步调整。 每当检测出边沿时,根据 SJW 值通过加长 PBS1 段,或缩短 PBS2 段,以调整同步。但如果发生了超出 SJW值的误差时,最大调整量不能超过SJW 值。 调整同步的规则 硬件同步和再同步遵从如下规则。 (1) 1 个位中只进行一次同步调整。 (2) 只有当上次采样点的总线值和边沿后的总线值不同时,该边沿才能用于调整同步。 (3) 在总线空闲且存在隐性电平到显性电平的边沿时,则一定要进行硬件同步。 (4) 在总线非空闲时
[嵌入式]
<font color='red'>CAN</font>总线调整同步的规则是什么
基于CAN总线的半挂车安全预警系统设计
1 引言 半挂车指“其设计和技术特性需汽车牵引,才能正常使用的一种无动力的道路车辆,用于载运人员和货物”(GB/T3730.1-2001标准)。 半挂车的种类很多,包括厢式半挂车、罐式半挂车、平板半挂车、集装箱半挂车、车辆运输半挂车等等。随着我国公路物流运输业的发展,半挂车以其运输效率高、运载量大、燃油经济性好、运输成本低等优势使用越来越广泛。随之而来的是半挂车的安全问题。据2006年公安交通部门统计,全国半挂车的数量约占整个机动车保有量的5%左右,重大交通事故中,涉及到半挂车等大型货运机动车辆的事故占到约47%,造成的人员死亡率占总数的约30%。半挂车的安全隐患主要来自两个方面:一是超载现象。超载现象不仅对高速公路等交通设施
[嵌入式]
CAN现场总线的时间信息共享技术
电子时间引信系统从火控计算单元提取的射弹飞行时间数据需要实时可靠地传送给编程装置,为保证时间信息传送的准确、及时,本文采用CAN总线进行时间信息的传输。 CAN总线具有突出的可靠性和实时性,适合在复杂的战场环境下工作,基于CAN现场总线的时间信息数据接口,可充分保证时间信息的传送,并为电子时间引信系统提供标准的数据接口,便于应用在其它防空武器系统的嵌入式改造或未来数字化防空武器系统中。本文阐述了CAN现场总线、总线接口技术、时间信息提取电路结构、信息无线发送结构等原理,及如何利用CAN现场总线技术实现时间信息共享技术。 CAN现场总线概述 CAN(Controller Area Network)总线诞生和发展于汽车工业自动控制
[电源管理]
<font color='red'>CAN</font>现场总线的时间信息共享技术
教程:如何用STM32-CubeMX-实现CAN通讯
首先要安装cubemx跟Keil5两个编程软件,然后打开cubemx软件,新建一个工程项目: 输入CPU型号: 在右下角双击CPU具体型号: 稍等片刻会打开如下对话框: 首先要配置系统的调试方式:我们选择SW方式, 然后配置晶振源,这里选择的是外部晶振,8M, 使能看门狗, 使能CAN, 使能TIM2时钟源,采用内部时钟, 配置完成后可以看到单片机管脚已经做了配置。 切换到Clock Configuration选项卡,配置时钟周期,这里配置为8M 切换到Configuration选项卡,进入CAN配置选项配置波特率如下为500Kbps。 配置接收中断。 配置定时器如下为1ms定时
[单片机]
教程:如何用STM32-CubeMX-实现<font color='red'>CAN</font>通讯
高通遭摩托罗拉遗弃 飞思卡尔德州仪器插足
  9月13日消息,本周二的《巴伦周刊》有报道称,深陷诉讼纠纷的高通再遭打击,其重量级客户摩托罗拉选择弃它而去,短期内取而代之的是飞思卡尔半导体公司,而长远来看,德州仪器将成其长期合作伙伴。   据国外媒体报道,此前与高通有关的许多报道见诸报端,特别自该公司被纳入TradeRadar研究对象以来。当初被选入TradeRadar研究范围,主要原因是高通拥有庞大的专利库,而随着全球电信运营商向3G通信技术标准WCDMA的转移,高通理所当然可以坐享其成。从某种意义上说,我们是在“高通遭遇麻烦时买入股票的”,受诉讼牵连,高通股价一度直线下挫,高通管理层了因为在Broadcom 问题上的执拗和毫无结果备受批评,高通因此还被处以重罚。美国国际
[焦点新闻]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved