嵌入式领域的CAN-bus主控节点开发 V1.00 2006年5月
目录 嵌入式系统介绍 建立ARM7平台的CAN-bus主控节点 建立X86平台的iCAN网络
嵌入式系统定义 什么样的系统才能构算得上是嵌入式系统呢?目前,对嵌入式系统的定义多种多样,但没有一种定义是全面的。下面给出两种比较合理的定义: 嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 嵌入式系统:嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。术语嵌入式反映了这些系统通常是更大系统中的一个完整的部分,称为嵌入的系统。嵌入的系统中可以共存多个嵌入式系统。
嵌入式系统的组成 嵌入式系统必须借助硬件控制器运行嵌入式软件来完成相应的功能 。 嵌入式处理器往往会根据不同的应用场合设计,有的注重功耗、体积,有的注重数据的处理速度,有的注重价格。目前使用得较多的嵌入式处理器有Am186/188、386EX、SC-400、Power PC、68000、MIPS、ARM、XScale等。 嵌入式操作系统是嵌入式系统的灵魂,和嵌入式处理器一样,嵌入式操作系统也要更具不同的场合选择。像在娱乐,便携设备上,通常采用功能齐全,人机界面华丽易用的嵌入式系统,例如WinCE、uCLiunx等非实时的系统。而在工业场合,对实时性能要求高的场合而对人机要求不高,则可选用uC/OS-II、VxWorks、eCos等实时性能高的系统。
建立ARM7平台的CAN-bus主控节点 嵌入式ARM-CAN节点的硬件构成 LPC2xxx系列ARM7处理器是基于ARM7TDMI-S内核的工业级嵌入式处理器,具有低功耗、体积小、资源丰富、抗干扰能力强的特点,目前已经应用在电力、医疗、煤矿、冶金等对可靠性具有严格要求的行业中。 LPC2000系列中的LPC2x9x芯片除具有LPC2000系列的全部特性外,还内嵌有PHILIPS公司的FullCAN控制器。LPC2x9x系列芯片一经推出,就受到了CAN-bus应用行业的青睐。
建立ARM7平台的CAN-bus主控节点 现有的EasyARM2100、EasyARM2200、SmartARM2200、MagicARM2200开发板都可以作为现成的ARM-CAN开发平台使用。 开发板上处理器更改为集成FullCAN控制器的LPC229x处理器(LPC2290,LPC2292或LPC2294)。 配合EasyARM系列、MagicARM系列开发板,使用CANInterFace收发器接口板,构成CAN-bus节点。
CAN-bus应用层软件的设计方法 嵌入式ARM-CAN节点一般会选用实时高效的uC/OS-II嵌入式实时操作系统为软件平台。 由于LPC2200系列ARM7芯片资源丰富,功能强大,适合实现一个CAN-bus网络的主控节点。
按协议封装CAN帧 在iCAN网络中,主控节点在网络中属于管理节点。首先要做的就是iCAN协议解析工作和打包工作。
功能码的解析 iCAN协议就是各种命令规范的集合体,每种功能码都有自己特定的数据组织结构。 功能码与处理函数结构 typedef struct tagCmdInx { uint8 nCmd; void (*pFuc)(…); }CmdInx;
管理从站节点的方式 CAN-bus网络的连接管理机制是系统核心部分,将主导CAN-bus网络的效率,以及主站的性能。 着网络需求的变更,主站管理的从站节点随时可以更改或者删减,所以,能够快速修改主节点的管理程序尤为重要。
从站节点的构造 构造从站的数据结构体
通信流程 iCAN协议是一个面向连接的协议,任何节点在通信前必须建立连接。。建立连接后,主站可以对从站进行操作,在整个通信过程中,主站必须维持与从站的连接,否则从站自动进行连接超时处理从而自动放弃该连接。
iCAN协议的用户接口 iCAN协议要在使用上简单方便,用户接口的设计尤其重要。
建立X86平台的iCAN网络 X86平台一般是指通用PC或嵌入式行业专用PC,包括工业电脑、PC104工控机。 将通用PC作为CAN-bus网络的主控节点,这也是比较常见的控制系统。例如,在工程机械中,一般采用高可靠性的PC104工控机,具有良好的防震、抗颠簸及散热能力,人机接口采用10.4‘’触摸式TFT LCD显示器,并提供键盘控制,用于实时反映系统工作状况,并在危险工况时提示操作人员;在电力通讯网络中,则采用高性能的PC服务器,通过同CAN-bus总线和EtherNet网络构成的电力通讯/调度网络,对电力开关设备、调度终端RTU、测控模块进行全面的数据管理、远程控制。
建立X86平台的iCAN网络 在X86平台上运行的操作系统有DOS、Win98、Win2000、WinXP、Linux、VxWorks、WinCE、QNX等。其中,Windows系统是最常见的操作系统。 常用开发环境有高级编程语言(VC、VB、DELPHI、C++Builder)、组态软件、专用软件工具等。
建立X86平台的iCAN网络 以Windows操作系统为例,简单介绍在X86平台开发iCAN网络的一些常用方式: DLL动态库 :采用DLL动态编制一个具体的项目程序,这是一种常用的方法,占用较少的PC系统资源,但可以获得良好的运行性能,也能够很方便地实现各种不同的应用需求。 组态方式 :利用组态软件中编制现场总线CAN-bus网络应用程序的方法大同小异,主流方法是采用标准的OPC接口软件。 工具软件 :使用一些专业的工具软件,也可以快速实现基于CAN-bus总线的实际应用网络,比如虚拟串口VCOM软件。
谢谢!