一種可遠程網(wǎng)管的光纖收發(fā)器的設(shè)計
3 系統(tǒng)軟件結(jié)構(gòu)設(shè)計
3.1 構(gòu)建嵌入式軟件平臺
本方案采用源代碼開放的μCLinux內(nèi)核作為操作系統(tǒng)。μCLinux是一個GNU的項目,代碼完全開放,是專門應(yīng)用于沒有MMU的CPU。μCLinux內(nèi)核的二進制代碼和源代碼都經(jīng)過了重新編寫,以緊縮和裁剪基本的代碼,這就使得μCLinux的內(nèi)核同標準的Linux內(nèi)核相比非常之小,但是它仍保持了Linux操作系統(tǒng)的主要的優(yōu)點,如穩(wěn)定性、強大的網(wǎng)絡(luò)功能和出色的文件系統(tǒng)支持等。μClinux只包含Linux常用的API、小于512 KB的內(nèi)核和相關(guān)的工具,操作系統(tǒng)所有的代碼加起來小于900 KB,而且μCLinux有一個完整的TCP協(xié)議棧,同時對其他許多的網(wǎng)絡(luò)協(xié)議都提供支持,這些網(wǎng)絡(luò)協(xié)議都在μCLinux上得到了很好的實現(xiàn)。軟件的開發(fā)環(huán)境是標準的交叉開發(fā)環(huán)境,包括主機和目標機2部分,主機為一臺運行Redhat Linux9.0的PC機,目標機為網(wǎng)管控制部分。
3.2 主控程序設(shè)計
主控程序?qū)崿F(xiàn)了網(wǎng)管部分對光電轉(zhuǎn)換部分上IP113S寄存器的可讀/寫功能,從而使網(wǎng)管可以實時監(jiān)控各光電轉(zhuǎn)換部分的工作。本方案把監(jiān)控程序?qū)懭隒GI程序中,更好地實現(xiàn)其功能。信息采集程序負責(zé)采集每塊光電卡的狀態(tài)信息,其主要任務(wù)是根據(jù)客戶的命令輪詢機架上的光電卡,通過光電卡上的光電介質(zhì)轉(zhuǎn)換芯片IP113S來獲取各寄存器的信息。控制程序主要功能是客戶把控制數(shù)據(jù)寫入IP113S的寄存器中,從而控制光電卡的一些狀態(tài),比如用于設(shè)置光電轉(zhuǎn)換部分的工作模式,實現(xiàn)光纖收發(fā)的遠程管理,包括:遠端卡信息查詢、設(shè)置、通路檢測和流量限速等,其監(jiān)控系統(tǒng)的主程序流程圖如圖4所示。
3.3 液晶顯示程序
當(dāng)網(wǎng)絡(luò)控制模塊取得光纖收發(fā)模塊、機箱溫度等數(shù)據(jù)時,需要在本地實時地在液晶顯示屏上顯示,做到實時監(jiān)控。目前市場上成熟的GUI有很多,但它們均存在一些不足,嵌入式GUI要求小型化、占用資源少、反應(yīng)快捷、可靠性高、成本低,這里在設(shè)計時GUI系統(tǒng)時充分考慮了這些要求,采用了線程消息機制。該GUI體系主要采用C/S多線程的體系結(jié)構(gòu),在系統(tǒng)中服務(wù)器線程主要實現(xiàn)對輸入設(shè)備(鍵盤和觸摸屏)事件的獲取,而客戶端線程主要完成對事件的響應(yīng),包括輸出設(shè)備的控制。在該微型可配置GUI體系結(jié)構(gòu)中,主要分為輸入抽象層、圖形抽象層、消息相應(yīng)層、圖形設(shè)備接口層、控件層等。該系統(tǒng)具有良好的層次性,并且開放了底層的圖形設(shè)備接口層,使用戶能根據(jù)自己需要簡單自由配置,在控件層定義了統(tǒng)一的控件結(jié)構(gòu)體,使用戶對控件的管理更直觀便捷。
評論