《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于B/S模式的嵌入式系統(tǒng)測試方法與實現(xiàn)
基于B/S模式的嵌入式系統(tǒng)測試方法與實現(xiàn)
2016年電子技術應用第2期
陳 娟1,2,李 元1,李萬國1
1.北京航空航天大學 機械工程及自動化學院,北京100083;2.宇航智能控制技術國家級重點實驗室,北京100854
摘要: 針對分布式測試系統(tǒng)的研發(fā)需求,綜合網絡通信技術、數(shù)據(jù)庫技術以及嵌入式技術等構建了一種基于B/S(Browser/Server)模式的嵌入式測試系統(tǒng)。通過移植Web服務器Boa、輕量級數(shù)據(jù)庫SQLite、網絡時鐘同步協(xié)議NTP(Network Time Protocol),實現(xiàn)了一個完整的測試系統(tǒng)。系統(tǒng)前臺采用實時圖形化Web頁面顯示,使用Ajax異步數(shù)據(jù)傳輸與后臺進行數(shù)據(jù)通信,實現(xiàn)了頁面局部動態(tài)刷新,優(yōu)化人機交互過程。測試系統(tǒng)通過局域網實驗驗證,取得了良好的效果,符合預期目標,為今后研發(fā)基于B/S模式的嵌入式分布式測試系統(tǒng)打下基礎,具有一定的參考價值。
中圖分類號: TP31
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.02.013
中文引用格式: 陳娟,李元,李萬國. 基于B/S模式的嵌入式系統(tǒng)測試方法與實現(xiàn)[J].電子技術應用,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.
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
Abstract: 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.
Key words : embedded test system;embedded server;database;Ajax asynchronous interaction;CGI

0 引言

    伴隨數(shù)字信息技術高速發(fā)展,嵌入式系統(tǒng)設備數(shù)量已經遠超過通用計算機,后PC時代已經到來。嵌入式系統(tǒng)設備廣泛服務于網絡通信、消費電子、工業(yè)控制、測控等多個領域。

    嵌入式技術在測試領域應用日益成熟,但由于其具體應用場合不同,難以形成統(tǒng)一的軟件開發(fā)框架。呂國勇、史祥龍等人分析了Ajax異步交互、CGI(Comment Gateway Interface)通用網關在嵌入式系統(tǒng)中的應用[1-2],從而減輕了服務器的負擔,提高了客戶端與服務器之間的交互速度。劉利枚、周鮮成等人對嵌入式軟件測試系統(tǒng)的設計與實現(xiàn)進行了探索,提出了一種實用的嵌入式軟件動態(tài)測試系統(tǒng)的結構框架[3]。蔡勇、王勇等人基于嵌入式數(shù)據(jù)庫SQLite3.0技術設計了測控系統(tǒng),分析了嵌入式數(shù)據(jù)庫的特點和關鍵技術,著重研究了應用方式和移植方法[4]。張振、王小寧等人對嵌入式Web服務器Boa的移植與應用進行了研究,并實現(xiàn)了其在控制領域的遠程管理[5]。本文在前人的技術基礎上進行綜合、擴展,提出了一套較為成熟的基于B/S測控模式的嵌入式軟件架構,并對其中軟件的實現(xiàn)及移植過程進行了較為全面的探討和總結,最終提供一套具體可行的實現(xiàn)方案。

1 整體結構

    系統(tǒng)采用B/S軟件架構模式,Server端為嵌入式測試系統(tǒng),具備Web服務和數(shù)據(jù)庫存儲能力,Browser端為符合W3C的標準瀏覽器。

    用戶通過Web頁面登錄至服務器后發(fā)出配置、測試等控制命令;Server響應用戶的請求,調用對應的CGI服務程序,并采用Ajax異步數(shù)據(jù)傳輸?shù)姆绞綄y試結果動態(tài)返回至用戶Web頁,前端采用波形曲線、指針等多種形式展現(xiàn)數(shù)據(jù)。

