基于嵌入式web服务器远程测试模块的设计与实现
2016-10-14李博杨敏贺军锋张盛兵张小林
李博,杨敏,贺军锋,张盛兵,张小林
(1.西北工业大学计算机学院,陕西西安710065;2.西安爱生技术集团公司(西北工业大学第365研究所),陕西西安710065;3.中国人民解放军驻西北工业大学军事代表室陕西西安710065)
基于嵌入式web服务器远程测试模块的设计与实现
李博1,2,杨敏3,贺军锋3,张盛兵1,张小林2
(1.西北工业大学计算机学院,陕西西安710065;2.西安爱生技术集团公司(西北工业大学第365研究所),陕西西安710065;3.中国人民解放军驻西北工业大学军事代表室陕西西安710065)
针对武器装备对远程测试需求,提出一种适用于远程测试的基于嵌入式系统的网络化测试方法。通过对网络环境特点的分析,阐述了用嵌入式web技术实现远程测试的关键技术,并给出基于微处理器的网络总线测试模块硬件、软件的实现方法。实验结果表明,基于嵌入式web服务器技术测试模块能够有效的解决远程测试的问题。
嵌入式web服务器;远程测试;网络协议;微处理器
为了解决这个问题,本课题提出了以嵌入式处理器为核心,以嵌入式网络协议栈为网络通信协议,以嵌入式软件为应用软件的微型web服务器数据采集设备。在使用时,web服务器可集成到被测试武器装备的嵌入式系统中,可通过武器装备系统的电网取电,无需额外配备发电设备。测试数据可通过普通网线传输安全线之外的PC机中,测试人员不需要开发PC机中数据显示软件,仅通过PC机所自带的IE浏览器访问嵌入式web服务器,便可现实当前的测试数据。这种方法使用方便、成本低、功耗低、体积小能够满足众多远程测试领域较多[1]。
1 嵌入式网络构架关键技术研究
1.1嵌入式网络协议简介
目前嵌入式网络所运行的协议模型主要为TCP/IP网络模型,是一种基于TCP/IP协议栈的网络模型[2],共分为四层:网络接口层、网际层、传输层和应用层,如表1所示。每一层代表一类协议同时实现对应功能,传输的数据按照此层协议对应的帧格式进行传输,如果所传输数据帧格式错误,会被认为是无效数据。其中ARP协议、IP协议、ICMP协议和传输层协议是必不可少的,这些协议可以保证一台网络设备完成数据的网络传输。开发者可根据自己项目的功能需要在各层添加协议模块开发出种类繁多的网络设备。
表1 TCP/IP网络模型
随着计算机技术和网络技术的日益发展,使用专用的、便携的设备上网成了越来越多领域的发展的新方向,进而更推动了嵌入式网络技术的发展,涌现出越来越多的开放源代码的TCP/IP协议栈以及向嵌入式处理器移植的方案,大大迎合了参与嵌入式网络项目开发者的需要。
1.2嵌入式网络协议栈选择
在实现嵌入式网络技术时,如何选择一个合适硬件系统的开源协议栈是非常关键的,一般可以从4个方面来考虑:第一,是否提供易用的底层硬件API,即与硬件平台的无关性;第二,与操作系统的内核API,协议栈需要调用的系统函数接口是否容易构造;第三,对于应用支持程度;第四,占用的系统资源是否在可接受范围内,有裁减优化的空间。
目前常用的嵌入式TCP/IP协议栈代码有uC/IP,uIP,Nichelite等。uC/IP是一套基于uC/OS且开放源码的TCP/IP协议栈,协议栈需要的代码容量空间在30~60KB之间。uIP是专门为8位和16位处理器设计的TCP/IP栈,编译过的栈可以在几KB ROM或几百字节RAM中运行。Nichelite是全功能的32位TCP/IP协议栈,完整编译下的代码量仅12KB,支持多个TCP/IP协议栈。
刘小枫认为:“卡夫卡的受苦是自己性情中的两个世界的紧张引起的,他的信仰就是这两个世界的紧张之间的绳索”。[18]184-229的确如此,卡夫卡像一个孩子,一个不愿意妥协的未成年,在这两个世界中辗转,无法像英雄一样面对其中任何一个,承担生命的责任。卡夫卡找不到自己的位置和身份。卡夫卡一直在这种矛盾中痛苦着,在归宿中挣扎着,直到无家可归,无路可走。卡夫卡用敏锐的眼睛看到了这个世界;用柔软的内心感知到了这个世界,可是上下求索而不得的他最后却给不出答案——“这世界是我们的迷雾。”[19]132
在本课题所研究的内容为远程测试武器装备中模拟量控制信号,通道数为4路,采集范围为-5~+5 V。针对此需求,可以通过32位处理器的嵌入式系统设计实现。
2 嵌入式硬件设计
在设计中以32位处理器为核心,并在外围扩展网络接口电路为设计思想。测试模块由数据处理单元、网络接口单元、AD采集单元、供电单元组成。数据处理单元为测试模块的核心,用于驱动AD采集单元、驱动网络单元、转换AD采集数据、运行网络协议等。网络接口单元用于接收上位机数据,发送测试模块回传数据。AD采集单元用于实现对被采信号的AD转换,并将转换的数据发送给数据处理单元。供电单元用于给各个单元提供工作电压[3]。
其中测试模块的处理器选用NXP公司的LPC2368处理器,LPC2368是高性能、低功耗的32位单片机其内部集成了一个高性能32位ARM7核,采用先进的RISC结构。并且该处理器内包含1个10/100Ethernet MAC接口和1个10位A/ D转换器。可以用来实现嵌入式网络硬件平台设计。
由于LPC2368中的网络控制器支持的是IEEE802.3子款22,所以不能直接使用RJ45为网络接口。而需要连接一个外围网络数据收发器。在设计中选用NI公司的DP83848作为网络收发器。
AD采集单元由AD采集电路和信号调理电路组成。AD采集电路采用处理器自带的片内AD进行采集。本方案中所选的处理器内集成有8路10位AD采集通道,通过AREF引脚设置片内通道采集范围为0~2.5 V。在本实现方案中AD采集通道数为4路。信号调理电路通过差动输入运算电路电路将外部输入信号调理到单片机AD通道采集范围内。同时使用调理电路后板卡的AD采集范围可为-5~+5 V,整体采集精度为0.009 5 V/bit。
由于以上所使用的电路工作电压均为5 V,因此测试模块供电电路采用LM7805作为供电电路核心芯片,为提高采集精度和模块工作的可靠性,在其输入端和输出端并联电容以减少电网纹波对系统的干扰。
综上所述硬件原理图如图1所示。
图1 测试模块硬件结构图
3 嵌入式软件设计
测试模块要实现基于网络总线的采集功能,其软件设计非常重要。整体软件采用模块化的方式设计,包括:管理模块、AD采集模块、数据处理模块、网络通信模块。
管理模块用于测试模块上电工作后,处理器对测试模块中各个硬件资源进行管理和配置,包括:初始化程序、看门狗喂狗程序和时序控制等,为测试模块其他模块程序能够正常运行提供保障。
AD采集模块用于驱动处理器内部AD转换器。实现对信号调理电路输出的模拟信号的采样。通过实验表明,AD采集在中断程序中完成可实现高采样率。
数据处理模块的功能包含两部分:第一,实时处理AD模块采集数据,并交与网络通信模块进行通信;第二,实时接收网络通信模块所解析到的主控机发送的指令,并执行响应的操作。由于本项目使用的微处理器内部AD通道,其实现方法有大量的论文或资料可以查询,本文不做详细描述,本文主要描述如何实现嵌入式网络通信。
网络通信模块是测试模块程序设计的关键,用于实现在嵌入式平台上运行TCP/IP协议,并能与主控机进行数据和消息指令的通信。测试模块只能运行用于嵌入式平台、32位处理器所能运行的TCP/IP协议栈。测试模块的网络通信模块中的TCP/IP协议栈移植于开源的Nichelite网络协议栈,Nichelite实现目标是保证代码量和储存器使用量最小,一个编译过的协议栈不超过12KB,并且支持多任务处理机制。并且使用的是C编程语言,可以非常方便的移植到单片机中[4]。
Nichelite协议栈源代码中的nichipport.h文件中定义IP地址,可将测试模块数据传输层协议配置为TCP协议,同时可设置测试模块的IP地址、网关和子网掩码,本项目中将IP地址设置为192.168.1.120。
Nichelite代码仅是实现网际层和传输层通信协议代码,因此开发者必须自己开发网络接口层的驱动和应用层的应用程序,包括:底层对网络控制模块的驱动程序、上层应用程序、系统定时服务程序。网络控制模块的驱动程序包括芯片上电初始化代码、模块网络物理地址的设定、收发缓冲区位置和大小。
同时需对Nichelite协议的收发缓冲区和收发缓冲区长度进行设定。Nichelite程序的接口定义在netbuf.h中,用在驱动程序放入一个数据包在缓冲区中时调用。通过pk_alloc()和pc_free()为程序分配和释放内存。与底层硬件的接口函数为inet_timer()。此函数用于产生定时中断,执行中断服务程序。
发送数据则通过nic_send()将数据发送至以太网中,通过nic_retreive()从以太网中接收数据。应用层使用HTTP作为网络通信协议,在本项目中由于仅显示4通道采集数据,web网页数据内容较少,在应用程序设计时将web网页数据以头文件的方式定义在软件工程中,随同其他源文件一同编译。其中在编写应用程序时,必须将其定义为该层的服务程序[5]。
综上所示测试模块软件流程图如图2所示。
图2 数据测试模块软件流程图
在流程中“处理数据包”内运行的为TCP/IP应用层程序,主要功能包括封装AD采集数据,运行IP通信协议,相应HTTP数据请求,发送HTTP网页数据等。
具体编程时需将Nichelite配置成允许4个并发连接,1个监听端,10个ARP表项,并将其属性NIC_ZBUFSIZE= 1500。
经实验验证测试模块采集数据可在10 Mbps网络中完成实时传输,能够满足一般完成采集数据的需要。图3为上位机通过IE浏览器访问测试模块的运行结果。
在IE浏览器地址栏输入模块的IP浏览地址便可访问模块内所存储的网页界面,同时网页界面中数据显示控件为实时刷新数据。远程测试模块将采集4路模拟信号,采集范围为-5~+5 V,上位机以50 ms数据访问测试模块,所显示的数据与试验中所设置的模拟电压值相符合。
图3 上位机数据采集结果显示
4 结束语
远程数据采集是计算机控制、测量领域发展需要,也是传统数据采集技术的升华和改进。利用嵌入式web服务器技术可以将远程数据采集进行模块化、开放式设计,有利的提高空间灵活应用,降低计算机远程控制系统、测量系统等的构建成本,保证了系统的兼容性和可扩展性,也会使得这种技术会在航空航天、军事国防、工农业生产、环境监测等领域得到广泛的应用[6]。
[1]朱宇,冯明亮.基于ARM&Linux的嵌入式网络控制系统的设计[J].电子设计工程,2011,19(19):120-122.
[2]Odom W著,李强译.计算机网络第一阶[M].北京:人民邮电出版社,2004.
[3]李博,赵建,方海燕.基于嵌入式Internet技术LXI仪器通信模块的设计[J].计算机测量与控制,2007,15(12):1810-1813.
[4]Sveda M.A design framework for internet-based embedded distributed system[C]//Proceedings-11th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems,ECBS 2004,2004:113-120.
[5]Szymanski J W.Embedded Internet technology in process control devices[C]//IEEE International Workshop on Factory Communication Systems-WFCS,2000:301-308.
[6]Zhao Jian,Li Bo,Yan Shen,et al.Design and realization of communication module of LXI data interface based on MCU[C]//Proceedings of 2007 8thInternational Conference on Electronic Measurement&Instruments,2007:870-874.
Design and realization of remote testing method based on embedded web server technology
LI Bo1,2,YANG Min3,HE Jun-feng3,ZHANG Sheng-bing1,ZHANG Xiao-lin2
(1.NWPU Computer Institute,Xi'an 710065,China;2.Xi'an ASN Technology Group Co.Ltd(NWPU 365th Institute),Xi'an 710065,China;3.PLA Military Representative Office in NWPU,Xi'an 710065,China)
This paper show a networking testing method for remote testing based on embedded Web server technology,through analyzing the requirement of remote testing for weapons.Through analyzing the character of the network,the paper expound the key technology to realize the remote testing with Web server technology and the hardware and software design of network testing module with MCU.The result show that the testing module based on Web server technology could fulfill the requirement of remote testing effectively.
embedded web sever;remote testing;net protocol;MCU
TN06
A
1674-6236(2016)12-0185-03
2015-07-04稿件编号:201507040
李博(1983—),男,陕西渭南人,博士。研究方向:飞行控制计算机。