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