你现在位置:首页>技术论文>数据通讯>正文
基于ARM的CAN-Ethernet嵌入式网关的设计
日期:2008-6-12 18:20:43 来源:《PLC&FA》  
点击: 作者:未知
点击【】放大字体.
P.L.C.技.术.网——可编程控制器技术门户

1  引言
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

企业的信息化管理就是实现控制网络与信息网络的集成,在企业管理层和生产监控层采用以太网,而在下层车间和生产现场采用现场总线(can、profibus、lonworks等)[1]can现场总线是一种支持分布式控制系统或实时性控制的串行通信网络,具有成本低、可靠性高、抗干扰能力和实时性强等特性,是最普及的工业现场总线之一,但远程通讯能力很薄弱,无法很好地解决因特网的接入技术;而以太网是当今局域网的主流,是最流行的因特网接入方案之一。根据需要及成本等方面的考虑,本文选用源码公开的嵌入式实时操作系统μc/os-ⅱ,将其与模块化硬件设计相结合,构建了通用的工业网关软硬件平台。
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

2  嵌入式网关模型
plcjs.技.术_网

嵌入式网关模型如图1所示。嵌入式网关[2] [3]工作在协议栈的最高层,经过不断打包数据、解包数据实现canopen协议与tcp/ip协议的相互转换。两种协议的转换是异构网络互连的技术关键和难点。转换方法依据的是协议分层的基本原理,即低层支持高层,高层调用低层,低层断开连接后,高层连接也随之断开,但高层断开连接不会影响低层。以太网上运行tcp/ip协议,它具有应用层、传输层、网络层、以太网数据链路层和物理层;can总线具有canopen应用层、数据链路层和物理层。把网关的应用层看作是can与ethernet的数据交换层,arm微处理器在此层相互解释并转发这两种不同协议的数据。
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

P.L.C.技.术.网——可编程控制器技术门户

WWW.PLCJS.COM——可编程控制器技术门户

1  嵌入式网关模型
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

 
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

3  嵌入式网关硬件设计
WWW_P※LCJS_COM-PLC-)技.术_网

本嵌入式网关主要是由主控芯片lpc2292、can接口、以太网接口组成。网关硬件系统结构如图2所示。
WWW_PLC※JS_COM-PmLC-技.术_网

WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

WW.W_PLC※JS_C,OM-PL,C-技.术_网

WWW_PLCJS@_COM%-PLC-技.术_网

图2  网关硬件系统结构
WWW_P※LCJS_CO※M-PLC-技-.术_网

lpc2292是32位arm7tdmi-stm cpu,内部集成有两路符合can2.0b,iso11898-1规范标准的can控制器,方便系统采用冗余设计;cpu内核工作电压为1.8v,引脚工作电压为3.3v;内嵌256kb的高速flash存储器,128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行;总线数据波特率均可达1mbps,可访问32位的寄存器和ram,全局验收过滤器可识别几乎所有总线的11位29位rx标识符。
WWcW_PLCJS_COM-PLC-技.术_网

3.1 can接口电路
WWW_P※LCJS_CO※M-PLC-技-.术_网

can接口电路如图3所示。lpc2292的can引脚rd1和td1分别与隔离器adum1201br一端的输出和输入引脚相连,adum1201br另一端的引脚与mcp2551相应的引脚相连。adum1201br利用平面磁场隔离了易受干扰的电路,从而保证了高电压和低电压电气环境之间的接口是完全隔离和独立的。通过5针的can标准接头接入can总线的高低电平信号(canh、canl),并引入24v直流电压,电源引脚线vcan再通过三端电压调节器78m05得到5v电压分别给adum1201br和mcp2551供电。为了减小现场对节点的干扰,使用屏蔽双绞线,并将屏蔽层接地。这里的24v电源地和屏蔽地分开覆铜。元件f201是自恢复保险,具有过流保护和自动复原双重功能,起到了保护电路的作用。lpc2292的第二个can控制器电路与此图相似,只是不提供24v电源输入。
W1WW_P4LCJS_COM-PLC-技.术_网

WWW_P※LCJS_COM-PLC-)技.术_网

plcjs.技.术_网

WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

图3  can接口电路
WWW_P※LCJS_CO※M-PLC-技-.术_网

3.2 以太网接口电路
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

以太网接口电路如图4所示。lpc2292内部没有集成以太网控制器,所以需要在片外搭建以太网接口电路,此设计中采用davicom公司的dm9000a。rj45接口采用st-j0012,内部集成有2个耦合变压器,可抑制来自介质的共模噪声和干扰。接口自带2个led,分别用来显示链接/活动状态和速度状态(10m/100m),大大节省了硬件的线路连接。
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

