APP下载

嵌入式LonW orks网络智能网关设计

2014-03-16曾梦秋叶永强

电子设计工程 2014年9期
关键词:双口智能网网关

曾梦秋,吴 丹,陆 锋,陈 潇,凌 路,叶永强

(南京航空航天大学 自动化学院,江苏 南京 210016)

LonWorks技术是美国Echelon公司于90年代初推出的一种现代总线技术,它具有开放性、高速性和互操作性而已被各行业广泛使用[1]。而LonWorks设备往往工作环境恶劣,其自身各部分与周围其他电子设备之间不可避免存在各种形式的电磁干扰和静电放电,保证LonWorks设备的安全稳定运行有着重大的意义。

LonWorks设备运行过程中涉及的参数众多,控制策略复杂,为了解决其现场远程监控的需要,有必要开发出一款自动化程度高的智能网关,实现Lonworks协议和TCP/IP协议的转换,将Lon网和以太网互连,从而达到对远方的LonWorks设备运行集中的、远程的监控的目的。

而传统的网关基本采用16位单片机来实现,受限于其运算能力低、存储空间小的特点,而不能够适用于多任务、实时性高的应用环境。本文设计的设计的一款嵌入式LonWorks网络智能网关,采用32位的ARM为主控芯片并嵌入μC/OS-II操作系统,具有能够满足多任务、实时性、快速性高等复杂监控环境的功能。

1 系统总体结构

图1给出了系统结构示意图,下位机设备将收集到的监控参数通过电力线上传至智能网关,LonWorks网关根据电力通讯协议将已将收集到的数据通过协议转换将Lon网协议的数据包转换成TCP协议数据包上传到ARM内置服务器;远端的监视器作为嵌入式智能网关的人机界面互动平台将远程指令发送到智能网关,智能网关通过电力线下传至下位机设备,下位机设备根据电力线通讯协议接收相应的远程指令,并完成相应的远程控制。

图1 系统结构示意图Fig.1 Structure diagram of system

2 硬件设计

硬件平台由3个部分组成,包括由Lon网数据采集收发模块、Lon网协议和LwIP协议转换模块和以太网通讯模块。结构框图如图2所示。

图2 硬件系统结构框图Fig.2 Structure diagram of hardwave system

2.1 Lon网协议和Lw IP协议转换模块

该模块是整个系统的核心,其不仅包括网络协议转换功能,而且完成系统其它显示传输功能。该模块的主控芯片为NXP公司生产的 LPC1778,其片上资源包括512 Kb的FLASH存储器、高达64 Kb的SRAM,系统时钟频率可高达120MHz,同时可内嵌操作系统。LPC1778内置外部总线控制器,通过总线方式读写双口RAM,从而完成与数据采集收发模块的高速数据交换。另外,嵌入式WEB服务器的架构需要大容量的存储器,片上资源已不能够满足现有的需要,因此外部扩展一片16Mb的FLASH SST25VF016B。

2.2 以太网接口模块

以太网接口是网关与以太网通信的关键部分,本设计中选用的主控芯片LPC1778内嵌一个以太网控制器,通过扩展网卡芯片DP83848C和一个RJ45接口来实现以太网通讯接口。以太网控制器支持精简的媒体独立接口RMII,可在半双工、全双工模式下提供10M/100Mbps的以太网接入。我们采用RMII协议方式和MIIM(媒体独立接口管理)串行总线、以及MDIO(管理数据输入/输出)相结合的方式来实现与网络芯片的连接。使用RMII接口方式时需要接入一个50 MHz的外部有源晶振。

2.3 数据采集收发模块

该模块核心器件为电力线收发器PL3150。PL3150是Echelon公司生产的基于开放性ANSI标准的电力智能收发器,其可按LonTalk协议与LonWorks网络上的所有节点进行通信。PL3150通过地址线、数据线以及控制信号线与双口RAM连接。双口RAM我们选用IDT71321,其支持总线读写方式,有2 KB的存储容量。双口RAM作为PL3150和ARM之间数据接收和发送的缓存区。该设计方案可实现两模块之间数据的高速、稳定、低误码率的传输。

3 网关软件设计

3.1 网关软件结构设计

