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