摘 要:基于嵌入式网络技术,研究并实现了一种用于嵌入式设备的监控系统。该系统采用客户端/服务器架构,通过在嵌入式设备中内建一个嵌入式Web服务器,可使得相应的嵌入式设备直接接入Internet。同时用户可使用标准的网络浏览器,通过网络对此设备进行访问、控制和管理。
关键词:监控系统;嵌入式网络技术;嵌入式Web服务器;LWIP
随着Internet的广泛普及和通信技术的高速发展,大量基于TCP/IP的Internet应用可以被部署在嵌入式平台之上,同时各种嵌入式设备可以和PC机一样连入网络之中。由此发展的嵌入式互联网技术(EI)解决了不同网络与Internet之间连通的问题,使得通过嵌入式互联网对网络中嵌入式设备的在线远程访问、控制与管理成为可能[1]。目前,对分布在Internet网络中的嵌入式设备进行高效、可靠的集中远程控制和管理成为嵌入式技术中较为高端的课题。
本文详细论述了一种通过嵌入式互联网技术控制在线嵌入式设备的远程监控系统。本系统采用了客户端/服务器(C/S)模式。通过简化TCP/IP协议栈实现了嵌入式Web服务器(EWS)功能。将EWS安装到设备中,从而使得嵌入式设备可以通过Internet互联,同时可提供网络管理页面,使用户可用标准的网络浏览器对众多设备进行在线远程访问、控制和管理,将时间与距离的限制降到最低。
1 控制系统架构
微处理器(MPU)和微控制器(MCU)用于嵌入式设备的监视和控制,成为嵌入式系统的核心。为了在不同的MPU/MCU间相互通信,许多工业项目采用RS-232、RS-485及CAN等通信标准,但这些途径的通信速度和距离都有较大局限性,若要将其与Internet互联需要特殊的嵌入式网关的支持,给实际使用造成很大的不便。EI是一种用于嵌入式设备接入Internet的互联技术,它可使嵌入式设备方便可靠地接入Internet中[2]。
为了使嵌入式设备可以连接到Internet并让用户通过标准的Web浏览器对其进行操作,EI的关键技术在于使嵌入式设备可以支持HTTP服务并具有Web服务器的功能[2]。对于网络用户而言,EWS提供了一个基于Web的图形界面,以便于其对接入Internet的多种嵌入式设备进行统一的标准化管理,而不再需要特殊的专用协议和管理软件。监控系统的架构如图1所示。
在本系统中,EWS内嵌于设备中并通过串口连接设备,每个设备都具有自身的IP地址,经内部EWS由RJ-45接口接入本地局域网(LAN)中(本实验中,LAN为以太网)。一方面EWS读取设备状态信息并将其发送给本地或远程用户;另一方面则接收控制指令并发送给设备。而更大范围的广局网通信则可通过Internet或移动通信网络实现。
2 EWS的设计与实现
2.1 软件架构
本系统采用浏览器/服务器的结构实现,其中包括两部分——网络浏览器与EWS,EWS通过嵌入式网络技术实现其功能。在实际应用中,EWS被配置在嵌入式设备中,作为设备的一部分而存在,这使得该设备无需更多改动或配置即可直接接入网络。与此同时EWS还内建了TCP/IP协议栈、嵌入式文件系统、设备网关及硬件接口等组件,其基本架构如图2所示。
在该架构中,嵌入式文件系统对事先配置的监控页面进行存储和管理。嵌入式设备网关实现了TCP/IP与实际使用的特定设备自身控制协议之间的相互转换,从而实现了双向透明通信。两种不同结构的网络便可通过嵌入式设备相互连接,而硬件接口则负责EWS、硬件设备及网络之间的连接。
当本系统工作时,首先EWS接收到来自局域网的客户端基于网址的请求并回应该请求。通过回应事先配置好并存放在嵌入式文件系统中的监控网页界面,用户可通过标准的浏览器向远端设备发送指令。该指令经由互联网传送后被设备网关接收,设备网关将其翻译为专用指令并进一步传递给硬件设备本身。与此同时,设备数据或信号也被传输给远程客户端以供用户查看。
2.2 简化TCP/IP协议栈
嵌入式互联网技术有效地解决了嵌入式设备接入因特网的问题,使得这些设备可通过普通的浏览器进行远程访问和控制,如何将TCP/IP协议栈内嵌到设备中是解决问题的关键所在。传统的TCP/IP协议栈相对比较庞大复杂并需要固定的系统资源支持,而大部分嵌入式设备都采用8位或16位MCU,其运算能力和系统资源比较薄弱。若直接将传统的TCP/IP协议栈接入设备,则大部分运算时间和系统资源都将被占用,这对系统的整体性能影响很大[3]。为了解决此矛盾,在设计该监控系统时根据具体情况选用了成熟的LWIP协议栈以实现网络功能,同时最大限度地减少系统资源消耗并提高了可靠性。
LWIP(Light-weight Internet Protocol)是瑞士计算机科学院的Adam、Dunkels等人开发出来的一套用于嵌入式系统的开放源代码TCP/IP协议栈。从系统需求上,LWIP既可移植到操作系统上,又可在无操作系统的情况下独立运行。并且LWIP协议栈在保持了TCP/IP协议主要功能的基础上, 减少了对RAM的占用。只需容量几十KB的RAM和40 KB的ROM就可以运行,使得LWIP协议非常适合在嵌入式系统中使用[4]。其主要特点有:
(1)支持多网络接口下的IP转发。
(2)支持网间控制报文协议ICMP(Internet Control Messages Protocol)。
(3)包含有实验性扩展的用户数据报协议UDP(User Datagram Protocol)。
(4)包括阻塞控制、RTT估算和快速恢复及快速转发的传输控制协议TCP(Transfer Control Protocol)。
(5)具有专门提供的内部回调应用编程接口Raw API(Application Programming Interface),可用于提高应用程序性能。
(6)带有可选择的Berkeley接口API(多线程情况下);能支持动态主机配置协议(DHCP)和动态分配IP地址。
LWIP协议栈的内部分层结构如图3所示。经分析和实际测试,该协议栈可在16位MCU顺利运行并可满足本监控系统的全部功能需求。
2.3 嵌入式文件系统
在实际工作时,根据客户端浏览器的请求,EWS将相应的管理页面发送至客户端。因此对于本系统来说,必需要实现对这些页面文件的存储和访问管理,为此在本系统中内建了一个嵌入式文件系统以便于对Flash中的页面文件及其他数据进行管理和访问控制[5]。
本系统中,文件系统根据文件的名称、长度及起始地址对其进行管理。在结构上,该文件系统并未采用多级目录,而是将所有的文件都列于单个根目录之下。这种目录结构虽然并不适合于容量快速增加的文件系统,但定位和提取文件的速度有较大的优势。
当本监控系统的文件需要进行较大的变更时,可通过TFTP协议对文件系统进行重构。虽然这种文件系统的结构和功能比较简单,但可满足绝大多数情况下嵌入式互联网的需求,即频繁地文件访问和较少地文件变更。
3 实际应用和测试
本监控系统已在无线电信号监测项目中得到应用,其硬件平台为远程无人监测站,通过Internet网络接收用户指令并将监测数据上传。在这个项目中,测量仪器通过本监控系统中的EWS接入互联网中,测量仪器本机采用Megatec协议。远程用户指令由EWS翻译成Megatec协议格式再交由仪器执行,同时将监测数据回传给客户端。从功能上来说,客户可执行如下操作:
(1)实时或定时获取远程无人站的测量数据。
(2)实时监控远程无人站的状态和参数。
(3)对远程无人站的运行参数进行配置,以便于满足预定的或突发状态的需求。
本项目中的主监控界面如图4所示。
本文研究并实现了一种基于EI的远程监控系统。该系统采用客户端/服务器的结构。通过在嵌入式设备中内建一个嵌入式Web服务器,本监控系统可使嵌入式设备直接接入Internet,同时用户可使用标准的网络浏览器对嵌入式设备进行远程管理和控制。本系统已在无线电监测项目中得到实际应用,成功地获取了远程无人监测站的监测数据并可对监测站进行控制。由此,其设计功能全部得以实现。实际测量数据显示本监控系统的数据响应时延为毫秒级,此项指标可以满足绝大多数远程监控项目的需求。
参考文献
[1] RASKOVIC, REVURI D, GIESSEL V, et al. Embedded web server for wireless sensor networks, system theory(SSST)[M]. 41st Southeastern Symposium on: Tullahoma,TN,USA. 2009.
[2] SHIMANO M, OKAZAKI F, SAITO Y, et al. Small embedded Web server for home appliances with embedded MPU and real-time operating system[C]. IEEE International Symposium on Consumer Electronics, 2007.
[3] 王力生,梅岩,曹南洋.轻量级嵌入式TCP/IP协议栈的设计[J].计算机工程,2007(1):247-248.
[4] 孙乐鸣,江来,代鑫.嵌入式TCP/IP协议栈LWIP的内部结构探索与研究[J].技术前沿,2008(3):79-82.
[5] ISHIZUMI N, SAISHO K, FUKUDA A. A design of flash memory file system for embedded systems[M]. Proceedings of Systems and Computers, Japan, 2004.