基於ARM9嵌入式網管系統的設計與實現
| [日期:2008-9-5] |
來源:中電網 作者:重慶郵電大學下一代網路應用技術研究所 楊永 萬曉榆 樊自甫 |
[字型:大 中 小] |
前言
多業務光纖接入系統主要利用傳統的SDH和光纜資源,通過光纖延伸原有的TDM專線的覆蓋範圍,使得傳統的固網電訊廠商能夠繼續提供和擴大專線業務。
多業務光纖接入系統除了採用傳統的網管軟體外,同時採用了基於Web方式的嵌人式網管系統。本文結合嵌入式Web伺服器和嵌入式資料庫技術在接入裝置網管系統中的應用,對基於ARM9平台且含有嵌入式Web伺服器和嵌入式資料庫的網管系統的設計與實現方法進行討論。
嵌入式網管系統設計概述
嵌入式網管系統基於ARM9硬體平台和Linux作業系統,採用嵌入式Web伺服器對裝置進行功能配置,採用嵌入式資料庫對警示資訊進行採集、分析、儲存。管理員可以通過IE瀏覽器直接存取裝置上的Web伺服器,從而實現網路管理功能。嵌人式監控系統的結構1所示。嵌入式網管系統給每個裝置帶來了圖形化的管理,提供了簡單易用的介面,操作簡單而不損失功能。
在本義的系統中,硬體平台基於AT91RM9200晶片,該晶片採用16/32位ARM920T核心,工作速度達180MHz,內部整合有64K RAM和128K ROM,並有外部匯流排擴充介面(EBI)支援多種類型的外部儲存空間。對作業系統,本文選擇了開放原始碼及網路資源豐富的Linux。嵌入式Linux作業系統可移植性強,使用者通過重新設定,編譯核心後,核心檔案小於500K。
嵌入式Web伺服器和嵌入式資料庫的移植
交叉編譯環境的建立
為了建立交叉編譯環境,首先需要安裝交叉編譯工具arm-linux-gcc,這裡採用cross-2.95.3.tar.gz工具包。將工具包解壓縮安裝到宿主機的/opt目錄下,並配置環境變數,重啟後就建立起需要的交叉編譯開發環境。 嵌入式Web伺服器的移植
嵌入式Web伺服器採用開源的Boa伺服器。Boa是一款單任務的HTTP伺服器,通過建立HTTP請求列表處理多路HTTP串連請求。同時,它只為CGI程式建立新的進程,在很大程度上節省了系統資源。
解壓縮boa0.94源碼後,通過./configure--host=arm-linux-gcc--target=arm-linux命令產生Makefile檔案,將其中的GCC修改為arm-linux-gcc,執行make命令,即可產生在ARM板上啟動並執行Boa應用程式。
Web伺服器的配置
為了能夠在ARM上運行Web伺服器Boa,需要對其運行環境、參數等進行設定,並將最終的設定檔boa.conf置於適當位置。通過修改設定檔boa.conf可實現對Web伺服器的配置。部分配置為:偵聽連接埠使用80連接埠,訪問日誌AccessLog存放於/var/log/boa/access_log,錯誤記錄檔ErrorLog位於/var/log/boa/error.log,檔案的根目錄DocumentRoot設在/home/web/,KeepAliveMax值和KeepAliveTimeout值採用預設值,設定CGI指令碼程式Path為/cgi-bin/,伺服器名ServerName值設定為webServer;將修改好的設定檔boa.conf存放於嵌入式檔案系統根檔案/home/web目錄下。最後將含有Boa應用程式、boa.conf設定檔及其他相關CGI指令碼程式的ramdisk檔案系統通過TFTP伺服器下載到Flash儲存空間中。
嵌入式資料庫的移植
嵌入式資料庫採用開源的SQLite資料庫,它是一個輕量層級的關聯式資料庫,具有三級模式的結構體系,即使用者模式、邏輯模式和儲存模式。為了使資料庫應用程式能夠在AT91RM9200+Linux環境中運行,需要把SQLite移植到Linux平台上,通過FTP方式下載到目標板Linux系統的lib目錄下,將資料庫應用程式交叉編譯後,通過FTP方式下載到目標板Linux文什系統中即可運行。
嵌入式臨近系統的軟體結構設計
基於ARM平台的監控系統軟體結構2所示。在硬體平台加電之後,載入程式負責對微處理器進行必要的硬體設定並初始化記憶體。對核心映像檔案進行解壓縮,在必要的檢查之後,開始核心、使用者態等初始化工作。最後啟動Shell,使嵌入式監控系統運行。在具體的設計中,硬體所需要的裝置驅動程式、網路功能支援等,都是通過編譯Linux核心完成。
在監控系統中,主要任務由兩個不同的程式(進程)--即時資料的採集處理常式和響應使用者請求的網路服務程式完成。由於資料擷取處理常式獨佔RS-232串口,而CGI指令碼程式也需要通過串口下發命令,為了避免多次開啟串口,CGI指令碼程式通過訊息佇列方式與資料擷取處理常式進行通訊,從而實現多個進程同時共用一個串口。
即時資料採集程式由資料擷取、資料處理及資料存放區模組構成。資料擷取模組負責按照使用者預先設定的通訊協定通過RS-232串口周期的下發查詢命令,並把接收的資料存入資料緩衝區。資料處理模組根據協議對採集的資料進行解析,將解析結果按照不同的欄位進行分類。資料存放區模組將解析結果按照SQLite資料庫浯法要求分別儲存到相應的欄位中。
響應使用者請求的網路服務程式由Web伺服器(Boa)和響應使用者請求的CGI指令碼程式兩部分組成:伺服器通過偵聽連接埠80,偵聽來自網路的使用者請求,當使用者通過IE瀏覽器向伺服器發出請求時,肩動響應的CGI指令碼程式,將請求資訊轉化為伺服器可以識別的資料格式,從SQLiLe資料庫中讀取出所需要的資訊,再由CGI程式將資訊轉化為Web瀏覽器能夠識別的格式,作為HTTP應答訊息回送到用戶端顯示。CGI指令碼程式完成的功能主要包括:配置、查詢裝置相關資訊及查詢裝置警示資訊等。查詢裝置警示資訊的CGI指令碼程式主要功能代碼如下。
結語
在嵌入式網管系統中,利用嵌入式Wcb伺服器和嵌入式資料庫對資料進行操作和管理是嵌入式網管系統的應用發展方向。本文所描述的系統縮短了應用程式丌發過程,降低了網管軟體的開發成本,實現了多使用者資料共用。實踐證明,基於ARM9平台的嵌入式網管系統具有很高的應用價值。