嵌入式Web污染源自動(dòng)監(jiān)測(cè)系統(tǒng)
1 引言
環(huán)境污染問(wèn)題一直備受重視。雖然我國(guó)污染源監(jiān)測(cè)體系和能力都有一定的基礎(chǔ),但污染源監(jiān)測(cè)工作仍存在一些急待解決的問(wèn)題,如在線自動(dòng)化程度低.信息處理的及時(shí)性與管理工作的需要不相適應(yīng),各個(gè)監(jiān)測(cè)系統(tǒng)相互獨(dú)立等。因此,一個(gè)能夠滿足現(xiàn)實(shí)需要的污染源自動(dòng)監(jiān)測(cè)系統(tǒng)具有重大的社會(huì)意義。
目前污染源監(jiān)測(cè)系統(tǒng)較多是基于8位或16位的處理器,且其通信方式大多為撥號(hào)方式、GSM短信方式和串行方式,導(dǎo)致系統(tǒng)功能弱,投資大,監(jiān)測(cè)范圍小。這里采用低成本的基于32位ARM7處理器的嵌入式服務(wù)器,并順應(yīng)監(jiān)測(cè)系統(tǒng)從集中式控制轉(zhuǎn)向分散式的網(wǎng)絡(luò)控制的趨勢(shì),結(jié)合Intemet技術(shù)和Web技術(shù),從以前的C/S式管理轉(zhuǎn)向B/S式管理,設(shè)計(jì)并實(shí)現(xiàn)嵌入式Web污染源自動(dòng)監(jiān)測(cè)系統(tǒng)。
2 系統(tǒng)硬件平臺(tái)設(shè)計(jì)
硬件平臺(tái)是嵌入式系統(tǒng)的基礎(chǔ).其性能直接影響整個(gè)系統(tǒng)性能的發(fā)揮和功能的實(shí)現(xiàn)。該系統(tǒng)從系統(tǒng)功能要求和價(jià)格兩方面綜合考慮,選擇Atmel公司的AT91SAM7X系列微處理器(主要使用7X256型)為核心,并根據(jù)系統(tǒng)功能需要配以網(wǎng)絡(luò)接口器件、外置Flash、SD/MMC卡接口、EEPROM、污染源測(cè)量變送器接口、日歷時(shí)鐘器件等。該系統(tǒng)的硬件結(jié)構(gòu)框圖如圖1所示。
AT91SAM7X系列微處理器是Atmel公司基于32位ARM7TDMI核的微處理器.包括AT9lSAM7X128/256/512型,它們只是片內(nèi)Flash和SRAM容量不同,在應(yīng)用中可根據(jù)程序的內(nèi)存需求選擇合適的型號(hào)以節(jié)省成本.而只需要對(duì)程序進(jìn)行極少的修改(因AT91SAM7X512的片內(nèi)Flash由2個(gè)功能塊組成,故需要操作2個(gè)嵌入式Flash控制器EFC實(shí)現(xiàn)對(duì)片內(nèi)Flash的操作)。AT91SAM7X256集成256 KB的片內(nèi)Flash和64 KB的SRAM,EMAC(以太網(wǎng)MAC)、USART(異步收發(fā)器)、SPI(串行外圍接口)、TWI(雙線接口)、PIO(并行輸入輸出控制器)和眾多監(jiān)管功能,完全符合該系統(tǒng)的要求。其中片內(nèi)Flash用于存儲(chǔ)BootLoader、系統(tǒng)內(nèi)核、各種應(yīng)用程序的代碼和靜態(tài)變量、常量等,而SRAM則用于存儲(chǔ)程序運(yùn)行時(shí)使用的各種變量和堆棧信息等。
網(wǎng)絡(luò)的連接方式選擇以太網(wǎng)方式接入Intemet。RTL8201BL是一個(gè)單端口的10/100 M快速以太網(wǎng)物理層收發(fā)器(PHY),微處理器內(nèi)的EMAC通過(guò)MOID對(duì)其進(jìn)行控制和傳輸方式、速率等的同步,并使用MII(媒體獨(dú)立接口)與其進(jìn)行數(shù)據(jù)交互實(shí)現(xiàn)數(shù)據(jù)收發(fā),采用RJ45接口接入以太網(wǎng)。在數(shù)據(jù)采集方面,系統(tǒng)采用高速的污染源測(cè)量變送器接口連接污染源專用監(jiān)測(cè)設(shè)備,同時(shí)輔以RS232接口和CAN接口以兼容其他接入方式的設(shè)備,完成對(duì)各種智能儀表的數(shù)據(jù)采集和設(shè)備控制;并采用外置Flash和SD/MMC卡作為外存儲(chǔ)器,存儲(chǔ)采集到的歷史數(shù)據(jù)和Web服務(wù)器所需的靜態(tài)網(wǎng)頁(yè)文件、用戶信息文件等。而污染源數(shù)據(jù)采集需要使用精準(zhǔn)的時(shí)間校準(zhǔn),為此,使用串行日歷器件為數(shù)據(jù)采集提供時(shí)間信息。
此外,污染源監(jiān)測(cè)系統(tǒng)的工作環(huán)境一般較為惡劣,因此采用看門(mén)狗電路(WDT)使系統(tǒng)在受到強(qiáng)干擾而出現(xiàn)異常時(shí)能自動(dòng)復(fù)位,從而保證系統(tǒng)正常工作。系統(tǒng)運(yùn)行所需的配置信息,包括網(wǎng)絡(luò)參數(shù)、運(yùn)行參數(shù)、采集參數(shù)等則存儲(chǔ)于EEPROM中,并通過(guò)CRC校驗(yàn)和使用鎖存引腳WP保證數(shù)據(jù)的完整性。
3 系統(tǒng)軟件平臺(tái)設(shè)計(jì)
3.1 軟件平臺(tái)總體結(jié)構(gòu)
該系統(tǒng)的軟件平臺(tái)由操作系統(tǒng)層、系統(tǒng)服務(wù)層、應(yīng)用層組成。其系統(tǒng)軟件結(jié)構(gòu)層次如圖2所示。
該系統(tǒng)對(duì)實(shí)時(shí)性要求較高,且內(nèi)存資源有限,這里選擇μC/OS-II,它是一個(gè)開(kāi)源、可移植的、搶占式的實(shí)時(shí)操作系統(tǒng),無(wú)TCP/IP協(xié)議棧功能,需通過(guò)擴(kuò)展實(shí)現(xiàn)。LWIP是一套嵌入式系統(tǒng)的開(kāi)源TCP/IP協(xié)議棧。它采用“零拷貝”技術(shù)且占用內(nèi)存很少,該系統(tǒng)對(duì)其進(jìn)行移植和適當(dāng)剪裁,僅保留系統(tǒng)功能所需的協(xié)議。
為了實(shí)現(xiàn)操作系統(tǒng)的移植和上層軟件的開(kāi)發(fā),必須提供各種硬件的控制。設(shè)備驅(qū)動(dòng)用于控制外圍設(shè)備,主要包括外置Flash、SD/MMC、日歷時(shí)鐘、網(wǎng)絡(luò)、EEPROM、污染源測(cè)量變送器接口等的驅(qū)動(dòng)。而板級(jí)支持包是根據(jù)微處理器開(kāi)發(fā)包編寫(xiě)的用于控制微處理器內(nèi)各功能部件的程序庫(kù)。硬件抽象層屏蔽硬件設(shè)備型號(hào)差異和操作系統(tǒng)的一些細(xì)節(jié),把設(shè)備驅(qū)動(dòng)抽象為統(tǒng)一的接口,其功能主要有以下3方面:(1)為了實(shí)現(xiàn)平臺(tái)無(wú)關(guān),LWIP通過(guò)操作系統(tǒng)仿真層與操作系統(tǒng)和網(wǎng)絡(luò)接口交互,該系統(tǒng)通過(guò)在硬件抽象層中實(shí)現(xiàn)該功能完成協(xié)議棧的移植;(2)在外置Flash和SD/MMC上建立μC/FS文件系統(tǒng)時(shí),需要借助硬件抽象層控制這些設(shè)備而無(wú)須了解其細(xì)節(jié);(3)同樣,應(yīng)用層軟件可通過(guò)系統(tǒng)調(diào)用方式控制底層設(shè)備,使得其工作與底層更加獨(dú)立有效。
嵌入式Web服務(wù)器需要使用到網(wǎng)頁(yè)文件、用戶信息和設(shè)備采集到的歷史數(shù)據(jù)等,數(shù)據(jù)量較大,必須放置于外存儲(chǔ)器。而使用文件系統(tǒng)可以方便對(duì)這些信息實(shí)現(xiàn)保存和讀取等操作,因而該系統(tǒng)通過(guò)移植μC/FS,在外置Flash和SD/MMC卡上建立文件系統(tǒng)。將對(duì)于實(shí)時(shí)性要求較高的網(wǎng)頁(yè)文件和用戶信息存儲(chǔ)于讀寫(xiě)速率較快但容量較小的外置Flash中,而歷史數(shù)據(jù)等對(duì)實(shí)時(shí)性要求相對(duì)較低且數(shù)據(jù)量較大的信息則存儲(chǔ)于SD/MMC卡中。
控制軟件是系統(tǒng)和監(jiān)測(cè)設(shè)備的控制中心,其承擔(dān)的任務(wù)是:對(duì)上執(zhí)行Web服務(wù)器的控制指令和上傳數(shù)據(jù),對(duì)下控制各個(gè)儀表的工作和采集設(shè)備的原始數(shù)據(jù)并對(duì)其進(jìn)行預(yù)處理.同時(shí)配置系統(tǒng)的運(yùn)行參數(shù)??刂栖浖捎媚K化設(shè)計(jì),主要包括采集、控制、預(yù)警、系統(tǒng)配置和存儲(chǔ)查詢5個(gè)模塊。其中.采集模塊負(fù)責(zé)對(duì)設(shè)備數(shù)據(jù)的采集和預(yù)處理;控制模塊用于解析并執(zhí)行對(duì)設(shè)備的控制指令;預(yù)警模塊負(fù)責(zé)監(jiān)視設(shè)備是否正常運(yùn)行,同時(shí)對(duì)超標(biāo)數(shù)據(jù)做出相應(yīng)的警報(bào)處理;系統(tǒng)配置模塊用于配置系統(tǒng)的運(yùn)行參數(shù)、設(shè)備的采集參數(shù)和動(dòng)態(tài)網(wǎng)頁(yè)的生成規(guī)則:存儲(chǔ)查詢模塊完成歷史數(shù)據(jù)、報(bào)警信息和運(yùn)行記錄等的永久存儲(chǔ)與快速查詢功能。
Web服務(wù)器是整個(gè)軟件平臺(tái)的應(yīng)用核心,它通過(guò)接收并響應(yīng)用戶的HTTP請(qǐng)求實(shí)現(xiàn)污染源的在線自動(dòng)監(jiān)測(cè)。
3.2 Web服務(wù)器設(shè)計(jì)
該系統(tǒng)采用瘦服務(wù)端一胖客戶端模式,通過(guò)簡(jiǎn)化HTTP的一些機(jī)制從而精簡(jiǎn)Web服務(wù)器,其工作原理如圖3所示。
在服務(wù)器端,HTTP引擎是整個(gè)Web服務(wù)器的核心,負(fù)責(zé)接收和響應(yīng)來(lái)自客戶端的HTTP請(qǐng)求,是通過(guò)采用有限狀態(tài)機(jī)的機(jī)制實(shí)現(xiàn)的。HTTP引擎在與客戶端建立可靠的TCP連接(通常采用80端口)后,接收客戶端的請(qǐng)求,通過(guò)解讀請(qǐng)求中的HTTP協(xié)議報(bào)文信息來(lái)獲得客戶端請(qǐng)求的類型(Ajax請(qǐng)求還是普通請(qǐng)求)和內(nèi)容,并進(jìn)行用戶權(quán)限驗(yàn)證。當(dāng)請(qǐng)求類型為普通網(wǎng)頁(yè)請(qǐng)求時(shí),它首先讀取存儲(chǔ)于文件系統(tǒng)中的網(wǎng)頁(yè)模板,然后經(jīng)過(guò)EL(表達(dá)式語(yǔ)言)處理進(jìn)行關(guān)鍵字替換生成新的動(dòng)態(tài)網(wǎng)頁(yè)作為響應(yīng)內(nèi)容;當(dāng)請(qǐng)求類型為Aiax請(qǐng)求時(shí),它則通過(guò)CGI(通用網(wǎng)關(guān)接口)調(diào)用與控制軟件進(jìn)行交互,更改設(shè)備控制、系統(tǒng)配置并獲得實(shí)時(shí)數(shù)據(jù),把所得數(shù)據(jù)或操作結(jié)果作為響應(yīng)內(nèi)容。最后為響應(yīng)內(nèi)容加以合適的HTTP包頭回傳到客戶端。以上功能均通過(guò)使用C語(yǔ)言編程完成,以獲得高效的Web服務(wù)器。
Ajax處理為客戶端的核心部分。常規(guī)的Web應(yīng)用是采用網(wǎng)頁(yè)刷新機(jī)制,強(qiáng)制用戶進(jìn)入提交/等待/重新顯示,客戶端每次刷新數(shù)據(jù)都要求服務(wù)器端傳送整頁(yè)數(shù)據(jù),而其中只有極少數(shù)據(jù)是需要更新的實(shí)時(shí)數(shù)據(jù).因此,網(wǎng)絡(luò)傳送大量冗余信息,嚴(yán)重影響實(shí)時(shí)性。與此不同,Ajax應(yīng)用可以僅向服務(wù)器發(fā)送并取回必需的數(shù)據(jù),大大減少傳輸?shù)臄?shù)據(jù)量,從而提高測(cè)控的實(shí)時(shí)性。Ajax處理根據(jù)用戶操作要求向服務(wù)器發(fā)出異步的Ajax請(qǐng)求以執(zhí)行所需要的更新,并采用異步方式處理服務(wù)器的響應(yīng),當(dāng)請(qǐng)求返回時(shí),使用JavaScript和CSS相應(yīng)地更新UI;而VML(矢量可標(biāo)示語(yǔ)言)處理則完成數(shù)據(jù)的可視化工作,生成監(jiān)測(cè)所需的各種動(dòng)態(tài)圖表。以上功能主要通過(guò)Html+Javascript語(yǔ)言并輔以VML實(shí)現(xiàn)。
3.3 監(jiān)測(cè)系統(tǒng)功能設(shè)計(jì)
嵌入式Web污染源自動(dòng)監(jiān)測(cè)系統(tǒng)通過(guò)Internet網(wǎng)絡(luò)對(duì)監(jiān)控對(duì)象進(jìn)行全天候的遠(yuǎn)程實(shí)時(shí)監(jiān)控并對(duì)監(jiān)測(cè)儀器進(jìn)行遠(yuǎn)程管理,同時(shí)具有便捷有效的系統(tǒng)管理功能。該系統(tǒng)主要實(shí)現(xiàn)以下功能:
(1)用戶認(rèn)證負(fù)責(zé)用戶權(quán)限的管理,提供用戶的系統(tǒng)登陸和退出功能。
(2)實(shí)時(shí)監(jiān)控 以圖表和動(dòng)態(tài)曲線圖方式實(shí)時(shí)地顯示嵌入式Web服務(wù)器采集到的監(jiān)控設(shè)備數(shù)據(jù)及其變化趨勢(shì)。
(3)設(shè)備管理包括遠(yuǎn)程設(shè)備控制和狀態(tài)查看兩大功能。遠(yuǎn)程設(shè)備控制實(shí)現(xiàn)用戶通過(guò)對(duì)網(wǎng)頁(yè)的操作來(lái)完成對(duì)遠(yuǎn)程監(jiān)控設(shè)備的各種控制;而狀態(tài)查看則用于查看遠(yuǎn)程設(shè)備的運(yùn)行狀態(tài)信息。
(4)系統(tǒng)參數(shù)配置 用于查詢和配置系統(tǒng)運(yùn)行和設(shè)備采集所需的各種參數(shù),主要包括網(wǎng)絡(luò)參數(shù)、系統(tǒng)時(shí)間、報(bào)警參數(shù)、采集參數(shù)等。其中網(wǎng)絡(luò)參數(shù)主要包括服務(wù)器的MAC地址(只能讀取)、IP地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)等;系統(tǒng)時(shí)間則是指讀取和設(shè)置串行日歷器件中的時(shí)間;報(bào)警參數(shù)主要包括報(bào)警策略、報(bào)警動(dòng)作和報(bào)警設(shè)備參數(shù):采集參數(shù)則包括采集數(shù)據(jù)的采集間隔、名稱、單位、上下限、系數(shù)、偏移等。
(5)系統(tǒng)維護(hù) 包括系統(tǒng)運(yùn)行狀態(tài)和日志查看及系統(tǒng)在線更新功能。系統(tǒng)運(yùn)行狀態(tài)主要包括服務(wù)器CPU的使用情況,用戶的訪問(wèn)和最大并發(fā)任務(wù)數(shù)等;而日志查看則用于查看用戶對(duì)系統(tǒng)進(jìn)行訪問(wèn)和操作的記錄;系統(tǒng)在線更新支持管理員通過(guò)Intemet來(lái)完成系統(tǒng)的升級(jí)更新。
(6)用戶管理 用于實(shí)現(xiàn)對(duì)系統(tǒng)用戶進(jìn)行添加、刪除和修改當(dāng)前用戶的密碼。
此外,為了提高系統(tǒng)的可移植性和可擴(kuò)展性,網(wǎng)頁(yè)在設(shè)計(jì)時(shí)獨(dú)立于工程而只與功能相關(guān)。當(dāng)需要應(yīng)用某個(gè)具體工程時(shí),用戶只需配置與該工程相關(guān)的各種系統(tǒng)參數(shù)(如工程名稱、安裝地點(diǎn)等),服務(wù)器便可根據(jù)配置參數(shù)和模板網(wǎng)頁(yè)自動(dòng)生成當(dāng)前工程的新的動(dòng)態(tài)網(wǎng)頁(yè)。
4 系統(tǒng)性能測(cè)試
從功能正確性和服務(wù)器性能兩方面對(duì)該系統(tǒng)性能進(jìn)行測(cè)試。正確性測(cè)試主要包括以下5方面:頁(yè)面跳轉(zhuǎn)、功能驗(yàn)證、數(shù)據(jù)檢驗(yàn)、權(quán)限驗(yàn)證、用戶會(huì)話。客戶端通過(guò)IE瀏覽器向服務(wù)器發(fā)送HTTP請(qǐng)求.如果可以正確返回所需網(wǎng)頁(yè)或相應(yīng)的錯(cuò)誤提示,說(shuō)明整個(gè)系統(tǒng)的運(yùn)行正常。圖4為系統(tǒng)首頁(yè)效果圖。主要使用Web服務(wù)器性能測(cè)試工具進(jìn)行服務(wù)器性能測(cè)試,其測(cè)試主要參數(shù)的結(jié)果如表1所列。
5 結(jié)束語(yǔ)
該系統(tǒng)實(shí)現(xiàn)低成本的基于32位ARM7處理器的污染源自動(dòng)監(jiān)測(cè)系統(tǒng),滿足現(xiàn)實(shí)污染源監(jiān)測(cè)的需要,具有較大社會(huì)價(jià)值。系統(tǒng)采用Intemet作為通信方式,并結(jié)合Web技術(shù)使得系統(tǒng)從C/S集中式控制過(guò)渡為B/S分散式控制,適應(yīng)技術(shù)的發(fā)展趨勢(shì),該設(shè)計(jì)對(duì)監(jiān)測(cè)系統(tǒng)的開(kāi)發(fā)具有較高的參考價(jià)值。
評(píng)論