软件结构如图3所示,包括2个主要部分:

1)ARM端软件设计。软件平台由嵌入式μC/OS-II操作系统为基础构建,并利用LwIP协议实现TCP/IP协议,上层的应用程序为WEB服务程序以及网关协议转换程序。

2)PL3150端设备接口数据通信程序。

图3 软件结构图Fig.3 Structure diagram of soft system

3.2 网络协议转换程序

在网关中最重要的是实现两个不同网络的协议转换。在LonWorks网络中,节点与节点进行通信时,常采用特定的网络变量的形式进行[2]。网络变量只有数据类型相同的输入网络变量和输出网络变量才能建立连接。在本网关工作过程中,根据图2所示的结构原理,当下位机设备需要向上位机发送数据信息时,将会对自己的输出网络变量进行更新,发送到LonWorks网络上;当PL3150监测到这些网络变量时,将对与之捆绑的输入网络变量进行更新并发送到双口RAM的数据缓冲区;ARM芯片通过外部总线读取双口RAM,其内部以太网控制器依据所使用协议将数据包进行封装,发送到以太网协议的应用层。相反,当上位机想要对远端现场设备进行控制时,也要对相应的网络变量进行更改。

在协议转换过程中,双口RAM作为一个共享存储器能够进行双边读写操作。为了避免数据信息交换时的读写冲突、产生竞争,在读写操作时要进行控制以进行同步访问。本文采用通过定时查询控制地址的值来进行同步访问操作。将2 KB的双口RAM划分为3个主要部分来存放不同内容:存放ARM对PL3150的控制信息;存放PL3150向ARM发送的数据信息;控制同步访问信息。

3.3 μC/OS-II操作系统移植

操作系统的加入使得我们的内部资源能够更好的利用。μC/OS-II操作系统是一款开源的,针对嵌入式系统的实时内核操作系统,可以应用于多种类型的硬件平台。它最近发布的版本最多可管理多达256个任务[3]。μC/OS-II具有强大的网络支持,并且支持Lw IP协议,为我们的网关服务搭建了一个很好的平台。将μC/OS-II操作系统移植到ARM平台上,只需处理μC/OS-II与Cortex-M3接口部分,即OS_CPU_C.C、OS_CPU_A.S、OS_CPU.H 这 3 个文件[4]。

3.4 网关通讯协议TCP/IP实现

3.4.1 LW IP简介

本文的TCP/IP协议选择使用Lw IP协议栈来实现。Lw IP是由瑞典计算机科学研究院Adam Dunkels设计的开源的嵌入式TCP/IP协议。它是轻型的TCP/IP协议栈,适用于资源紧张的嵌入式系统。Lw IP既可以独立运行,也可以移植到不同的操作系统上[4]。

3.4.2 TCP数据处理流程

在我们的应用中,使用Lw IP的TCP协议,它属于传输层协议,虽然相比UDP协议传输速度较慢,但是它为应用层提供可靠的字节流服务。TCP流程如图4所示,当下位机数据信息到达时,通过tcp_write来构造一个报文段,之后tcp_output被调用,同时与ip_route交互,填写首部中的源IP地址字段,最后通过ip_output发送给链路层,加上以太网帧头发送到以太网中。同理可以得知TCP输入流程[5]。

图4 TCP数据处理流程图Fig.4 Flow diagram of TCP data process

3.4.3 Lw IP移植

LwIP的移植主要是为了实现操作系统模拟层,它是操作系统和协议栈的一个接口,可为进程处理同步、消息传送机制以及定时器等操作系统服务提供统一接口。

移植需要添加以下文件,具体包括:1)与CPU和编译器相关的头文件。

2)与操作系统相关的文件。sys_arch.h的内容是与操作系统相关的结构和函数。此文件中需要实现4个函数:消息函数;数据结构及信号函数;系统超时函数;创立新线程函数。

3)与网卡驱动相关的函数。Lw IP源码提供者将ethernetif.c中的函数实现一个框架形式,用户可以根据这个框架定制网卡驱动。

3.5 网关监控平台的实现