P.L.C.技.术.网——可编程控制器技术门户

WWcW_PLCJS_COM-PLC-技.术_网

WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

 图4  以太网接口电路
WW.W_PLC※JS_C,OM-PL,C-技.术_网

 
WWcW_PLCJS_COM-PLC-技.术_网

4  嵌入式网关软件设计
WWW_PLC※JS_COM-PmLC-技.术_网

硬件系统搭建好了之后,系统功能即协议转换主要是由软件来完成。本文是在嵌入式实时操作系统μc/os-ⅱ下实现的,lpc2292的内嵌16kb的sram和256kb的高速flash存储器,并且外部接有64k的fram,而经过裁剪后的μc/os-ⅱ只有50kb左右,丰富的资源足以在移植μc/os-ⅱ后,完成相应的功能。
WWW_P※LCJS_COM-PLC-)技.术_网

4.1  嵌入式操作系统μc/os-ⅱ的移植测试
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

嵌入式操作系统μc/os-ⅱ有源码公开,移植性好,可裁剪,可固化的特点,且内核属于抢占式,可管理多达56个任务。它包含三个部分:(1)核心代码部分:与处理器类型无关,移植时不需要进行修改;包括10个源代码文件和1个头文件。(2)配置代码部分:用户可根据实际情况修改,以决定需要使用μc/os-ⅱ中的哪些功能,因而这两个头文件也是与处理器无关的,修改起来很简单;包括2个头文件。(3)移植代码部分:与处理器类型相关,移植时需要对它们进行修改;包括1个头文件os_cpu.h、1个c代码文件os_cpu_c.c、1个汇编文件os_cpu_a.asm[4] ,将μc/os-ⅱ移植到lpc2292上,关键就是修改与处理器类型相关的部分。
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

操作系统移植后先不添加任何应用任务,只让系统的内核运行起来,仅检查代码的语法错误,如果出现问题,可以知道问题是出在内核代码中,而不是出在应用程序中。若检测到液晶的背光灯循环亮灭,说明任务不仅能从testtask切换到空闲任务,而且也能在等待时间结束后,从空闲任务切换回testtask任务。本系统的内核测试主程序见清单1。
WWW_PLC※JS_COM-PmLC-技.术_网

程序清单1  本系统移植μc/os-ⅱ后的内核测试程序
WWW_PLC※JS_COM-PmLC-技.术_网

WWW_PLCJS@_COM%-PLC-技.术_网

WWW_PLCJS_COM-PLC-技.术_网

WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

4.2 can通信
WWW.PLCJS.COM——可编程控制器技术门户

实现在can总线上进行数据传输的功能,包括can底层驱动程序的编写和canopen协议的实现。can驱动程序包括can控制器的初始化、can总线数据发送和can总线数据接收三部分。canopen协议的实现主要包括主节点的初始化,nmt报文、sdo报文、heartbeat报文和pdo报文的处理。在应用程序的设计中,can数据发送由canopen发送任务完成,can数据接收由can接收中断触发,并发送信号量给canopen接收任务。
W1WW_P4LCJS_COM-PLC-技.术_网

4.3 以太网通信
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

实现在以太网中进行数据传输的功能,包括底层设备驱动程序的编写和嵌入式tcp/ip协议栈的实现。嵌入式tcp/ip协议栈采用第三方提供,这类协议栈一般用c语言编写,与硬件平台无关,可裁剪成适合嵌入式系统的精简协议栈,以满足嵌入式系统的要求。整个协议栈是构建在μc/os-ⅱ操作系统之上的。
WW.W_PLCJS_COM-PLC-技.术_网

4.4 协议转换
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

协议转换的流程图如图5所示。当can总线上的节点要发送数据到以太网时,网关先从can接口接收到canopen报文,再由协议转换任务取出报文的数据,然后按以太网数据帧的格式进行逐层封装。应用程序是通过socket接口函数并使用tcp/ip协议栈提供的数据通讯功能,这里选择面向连接的tcp协议,则应用程序将用户数据交由tcp层处理,tcp协议将数据添加tcp首部后封装成tcp数据报;再交给ip层,ip协议在tcp数据报上添加ip头部信息封装成ip分组,然后根据路由表为ip分组确定路由,如果找不到相应路由,则发送出错报文,由icmp协议进行处理;如果找到了路由则把ip分组发送到以

本新闻共2页,当前在第11 2  
W1WW_P4LCJS_COM-PLC-技.术_网

评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行