基于ARM9的無(wú)線電臺(tái)網(wǎng)絡(luò)控制系統(tǒng)的設(shè)計(jì)與研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1、引言
在如今的信息時(shí)代,由于人們對(duì)系統(tǒng)性能和成本控制要求的不斷提高,嵌入式系統(tǒng)憑其優(yōu)良的性價(jià)比和獨(dú)特的便利性得到了越來(lái)越多的人們的青睞。無(wú)線電臺(tái)已經(jīng)由傳統(tǒng)的模擬式向數(shù)字化演進(jìn),由孤立系統(tǒng)向網(wǎng)絡(luò)互聯(lián)邁進(jìn)。網(wǎng)絡(luò)技術(shù)的快速發(fā)展極大地推動(dòng)了嵌入式系統(tǒng)的發(fā)展。
隨著無(wú)線電臺(tái)技術(shù)的飛速發(fā)展,越來(lái)越多的行業(yè)開(kāi)始使用無(wú)線電臺(tái),因?yàn)橛脽o(wú)線電臺(tái)方式實(shí)現(xiàn)數(shù)據(jù)采集、監(jiān)視與控制,相對(duì)于架設(shè)專(zhuān)用的電纜或光纜,具有造價(jià)低廉、運(yùn)行可靠、維護(hù)方便等優(yōu)點(diǎn)[1]。無(wú)線電臺(tái)的使用從最早的按鍵電碼、電報(bào)發(fā)展到模擬電臺(tái)加無(wú)線MODEM、數(shù)字電臺(tái)和DSP及軟件無(wú)線電。數(shù)據(jù)傳輸速率從低速走到高速,傳輸?shù)男盘?hào)從簡(jiǎn)單代碼發(fā)展到遙控遙測(cè)數(shù)據(jù)、數(shù)字化語(yǔ)音、動(dòng)態(tài)圖像等。無(wú)線電臺(tái)因其高穩(wěn)定性和高可靠性適用于各類(lèi)無(wú)線數(shù)據(jù)采集與監(jiān)視控制系統(tǒng),尤其是應(yīng)用在輸油供氣管網(wǎng)監(jiān)測(cè)、城市防空?qǐng)?bào)警控制、鐵路信號(hào)監(jiān)控、電力負(fù)荷監(jiān)控[2]、城市路燈監(jiān)控、鐵路供水集中控制、GPS定位系統(tǒng)、地震測(cè)報(bào)、污水處理、環(huán)境監(jiān)測(cè)等工業(yè)自動(dòng)化系統(tǒng)。
2、系統(tǒng)概述
本文把嵌入式技術(shù)與無(wú)線電臺(tái)通信技術(shù)相結(jié)合,研究出一種新型的嵌入式網(wǎng)絡(luò)控制器??刂破鲀?nèi)的電路板是以arm9嵌入式微處理器為核心,對(duì)外提供多個(gè)接口,包括3個(gè)串口,小型的系統(tǒng)總線接口,以及非常豐富的常用嵌入式系統(tǒng)接口,如SPI x 1、I2C x 1、I2S x 1、AD x 2、PWM x 1 、USB Host、 USB Slave接口等,有了這些接口,我們可以根據(jù)需求拓展嵌入式網(wǎng)絡(luò)控制器的功能。在本系統(tǒng)中我們主要使用3個(gè)串口及以太網(wǎng)口。
該無(wú)線電臺(tái)網(wǎng)絡(luò)控制器設(shè)計(jì)的主要原理是:電臺(tái)接收對(duì)講機(jī)發(fā)出的語(yǔ)音信號(hào)并通過(guò)音頻電纜輸出到網(wǎng)絡(luò)控制器終端??刂破鲀?nèi)的語(yǔ)音編解碼芯片負(fù)責(zé)把模擬的語(yǔ)音信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),控制器內(nèi)的軟件負(fù)責(zé)壓縮音頻數(shù)據(jù),壓縮后的語(yǔ)音數(shù)據(jù)包通過(guò)互聯(lián)網(wǎng)發(fā)送到服務(wù)器,服務(wù)器軟件根據(jù)一定的規(guī)則轉(zhuǎn)發(fā)數(shù)據(jù)包到其它網(wǎng)絡(luò)控制器終端。收到語(yǔ)音壓縮碼流的控制器負(fù)責(zé)解碼、D/A轉(zhuǎn)換,通過(guò)音頻電纜把語(yǔ)音信號(hào)輸入到電臺(tái),最后無(wú)線電臺(tái)通過(guò)內(nèi)部的發(fā)射模塊將語(yǔ)音信號(hào)發(fā)送到對(duì)講機(jī)。這個(gè)過(guò)程實(shí)現(xiàn)了語(yǔ)音數(shù)據(jù)跨互聯(lián)網(wǎng)傳輸,用戶通過(guò)PC或其他網(wǎng)絡(luò)設(shè)備將控制指令發(fā)送到控制器終端。終端內(nèi)的軟件負(fù)責(zé)解釋指令并且通過(guò)串口將指令傳送給電臺(tái)。電臺(tái)再下達(dá)指令給各個(gè)被控制的設(shè)備,從而實(shí)現(xiàn)了對(duì)電臺(tái)及相關(guān)設(shè)備的遠(yuǎn)程控制。
3、硬件設(shè)計(jì)
在分析了無(wú)線電臺(tái)網(wǎng)絡(luò)控制器工作原理的基礎(chǔ)上,我們對(duì)系統(tǒng)的子模塊和任務(wù)進(jìn)行了整體設(shè)計(jì)。整個(gè)系統(tǒng)可以分成兩個(gè)相對(duì)獨(dú)立的部分來(lái)完成:無(wú)線電臺(tái)網(wǎng)絡(luò)控制器終端和服務(wù)器軟件。控制器1將編碼后的g72x碼流發(fā)送到服務(wù)器,服務(wù)器根據(jù)路由表信息,將數(shù)據(jù)轉(zhuǎn)發(fā)到控制器2、控制器3、控制器4…控制器n,控制器與服務(wù)器之間采用TCP或UDP協(xié)議。無(wú)線電臺(tái)網(wǎng)絡(luò)控制器結(jié)構(gòu)示意圖如圖1所示。
硬件設(shè)計(jì)除了核心板的選型外,主要是外部電路的設(shè)計(jì)。我們選擇了性價(jià)比比較好的SBC-2410核心板。外圍電路的設(shè)計(jì)主要包括音頻信號(hào)采集模塊、網(wǎng)絡(luò)數(shù)據(jù)收發(fā)模塊、串口控制電路等[3],其中音頻信號(hào)采集電路我們選的是uda1341語(yǔ)音編解碼芯片,網(wǎng)絡(luò)控制器芯片我們采用的是cs8900芯片。
3.1 嵌入式核心板簡(jiǎn)介
SBC-2410具有高性能、低功耗、接口豐富和體積小等優(yōu)良特性,并且已經(jīng)應(yīng)用在多個(gè)設(shè)計(jì)中,基于可重用的思想,整個(gè)平臺(tái)承載ARM最精簡(jiǎn)系統(tǒng),把有用的信號(hào)線通過(guò)兩排插針引出去。無(wú)線電臺(tái)網(wǎng)絡(luò)控制器終端的具體應(yīng)用按照實(shí)際的需求進(jìn)行設(shè)計(jì),通過(guò)兩排插座與核心板相連[4]。
圖1 無(wú)線電臺(tái)網(wǎng)絡(luò)控制器結(jié)構(gòu)圖
3.2 語(yǔ)音芯片接口電路
由于S3C2410內(nèi)置的IIS總線接口能夠和其他廠商提供的多媒體編解碼芯片配合使用,所以無(wú)線電臺(tái)網(wǎng)絡(luò)控制器終端內(nèi)部語(yǔ)音模塊的設(shè)計(jì)是基于IIS(Integrate Interface of Sound)接口的。提供IIS接口能夠讀取IIS總線上面的數(shù)據(jù),同時(shí)也為FIFO(First Input First Output)數(shù)據(jù)提供DMA(Direct Memory Access)的傳輸模式,這樣能夠同時(shí)傳送和接收數(shù)據(jù)。IIS接口有3種工作方式,分別是正常傳輸模式、DMA模式和傳輸/接受模式,在本文的設(shè)計(jì)中,我們選擇了傳輸/接受模式,在這種模式下,IIS總線可以同時(shí)接收和發(fā)送音頻數(shù)據(jù)。[!--empirenews.page--]
3.3 網(wǎng)絡(luò)芯片接口電路
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ì)寫(xiě)配置文件和讀配置文件的設(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)行隔離,
圖4 遠(yuǎn)程串口成功控制kiss modem軟件截圖
與其相對(duì)應(yīng)的指示燈呈紅色。若想關(guān)閉或打開(kāi)所有的控制器,則按遠(yuǎn)程控制框中相應(yīng)的按鈕即可實(shí)現(xiàn)。
kiss modem軟件是摩托羅拉電臺(tái)的專(zhuān)用管理軟件,該軟件通過(guò)串口與電臺(tái)通信,通過(guò)讀取電臺(tái)的數(shù)據(jù)就可以知道電臺(tái)當(dāng)前的工作狀態(tài)然后通過(guò)窗口顯示相關(guān)信息。我們通過(guò)遠(yuǎn)程串口對(duì)電臺(tái)下達(dá)指令,kiss modem會(huì)對(duì)指令做出響應(yīng),如圖4所示。當(dāng)我們把對(duì)講機(jī)的信道切換按鈕撥到1時(shí),對(duì)講機(jī)發(fā)出一個(gè)信號(hào)給電臺(tái),電臺(tái)通過(guò)串口把信號(hào)傳輸給控制器,kiss modem軟件把數(shù)據(jù)通過(guò)網(wǎng)絡(luò)轉(zhuǎn)發(fā)出去,另一個(gè)控制器經(jīng)過(guò)網(wǎng)口轉(zhuǎn)串口的數(shù)據(jù)傳輸,從而電臺(tái)ID會(huì)顯示1001,以此類(lèi)推,目前最多可以設(shè)置14個(gè)電臺(tái)6 結(jié)束語(yǔ)。
實(shí)踐證明,本文所設(shè)計(jì)的電臺(tái)網(wǎng)絡(luò)控制器已經(jīng)實(shí)現(xiàn)了基本的功能,調(diào)試結(jié)果證明硬件設(shè)計(jì)方案完全滿足產(chǎn)品的功能需求,軟件設(shè)計(jì)采用功能優(yōu)異的嵌入式Linux操作系統(tǒng)方便了今后軟件的升級(jí)。整個(gè)系統(tǒng)造價(jià)低廉、運(yùn)行可靠、易于施工和維護(hù),在遠(yuǎn)程數(shù)據(jù)監(jiān)控系統(tǒng)中有較大的推廣價(jià)值。