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