基于A(yíng)RM9嵌入式網(wǎng)管系統的設計與實(shí)現
前言
本文引用地址:http://dyxdggzs.com/article/87730.htm多業(yè)務(wù)光纖接入系統主要利用傳統的SDH和光纜資源,通過(guò)光纖延伸原有的TDM專(zhuān)線(xiàn)的覆蓋范圍,使得傳統的固網(wǎng)運營(yíng)商能夠繼續提供和擴大專(zhuān)線(xiàn)業(yè)務(wù)。
多業(yè)務(wù)光纖接入系統除了采用傳統的網(wǎng)管軟件外,同時(shí)采用了基于Web方式的嵌人式網(wǎng)管系統。本文結合嵌入式Web服務(wù)器和嵌入式數據庫技術(shù)在接入設備網(wǎng)管系統中的應用,對基于A(yíng)RM9平臺且含有嵌入式Web服務(wù)器和嵌入式數據庫的網(wǎng)管系統的設計與實(shí)現方法進(jìn)行討論。
嵌入式網(wǎng)管系統設計概述
嵌入式網(wǎng)管系統基于A(yíng)RM9硬件平臺和Linux操作系統,采用嵌入式Web服務(wù)器對設備進(jìn)行功能配置,采用嵌入式數據庫對告警信息進(jìn)行采集、分析、存儲。管理人員可以通過(guò)IE瀏覽器直接訪(fǎng)問(wèn)設備上的Web服務(wù)器,從而實(shí)現網(wǎng)絡(luò )管理功能。嵌人式監控系統的結構如圖1所示。嵌入式網(wǎng)管系統給每個(gè)設備帶來(lái)了圖形化的管理,提供了簡(jiǎn)單易用的接口,操作簡(jiǎn)單而不損失功能。
在本義的系統中,硬件平臺基于A(yíng)T91RM9200芯片,該芯片采用16/32位ARM920T內核,工作速度達180MHz,內部集成有64K RAM和128K ROM,并有外部總線(xiàn)擴展接口(EBI)支持多種類(lèi)型的外部存儲器。對操作系統,本文選擇了開(kāi)放源代碼及網(wǎng)絡(luò )資源豐富的Linux。嵌入式Linux操作系統可移植性強,用戶(hù)通過(guò)重新配置,編譯內核后,內核文件小于500K。
嵌入式Web服務(wù)器和嵌入式數據庫的移植
交叉編譯環(huán)境的建立
為了建立交叉編譯環(huán)境,首先需要安裝交叉編譯工具arm-linux-gcc,這里采用cross-2.95.3.tar.gz工具包。將工具包解壓縮安裝到宿主機的/opt目錄下,并配置環(huán)境變量,重啟后就建立起需要的交叉編譯開(kāi)發(fā)環(huán)境。 嵌入式Web服務(wù)器的移植
嵌入式Web服務(wù)器采用開(kāi)源的Boa服務(wù)器。Boa是一款單任務(wù)的HTTP服務(wù)器,通過(guò)建立HTTP請求列表處理多路HTTP連接請求。同時(shí),它只為CGI程序創(chuàng )建新的進(jìn)程,在很大程度上節省了系統資源。
解壓縮boa0.94源碼后,通過(guò)./configure--host=arm-linux-gcc--target=arm-linux命令生成Makefile文件,將其中的GCC修改為arm-linux-gcc,執行make命令,即可生成在A(yíng)RM板上運行的Boa應用程序。
Web服務(wù)器的配置
為了能夠在A(yíng)RM上運行Web服務(wù)器Boa,需要對其運行環(huán)境、參數等進(jìn)行設置,并將最終的配置文件boa.conf置于適當位置。通過(guò)修改配置文件boa.conf可實(shí)現對Web服務(wù)器的配置。部分配置為:偵聽(tīng)端口使用80端口,訪(fǎng)問(wèn)日志AccessLog存放于/var/log/boa/access_log,錯誤日志ErrorLog位于/var/log/boa/error.log,文件的根目錄DocumentRoot設在/home/web/,KeepAliveMax值和KeepAliveTimeout值采用默認值,設置CGI腳本程序Path為/cgi-bin/,服務(wù)器名ServerName值設置為webServer;將修改好的配置文件boa.conf存放于嵌入式文件系統根文件/home/web目錄下。最后將含有Boa應用程序、boa.conf配置文件及其他相關(guān)CGI腳本程序的ramdisk文件系統通過(guò)TFTP服務(wù)器下載到Flash存儲器中。
嵌入式數據庫的移植
嵌入式數據庫采用開(kāi)源的SQLite數據庫,它是一個(gè)輕量級別的關(guān)系數據庫,具有三級模式的結構體系,即用戶(hù)模式、邏輯模式和存儲模式。為了使數據庫應用程序能夠在A(yíng)T91RM9200+Linux環(huán)境中運行,需要把SQLite移植到Linux平臺上,通過(guò)FTP方式下載到目標板Linux系統的lib目錄下,將數據庫應用程序交叉編譯后,通過(guò)FTP方式下載到目標板Linux文什系統中即可運行。
嵌入式臨近系統的軟件結構設計
基于A(yíng)RM平臺的監控系統軟件結構如圖2所示。在硬件平臺加電之后,加載程序負責對微處理器進(jìn)行必要的硬件設置并初始化內存。對內核映像文件進(jìn)行解壓縮,在必要的檢查之后,開(kāi)始內核、用戶(hù)態(tài)等初始化工作。最后啟動(dòng)Shell,使嵌入式監控系統運行。在具體的設計中,硬件所需要的設備驅動(dòng)程序、網(wǎng)絡(luò )功能支持等,都是通過(guò)編譯Linux內核完成。
在監控系統中,主要任務(wù)由兩個(gè)不同的程序(進(jìn)程)--實(shí)時(shí)數據的采集處理程序和響應用戶(hù)請求的網(wǎng)絡(luò )服務(wù)程序完成。由于數據采集處理程序獨占RS-232串口,而CGI腳本程序也需要通過(guò)串口下發(fā)命令,為了避免多次打開(kāi)串口,CGI腳本程序通過(guò)消息隊列方式與數據采集處理程序進(jìn)行通信,從而實(shí)現多個(gè)進(jìn)程同時(shí)共用一個(gè)串口。
實(shí)時(shí)數據采集程序由數據采集、數據處理及數據存儲模塊構成。數據采集模塊負責按照用戶(hù)預先設定的通信協(xié)議通過(guò)RS-232串口周期的下發(fā)查詢(xún)命令,并把接收的數據存入數據緩存區。數據處理模塊根據協(xié)議對采集的數據進(jìn)行解析,將解析結果按照不同的字段進(jìn)行分類(lèi)。數據存儲模塊將解析結果按照SQLite數據庫浯法要求分別儲存到相應的字段中。
響應用戶(hù)請求的網(wǎng)絡(luò )服務(wù)程序由Web服務(wù)器(Boa)和響應用戶(hù)請求的CGI腳本程序兩部分組成:服務(wù)器通過(guò)偵聽(tīng)端口80,偵聽(tīng)來(lái)自網(wǎng)絡(luò )的用戶(hù)請求,當用戶(hù)通過(guò)IE瀏覽器向服務(wù)器發(fā)出請求時(shí),肩動(dòng)響應的CGI腳本程序,將請求信息轉化為服務(wù)器可以識別的數據格式,從SQLiLe數據庫中讀取出所需要的信息,再由CGI程序將信息轉化為Web瀏覽器能夠識別的格式,作為HTTP應答消息回送到客戶(hù)端顯示。CGI腳本程序完成的功能主要包括:配置、查詢(xún)設備相關(guān)信息及查詢(xún)設備告警信息等。查詢(xún)設備告警信息的CGI腳本程序主要功能代碼如下。
結語(yǔ)
在嵌入式網(wǎng)管系統中,利用嵌入式Wcb服務(wù)器和嵌入式數據庫對數據進(jìn)行操作和管理是嵌入式網(wǎng)管系統的應用發(fā)展方向。本文所描述的系統縮短了應用程序丌發(fā)過(guò)程,降低了網(wǎng)管軟件的開(kāi)發(fā)成本,實(shí)現了多用戶(hù)數據共享。實(shí)踐證明,基于A(yíng)RM9平臺的嵌入式網(wǎng)管系統具有很高的應用價(jià)值。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論