1.1 硬件結構

    系統(tǒng)硬件結構分為4個部分:嵌入式測試系統(tǒng)、交叉編譯系統(tǒng)、被測對象配電器和時鐘同步系統(tǒng)。嵌入式測試系統(tǒng)采用ARM11-S3C6410處理器,操作系統(tǒng)內核為Linux2.6.3.8。交叉編譯系統(tǒng)與嵌入式測試系統(tǒng)通過NFS(Network File System)網絡文件系統(tǒng)、TFTP(Trivial File Transfer Protocol)文件傳輸協(xié)議、串口通信等協(xié)議來進行系統(tǒng)調試、程序傳輸以及與下位機進行通信。嵌入式測試系統(tǒng)繼電器模塊、AD轉換模塊與被測對象配電器通過兩條通信電纜相連,系統(tǒng)產生激勵并讀取配電器返回的測試結果。嵌入式測試系統(tǒng)通過NTP協(xié)議與外部的時鐘服務器同步,可為今后擴展為分布式測試系統(tǒng)提供統(tǒng)一時鐘校對服務。系統(tǒng)硬件結構如圖1所示。

qrs3-t1.gif

1.2 軟件結構

    測試系統(tǒng)軟件采用B/S架構模式,軟件分為3層結構進行設計。整個結構分為上層、中間層和底層3部分:上層為用戶接口界面,負責接受用戶指令、顯示動態(tài)數(shù)據(jù)等;中間層由Web服務器和數(shù)據(jù)庫構成,負責提供Web服務、數(shù)據(jù)存儲等功能;底層由硬件驅動程序、測試應用程序構成,提供底層函數(shù)調用。

2 功能及實現(xiàn)

    根據(jù)上文所述硬件結構、軟件架構,設計并實現(xiàn)測試系統(tǒng)的各部分功能。以下就本設計的關鍵模塊進行詳細說明。系統(tǒng)功能模塊設計如圖2。

qrs3-t2.gif

2.1 用戶界面設計

    用戶界面設計主要分為4個功能模塊:用戶身份驗證模塊、測試設備基本信息瀏覽與配置模塊、動態(tài)數(shù)據(jù)查看模塊和歷史數(shù)據(jù)瀏覽模塊。

    用戶身份驗證模塊加強了系統(tǒng)安全性,分為普通用戶和管理員兩種權限模式。基本信息瀏覽模塊與配置模塊將調用底層CGI程序獲取設備基本信息,如服務器IP地址、客戶端IP地址、主機名稱、內核版本等信息;動態(tài)數(shù)據(jù)顯示模塊采用開源的Flot Javascript插件,將數(shù)據(jù)以數(shù)字、儀表、曲線多種方式來呈現(xiàn)。前臺與后臺數(shù)據(jù)交換采用了Ajax異步通信技術來實現(xiàn)動態(tài)更新頁面;歷史數(shù)據(jù)查看模塊調用后臺數(shù)據(jù)庫歷史數(shù)據(jù)后采用Ajax異步通信更新前端頁面,并自動生成CVS格式的歷史數(shù)據(jù)文件,用戶下載后可用于數(shù)據(jù)分析。

2.2 Web服務器、數(shù)據(jù)庫設計

    為構建B/S模式測試系統(tǒng),系統(tǒng)必須具備提供Web服務能力和實驗數(shù)據(jù)管理能力。本節(jié)詳細介紹服務器和數(shù)據(jù)庫的實現(xiàn)過程。

