基于IEEE802.1 5.4/ZigBee的語(yǔ)音通信系統(tǒng)
2.2 發(fā)送接收子程序?qū)崿F(xiàn)
發(fā)送端獲取了A/D轉(zhuǎn)換的結(jié)果,并存儲(chǔ)于所開(kāi)設(shè)的緩存中。在發(fā)送數(shù)據(jù)時(shí),將存于緩存的數(shù)據(jù),加上網(wǎng)絡(luò)層MAC層和物理層的幀頭,通過(guò)SPI總線發(fā)送到射頻發(fā)射芯片的發(fā)送FIFO中。為簡(jiǎn)化傳輸數(shù)據(jù),采用16位短地址尋址而非64位IEEE地址。接收數(shù)據(jù)時(shí),首先射頻發(fā)射芯片監(jiān)聽(tīng)信道中的數(shù)據(jù),判斷數(shù)據(jù)是否發(fā)送該設(shè)備。如果是,則讀取該數(shù)據(jù)到接收FIFO,然后觸發(fā),通過(guò)SPI總線將數(shù)據(jù)發(fā)送到MCU;通過(guò)MCU處理,去掉各層的幀頭,最后將數(shù)據(jù)存放到指定的緩存區(qū)中。具體完成發(fā)送接收部分的子程序流程如圖4所示。本文引用地址:http://butianyuan.cn/article/155188.htm
2.3 反向控制與狀態(tài)切換
在無(wú)線通信過(guò)程中,無(wú)論主機(jī)還是分機(jī)的CC2420通信模塊在某一時(shí)刻只能被配置成一種傳輸模式,即發(fā)射模式或接收模式,因此無(wú)線信道實(shí)質(zhì)提供了一種半雙工通信方式。而在實(shí)際當(dāng)中通話雙方不能像對(duì)講機(jī)那樣采用按鍵進(jìn)行發(fā)射和接收模式的切換,所以既要保證語(yǔ)音數(shù)據(jù)的實(shí)時(shí)性和準(zhǔn)確性,又要保證反向控制信號(hào)的有效傳輸,軟件的狀態(tài)切換成為迫切需要解決的問(wèn)題。
利用如圖4所示的收發(fā)子程序控制遠(yuǎn)程端是否輸出方波。按鍵按下,則發(fā)送控制命令至遠(yuǎn)程端,收到控制命令后,運(yùn)用定時(shí)器的比較模式輸出方波。從系統(tǒng)考慮,每個(gè)通信節(jié)點(diǎn)同時(shí)具備收發(fā)功能。依據(jù)CC2420狀態(tài)機(jī)可以方便地進(jìn)行狀態(tài)切換,每次發(fā)送完畢恢復(fù)無(wú)線收發(fā)模塊至接收狀態(tài)即可。
3 結(jié)束語(yǔ)
在系統(tǒng)調(diào)試過(guò)程中,考慮到語(yǔ)音傳輸?shù)耐叫裕苊?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/語(yǔ)音">語(yǔ)音信號(hào)無(wú)線接收與SPI讀取數(shù)據(jù)的速度RXFIFO使用沖突,接收端采用雙緩沖區(qū)的設(shè)計(jì);另外由于每個(gè)節(jié)點(diǎn)同時(shí)具備收發(fā)功能,考慮到半雙工的特點(diǎn),采用語(yǔ)音信號(hào)高優(yōu)先級(jí),只在每次中斷檢測(cè)方波控制信號(hào)的方法,既保證了語(yǔ)音信號(hào)的實(shí)時(shí)傳輸,控制信號(hào)又實(shí)時(shí)有效。由于CC2420沒(méi)有專(zhuān)用的軟件監(jiān)聽(tīng)包,語(yǔ)音傳輸信號(hào)用正弦波信號(hào)模擬,同時(shí)反向發(fā)射方波輸出控制信號(hào)。經(jīng)過(guò)調(diào)試,最終在D/A輸出口,穩(wěn)定的輸出階梯狀正弦波,在喇叭輸出口,基本平滑的正弦波。實(shí)驗(yàn)證明,該波形無(wú)消波失真且波形穩(wěn)定時(shí),語(yǔ)音傳輸效果最佳,經(jīng)測(cè)試,傳輸距離約達(dá)到50m。
該系統(tǒng)未使用獨(dú)立的ADC與DAC,使得成本和功耗更低;利用MSP430的5種省電模式,加上ZigBee技術(shù)本身的低功耗、低成本特性,使得在僅用電池供電的情況下有更長(zhǎng)的工作時(shí)間。系統(tǒng)涉及到通信原理、無(wú)線技術(shù)、抗干擾技術(shù)、軟件設(shè)計(jì)等多種理論和技術(shù),為ZigBee技術(shù)的廣泛應(yīng)用提供了依據(jù)。
評(píng)論