嵌入式处理器LPC1778在μC/OS-II操作系统平台上,利用Lw IP协议的上层协议HTTP协议搭建轻型服务器,提供人性化的操作界面,实时监控底层数据及控制输出等功能。Web服务器的结构如图3所示。当远端的浏览器发送请求时,HTTP协议处理程序会将该请求发送给Web服务器处理;而CGI(通用网关接口)程序作为处理客户端Web浏览器输入数据的接口规范,用来解释处理表单的输入信息,并在服务器产生相应的处理,完成客户机与服务器之间的交互操作功能[6]。

实现步骤如下:

1)通过在μC/OS-II建立相应的任务。当任务建立起来之后,任务的调度就由μC/OS-II的任务调度器调度。μC/OS-Ⅱ的任务调度是抢占式的,所以在设置任务优先级的时候要考虑任务对实时性的要求。同时注意Lw IP的初始化要在μC/OS-II完全启动之后。

2)Web服务器实现。由于本网关采用B/S通讯模式,嵌入式ARM则充当服务器,提供网页数据信息。B/S模式需要HTTP协议的支持。它是基于请求/响应模式的,并使用TCP作为传输层。当服务器运行时,始终在80服务端口监听,等待请求的出现。Web服务器的编程是基于Lw IP的API函数编写的。API函数专为Lw IP设计,充分利用LwIP的内部结构以实现其设计目标。

3)HTTP处理子函数在获得请求报文之后,根据其请求报文进行相应处理。在HTTP请求报文中,第一行就是请求行,方式有GET和POST两种。由于CGI程序中具有HTML生成和FORM解析功能,CGI程序会根据请求数据中的URL信息找到相应的网页文件,并对文件中的程序代码解析并执行,然后生成HTML网页回传至浏览器。

4 网关的功能和应用

该监控平台每2 s就从下位机刷新一次实时监测数据,可以获得例如下位机ID号、电压、电流、功率等实时量。图5为开发完成的网关嵌入式网页服务页面,可以控制某一个下位机的开闭状态、功率因子大小,并可以定时上传数据并具有数据管理系统。服务器的系统功能结构框架如图6所示。

图5 网页服务页面示意图Fig.5 Diagram ofwebserver’swebpage

图6 系统功能结构框图Fig.6 Structure diagram of system functions

本网关IP静态地址设为192.168.0.100并与路由器相连,通过动态域名解析与一个固定域名绑定,用户通过访问固定域名便可远程实时观测。

5 结束语

文中系统地论述了嵌入式LonWorks网络智能网关的实现方法,主要分析了嵌入式网关的硬件和软件的实现方法。本网关的实现可为将来远程监测应用方面带来很大便利,可广泛应用与远程查表、路灯控制等项目中,具有很好的社会价值。

[1]杨玉红.LON网络控制技术及应用[M].西安:西安电子科技大学出版社,1999.

[2]陈德明,熊列彬,雷杭州.一种新型的LONWORKS组网应用方式[J],继电器,2008,33(4),60-62.CHEN De-ming,XIONG Lie-bin,LEI Hang-zhou.A new application of LONWORKS[J].RELAY,2008,33(4):60-62.

[3]JEAN J.Labrosse.嵌入式实时操作系统μC/OS-II[M].北京:北京航空航天大学出版社,2003.

[4]焦海波,嵌入式网络系统设计——基于Atmel ARM7系列[M].北京:北京航空航天大学出版社,2008.

[5]杨玉佳.Lw IP在μCOS-II平台上的移植与应用[D].成都:电子科技大学,2006.

[6]姚洪智,郑雪峰,曹 磊.基于CGI接口实现嵌入式系统远程控制[J],微机发展,2004,(9):7-9.YAO Hong-zhi,ZHENG Xue-feng,CAO Le.Remote Control in Embedded System Based on CGI [J].Microcomputer Dervement,2004(9):7-9.

猜你喜欢

双口智能网网关
5G赋能智能网联汽车
双口RAM在航天伺服系统中的应用
智能网联硬实力趋强
信号系统网关设备的优化
迎战智能网联大爆发
Matching mechanism analysis on an adaptive cycle engine
基于SJA1000的CAN总线智能网桥设计
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”
双口RAM读写正确性自动测试的有限状态机控制器设计方法