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