2.2.1 嵌入式Web服務器設計

    目前在嵌入式設備中常用的Web服務器有Boa、thttpd、Mini_httpd等,同等硬件條件下,Boa顯示出更快的處理速度,內存需求小,能耗低,支持CGI腳本程序。

    主要移植步驟如下:(1)編譯源碼,生成ARM架構下可執(zhí)行文件Boa。(2)修改服務器配置文件相關參數(shù):DocumentRoot(測試頁面文檔路徑)、ScriptAlias(測試CGI腳本路徑)。

    圖3為服務器文件部署目錄,在boa.conf中更改參數(shù)如下:DocumentRoot/Testwww;ScriptAlias/cgi-bin/  /Testwww/CGIScripts/。Pages目錄主要部署HTML網頁文件、JavaScript腳本文件;CGIScripts目錄部署CGI腳本程序,包括數(shù)據(jù)庫查詢腳本、數(shù)據(jù)測試腳本、獲取設備基本信息腳本等;DataTbls目錄主要存儲數(shù)據(jù)庫文件,包括歷史數(shù)據(jù)表、用戶密碼數(shù)據(jù)表、設備基本信息表。分類目錄設計更利于文檔的編輯和管理。

qrs3-t3.gif

2.2.2 嵌入式數(shù)據(jù)庫設計

    嵌入式設備中常用的數(shù)據(jù)庫有mSQL、SQLiteDB等。經對比選擇開源數(shù)據(jù)庫SQLiteDB,它支持數(shù)據(jù)庫大小為2 TB,足夠小,全部代碼250 KB,比目前流行的大多數(shù)數(shù)據(jù)庫對數(shù)據(jù)的操作要快。

    移植步驟如下:(1)編譯源碼包生成可執(zhí)行文件目錄。(2)將編譯生成的bin、include、lib目錄通過NFS文件系統(tǒng)復制至對應嵌入式文件系統(tǒng)下。

    根據(jù)需求分析設計數(shù)據(jù)庫實體對象,分為用戶實體、設備基本信息實體、歷史數(shù)據(jù)測試信息實體,最終設計對應的數(shù)據(jù)表。圖4給出用戶實體E-R圖。

qrs3-t4.gif

2.3 CGI、Ajax異步通信設計

    為了加強系統(tǒng)頁面與用戶的動態(tài)交互性,本系統(tǒng)采用CGI與Ajax的解決方案。使用CGI技術在服務器端發(fā)布動態(tài)網頁,與Ajax的XMLHttpRequest組件進行數(shù)據(jù)交互,實現(xiàn)了動態(tài)Web功能,使網頁局部自動刷新,無須手動更新網頁。這是本系統(tǒng)前臺與后臺數(shù)據(jù)通信的主要方式。

qrs3-t5.gif

    工作流程如下:(1)用戶通過Web瀏覽器訪問嵌入式服務器中部署好的測試頁面,服務器響應瀏覽器請求,返回內嵌有JavaScript腳本的Web頁面。(2)瀏覽器解析返回頁面代碼并顯示,執(zhí)行內嵌的JavaScript腳本程序。(3)用戶在瀏覽器輸入的數(shù)據(jù)首先由JavaScript程序預處理,然后通過XMLHttp Request對象向服務器發(fā)出異步請求。服務器解析請求參數(shù)后調用底層相應驅動程序進行測試或存取數(shù)據(jù)庫,并將獲取的數(shù)據(jù)以XML格式返回給瀏覽器。(4)瀏覽器通過responseXML方法獲得數(shù)據(jù),然后通過DOM文檔對象模型來更新用戶界面。

2.4 測試系統(tǒng)時鐘同步設計

    以上討論的是單測試系統(tǒng)組網情況,而B/S架構可搭建分布式測試系統(tǒng)。在分布式系統(tǒng)中, 常常需要一個全局時間, 用來確定系統(tǒng)中各種事件發(fā)生的先后、協(xié)調各種消息的傳輸、控制和監(jiān)視系統(tǒng)的狀態(tài),這就需要對系統(tǒng)中各個部件進行時鐘同步,保障局部時間統(tǒng)一。

