新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于ARM9嵌入式網管系統(tǒng)的設計與實現(xiàn)

基于ARM9嵌入式網管系統(tǒng)的設計與實現(xiàn)

作者:重慶郵電大學下一代網絡應用技術研究所 楊永 萬曉榆 樊自甫 時間:2008-09-04 來源:中電網 收藏

  前言

本文引用地址:http://www.butianyuan.cn/article/87730.htm

  多業(yè)務系統(tǒng)主要利用傳統(tǒng)的SDH和光纜資源,通過光纖延伸原有的TDM專線的覆蓋范圍,使得傳統(tǒng)的固網運營商能夠繼續(xù)提供和擴大專線業(yè)務。

  多業(yè)務系統(tǒng)除了采用傳統(tǒng)的網管軟件外,同時采用了基于方式的嵌人式。本文結合服務器和數(shù)據(jù)庫技術在接入設備中的應用,對基于ARM9平臺且含有服務器和嵌入式數(shù)據(jù)庫的的設計與實現(xiàn)方法進行討論。

  嵌入式網管系統(tǒng)設計概述

  嵌入式網管系統(tǒng)基于ARM9硬件平臺和Linux操作系統(tǒng),采用嵌入式Web服務器對設備進行功能配置,采用嵌入式數(shù)據(jù)庫對告警信息進行采集、分析、存儲。管理人員可以通過IE瀏覽器直接訪問設備上的Web服務器,從而實現(xiàn)網絡管理功能。嵌人式監(jiān)控系統(tǒng)的結構如圖1所示。嵌入式網管系統(tǒng)給每個設備帶來了圖形化的管理,提供了簡單易用的接口,操作簡單而不損失功能。

  在本義的系統(tǒng)中,硬件平臺基于AT91RM9200芯片,該芯片采用16/32位ARM920T內核,工作速度達180MHz,內部集成有64K RAM和128K ROM,并有外部總線擴展接口(EBI)支持多種類型的外部存儲器。對操作系統(tǒng),本文選擇了開放源代碼及網絡資源豐富的Linux。嵌入式Linux操作系統(tǒng)可移植性強,用戶通過重新配置,編譯內核后,內核文件小于500K。

  嵌入式Web服務器和嵌入式數(shù)據(jù)庫的移植

  交叉編譯環(huán)境的建立

  為了建立交叉編譯環(huán)境,首先需要安裝交叉編譯工具arm-linux-gcc,這里采用cross-2.95.3.tar.gz工具包。將工具包解壓縮安裝到宿主機的/opt目錄下,并配置環(huán)境變量,重啟后就建立起需要的交叉編譯開發(fā)環(huán)境。 嵌入式Web服務器的移植

  嵌入式Web服務器采用開源的Boa服務器。Boa是一款單任務的HTTP服務器,通過建立HTTP請求列表處理多路HTTP連接請求。同時,它只為CGI程序創(chuàng)建新的進程,在很大程度上節(jié)省了系統(tǒng)資源。

  解壓縮boa0.94源碼后,通過./configure--host=arm-linux-gcc--target=arm-linux命令生成Makefile文件,將其中的GCC修改為arm-linux-gcc,執(zhí)行make命令,即可生成在ARM板上運行的Boa應用程序。

  Web服務器的配置

  為了能夠在ARM上運行Web服務器Boa,需要對其運行環(huán)境、參數(shù)等進行設置,并將最終的配置文件boa.conf置于適當位置。通過修改配置文件boa.conf可實現(xiàn)對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存放于嵌入式文件系統(tǒng)根文件/home/web目錄下。最后將含有Boa應用程序、boa.conf配置文件及其他相關CGI腳本程序的ramdisk文件系統(tǒng)通過TFTP服務器下載到Flash存儲器中。

  嵌入式數(shù)據(jù)庫的移植

  嵌入式數(shù)據(jù)庫采用開源的SQLite數(shù)據(jù)庫,它是一個輕量級別的關系數(shù)據(jù)庫,具有三級模式的結構體系,即用戶模式、邏輯模式和存儲模式。為了使數(shù)據(jù)庫應用程序能夠在AT91RM9200+Linux環(huán)境中運行,需要把SQLite移植到Linux平臺上,通過FTP方式下載到目標板Linux系統(tǒng)的lib目錄下,將數(shù)據(jù)庫應用程序交叉編譯后,通過FTP方式下載到目標板Linux文什系統(tǒng)中即可運行。

  嵌入式臨近系統(tǒng)的軟件結構設計

  基于ARM平臺的監(jiān)控系統(tǒng)軟件結構如圖2所示。在硬件平臺加電之后,加載程序負責對微處理器進行必要的硬件設置并初始化內存。對內核映像文件進行解壓縮,在必要的檢查之后,開始內核、用戶態(tài)等初始化工作。最后啟動Shell,使嵌入式監(jiān)控系統(tǒng)運行。在具體的設計中,硬件所需要的設備驅動程序、網絡功能支持等,都是通過編譯Linux內核完成。

  在監(jiān)控系統(tǒng)中,主要任務由兩個不同的程序(進程)--實時數(shù)據(jù)的采集處理程序和響應用戶請求的網絡服務程序完成。由于數(shù)據(jù)采集處理程序獨占RS-232串口,而CGI腳本程序也需要通過串口下發(fā)命令,為了避免多次打開串口,CGI腳本程序通過消息隊列方式與數(shù)據(jù)采集處理程序進行通信,從而實現(xiàn)多個進程同時共用一個串口。

  實時數(shù)據(jù)采集程序由數(shù)據(jù)采集、數(shù)據(jù)處理及數(shù)據(jù)存儲模塊構成。數(shù)據(jù)采集模塊負責按照用戶預先設定的通信協(xié)議通過RS-232串口周期的下發(fā)查詢命令,并把接收的數(shù)據(jù)存入數(shù)據(jù)緩存區(qū)。數(shù)據(jù)處理模塊根據(jù)協(xié)議對采集的數(shù)據(jù)進行解析,將解析結果按照不同的字段進行分類。數(shù)據(jù)存儲模塊將解析結果按照SQLite數(shù)據(jù)庫浯法要求分別儲存到相應的字段中。

  響應用戶請求的網絡服務程序由Web服務器(Boa)和響應用戶請求的CGI腳本程序兩部分組成:服務器通過偵聽端口80,偵聽來自網絡的用戶請求,當用戶通過IE瀏覽器向服務器發(fā)出請求時,肩動響應的CGI腳本程序,將請求信息轉化為服務器可以識別的數(shù)據(jù)格式,從SQLiLe數(shù)據(jù)庫中讀取出所需要的信息,再由CGI程序將信息轉化為Web瀏覽器能夠識別的格式,作為HTTP應答消息回送到客戶端顯示。CGI腳本程序完成的功能主要包括:配置、查詢設備相關信息及查詢設備告警信息等。查詢設備告警信息的CGI腳本程序主要功能代碼如下。
 


 

  結語

  在嵌入式網管系統(tǒng)中,利用嵌入式Wcb服務器和嵌入式數(shù)據(jù)庫對數(shù)據(jù)進行操作和管理是嵌入式網管系統(tǒng)的應用發(fā)展方向。本文所描述的系統(tǒng)縮短了應用程序丌發(fā)過程,降低了網管軟件的開發(fā)成本,實現(xiàn)了多用戶數(shù)據(jù)共享。實踐證明,基于ARM9平臺的嵌入式網管系統(tǒng)具有很高的應用價值。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關推薦

技術專區(qū)

關閉