CAN(Controller Area NetWork)总线,即控制器局域网总线,是由德国Bosch公司于1982年开发和推出的最早用于汽车内部测量与执行部件之间的数据通信协议。在20多年的历史中,CAN总线在许多领域得到了应用,是到目前为止唯一有国际标准的现场总线。
CAN现场总线按照国际标准化组织ISO提出的"开放系统互联(OSI)"参考模式,实现其中的物理层、数据链路层和应用层。CAN控制器用来实现CAN总线协议。CAN控制器芯片分为两类:一类是独立的控制器芯片,如SJA1000;另一类是和微控制器做在一起,如Philips公司的LPC2000系列32位ARM微控制器。两类控制器都提供了报文标识过滤的验收滤波器。但独立CAN控制器的验收滤 波器只能对规律性较强的报文标识符(Identifier,简称ID)进行筛选过滤,或是对个数较少的ID进行任意筛选,难以实现更加复杂的任意ID筛 选。Philips公司的LPC2000系列32位ARM微控制器内嵌的验收滤波器为CAN控制器提供了全局的标识符查询功能,能实现复杂的报文ID过 滤,而且可以大大减轻微控制器的负担。
1验收滤波器的特点和功能
1.1验收滤波器的特点
LPC2000 系列ARM微控制器是采用ARM7TDMI-S内核的32位嵌入式微处理器,内嵌2路或4路CAN控制器和验收滤波器。验收滤波器为CAN控制器提供全局 的报文标识过滤功能。它包含一个512×32(2 KB)的RAM,在这2 KB的RAM中可以设置1~5个报文标识符表,形成一个查找表LUT(LookUp Table)。整个查找表可以容纳1 024个标准标识符或512个扩展标识符,或两种混合类型的标识符。5个可能的标识符表格包括FullCAN的标准标识符表和独立标准标识符表、标准标识 符范围表、独立扩展标识符表以及扩展标识符范围表。这5个表格不是必须同时存在,可以根据需要裁减。如果一个表格的起始地址等于下一个表格的起始地址或表 格终止寄存器的数值,则该表格为空,在处理中将被忽略。
1.2验收滤波器的功能
LPC2000系列ARM微控制器的CAN 验收滤波器有2种工作模式:一种是一般模式;另一种被称为"FullCAN模式"。在一般模式下,当CAN控制器的接收端收到一个完整的标识符时,它将通 知接收验收滤波器。验收滤波器响应这个信号,读出CAN控制器编号和标识符大小(标准标识符11位或扩展标识符29位);然后搜索LUT,查找匹配的标识 符。如果找到匹配的标识符,则通知CAN控制器将接收的报文放入CAN控制器接收缓冲中;否则,放弃接收到的这一帧信息。其工作流程如图1所示。
如果使能FullCAN模式,且CAN控制器报告产生的是一个标准标识符,则验收过滤器首先查询FullCAN标准标识符表,然后在FullCAN模式下 处理接收。如果在FullCAN标准标识符表中没有找到匹配的ID,则依次查找下一个存在的表格,直到找到匹配者或查找表结束。一旦发现匹配的ID,就将 接收到的报文放入特定的报文缓冲中而不是CAN控制器接收缓冲中,这个特定的缓冲位于验收滤波器的RAM中,而且是在LUT的最后部分。CPU可以在任何 时候读取接收到的报文。FullCAN模式的接收工作流程如图2所示。[page]
2验收滤波器的驱动程序开发
2.1 验收滤波器寄存器描述
以LPC2292为例说明其验收滤波 器驱动程序的开发。在LPC2292中内嵌2路CAN控制器,它的验收滤波器寄存器如表1所列。注意:这里的起始地址是以验收滤波器RAM的起始地址为基 本地址的偏移。如在一般模式下,SFF_sa=O表示独立标准帧标识符的起始地址位于0xE0038000处。
一个表格的大小由其前后2个 表格起始地址寄存器的差值决定。例如,SFF_GRP_sa-SFF_sa为独立标准帧标识符查找表格大小。若其值为0,即 SFF_GRP_sa=SFF_sa,则独立标准帧标识符查找表格大小为0,在查找时此表格将被忽略。查找表结束寄存器ENDofTable代表查找表结 束地址,ENDofTable-EFF_GRP_sa为扩展帧组标识符查找表大小。验收滤波器寄存器AFMR控制其工作模式,具体定义如表2所列。
2.2查找表中标识符格式
①FullCAN的标准标识符表和独立标准标识符表。
要注意的是,每个FullCAN的标准标识符表和独立标准标识符表都必须按升序排列,即标识符1大于标识符O;否则,在AF中将引起表格错误而使接收过滤失败。表格格式如下:
②标准标识符范围表。标识符上边界和下边界(包括上下边界)之间的ID为允许通过ID。表格格式如下:
③独立扩展标识符表。1个独立扩展标识符占1个字,而且需要按升序排列。表格格式如下:
④扩展标识符范围表。它总是成对出现,占用2个字,因此合法的表格必须以偶数个字出现,而且必须按升序排列。表格格式如下:
2.3验收滤波器驱动程序的设计
根据以上说明,就可以设计验收滤波器的驱动程序了。以LPC2292为例来说明如何设计驱动程序。
假 定独立标准标识符有ID0和ID1两个,依次按升序排列,组标准帧标识符范围为ID2~ID3(ID2
3 结论
LPC2000系列ARM微控制器的CAN验收滤波器能够有效地屏蔽总线上不允许通过的报文,大大减轻了CPU的负担,在以CAN总线为通信网络的应用中发挥了很大的作用。
关键字:LPC2000 CAN CAN验收滤波器
引用地址:
LPC2000系列32位ARM微控制器内嵌的CAN总线验收滤波器应用
推荐阅读最新更新时间:2024-03-16 13:44
基于dsPIC30F6014的CAN节点设计
引言 CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,CAN-bus已被广泛应用到各个自动化控制系统中,具有不可比拟的优越性。 新型16位dsPIC30F6014数字信号控制器结合单片机的控制优点及数字信号处理器(DSP)的高速运算特性,为嵌入式系统提供了单一芯片解决方案。 本篇论文以CAN协议为基础,结合dsPIC30F6014的突出性能,在设计通讯接口过程中,提出了基于dsPIC30F6014数字信号控制器的CAN节点设计方法。 1 dsPIC30F6014数字信号控制器
[嵌入式]
在S3C44B0上的μCOS-II中实现CAN总线智能节点
在系统越来越复杂,功能越来越强大的今天,嵌入式系统的设计中采用实时多任务操作系统已经成为嵌入式应用设计的主流。μCOS-II是一个开源嵌入式实时操作系统(Real TIme OperaTIng System, RTOS),它已经被成功移植到各种CPU上。但是基于μCOS-II的应用软件需要在移植操作系统后自行完成。模块化的应用程序设计可以使得嵌入式设计变得更加方便,产品的开发更加迅速。S3C44B0是三星公司生产的一种ARM7芯片,性能强大,在通用嵌入式设计中运用广泛。CAN总线(Control Area Network)是一种有效支持分布式控制和实时控制的现场总线,由于其高性能和高可靠性,CAN总线的应用范围广布过程工业、机器人
[单片机]
基于K线/CAN总线的KWP2000协议分析及协议栈的开发测试
1 前言 在汽车故障诊断领域,针对诊断设备和汽车ECU之间的数据交换,各大汽车公司几乎都制订了相关的标准和协议。其中,欧洲汽车领域广泛使用的一种车载诊断协议标准是KWP2000(Keyword Protocol 2000),该协议实现了一套完整的车载诊断服务,并且满足E-OBD(European On Board Diagnose)标准。KWP2000最初是基于K线的诊断协议,由于K线物理层和数据链路层在网络管理和通讯速率上的局限性,使得K线无法满足日趋复杂的车载诊断网络的需求。而CAN网络(Controller Area Network)由于其非破坏性的网络仲裁机制、较高的通讯速率(可达1M bps)和灵活可靠的通讯方式,在车载
[嵌入式]
基于DSP的CANopen通讯协议的实现
1 引言 CANopen是一个开放的、标准化的应用层协议,在各种控制系统中得到了广泛的应用。依靠CANopen协议的支持,可以对不同CAN厂商的设备通过总线进行实时通讯。 本文针对自主研发的全数字电机伺服驱动系统,使用CANopen通讯协议实现了CAN总线数字信号处理器(DSP)系统与上位机CAN卡之间的通讯,并通过测试实验验证了信息传递的可靠性,保证了全数字网络化伺服驱动系统中对电机控制的快速性、准确性和实时性。 2 通讯系统实现的基本原理 2.1 LF240x系列DSP的CAN控制器模块 LF240x系列DSP的CAN控制器模块,是一个完全的CAN控制器。具有以下特性 : (1)完全支持CAN2.0B协议; (2)对象有6个邮
[嵌入式]
基于CAN/LIN总线的汽车通信网络设计与实现
引言 随着汽车电子技术及网络技术的不断发展,人们对汽车安全性、可靠性的要求也越来越高,为了解决由汽车电子元器件的增加而带来的通信问题,这就要求采用一种高速、多路、共享的汽车通信网络。目前,已经开发出多种总线,如CAN(Controller Area Network)控制器局域网 ,LIN(Local Interconnect Network)局域互联网,FlexRay,Most等。但CAN和LIN构成目前汽车上最广泛的总线形式。本文主要介绍已得到众多汽车制造商推崇的网络技术---CAN 总线和LIN 总线技术。 CAN总线、LIN总线简介及各自通信协议 CAN总线及LIN总线简介 20世纪80年代末,
[单片机]
基于PIC18单片机的RS-485/CAN智能转换器的设计策
RS-485是一个电气接口规范,它定义了一个基于单对平衡线的多点、双向(半双工)通信链路,只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议,在当时看来是一种相对经济具有相当高噪声抑制相对高的传输速率传输距离远和宽共模范围的通信平台,因此基于RS-485总线的通讯方法得到了广泛的应用。 由于RS-485总线本身存在的许多局限性,随着科技的发展RS-485的总线效率低,系统的实时性差、通讯的可靠性低、后期维护成本高、网络工程调试复杂、传输距离不理想、单总线可挂接的节点少、应用不灵活等缺点慢慢的暴露出来。虽历经多次改进但均是治标不治本。 CAN-bus是一种多主方式的串行通
[单片机]
Microchip开始提供业界第一款外部CAN灵活数据速率控制器
电子网消息,Microchip Technology Inc.(美国微芯科技公司)日前宣布,开始提供业界第一款外部CAN灵活数据速率(CAN FD)控制器。采用MCP2517FD,设计人员能够很快从CAN 2.0升级到CAN FD,受益于CAN FD增强协议。 CAN FD相对于传统的CAN 2.0有很多优势,包括更快的数据速率和数据字节消息扩展等。前沿的MCP2517FD CAN FD控制器可用于任何单片机(MCU),使开发人员能够轻松实现这一技术,而且完全不需要从新设计系统。由于CAN FD的应用和转换还处于起步阶段,因此,目前可用的CAN FD MCU数量还有限。此外,换一个系统MCU会明显增加成本,开发时间和风险
[半导体设计/制造]
CAN总线在开放式数控系统的应用
1. 引言:
随着微电子技术、计算机技术、自动控制和精密测量技术的不断发展和迅速应用,在制 造业中,数控技术和数控机床不断更新换代,正向着高速度、多功能、智能化、开放型以及 高可靠性等方面迅速发展。数控机床的生产量和数控技术的应用已成为衡量一个国家工业化 程度和技术水平的重要标志。
开放式、网络化数控系统已成为当前数控技术发展的主要趋势。CAN 总线适用于数据 交换简短而频繁的场合,是解决工业控制设备之间数据通信的有效方式,可以方便有效地构 成分布式实时过程检测与控制系统。由于基于CAN 总线的数据通信具有高可靠性、实时性 和灵活性等特点,特别适合于工业现场自动化设备的互连,在汽车工业等领域得到了广泛的 应用。
[嵌入式]