lpc2000系列can验收滤波的编程及应用
随着信息技术的飞速发展,32位arm微控制器以其低功耗、高性能以及小体积等特性,得到了广泛的应用。在汽车、消费娱乐、仪器仪表、工业控制、海量存储、网络、安保和无线等领域,随处可见其应用实例。因而,基于arm的技术方案是最具市场前景和市场优势的解决方案。
现场总线是当前工业通信领域中应用最广的技术之一。作为现场总线之一的can总线,以其高性能、高可靠性以及灵活的设计越来越受到人们的重视,越来越多的arm微控制器带有can控制器。philips 2000系列arm微控制器是基于arm7的集成有2个或4个can控制器的微控制器,在工业通信网络中有广泛的应用。 1 can总线的硬/软件设计简述
1.1 硬件设计
lpc22000系列arm内置can控制器,每一个can控制器都与sja1000有相似的寄存器结构,只是寄存器访问由8位字节访问转变为32位双字访问,因而使得硬件连接相对变得简单。can总线驱动器使用82c250或tja1050。为增强节点的抗干扰能力,can控制器与总线驱动器可不直接相连,而足通过高速光耦6n137连接。光耦部分采用的两个电源应隔离,故采用电源隔离模块。
1.2 软件设计
can节点的基本软件设计包括can节点初始化、报文发送、报文接收3部分。在这3部分程序的基础上可编出can总线通信的一般应用程序。当然,要将can总线应用于通信任务比较复杂的系统中,还需要编写can总线异常处理、验收滤波设置等内容。
2 验收滤波器的设置及工作原理
当can控制器接收一完整的标识符时,将通知验收滤波器。验收滤波器响应这个信号,并读出标识符,与af(验收滤波)ram中的标识符表格进行匹配,以决定接收或放弃此帧信息。
af ram是一个容量为512×32位(2 kb)的ram。通过软件设置,可在ram中存放1~5个标识符表格。图1为一个完整的af ram内部表格分布。
为方便编程实现,把af ram的内容按32位模式排列,每个32位称为一个cell。表格就是cell的集合。前两种表格中每个cell包含2个标识符,且配置时每个cell中高位标识符小于低位标识符,否则会引起验收滤波器执行失败。接下来的2个表格,每一对范围或每一个标识符占用1个cell,而合法的扩展标识符范围表格必须以偶数个cell出现。每个表格均需按升序排列,每种表格可根据应用需要适当裁减。
3 验收滤波编程实现
程序用c语言编制,在ads1.2开发环境下通过jtag接口进行实时调试、仿真和下载,并在实际应用中得到了验证。要说明的是,fullcan模式应用较少,程序未涉及它的设置;设置了独立标准标识符和标准标识符范围表格,对标准id{1,2,0x10,0x20}和指定范围{{90<=id<=100}及{0x300<=id<=0x400}}的信号进行接收,独立扩展标识符表格和扩展标识符范围表格未设置。需要设置时,可参考前两种表格的设置程序。
在canreg.h中,定义验收滤波模式寄存器结构如下:
另有如下寄存器地址定义:
另有如下定义:
②初始化一个独立标准标识符表格的内容。
③初始化一个标准标识符组表格的内容。
④用独立标准标识符表格内容初始化lut的独立标准标识符表格。
⑤用标准标识符范围表格内容初始化lut的标准标识符范围表格。
⑥模式2,启动全局验收滤波器。
在main.c中所含的4个相关函数略。
结 语
在sja1000的应用中,验收滤波器只能对一些规律性较强的id和个数较少的id进行滤波。当需要设计复杂的验收滤波器时,以上的验收滤波模块能起到一定的作用。当然,在具体的应用场合,还需要考虑通信协议、can总线异常处理、can初始化、接收和发送等程序。
直击现场 | 西井科技孙作雷博士受邀参加盖世汽车第三届商用车自动驾驶大会
关于小米集团出现抽飞的原因详解
西安光机所自由曲面光学研究取得进展
人工智能AI核心板M1808,让5G和边缘计算赋能工业物联网
如何通俗易懂的理解那些书般的无线知识?
LPC2000系列CAN验收滤波的编程及应用
加密货币交易平台SmartMixer介绍
金立“全面屏”战略率先落地,与京东签订战略合作协议
方兴未艾的V/U段通信
生产工厂ERP订单系统怎么用?哲讯来为您解答
狠活来啦,污水处理远程监测解决方案
德媒称发展电动汽车或导致损失41万个工作岗位
TVS二极管15KP24CA/A的参数介绍
大界机器人已完成了近五千万元的A轮融资
太原电信已完成了热点区域的5G网络部署共计开通了63个室外基站
INA114构成的差动电压
5G通信必要的噪声抑制措施
《男人志Wo》与《爱美丽Me》订阅抽奖答谢用户[图]
【tinyML】使用EdgeImpulse让您的Arduino可以辨识手势!
Oculus 5亿美元赔偿或将影响VR行业发展