李博,楊敏,賀軍鋒,張盛兵,張小林
(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嵌入式網絡協議簡介
目前嵌入式網絡所運行的協議模型主要為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位處理器的嵌入式系統設計實現。
在設計中以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 測試模塊硬件結構圖
測試模塊要實現基于網絡總線的采集功能,其軟件設計非常重要。整體軟件采用模塊化的方式設計,包括:管理模塊、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 上位機數據采集結果顯示
遠程數據采集是計算機控制、測量領域發展需要,也是傳統數據采集技術的升華和改進。利用嵌入式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—),男,陜西渭南人,博士。研究方向:飛行控制計算機。