陳 娟,李 元,李萬(wàn)國(guó)
(1.北京航空航天大學(xué) 機(jī)械工程及自動(dòng)化學(xué)院,北京 100083;2.宇航智能控制技術(shù)國(guó)家級(jí)重點(diǎn)實(shí)驗(yàn)室,北京 100854)
基于B/S模式的嵌入式系統(tǒng)測(cè)試方法與實(shí)現(xiàn)
陳娟1,2,李元1,李萬(wàn)國(guó)1
(1.北京航空航天大學(xué) 機(jī)械工程及自動(dòng)化學(xué)院,北京 100083;2.宇航智能控制技術(shù)國(guó)家級(jí)重點(diǎn)實(shí)驗(yàn)室,北京 100854)
針對(duì)分布式測(cè)試系統(tǒng)的研發(fā)需求,綜合網(wǎng)絡(luò)通信技術(shù)、數(shù)據(jù)庫(kù)技術(shù)以及嵌入式技術(shù)等構(gòu)建了一種基于B/S(Browser/Server)模式的嵌入式測(cè)試系統(tǒng)。通過(guò)移植 Web服務(wù)器Boa、輕量級(jí)數(shù)據(jù)庫(kù)SQLite、網(wǎng)絡(luò)時(shí)鐘同步協(xié)議 NTP(Network Time Protocol),實(shí)現(xiàn)了一個(gè)完整的測(cè)試系統(tǒng)。系統(tǒng)前臺(tái)采用實(shí)時(shí)圖形化Web頁(yè)面顯示,使用Ajax異步數(shù)據(jù)傳輸與后臺(tái)進(jìn)行數(shù)據(jù)通信,實(shí)現(xiàn)了頁(yè)面局部動(dòng)態(tài)刷新,優(yōu)化人機(jī)交互過(guò)程。測(cè)試系統(tǒng)通過(guò)局域網(wǎng)實(shí)驗(yàn)驗(yàn)證,取得了良好的效果,符合預(yù)期目標(biāo),為今后研發(fā)基于B/S模式的嵌入式分布式測(cè)試系統(tǒng)打下基礎(chǔ),具有一定的參考價(jià)值。
嵌入式測(cè)試系統(tǒng);嵌入式服務(wù)器;數(shù)據(jù)庫(kù);異步數(shù)據(jù)交互;通用網(wǎng)關(guān)接口
伴隨數(shù)字信息技術(shù)高速發(fā)展,嵌入式系統(tǒng)設(shè)備數(shù)量已經(jīng)遠(yuǎn)超過(guò)通用計(jì)算機(jī),后PC時(shí)代已經(jīng)到來(lái)。嵌入式系統(tǒng)設(shè)備廣泛服務(wù)于網(wǎng)絡(luò)通信、消費(fèi)電子、工業(yè)控制、測(cè)控等多個(gè)領(lǐng)域。
嵌入式技術(shù)在測(cè)試領(lǐng)域應(yīng)用日益成熟,但由于其具體應(yīng)用場(chǎng)合不同,難以形成統(tǒng)一的軟件開(kāi)發(fā)框架。呂國(guó)勇、史祥龍等人分析了 Ajax異步交互、CGI(Comment Gateway Interface)通用網(wǎng)關(guān)在嵌入式系統(tǒng)中的應(yīng)用[1-2],從而減輕了服務(wù)器的負(fù)擔(dān),提高了客戶端與服務(wù)器之間的交互速度。劉利枚、周鮮成等人對(duì)嵌入式軟件測(cè)試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行了探索,提出了一種實(shí)用的嵌入式軟件動(dòng)態(tài)測(cè)試系統(tǒng)的結(jié)構(gòu)框架[3]。蔡勇、王勇等人基于嵌入式數(shù)據(jù)庫(kù) SQLite3.0技術(shù)設(shè)計(jì)了測(cè)控系統(tǒng),分析了嵌入式數(shù)據(jù)庫(kù)的特點(diǎn)和關(guān)鍵技術(shù),著重研究了應(yīng)用方式和移植方法[4]。張振、王小寧等人對(duì)嵌入式 Web服務(wù)器Boa的移植與應(yīng)用進(jìn)行了研究,并實(shí)現(xiàn)了其在控制領(lǐng)域的遠(yuǎn)程管理[5]。本文在前人的技術(shù)基礎(chǔ)上進(jìn)行綜合、擴(kuò)展,提出了一套較為成熟的基于B/S測(cè)控模式的嵌入式軟件架構(gòu),并對(duì)其中軟件的實(shí)現(xiàn)及移植過(guò)程進(jìn)行了較為全面的探討和總結(jié),最終提供一套具體可行的實(shí)現(xiàn)方案。
系統(tǒng)采用 B/S軟件架構(gòu)模式,Server端為嵌入式測(cè)試系統(tǒng),具備Web服務(wù)和數(shù)據(jù)庫(kù)存儲(chǔ)能力,Browser端為符合W3C的標(biāo)準(zhǔn)瀏覽器。
用戶通過(guò)Web頁(yè)面登錄至服務(wù)器后發(fā)出配置、測(cè)試等控制命令;Server響應(yīng)用戶的請(qǐng)求,調(diào)用對(duì)應(yīng)的CGI服務(wù)程序,并采用Ajax異步數(shù)據(jù)傳輸?shù)姆绞綄y(cè)試結(jié)果動(dòng)態(tài)返回至用戶Web頁(yè),前端采用波形曲線、指針等多種形式展現(xiàn)數(shù)據(jù)。
1.1硬件結(jié)構(gòu)
系統(tǒng)硬件結(jié)構(gòu)分為4個(gè)部分:嵌入式測(cè)試系統(tǒng)、交叉編譯系統(tǒng)、被測(cè)對(duì)象配電器和時(shí)鐘同步系統(tǒng)。嵌入式測(cè)試系統(tǒng)采用ARM11-S3C6410處理器,操作系統(tǒng)內(nèi)核為L(zhǎng)inux2.6.3.8。交叉編譯系統(tǒng)與嵌入式測(cè)試系統(tǒng)通過(guò)NFS(Network File System)網(wǎng)絡(luò)文件系統(tǒng)、TFTP(Trivial File Transfer Protocol)文件傳輸協(xié)議、串口通信等協(xié)議來(lái)進(jìn)行系統(tǒng)調(diào)試、程序傳輸以及與下位機(jī)進(jìn)行通信。嵌入式測(cè)試系統(tǒng)繼電器模塊、AD轉(zhuǎn)換模塊與被測(cè)對(duì)象配電器通過(guò)兩條通信電纜相連,系統(tǒng)產(chǎn)生激勵(lì)并讀取配電器返回的測(cè)試結(jié)果。嵌入式測(cè)試系統(tǒng)通過(guò)NTP協(xié)議與外部的時(shí)鐘服務(wù)器同步,可為今后擴(kuò)展為分布式測(cè)試系統(tǒng)提供統(tǒng)一時(shí)鐘校對(duì)服務(wù)。系統(tǒng)硬件結(jié)構(gòu)如圖1所示。
圖1 測(cè)試系統(tǒng)硬件結(jié)構(gòu)圖
1.2軟件結(jié)構(gòu)
測(cè)試系統(tǒng)軟件采用B/S架構(gòu)模式,軟件分為3層結(jié)構(gòu)進(jìn)行設(shè)計(jì)。整個(gè)結(jié)構(gòu)分為上層、中間層和底層3部分:上層為用戶接口界面,負(fù)責(zé)接受用戶指令、顯示動(dòng)態(tài)數(shù)據(jù)等;中間層由Web服務(wù)器和數(shù)據(jù)庫(kù)構(gòu)成,負(fù)責(zé)提供Web服務(wù)、數(shù)據(jù)存儲(chǔ)等功能;底層由硬件驅(qū)動(dòng)程序、測(cè)試應(yīng)用程序構(gòu)成,提供底層函數(shù)調(diào)用。
根據(jù)上文所述硬件結(jié)構(gòu)、軟件架構(gòu),設(shè)計(jì)并實(shí)現(xiàn)測(cè)試系統(tǒng)的各部分功能。以下就本設(shè)計(jì)的關(guān)鍵模塊進(jìn)行詳細(xì)說(shuō)明。系統(tǒng)功能模塊設(shè)計(jì)如圖2。
圖2 系統(tǒng)功能模塊設(shè)計(jì)
2.1用戶界面設(shè)計(jì)
用戶界面設(shè)計(jì)主要分為4個(gè)功能模塊:用戶身份驗(yàn)證模塊、測(cè)試設(shè)備基本信息瀏覽與配置模塊、動(dòng)態(tài)數(shù)據(jù)查看模塊和歷史數(shù)據(jù)瀏覽模塊。
用戶身份驗(yàn)證模塊加強(qiáng)了系統(tǒng)安全性,分為普通用戶和管理員兩種權(quán)限模式?;拘畔g覽模塊與配置模塊將調(diào)用底層CGI程序獲取設(shè)備基本信息,如服務(wù)器IP地址、客戶端 IP地址、主機(jī)名稱、內(nèi)核版本等信息;動(dòng)態(tài)數(shù)據(jù)顯示模塊采用開(kāi)源的Flot Javascript插件,將數(shù)據(jù)以數(shù)字、儀表、曲線多種方式來(lái)呈現(xiàn)。前臺(tái)與后臺(tái)數(shù)據(jù)交換采用了Ajax異步通信技術(shù)來(lái)實(shí)現(xiàn)動(dòng)態(tài)更新頁(yè)面;歷史數(shù)據(jù)查看模塊調(diào)用后臺(tái)數(shù)據(jù)庫(kù)歷史數(shù)據(jù)后采用 Ajax異步通信更新前端頁(yè)面,并自動(dòng)生成CVS格式的歷史數(shù)據(jù)文件,用戶下載后可用于數(shù)據(jù)分析。
2.2Web服務(wù)器、數(shù)據(jù)庫(kù)設(shè)計(jì)
為構(gòu)建 B/S模式測(cè)試系統(tǒng),系統(tǒng)必須具備提供 Web服務(wù)能力和實(shí)驗(yàn)數(shù)據(jù)管理能力。本節(jié)詳細(xì)介紹服務(wù)器和數(shù)據(jù)庫(kù)的實(shí)現(xiàn)過(guò)程。
2.2.1嵌入式Web服務(wù)器設(shè)計(jì)
目前在嵌入式設(shè)備中常用的 Web服務(wù)器有 Boa、thttpd、Mini_httpd等,同等硬件條件下,Boa顯示出更快的處理速度,內(nèi)存需求小,能耗低,支持 CGI腳本程序。
主要移植步驟如下:(1)編譯源碼,生成 ARM架構(gòu)下可執(zhí)行文件 Boa。(2)修改服務(wù)器配置文件相關(guān)參數(shù):DocumentRoot(測(cè)試頁(yè)面文檔路徑)、ScriptAlias(測(cè)試 CGI腳本路徑)。
圖3為服務(wù)器文件部署目錄,在boa.conf中更改參數(shù)如下:DocumentRoot/Testwww;ScriptAlias/cgi-bin//Testwww/CGIScripts/。Pages目錄主要部署 HTML網(wǎng)頁(yè)文件、JavaScript腳本文件;CGIScripts目錄部署 CGI腳本程序,包括數(shù)據(jù)庫(kù)查詢腳本、數(shù)據(jù)測(cè)試腳本、獲取設(shè)備基本信息腳本等;DataTbls目錄主要存儲(chǔ)數(shù)據(jù)庫(kù)文件,包括歷史數(shù)據(jù)表、用戶密碼數(shù)據(jù)表、設(shè)備基本信息表。分類目錄設(shè)計(jì)更利于文檔的編輯和管理。
圖3 嵌入式服務(wù)器文件部署目錄
2.2.2嵌入式數(shù)據(jù)庫(kù)設(shè)計(jì)
嵌入式設(shè)備中常用的數(shù)據(jù)庫(kù)有 mSQL、SQLiteDB等。經(jīng)對(duì)比選擇開(kāi)源數(shù)據(jù)庫(kù) SQLiteDB,它支持?jǐn)?shù)據(jù)庫(kù)大小為2 TB,足夠小,全部代碼250 KB,比目前流行的大多數(shù)數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的操作要快。
移植步驟如下:(1)編譯源碼包生成可執(zhí)行文件目錄。(2)將編譯生成的 bin、include、lib目錄通過(guò) NFS文件系統(tǒng)復(fù)制至對(duì)應(yīng)嵌入式文件系統(tǒng)下。
根據(jù)需求分析設(shè)計(jì)數(shù)據(jù)庫(kù)實(shí)體對(duì)象,分為用戶實(shí)體、設(shè)備基本信息實(shí)體、歷史數(shù)據(jù)測(cè)試信息實(shí)體,最終設(shè)計(jì)對(duì)應(yīng)的數(shù)據(jù)表。圖4給出用戶實(shí)體E-R圖。
圖4 用戶E-R圖
2.3CGI、Ajax異步通信設(shè)計(jì)
為了加強(qiáng)系統(tǒng)頁(yè)面與用戶的動(dòng)態(tài)交互性,本系統(tǒng)采用CGI與Ajax的解決方案。使用CGI技術(shù)在服務(wù)器端發(fā)布動(dòng)態(tài)網(wǎng)頁(yè),與Ajax的XMLHttpRequest組件進(jìn)行數(shù)據(jù)交互,實(shí)現(xiàn)了動(dòng)態(tài) Web功能,使網(wǎng)頁(yè)局部自動(dòng)刷新,無(wú)須手動(dòng)更新網(wǎng)頁(yè)。這是本系統(tǒng)前臺(tái)與后臺(tái)數(shù)據(jù)通信的主要方式。
圖5 Ajax異步通信過(guò)程
工作流程如下:(1)用戶通過(guò)Web瀏覽器訪問(wèn)嵌入式服務(wù)器中部署好的測(cè)試頁(yè)面,服務(wù)器響應(yīng)瀏覽器請(qǐng)求,返回內(nèi)嵌有JavaScript腳本的Web頁(yè)面。(2)瀏覽器解析返回頁(yè)面代碼并顯示,執(zhí)行內(nèi)嵌的 JavaScript腳本程序。(3)用戶在瀏覽器輸入的數(shù)據(jù)首先由 JavaScript程序預(yù)處理,然后通過(guò) XMLHttp Request對(duì)象向服務(wù)器發(fā)出異步請(qǐng)求。服務(wù)器解析請(qǐng)求參數(shù)后調(diào)用底層相應(yīng)驅(qū)動(dòng)程序進(jìn)行測(cè)試或存取數(shù)據(jù)庫(kù),并將獲取的數(shù)據(jù)以XML格式返回給瀏覽器。(4)瀏覽器通過(guò)responseXML方法獲得數(shù)據(jù),然后通過(guò)DOM文檔對(duì)象模型來(lái)更新用戶界面。
2.4測(cè)試系統(tǒng)時(shí)鐘同步設(shè)計(jì)
以上討論的是單測(cè)試系統(tǒng)組網(wǎng)情況,而B(niǎo)/S架構(gòu)可搭建分布式測(cè)試系統(tǒng)。在分布式系統(tǒng)中,常常需要一個(gè)全局時(shí)間,用來(lái)確定系統(tǒng)中各種事件發(fā)生的先后、協(xié)調(diào)各種消息的傳輸、控制和監(jiān)視系統(tǒng)的狀態(tài),這就需要對(duì)系統(tǒng)中各個(gè)部件進(jìn)行時(shí)鐘同步,保障局部時(shí)間統(tǒng)一。
2.4.1網(wǎng)絡(luò)時(shí)間同步協(xié)議
常用的網(wǎng)絡(luò)時(shí)間同步協(xié)議主要有NTP(Net Work Protocol)、SNTP(Simple Net Work Protocol)以及 PTP(Precision Time Protocol)等,表1為三者綜合比較。
表1 不同時(shí)鐘同步協(xié)議對(duì)比
考慮協(xié)議的同步時(shí)間精度及其實(shí)現(xiàn)的難易度,決定采用NTP作為測(cè)試網(wǎng)絡(luò)中的時(shí)鐘同步協(xié)議。NTP時(shí)間同步模式分為4種:客戶端/服務(wù)器模式、對(duì)等體模式、廣播模式、組播模式。系統(tǒng)采用客戶端/服務(wù)器模式。
2.4.2設(shè)計(jì)方案
首先構(gòu)建測(cè)試網(wǎng)絡(luò),采用一臺(tái)Windows7操作系統(tǒng)的主機(jī)作為時(shí)鐘源服務(wù)器,兩臺(tái)嵌入式測(cè)試設(shè)備作為被同步對(duì)象。3個(gè)節(jié)點(diǎn)由路由器連接,構(gòu)成局域測(cè)試網(wǎng)絡(luò)。
其次配置時(shí)鐘源服務(wù)器、移植NTP協(xié)議至嵌入式測(cè)試設(shè)備。(1)對(duì)于Windows時(shí)鐘服務(wù)器只需更改注冊(cè)表相應(yīng)參數(shù),使其對(duì)外提供NTP服務(wù)。(2)嵌入式測(cè)試系統(tǒng)將作為 NTP協(xié)議的Client,首先需要移植NTP協(xié)議。其次在配置文件 ntp.conf中添加語(yǔ)句 server 192.168.1.131,根據(jù)具體IP參數(shù)設(shè)置時(shí)鐘服務(wù)器的IP地址。(3)將嵌入式系統(tǒng) ntpd設(shè)置為開(kāi)機(jī)自啟動(dòng)服務(wù),在/etc/init.d/rcS添加如下語(yǔ)句:ntpdate 192.168.1.131;/etc/init.d/ntpd。首先ntpdate將行一次時(shí)間校正,以防止服務(wù)器和客戶端時(shí)間誤差太大導(dǎo)致ntpd更新失敗,然后啟動(dòng)ntpd服務(wù),該服務(wù)每隔64 s會(huì)自動(dòng)更新一次時(shí)間,在局域網(wǎng)條件下時(shí)鐘同步誤差范圍為1~10 ms之間。
圖6 測(cè)試數(shù)據(jù)實(shí)時(shí)顯示頁(yè)面
使用瀏覽器登錄B/S模式嵌入式測(cè)試系統(tǒng)。圖6為測(cè)試數(shù)據(jù)實(shí)時(shí)顯示頁(yè)面,左側(cè)為動(dòng)態(tài)數(shù)字顯示,并且對(duì)異常數(shù)據(jù)用顏色標(biāo)識(shí)提示,右側(cè)為儀表顯示方式,以更加直觀的方式查看數(shù)據(jù)。圖7為波形圖表顯示頁(yè)面,直觀顯示數(shù)據(jù)隨時(shí)間變化趨勢(shì)。
圖7 波形圖表顯示頁(yè)面
本文通過(guò)基于嵌入式B/S模式測(cè)試系統(tǒng)的構(gòu)建以及基于ARM平臺(tái)的測(cè)試程序設(shè)計(jì),對(duì)其中的服務(wù)器搭建、數(shù)據(jù)庫(kù)配置、前后臺(tái)數(shù)據(jù)傳輸方式以及未來(lái)多測(cè)試子系統(tǒng)組網(wǎng)的時(shí)鐘同步問(wèn)題進(jìn)行了詳細(xì)的闡述。從底層數(shù)據(jù)采集到數(shù)據(jù)存儲(chǔ)以及上層數(shù)據(jù)顯示都較好地完成了配電器測(cè)試任務(wù),最終提出了一套可行的構(gòu)建嵌入式測(cè)試系統(tǒng)方案。本文研究對(duì)未來(lái)實(shí)現(xiàn)B/S模式的分布式遠(yuǎn)程測(cè)控系統(tǒng)打下了良好基礎(chǔ),具有一定的參考價(jià)值。
[1]呂國(guó)勇,史祥龍.基于嵌入式Linux和Ajax技術(shù)的Web異步交互設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2013,33:247-251.
[2]王寶忠,馬成.基于 CGI技術(shù)的嵌入式動(dòng)態(tài) Web的研究與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2012,20(18):161-163.
[3]劉利枚,周鮮成,石彪.嵌入式軟件測(cè)試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].國(guó)外電子測(cè)量技術(shù),2008,27(1):59-61.
[4]蔡勇,王勇.嵌入式數(shù)據(jù)庫(kù) SQLite在測(cè)控系統(tǒng)設(shè)計(jì)中的應(yīng)用[J].電子測(cè)試,2011(10):89-93.
[5]張振,王曉寧,張?jiān)?嵌入式Web服務(wù)器移植與測(cè)試[J].電子設(shè)計(jì)工程,2010,18(6):1-3.
The measurement method and implementation of embedded system based on B/S mode
Chen Juan1,2,Li Yuan1,Li Wanguo1
(1.School of Mechanical Engineer and Automation,Beijing University of Aeronautics and Astronautics,Beijing 100083,China;2.Science and Technology on Aerospace Intelligent Control Laboratory,Beijing 100854,China)
Based on the purpose of developing a distributed measurement system,construct an embedded measurement system based on B/S mode which combines network communication technology,database technology and embedded technology.By transplanting the lightweight Boa as embedded web server,transplanting lightweight SQLite as a testing database,transplanting NTP(Network Time Protocol)to synchronization system time,realized a completely distributed test system based on B/S mode.The front of the system using real-time graphics web page display,using Ajax(Asynchronous JavaScript And XML)asynchronous data transmission with the back of the system,so as to realize local dynamic refresh of the web page and optimize the process of human-computer interaction.The measurement system is verified in LAN and it is helpful to develop embedded distributed measurement system based on B/S mode in the future.
embedded test system;embedded server;database;Ajax asynchronous interaction;CGI
TP31
A
10.16157/j.issn.0258-7998.2016.02.013
2015-07-25)
陳娟(1973-),女,博士,講師,主要研究方向:分布式測(cè)試系統(tǒng)、機(jī)電總線管理。
李元(1989-),男,碩士研究生,主要研究方向:虛擬儀器測(cè)控系統(tǒng)、嵌入式測(cè)控系統(tǒng)。
李萬(wàn)國(guó)(1969-),男,博士,主要研究方向:流體傳動(dòng)與控制、分布式加載熱強(qiáng)度實(shí)驗(yàn)技術(shù)。
中文引用格式:陳娟,李元,李萬(wàn)國(guó).基于 B/S模式的嵌入式系統(tǒng)測(cè)試方法與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2016,42(2):50-52,56.
英文引用格式:Chen Juan,Li Yuan,Li Wanguo.The measurement method and implementation of embedded system based on B/S mode[J].Application of Electronic Technique,2016,42(2):50-52,56.