基于ARM9的無(wú)線電臺(tái)網(wǎng)絡(luò)控制系統(tǒng)的設(shè)計(jì)
S3C2410內(nèi)嵌一個(gè)以太網(wǎng)控制器,可以在半雙工或全雙工模式下提供10M/100Mbps的以太網(wǎng)接入,支持媒體獨(dú)立接口MII(Media Independent Interface) 和帶緩沖DMA接口。由于S3C2410內(nèi)部并未提供物理層接口,所以我們需要外接一塊物理層芯片以提供以太網(wǎng)的接入通道。而常用的單口10M/100Mbps高速以太網(wǎng)接口器件均提供MII接口和傳統(tǒng)的網(wǎng)絡(luò)接口,所以可以方便地與ARM連接。
在無(wú)線電臺(tái)網(wǎng)絡(luò)控制器終端,我們采用cs8900作為以太網(wǎng)物理層接口。它的基本工作原理如下:在收到主機(jī)發(fā)來(lái)的數(shù)據(jù)報(bào)后,偵聽(tīng)網(wǎng)絡(luò)線路是否忙。如果線路忙,它就等到線路空閑為止,否則,立即發(fā)送該數(shù)據(jù)幀。在發(fā)送過(guò)程中,首先添加以太網(wǎng)幀頭,然后生成CRC校驗(yàn)碼,最后將此數(shù)據(jù)幀發(fā)送到以太網(wǎng)上。在接受過(guò)程中,它將從以太網(wǎng)收到的數(shù)據(jù)經(jīng)過(guò)解碼、去幀頭和地址檢驗(yàn)等步驟,然后保存在片內(nèi)。在通過(guò)CRC校驗(yàn)后,它會(huì)根據(jù)初始化配置情況,通知cs8900收到了數(shù)據(jù)幀,最后,用某種傳輸模式傳到ARM的存儲(chǔ)區(qū)中[5]。
cs8900有三種工作模式:I/O模式、存儲(chǔ)器模式和直接存儲(chǔ)器存儲(chǔ)模式,系統(tǒng)默認(rèn)為I/O模式,可通過(guò)程序使其工作于其它模式。cs8900的各個(gè)工作模式各有優(yōu)缺點(diǎn),在本系統(tǒng)的設(shè)計(jì)中,我們采用的是它的I/O模式。
網(wǎng)卡芯片不能單獨(dú)工作,還必須有一個(gè)網(wǎng)絡(luò)變壓器在RJ-45接口和網(wǎng)絡(luò)芯片中間進(jìn)行電平交換。另外網(wǎng)卡芯片有兩個(gè)LED指示是用于指示接收和發(fā)送狀態(tài)的,如果網(wǎng)絡(luò)連接正常并且正常收發(fā)數(shù)據(jù)報(bào)時(shí),LED會(huì)閃爍。
4、軟件設(shè)計(jì)
在本系統(tǒng)的軟件設(shè)計(jì)中,主要包括無(wú)線電臺(tái)網(wǎng)絡(luò)控制器終端應(yīng)用程序設(shè)計(jì)及服務(wù)器軟件設(shè)計(jì)[6]。
4.1 無(wú)線電臺(tái)網(wǎng)絡(luò)控制器終端應(yīng)用程序設(shè)計(jì)
無(wú)線電臺(tái)網(wǎng)絡(luò)控制器終端應(yīng)用軟件整體結(jié)構(gòu)圖如圖2所示。應(yīng)用軟件結(jié)構(gòu)圖顯示了系統(tǒng)程序設(shè)計(jì)主要由四個(gè)模塊組成,分別是語(yǔ)音及串口數(shù)據(jù)處理模塊、工作參數(shù)設(shè)置及讀取模塊、出廠值還原模塊、服務(wù)器中轉(zhuǎn)及管理模塊。其中前三個(gè)模塊運(yùn)行于嵌入式開(kāi)發(fā)板,最后一個(gè)模塊運(yùn)行于windows 平臺(tái)。四個(gè)模塊中,語(yǔ)音及串口數(shù)據(jù)處理模塊是功能相對(duì)復(fù)雜的模塊,劃分為兩個(gè)相對(duì)獨(dú)立的模塊:語(yǔ)音數(shù)據(jù)處理模塊和串口數(shù)據(jù)處理模塊,其中語(yǔ)音數(shù)據(jù)處理模塊又由3個(gè)子模塊構(gòu)成,分別是讀鍵值、讀網(wǎng)絡(luò)命令和語(yǔ)音數(shù)據(jù)流處理。工作參數(shù)的設(shè)置主要是對(duì)寫配置文件和讀配置文件的設(shè)置。
4.2 服務(wù)器軟件設(shè)計(jì)
服務(wù)器監(jiān)控及控制模塊的程序設(shè)計(jì)中,我們主要使用兩個(gè)定時(shí)器。定時(shí)器1每隔2秒產(chǎn)生一個(gè)超時(shí)事件,服務(wù)器每隔2秒向集群發(fā)送一次查詢數(shù)據(jù)包,控制器收到查詢數(shù)據(jù)包后,會(huì)產(chǎn)生一個(gè)應(yīng)答包,這個(gè)應(yīng)答包中的信息反映了控制器當(dāng)前的狀態(tài)。
5、系統(tǒng)運(yùn)行截面圖
系統(tǒng)的調(diào)試過(guò)程中,我們用了2個(gè)無(wú)線電臺(tái)及服務(wù)器進(jìn)行測(cè)試。服務(wù)器運(yùn)行界面截圖如圖3所示。我們?cè)O(shè)置2個(gè)無(wú)線電臺(tái)網(wǎng)絡(luò)控制器終端的IP地址分別是192.168.0.8和192.168.0.18。按下對(duì)講機(jī)的PPT按鍵時(shí),指示燈由綠燈變成藍(lán)燈,表明服務(wù)器進(jìn)入轉(zhuǎn)發(fā)狀態(tài)。如果想隔離某個(gè)控制器,不讓其接受或轉(zhuǎn)發(fā)信號(hào),則在遠(yuǎn)程控制的框中,輸入對(duì)應(yīng)的IP地址,然后選擇關(guān)閉,則可以對(duì)其進(jìn)行隔離。
與其相對(duì)應(yīng)的指示燈呈紅色。若想關(guān)閉或打開(kāi)所有的控制器,則按遠(yuǎn)程控制框中相應(yīng)的按鈕即可實(shí)現(xiàn)。
評(píng)論