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