于瀟+巨同升+崔孝鳳+宋吉和
摘要:設(shè)計(jì)了基于ARM-Linux的大型試驗(yàn)設(shè)備遠(yuǎn)程監(jiān)測(cè)系統(tǒng),實(shí)現(xiàn)了對(duì)大型試驗(yàn)設(shè)備狀態(tài)信息的采集與監(jiān)測(cè)。系統(tǒng)采用B/S結(jié)構(gòu),通過開發(fā)Linux設(shè)備驅(qū)動(dòng)程序、移植BOA服務(wù)器、編寫CGI程序等,將遠(yuǎn)程嵌入式終端采集到的試驗(yàn)設(shè)備信息保存在遠(yuǎn)程數(shù)據(jù)庫(kù)中,用戶可以簡(jiǎn)單地通過瀏覽器訪問數(shù)據(jù)庫(kù)中的信息。結(jié)果表明,該遠(yuǎn)程監(jiān)測(cè)系統(tǒng)性能穩(wěn)定可靠,具有很好的實(shí)時(shí)性,能夠滿足對(duì)大型試驗(yàn)設(shè)備(特別是位置偏僻或所處環(huán)境惡劣的設(shè)備)的監(jiān)測(cè)要求。
關(guān)鍵詞:遠(yuǎn)程監(jiān)控;ARM;Linux;設(shè)備驅(qū)動(dòng)程序;BOA服務(wù)器;CGI
中圖分類號(hào):TP273+.5 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):0439-8114(2014)15-3639-04
Designing Large-scale Test Equipment Monitoring System based on ARM-Linux
YU Xiao1,2,JU TONG-sheng1,CUI Xiao-feng1,SONG Ji-he1
(1. School of Computer Science and Technology, Shandong University of Technology, Zibo 255049,Shandong China;2.School of Computer Science, Beijing Institute of Technology, Beijing 100081,China.)
Abstract: An embedded remote information collection and monitoring system based on ARM-Linux was developed. It which could collect the informations and monitor the conditions from the large-scale test equipments. By developing device drivers, transplanting BOA server and programming CGI, the system took the B/S mode. Informations of equipments collected by remote embedded terminal were stored in a remote database. The users could simply access the informations in database via browser. Results showed that the system was stable and reliable and could meet testing demands of large-scale test equipments (especially in remote locations or in bad environments).
Key words: remote monitoring; ARM;Linux; device drivers; BOA; CGI
收稿日期:2014-01-10
基金項(xiàng)目:國(guó)家自然科學(xué)基金項(xiàng)目(61370224);國(guó)家高技術(shù)研究發(fā)展計(jì)劃(“863”計(jì)劃)項(xiàng)目(2013AA01A212)
作者簡(jiǎn)介:于 瀟(1982-),男,山東淄博人,講師,在讀博士研究生,研究方向?yàn)榫W(wǎng)絡(luò)存儲(chǔ)、嵌入式系統(tǒng),(電話)13969377480(電子信箱)
yuxiao8907118@163.com。
高校的分析測(cè)試實(shí)驗(yàn)室擁有眾多先進(jìn)、精密的大型儀器設(shè)備,是高校實(shí)驗(yàn)室的重要組成部分。有別于基礎(chǔ)教學(xué)實(shí)驗(yàn)室分析測(cè)試實(shí)驗(yàn)室主要面向科研,為科學(xué)研究提供可靠的測(cè)試數(shù)據(jù)和試驗(yàn)數(shù)據(jù)。長(zhǎng)期以來,實(shí)驗(yàn)室的大型儀器大部分使用率都比較低,為提高投資效益,最大限度地利用現(xiàn)有實(shí)驗(yàn)室資源,更好地為科研教學(xué)服務(wù),實(shí)驗(yàn)室加大了開放的力度。試驗(yàn)設(shè)備利用率提高以后,管理人員的工作大大增加。為此,迫切需要獲得每臺(tái)試驗(yàn)設(shè)備的詳細(xì)使用數(shù)據(jù),以用于設(shè)備的日常保養(yǎng)和檢修。
隨著網(wǎng)絡(luò)技術(shù)和嵌入式技術(shù)的發(fā)展,基于TCP/IP協(xié)議和B/S(Browser/Server)架構(gòu)的分布式監(jiān)控技術(shù)已日趨成熟。借助以太網(wǎng)和Internet技術(shù),把嵌入式監(jiān)控設(shè)備[1,2]連接到Internet上,用戶只需要使用普通的Web瀏覽器就可以對(duì)設(shè)備進(jìn)行監(jiān)視和控制,操作界面簡(jiǎn)潔,數(shù)據(jù)傳輸量也可以降到最低。實(shí)現(xiàn)遠(yuǎn)程監(jiān)控后,技術(shù)人員無須親臨現(xiàn)場(chǎng),就可以監(jiān)視并控制生產(chǎn)系統(tǒng)和現(xiàn)場(chǎng)設(shè)備的運(yùn)行狀態(tài)和參數(shù)。特別是當(dāng)現(xiàn)場(chǎng)地理位置比較偏僻或環(huán)境比較惡劣時(shí),這一點(diǎn)的優(yōu)勢(shì)尤為突出。本研究設(shè)計(jì)了基于ARM-Linux的嵌入式遠(yuǎn)程監(jiān)測(cè)系統(tǒng),實(shí)現(xiàn)了觀測(cè)站現(xiàn)場(chǎng)大型試驗(yàn)設(shè)備信息的采集與監(jiān)測(cè)。
1 遠(yuǎn)程監(jiān)測(cè)系統(tǒng)總體設(shè)計(jì)
遠(yuǎn)程監(jiān)測(cè)系統(tǒng)采用B/S結(jié)構(gòu),分為前方監(jiān)測(cè)終端和后方監(jiān)視終端兩部分。系統(tǒng)主要設(shè)計(jì)集中在前方監(jiān)測(cè)終端,后方監(jiān)視終端只需一臺(tái)安裝Web瀏覽器的PC即可。遠(yuǎn)程監(jiān)控系統(tǒng)結(jié)構(gòu)如圖1所示。
前方監(jiān)測(cè)終端由數(shù)據(jù)采集模塊和數(shù)據(jù)處理模塊構(gòu)成。每個(gè)需要監(jiān)測(cè)的大型試驗(yàn)設(shè)備需安裝一個(gè)監(jiān)測(cè)終端,每個(gè)終端分配一個(gè)獨(dú)立的IP地址,所有的監(jiān)測(cè)終端連接到路由器上。數(shù)據(jù)采集模塊由傳感器和嵌入式終端設(shè)備組成,主要負(fù)責(zé)采集試驗(yàn)設(shè)備工作時(shí)的光電信息,并轉(zhuǎn)換為有效的模擬信號(hào)輸入。數(shù)據(jù)處理模塊與數(shù)據(jù)采集模塊共用一個(gè)嵌入式終端設(shè)備,另外搭載了數(shù)據(jù)庫(kù)服務(wù)器及應(yīng)用程序。嵌入式終端設(shè)備本身是一個(gè)完整的嵌入式設(shè)備,包括CPU、存儲(chǔ)器、GPIO(General Purpose Input /Output Ports)、網(wǎng)絡(luò)接口等[1]。試驗(yàn)設(shè)備工作的信息和應(yīng)用程序都放在數(shù)據(jù)處理模塊上。后方監(jiān)視終端(一般為PC或智能設(shè)備)需要安裝Web瀏覽器,輸入前方監(jiān)測(cè)終端相應(yīng)的IP地址便可直接訪問它。在客戶端,由HTML負(fù)責(zé)表示邏輯,根據(jù)特定終端的URL(統(tǒng)一資源定位符)提出的服務(wù)請(qǐng)求,前方監(jiān)測(cè)終端上安裝的網(wǎng)絡(luò)服務(wù)器會(huì)把數(shù)據(jù)文件返回給客戶端。endprint
2 前方監(jiān)測(cè)終端的硬件設(shè)計(jì)
前方監(jiān)測(cè)終端由數(shù)據(jù)采集模塊和數(shù)據(jù)處理模塊組成。由于試驗(yàn)設(shè)備價(jià)格昂貴,為避免破壞設(shè)備,數(shù)據(jù)采集模塊使用電流互感器和光敏電阻兩種傳感器。傳感器可根據(jù)試驗(yàn)設(shè)備的特征及檢測(cè)終端的安裝方便程度進(jìn)行選擇。數(shù)據(jù)處理模塊采用Samsung公司基于ARM9核心的S3C2440處理器。前方監(jiān)測(cè)終端的硬件結(jié)構(gòu)如圖2所示。
其中,SDRAM主要功能是存放運(yùn)行代碼、系統(tǒng)和用戶數(shù)據(jù)、堆棧等;FLASH主要功能是存儲(chǔ)嵌入式Linux鏡像、根文件系統(tǒng)和應(yīng)用程序等;GPIO主要功能是提供電流互感器和光敏電阻的模擬輸入接口;RS232是系統(tǒng)的調(diào)試接口;USB接口用于外部擴(kuò)展,例如連接外部存儲(chǔ)器;以太網(wǎng)控制器中的接口芯片采用DM9000,它可自適應(yīng)10 M/100 M網(wǎng)絡(luò)。
3 前方監(jiān)測(cè)終端的軟件設(shè)計(jì)
系統(tǒng)采用B/S模式設(shè)計(jì),主要軟件設(shè)計(jì)集中在前方監(jiān)測(cè)終端,前方監(jiān)測(cè)終端的軟件結(jié)構(gòu)如圖3所示。
當(dāng)前方監(jiān)測(cè)終端加電運(yùn)行時(shí),首先啟動(dòng)系統(tǒng)引導(dǎo)程序Bootloader,在Bootloader的引導(dǎo)下啟動(dòng)嵌入式Linux,Linux的內(nèi)核版本為2.6.29[3]。然后Linux內(nèi)核啟動(dòng),依次加載各設(shè)備的驅(qū)動(dòng)程序,最后運(yùn)行監(jiān)測(cè)應(yīng)用程序[4]。其中Web服務(wù)器使用BOA服務(wù)器,其優(yōu)點(diǎn)是不僅能夠支持靜態(tài)Web頁(yè)面,還可以配合CGI支持動(dòng)態(tài)頁(yè)面,實(shí)現(xiàn)與用戶的動(dòng)態(tài)交互。圖形界面采用QT,它具有優(yōu)良的跨平臺(tái)特性,同時(shí)還提供了豐富的API函數(shù),使用非常方便。
3.1 A/D驅(qū)動(dòng)開發(fā)
嵌入式Linux設(shè)備文件主要分為字符設(shè)備、塊設(shè)備、網(wǎng)絡(luò)設(shè)備和混合設(shè)備四種類型。其中,混合設(shè)備是在嵌入式系統(tǒng)中用得比較多的一種設(shè)備,特指不能嚴(yán)格劃分的設(shè)備類型。系統(tǒng)中,A/D設(shè)備的主要用途是將電流互感器和光敏電阻采集到的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),并輸入嵌入式設(shè)備的GPIO接口,系統(tǒng)在實(shí)現(xiàn)時(shí),將A/D設(shè)備作為一種混合設(shè)備來處理。
A/D設(shè)備驅(qū)動(dòng)程序主要功能是提供設(shè)備的注冊(cè)與注銷,設(shè)備的打開與關(guān)閉,設(shè)備的讀、寫操作以及設(shè)備的控制操作,設(shè)備的中斷服務(wù)響應(yīng)等[5]。Linux內(nèi)核通過file_operation數(shù)據(jù)結(jié)構(gòu)提供文件系統(tǒng)的入口點(diǎn)函數(shù),該函數(shù)是定義在
struct file_operations {
struct module* owner;
int(*open) (struct inode*,struct file*);
//打開I/O設(shè)備并初始化
int (*release)(struct inode*,struct file*);
//關(guān)閉I/O設(shè)備
ssize_t(*read)(struct file*,char_user*,size_t, loff_t *);
//讀I/O設(shè)備
ssize_t(*write)(struct file*,const char__user *, size_t,loff_t*);
//寫I/O設(shè)備
int(*ioctl)(struct inode*,struct file*,unsigned int, unsigned long);
//控制I/O設(shè)備
……
};
A/D設(shè)備驅(qū)動(dòng)在初始化時(shí)通過misc_register()函數(shù)注冊(cè)混合設(shè)備;在釋放模塊時(shí)通過misc_deregister()注銷設(shè)備驅(qū)動(dòng)。系統(tǒng)調(diào)用部分實(shí)際上是對(duì)設(shè)備的操作,如open、read、write、ioctl等操作。
系統(tǒng)采用動(dòng)態(tài)加載設(shè)備驅(qū)動(dòng)程序的方法。在編譯2.6版本的驅(qū)動(dòng)程序時(shí)需要把驅(qū)動(dòng)程序的源代碼加入內(nèi)核代碼樹,并做相應(yīng)的配置,然后在Linux源代碼根目錄位置執(zhí)行make modules,就可以生成所需要的內(nèi)核模塊文件,通過nfs將編譯出的內(nèi)核模塊文件下載至下位機(jī),然后使用#insmod命令裝載驅(qū)動(dòng)程序。
3.2 BOA服務(wù)器的設(shè)計(jì)
由于嵌入式設(shè)備資源都非常有限,一般不會(huì)使用Linux下最普遍的服務(wù)器,如Apache等,而需要使用一些專門為嵌入式設(shè)備設(shè)計(jì)的Web服務(wù)器,比較典型的嵌入式Web服務(wù)器有HTTPD、BOA和THTTPD等。由于BOA支持認(rèn)證、CGI等功能,同時(shí)占用系統(tǒng)資源較少,它最終被選擇作為系統(tǒng)的Web服務(wù)器。
BOA服務(wù)器的基礎(chǔ)是TCP/IP協(xié)議棧,需要實(shí)現(xiàn)HTTP、TCP和UDP等協(xié)議。監(jiān)測(cè)系統(tǒng)設(shè)置了獨(dú)立的IP地址,通過網(wǎng)絡(luò)就可以將設(shè)備接入Internet。嵌入式BOA服務(wù)器的結(jié)構(gòu)如圖4所示。
在使用BOA服務(wù)器之前,首先需要對(duì)BOA服務(wù)器的源代碼進(jìn)行交叉編譯和配置。編譯可在Linux下用make命令完成,配置文件位于根目錄下,名稱為“BOA.conf”,“BOA.conf”配置如下:
Port 80 //監(jiān)聽端口號(hào),默認(rèn)為80
User 0
Group 0
ServerName yx //服務(wù)器名稱
DocumentRoot /sdcard/www/pages/
//網(wǎng)頁(yè)文件所在目錄
UserDir public_html
DirectoryIndex index.html
//BOA服務(wù)器的默//認(rèn)首頁(yè)
KeepAliveMax 100//一個(gè)連接所允許的HTTP持續(xù)作用請(qǐng)求最大數(shù)目
KeepAliveTimeout 10//HTTP持續(xù)作用中服務(wù)器在兩次請(qǐng)求之間等待的時(shí)間
MimeTypes/sdcard/www/web-conf/mime.types
//mimetype配置文件路徑
ScriptAlias
/cgi-bin//sdcard/www/cgi-bin/
//CGI程序路徑
3.3 CGI程序的設(shè)計(jì)
CGI(Common Gateway Interface)指公共網(wǎng)關(guān)接口,是Web服務(wù)器和網(wǎng)關(guān)應(yīng)用程序之間信息傳遞的一個(gè)公共標(biāo)準(zhǔn),是外部應(yīng)用擴(kuò)展應(yīng)用程序與WWW服務(wù)器交互的一個(gè)標(biāo)準(zhǔn)接口[6]。CGI工作原理如圖5所示。
當(dāng)用戶使用客戶端與服務(wù)器進(jìn)行動(dòng)態(tài)交互時(shí),Web瀏覽器先將用戶數(shù)據(jù)傳送給BOA服務(wù)器,BOA服務(wù)器把接收到的有關(guān)信息存入環(huán)境變量,然后啟動(dòng)指定的CGI進(jìn)程;CGI進(jìn)程從環(huán)境變量中獲得相關(guān)信息后按指令執(zhí)行,操作完成后通過BOA服務(wù)器以HTML格式將結(jié)果返回給Web瀏覽器。因?yàn)橛脩裟芡ㄟ^瀏覽器傳遞不同的參數(shù)給CGI程序,所以CGI使得瀏覽器和服務(wù)器之間具有了可交互性。
3.4 主監(jiān)測(cè)程序的設(shè)計(jì)
試驗(yàn)設(shè)備往往價(jià)格高昂,為保證測(cè)量精度并不破壞試驗(yàn)設(shè)備,傳感器板支持兩種類型的傳感器:電流互感器和光敏電阻。GPIO上提供4個(gè)模擬量輸入通道,監(jiān)測(cè)程序?qū)㈨樞驋呙韪鱾€(gè)通道,檢查是否存在有效的信號(hào)輸入。主監(jiān)測(cè)程序執(zhí)行流程如圖6所示。
3.5 試驗(yàn)結(jié)果
遠(yuǎn)程監(jiān)測(cè)系統(tǒng)需要為每個(gè)監(jiān)測(cè)終端(監(jiān)測(cè)服務(wù)器)分配獨(dú)立的IP地址。當(dāng)在遠(yuǎn)程客戶端瀏覽器中輸入監(jiān)測(cè)終端的IP時(shí),BOA將返回監(jiān)測(cè)系統(tǒng)的首頁(yè)。監(jiān)測(cè)系統(tǒng)主要提供儀器狀態(tài)采集等功能。當(dāng)監(jiān)測(cè)系統(tǒng)處于運(yùn)行狀態(tài)時(shí),若儀器啟動(dòng),經(jīng)監(jiān)測(cè)程序確認(rèn)后,檢測(cè)系統(tǒng)將實(shí)時(shí)采集試驗(yàn)設(shè)備的狀態(tài)信息,并定期在檢測(cè)系統(tǒng)的數(shù)據(jù)庫(kù)中做記錄。記錄括開關(guān)機(jī)時(shí)間、運(yùn)行時(shí)間、運(yùn)行狀態(tài)等。
4 小結(jié)
基于S3C2440平臺(tái)和Linux操作系統(tǒng),設(shè)計(jì)實(shí)現(xiàn)了一個(gè)嵌入式遠(yuǎn)程信息采集與監(jiān)測(cè)系統(tǒng)。通過因特網(wǎng)實(shí)現(xiàn)了對(duì)一組大型試驗(yàn)儀器使用信息的遠(yuǎn)程監(jiān)測(cè)。試驗(yàn)結(jié)果表明,遠(yuǎn)程監(jiān)測(cè)系統(tǒng)能采集并記錄試驗(yàn)儀器的使用信息,為儀器的維護(hù)提供第一手資料,在一定程度上實(shí)現(xiàn)了實(shí)驗(yàn)室的信息化。該遠(yuǎn)程測(cè)控系統(tǒng)具有一定的通用性,根據(jù)需求在功能上作進(jìn)一步完善后可應(yīng)用于一系列領(lǐng)域,如機(jī)房監(jiān)控、智能小區(qū)監(jiān)控等。
參考文獻(xiàn):
[1] 周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2005.
[2] 周立功.ARM嵌入式系統(tǒng)軟件開發(fā)實(shí)例[M].北京:北京航空航天大學(xué)出版社,2005.
[3] 趙 炯.Linuxn內(nèi)核完全剖析[M].北京:機(jī)械工業(yè)出版社,2006.
[4] 劉 淼.嵌入式系統(tǒng)接口設(shè)計(jì)與Linux驅(qū)動(dòng)程序開發(fā)[M].北京:北京航空航天大學(xué)出版社,2006.
[5] 劉 嵐,尹 勇,李京蔚.基于ARM的嵌入式開發(fā)[M].北京:電子工業(yè)出版社,2008.
[6] 楊大千,梅大成,張 巖.基于ARM9和Linux的嵌入式動(dòng)態(tài)Web技術(shù)設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2006(8):45-46.endprint
KeepAliveTimeout 10//HTTP持續(xù)作用中服務(wù)器在兩次請(qǐng)求之間等待的時(shí)間
MimeTypes/sdcard/www/web-conf/mime.types
//mimetype配置文件路徑
ScriptAlias
/cgi-bin//sdcard/www/cgi-bin/
//CGI程序路徑
3.3 CGI程序的設(shè)計(jì)
CGI(Common Gateway Interface)指公共網(wǎng)關(guān)接口,是Web服務(wù)器和網(wǎng)關(guān)應(yīng)用程序之間信息傳遞的一個(gè)公共標(biāo)準(zhǔn),是外部應(yīng)用擴(kuò)展應(yīng)用程序與WWW服務(wù)器交互的一個(gè)標(biāo)準(zhǔn)接口[6]。CGI工作原理如圖5所示。
當(dāng)用戶使用客戶端與服務(wù)器進(jìn)行動(dòng)態(tài)交互時(shí),Web瀏覽器先將用戶數(shù)據(jù)傳送給BOA服務(wù)器,BOA服務(wù)器把接收到的有關(guān)信息存入環(huán)境變量,然后啟動(dòng)指定的CGI進(jìn)程;CGI進(jìn)程從環(huán)境變量中獲得相關(guān)信息后按指令執(zhí)行,操作完成后通過BOA服務(wù)器以HTML格式將結(jié)果返回給Web瀏覽器。因?yàn)橛脩裟芡ㄟ^瀏覽器傳遞不同的參數(shù)給CGI程序,所以CGI使得瀏覽器和服務(wù)器之間具有了可交互性。
3.4 主監(jiān)測(cè)程序的設(shè)計(jì)
試驗(yàn)設(shè)備往往價(jià)格高昂,為保證測(cè)量精度并不破壞試驗(yàn)設(shè)備,傳感器板支持兩種類型的傳感器:電流互感器和光敏電阻。GPIO上提供4個(gè)模擬量輸入通道,監(jiān)測(cè)程序?qū)㈨樞驋呙韪鱾€(gè)通道,檢查是否存在有效的信號(hào)輸入。主監(jiān)測(cè)程序執(zhí)行流程如圖6所示。
3.5 試驗(yàn)結(jié)果
遠(yuǎn)程監(jiān)測(cè)系統(tǒng)需要為每個(gè)監(jiān)測(cè)終端(監(jiān)測(cè)服務(wù)器)分配獨(dú)立的IP地址。當(dāng)在遠(yuǎn)程客戶端瀏覽器中輸入監(jiān)測(cè)終端的IP時(shí),BOA將返回監(jiān)測(cè)系統(tǒng)的首頁(yè)。監(jiān)測(cè)系統(tǒng)主要提供儀器狀態(tài)采集等功能。當(dāng)監(jiān)測(cè)系統(tǒng)處于運(yùn)行狀態(tài)時(shí),若儀器啟動(dòng),經(jīng)監(jiān)測(cè)程序確認(rèn)后,檢測(cè)系統(tǒng)將實(shí)時(shí)采集試驗(yàn)設(shè)備的狀態(tài)信息,并定期在檢測(cè)系統(tǒng)的數(shù)據(jù)庫(kù)中做記錄。記錄括開關(guān)機(jī)時(shí)間、運(yùn)行時(shí)間、運(yùn)行狀態(tài)等。
4 小結(jié)
基于S3C2440平臺(tái)和Linux操作系統(tǒng),設(shè)計(jì)實(shí)現(xiàn)了一個(gè)嵌入式遠(yuǎn)程信息采集與監(jiān)測(cè)系統(tǒng)。通過因特網(wǎng)實(shí)現(xiàn)了對(duì)一組大型試驗(yàn)儀器使用信息的遠(yuǎn)程監(jiān)測(cè)。試驗(yàn)結(jié)果表明,遠(yuǎn)程監(jiān)測(cè)系統(tǒng)能采集并記錄試驗(yàn)儀器的使用信息,為儀器的維護(hù)提供第一手資料,在一定程度上實(shí)現(xiàn)了實(shí)驗(yàn)室的信息化。該遠(yuǎn)程測(cè)控系統(tǒng)具有一定的通用性,根據(jù)需求在功能上作進(jìn)一步完善后可應(yīng)用于一系列領(lǐng)域,如機(jī)房監(jiān)控、智能小區(qū)監(jiān)控等。
參考文獻(xiàn):
[1] 周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2005.
[2] 周立功.ARM嵌入式系統(tǒng)軟件開發(fā)實(shí)例[M].北京:北京航空航天大學(xué)出版社,2005.
[3] 趙 炯.Linuxn內(nèi)核完全剖析[M].北京:機(jī)械工業(yè)出版社,2006.
[4] 劉 淼.嵌入式系統(tǒng)接口設(shè)計(jì)與Linux驅(qū)動(dòng)程序開發(fā)[M].北京:北京航空航天大學(xué)出版社,2006.
[5] 劉 嵐,尹 勇,李京蔚.基于ARM的嵌入式開發(fā)[M].北京:電子工業(yè)出版社,2008.
[6] 楊大千,梅大成,張 巖.基于ARM9和Linux的嵌入式動(dòng)態(tài)Web技術(shù)設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2006(8):45-46.endprint
KeepAliveTimeout 10//HTTP持續(xù)作用中服務(wù)器在兩次請(qǐng)求之間等待的時(shí)間
MimeTypes/sdcard/www/web-conf/mime.types
//mimetype配置文件路徑
ScriptAlias
/cgi-bin//sdcard/www/cgi-bin/
//CGI程序路徑
3.3 CGI程序的設(shè)計(jì)
CGI(Common Gateway Interface)指公共網(wǎng)關(guān)接口,是Web服務(wù)器和網(wǎng)關(guān)應(yīng)用程序之間信息傳遞的一個(gè)公共標(biāo)準(zhǔn),是外部應(yīng)用擴(kuò)展應(yīng)用程序與WWW服務(wù)器交互的一個(gè)標(biāo)準(zhǔn)接口[6]。CGI工作原理如圖5所示。
當(dāng)用戶使用客戶端與服務(wù)器進(jìn)行動(dòng)態(tài)交互時(shí),Web瀏覽器先將用戶數(shù)據(jù)傳送給BOA服務(wù)器,BOA服務(wù)器把接收到的有關(guān)信息存入環(huán)境變量,然后啟動(dòng)指定的CGI進(jìn)程;CGI進(jìn)程從環(huán)境變量中獲得相關(guān)信息后按指令執(zhí)行,操作完成后通過BOA服務(wù)器以HTML格式將結(jié)果返回給Web瀏覽器。因?yàn)橛脩裟芡ㄟ^瀏覽器傳遞不同的參數(shù)給CGI程序,所以CGI使得瀏覽器和服務(wù)器之間具有了可交互性。
3.4 主監(jiān)測(cè)程序的設(shè)計(jì)
試驗(yàn)設(shè)備往往價(jià)格高昂,為保證測(cè)量精度并不破壞試驗(yàn)設(shè)備,傳感器板支持兩種類型的傳感器:電流互感器和光敏電阻。GPIO上提供4個(gè)模擬量輸入通道,監(jiān)測(cè)程序?qū)㈨樞驋呙韪鱾€(gè)通道,檢查是否存在有效的信號(hào)輸入。主監(jiān)測(cè)程序執(zhí)行流程如圖6所示。
3.5 試驗(yàn)結(jié)果
遠(yuǎn)程監(jiān)測(cè)系統(tǒng)需要為每個(gè)監(jiān)測(cè)終端(監(jiān)測(cè)服務(wù)器)分配獨(dú)立的IP地址。當(dāng)在遠(yuǎn)程客戶端瀏覽器中輸入監(jiān)測(cè)終端的IP時(shí),BOA將返回監(jiān)測(cè)系統(tǒng)的首頁(yè)。監(jiān)測(cè)系統(tǒng)主要提供儀器狀態(tài)采集等功能。當(dāng)監(jiān)測(cè)系統(tǒng)處于運(yùn)行狀態(tài)時(shí),若儀器啟動(dòng),經(jīng)監(jiān)測(cè)程序確認(rèn)后,檢測(cè)系統(tǒng)將實(shí)時(shí)采集試驗(yàn)設(shè)備的狀態(tài)信息,并定期在檢測(cè)系統(tǒng)的數(shù)據(jù)庫(kù)中做記錄。記錄括開關(guān)機(jī)時(shí)間、運(yùn)行時(shí)間、運(yùn)行狀態(tài)等。
4 小結(jié)
基于S3C2440平臺(tái)和Linux操作系統(tǒng),設(shè)計(jì)實(shí)現(xiàn)了一個(gè)嵌入式遠(yuǎn)程信息采集與監(jiān)測(cè)系統(tǒng)。通過因特網(wǎng)實(shí)現(xiàn)了對(duì)一組大型試驗(yàn)儀器使用信息的遠(yuǎn)程監(jiān)測(cè)。試驗(yàn)結(jié)果表明,遠(yuǎn)程監(jiān)測(cè)系統(tǒng)能采集并記錄試驗(yàn)儀器的使用信息,為儀器的維護(hù)提供第一手資料,在一定程度上實(shí)現(xiàn)了實(shí)驗(yàn)室的信息化。該遠(yuǎn)程測(cè)控系統(tǒng)具有一定的通用性,根據(jù)需求在功能上作進(jìn)一步完善后可應(yīng)用于一系列領(lǐng)域,如機(jī)房監(jiān)控、智能小區(qū)監(jiān)控等。
參考文獻(xiàn):
[1] 周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,2005.
[2] 周立功.ARM嵌入式系統(tǒng)軟件開發(fā)實(shí)例[M].北京:北京航空航天大學(xué)出版社,2005.
[3] 趙 炯.Linuxn內(nèi)核完全剖析[M].北京:機(jī)械工業(yè)出版社,2006.
[4] 劉 淼.嵌入式系統(tǒng)接口設(shè)計(jì)與Linux驅(qū)動(dòng)程序開發(fā)[M].北京:北京航空航天大學(xué)出版社,2006.
[5] 劉 嵐,尹 勇,李京蔚.基于ARM的嵌入式開發(fā)[M].北京:電子工業(yè)出版社,2008.
[6] 楊大千,梅大成,張 巖.基于ARM9和Linux的嵌入式動(dòng)態(tài)Web技術(shù)設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2006(8):45-46.endprint