2.4.1 網絡時間同步協(xié)議

    常用的網絡時間同步協(xié)議主要有NTP(Net Work Protocol)、SNTP(Simple Net Work Protocol)以及PTP(Precision Time Protocol)等,表1為三者綜合比較。

qrs3-b1.gif

    考慮協(xié)議的同步時間精度及其實現(xiàn)的難易度,決定采用NTP作為測試網絡中的時鐘同步協(xié)議。NTP時間同步模式分為4種:客戶端/服務器模式、對等體模式、廣播模式、組播模式。系統(tǒng)采用客戶端/服務器模式。

2.4.2 設計方案

    首先構建測試網絡,采用一臺Windows7操作系統(tǒng)的主機作為時鐘源服務器,兩臺嵌入式測試設備作為被同步對象。3個節(jié)點由路由器連接,構成局域測試網絡。

    其次配置時鐘源服務器、移植NTP協(xié)議至嵌入式測試設備。(1)對于Windows時鐘服務器只需更改注冊表相應參數(shù),使其對外提供NTP服務。(2)嵌入式測試系統(tǒng)將作為NTP協(xié)議的Client,首先需要移植NTP協(xié)議。其次在配置文件ntp.conf中添加語句server 192.168.1.131,根據(jù)具體IP參數(shù)設置時鐘服務器的IP地址。(3)將嵌入式系統(tǒng)ntpd設置為開機自啟動服務,在/etc/init.d/rcS添加如下語句:ntpdate 192.168.1.131;/etc/init.d/ntpd。首先ntpdate將行一次時間校正,以防止服務器和客戶端時間誤差太大導致ntpd更新失敗,然后啟動ntpd服務,該服務每隔64 s會自動更新一次時間,在局域網條件下時鐘同步誤差范圍為1~10 ms之間。

3 實驗結果及分析

    使用瀏覽器登錄B/S模式嵌入式測試系統(tǒng)。圖6為測試數(shù)據(jù)實時顯示頁面,左側為動態(tài)數(shù)字顯示,并且對異常數(shù)據(jù)用顏色標識提示,右側為儀表顯示方式,以更加直觀的方式查看數(shù)據(jù)。圖7為波形圖表顯示頁面,直觀顯示數(shù)據(jù)隨時間變化趨勢。

qrs3-t6.gif

qrs3-t7.gif

4 結束語

    本文通過基于嵌入式B/S模式測試系統(tǒng)的構建以及基于ARM平臺的測試程序設計,對其中的服務器搭建、數(shù)據(jù)庫配置、前后臺數(shù)據(jù)傳輸方式以及未來多測試子系統(tǒng)組網的時鐘同步問題進行了詳細的闡述。從底層數(shù)據(jù)采集到數(shù)據(jù)存儲以及上層數(shù)據(jù)顯示都較好地完成了配電器測試任務,最終提出了一套可行的構建嵌入式測試系統(tǒng)方案。本文研究對未來實現(xiàn)B/S模式的分布式遠程測控系統(tǒng)打下了良好基礎,具有一定的參考價值。

參考文獻

[1] 呂國勇,史祥龍.基于嵌入式Linux和Ajax技術的Web異步交互設計[J].計算機應用,2013,33:247-251.

[2] 王寶忠,馬成.基于CGI技術的嵌入式動態(tài)Web的研究與實現(xiàn)[J].電子設計工程,2012,20(18):161-163.

[3] 劉利枚,周鮮成,石彪.嵌入式軟件測試系統(tǒng)的設計與實現(xiàn)[J].國外電子測量技術,2008,27(1):59-61.

[4] 蔡勇,王勇.嵌入式數(shù)據(jù)庫SQLite在測控系統(tǒng)設計中的應用[J].電子測試,2011(10):89-93.

[5] 張振,王曉寧,張元.嵌入式Web服務器移植與測試[J].電子設計工程,2010,18(6):1-3.

此內容為AET網站原創(chuàng),未經授權禁止轉載。