李 莉 ,王京梅,孫 俊 ,龔偉家
(電子科技大學微電子與固體電子學院,四川成都 6 10054)
ZigBee是ZigBee聯(lián)盟在IEEE802.15.4定義的物理層(PHY)和媒體訪問控制層(MAC)基礎上指定的一種低速無線個域網(LR-WPAN)技術規(guī)范。其主要目標是以簡單靈活的協(xié)議構建一種布置簡易、數(shù)據(jù)傳輸可靠、設備成本低、能量消耗小的短距離無線通信網絡。ZigBee工作頻段靈活,使用的頻段分別為2.4 GHz、868 MHz及 9 15 MHz,均為免執(zhí)照頻段;傳輸速率為250 kbit·s-1,有效傳輸距離為10~75 m。通過在發(fā)射端加功率放大器還可以實現(xiàn)更遠距離的通信[1]。ZigBee技術具有多跳傳送(Multi-hop Relay)機制、網絡擴展性能好、布設容易以及具有自組織與自修復能力。廣泛地應用到庫存管理、產品質量控制、工業(yè)過程控制、災害地區(qū)監(jiān)測、生物監(jiān)測和監(jiān)督、定位及消防安全等領域。雖然實現(xiàn)語音通信不是ZigBee聯(lián)盟最初的目標,但是,在許多領域中沒有語音通信功能,將使其應用受到較大局限;另一方面,在有緊急需求和不易布置環(huán)境下,ZigBee具有其他通信技術難以替代的優(yōu)勢,如能利用ZigBee網絡進行語音傳輸則具有較大的實用價值;同時,在無線傳感網絡的應用中,聲音也是一種傳感量,傳輸采樣的聲音數(shù)據(jù)正是聲音傳感應用的基本要求,所以文中針對IEEE802.15.4/ZigBee的應用環(huán)境,并考慮到ZigBee理論通信速率為250 kbit·s-1,實際速率也能滿足語音通信要求的情況,提出實現(xiàn)語音通信的研究課題。并且充分利用本方案所選MCU的性能特性,以及較少的外圍器件,很好地實現(xiàn)了語音通信。
該系統(tǒng)總體架構為:語音處理功能遠程端MSP430單片機作為發(fā)送端時,片上的ADC完成從麥克風采樣,把輸入的語音信號經過轉換后發(fā)送,而近程端MSP430片上的DAC則把接收到的數(shù)據(jù)轉化為聲音信號再由喇叭播放。方波輸出功能的實現(xiàn)則以近程端作為發(fā)送端,發(fā)送控制命令給遠程端,遠程端接收到控制命令后,輸出占空比可調的方波信號。進而實現(xiàn)半雙工通信下的雙向通信。數(shù)據(jù)的收發(fā)則通過以CC2420為核心的RF前端完成,外圍附加放大與濾波電路。該平臺的原理框圖如圖1所示。
圖1 系統(tǒng)原理框圖
前置放大器完成對咪頭微弱信號的放大,以便與ADC的滿度測量范圍相匹配,提高信噪比;前置低通濾波器濾除高于采樣頻率1/2的信號,即堆疊信號,以減小語音失真;嵌入式處理器完成數(shù)據(jù)處理及發(fā)送接收;射頻收發(fā)器CC2420完成數(shù)據(jù)的收/發(fā),接收/發(fā)送該設備的數(shù)據(jù),并將數(shù)據(jù)發(fā)送到嵌入式處理器。后置低通濾波器對經過D/A變換的語音信號濾波,還原語音信號。采用低噪聲、非斬波穩(wěn)零的雙極性運放設計成二階有源濾波電路。音頻放大器對經過濾波的語音信號放大,提高負載能力,輸出到揚聲器,最終實現(xiàn)無線語音通信。電路外圍元件少,電壓增益可調。
MSP430是具有超低功耗特點的16位單片機,方案選用MSP430F168,功耗電流已達到μA級。CPU內核功能強大:16位CPU和高效的RISC指令系統(tǒng),無外擴的數(shù)據(jù)地址總線,在8 MHz時可達125 ns的指令周期,具有16個快速響應中斷,能及時處理各種緊急事件。豐富的片內外圍功能模塊:12位的A/D轉換器ADC12內包括采樣/保持功能的ADC內核、轉換存儲邏輯、內部參考電平發(fā)生器、多種時鐘源、采樣及轉換時序電路。具有8個外通道和4個內通道,高達采樣速率200 kbit·s-1,且具有多種采樣方式。兩路USART通信串口,可用于UART和SPI模式;片內有精密硬件乘法器、兩個16位定時器,其具有48 kB閃存和2 kB的RAM,用于存儲采集數(shù)據(jù)[2]。
射頻芯片采用挪威Chipcon公司的CC2420。該芯片具有完全集成的壓控振蕩器,只需要天線、16 MHz晶振等非常少的外圍電路就能工作在ISM免費頻帶上,工作頻率為2.4 GHz。具有2 Mchip·s-1直接擴頻序列基帶調制解調和250 kbit·s-1的有效數(shù)據(jù)速率;適合簡化功能裝置和全功能裝置操作:低電流消耗;低電源電壓要求??删幊梯敵龉β?獨立的128 Byte發(fā)射、接收數(shù)據(jù)緩沖器。芯片具有良好的性能,尤其是極低的電流消耗和封裝尺寸,完全滿足無線網絡設備體積小、功耗小、成本低的設計要求[3]。CC2420只提供一個SPI接口與微處理器連接,通過這個接口完成設置和收發(fā)數(shù)據(jù)工作。許多單片機都集成了SPI控制器,可以方便地與CC2420配合使用。
基于單片機MSP430和無線射頻芯片CC2420的SPI通信,通過設計單片機的SPI寄存器驅動CC2420。處理器通過SPI接口訪問CC2420內部寄存器和存儲區(qū)。CC2420與處理器的連接使用SFD、FIFO、FIFOP、和CCA 4個引腳表示收發(fā)數(shù)據(jù)的狀態(tài);而處理器通過SPI接口與CC2420交換數(shù)據(jù)、發(fā)送命令等[4]。MSP430F168的SPI是全雙工的,因此當通過SIMO向從機發(fā)送數(shù)據(jù)時,SOMI接口同時也在接收數(shù)據(jù)。
硬件方案充分利用MSP430片上12位ADC和DAC,從而無需外部語音編碼解碼器件,系統(tǒng)更加精簡。語音傳輸系統(tǒng)的硬件電路如圖2所示。
圖2 硬件電路圖
麥克風放大器及前置低通濾波器電路的工作原理:U1構成的反向放大器提供麥克風放大,其增益由R4和R5決定;R2、R3分壓后為U1提供合適的偏置,R1給駐極體話筒提供偏置電壓,C2阻止直流成分輸入到放大器;一級Sallen-key結構的切比雪夫低通濾波器R8和C5構成一階低通濾波器,用于ADC的反堆疊濾波。后置濾波器由一級Sallen-key結構的切比雪夫低通濾波器、一級RC低通濾波器和一級電壓跟隨器U4構成。三級濾波器的截止頻率彼此稍有錯位,以限制整個濾波電路通帶的紋波。整個電路的截止頻率設置在3 400 Hz,電壓跟隨器用于防止電路從輸出獲得反饋,并提供電流驅動。
在設計音頻部分的電路時,考慮到采樣率為10 kHz,根據(jù)奈奎斯特取樣定理,系統(tǒng)的有效取樣頻率Os必須滿足Os≥2ON的規(guī)定。在此ON稱為奈奎斯特頻率而ON稱為奈奎斯特率[5]。當采樣頻率小于奈奎斯特頻率時,在接收端恢復的信號失真較大,這是因為存在信號的混迭;當采樣頻率大于或等于奈奎斯特頻率時,恢復信號與原信號基本一致。輸入的信號頻率最高不能超過5 kHz,在輸入ADC之前必須加一個低通濾波器,將高于5 kHz的信號加以濾除。
軟件設計主要是基于MSP430F168與CC2420之間的SPI通信。通過設計單片機的SPI寄存器來驅動CC2420,進而設置和讀取射頻芯片的寄存器值,實現(xiàn)相應的發(fā)送和接收功能。
遠程端對語音數(shù)據(jù)進行A/D轉換并打包發(fā)送。為實現(xiàn)語音實時通信,應盡量減少幀間等待時間,以提高有效數(shù)據(jù)率。為達到最大傳輸效率,理論上應使用最大載荷打包,但較長的數(shù)據(jù)幀也更容易被外界干擾信號破壞,同時也增加了語音遲延[6]。綜合考慮濾波器的截止頻率以及CC2420的節(jié)點傳輸速度,A/D轉換采用10 kHz的采樣頻率,8位分辨率。MSP430的主頻為8 MHz,ADC將其8分頻,單通道單次轉換。定時器B與其時鐘同步,每50 μs產生一次中斷。每兩次中斷進行一次轉換,并將數(shù)據(jù)讀出取高8位。ADC一次采樣84個8位信號為一個數(shù)據(jù)包,這個數(shù)據(jù)包在被RF發(fā)送出去之前由協(xié)議棧自動加上一個12 Byte的包頭。由于CC2420傳送速率為250 kbit·s-1,所以每傳送一個數(shù)據(jù)包耗時約3.072 ms。
近程端將接收到的語音采集數(shù)據(jù)進行還原。D/A轉換時鐘設置與A/D轉換同步。并且也采用10 kHz的頻率。用單片機的定時器A模塊,每100 μs產生一次中斷,在中斷中進行一次D/A轉換。一個ADC的輸入緩沖區(qū)或一個DAC的輸出緩沖區(qū)的大小為84 Byte。裝滿這些緩沖區(qū)需要8.4 ms。系統(tǒng)流程圖如圖3所示。
圖3 近程端軟件設計流程圖
發(fā)送端獲取了A/D轉換的結果,并存儲于所開設的緩存中。在發(fā)送數(shù)據(jù)時,將存于緩存的數(shù)據(jù),加上網絡層MAC層和物理層的幀頭,通過SPI總線發(fā)送到射頻發(fā)射芯片的發(fā)送FIFO中。為簡化傳輸數(shù)據(jù),采用16位短地址尋址而非64位IEEE地址。接收數(shù)據(jù)時,首先射頻發(fā)射芯片監(jiān)聽信道中的數(shù)據(jù),判斷數(shù)據(jù)是否發(fā)送該設備。如果是,則讀取該數(shù)據(jù)到接收FIFO,然后觸發(fā),通過SPI總線將數(shù)據(jù)發(fā)送到MCU;通過MCU處理,去掉各層的幀頭,最后將數(shù)據(jù)存放到指定的緩存區(qū)中。具體完成發(fā)送接收部分的子程序流程如圖5所示。
在無線通信過程中,無論主機還是分機的CC2420通信模塊在某一時刻只能被配置成一種傳輸模式,即發(fā)射模式或接收模式,因此無線信道實質提供了一種半雙工通信方式。而在實際當中通話雙方不能像對講機那樣采用按鍵進行發(fā)射和接收模式的切換,所以既要保證語音數(shù)據(jù)的實時性和準確性,又要保證反向控制信號的有效傳輸,軟件的狀態(tài)切換成為迫切需要解決的問題。
利用如圖4所示的收發(fā)子程序控制遠程端是否輸出方波。按鍵按下,則發(fā)送控制命令至遠程端,收到控制命令后,運用定時器的比較模式輸出方波。從系統(tǒng)考慮,每個通信節(jié)點同時具備收發(fā)功能。依據(jù)CC2420狀態(tài)機可以方便地進行狀態(tài)切換,每次發(fā)送完畢恢復無線收發(fā)模塊至接收狀態(tài)即可。
圖4 子程序流程圖
在系統(tǒng)調試過程中,考慮到語音傳輸?shù)耐叫?,避免語音信號無線接收與SPI讀取數(shù)據(jù)的速度RXFIFO使用沖突,接收端采用雙緩沖區(qū)的設計;另外由于每個節(jié)點同時具備收發(fā)功能,考慮到半雙工的特點,采用語音信號高優(yōu)先級,只在每次中斷檢測方波控制信號的方法,既保證了語音信號的實時傳輸,控制信號又實時有效。由于CC2420沒有專用的軟件監(jiān)聽包,語音傳輸信號用正弦波信號模擬,同時反向發(fā)射方波輸出控制信號。經過調試,最終在D/A輸出口,穩(wěn)定的輸出階梯狀正弦波,在喇叭輸出口,基本平滑的正弦波。實驗證明,該波形無消波失真且波形穩(wěn)定時,語音傳輸效果最佳,經測試,傳輸距離約達到50 m。
該系統(tǒng)未使用獨立的ADC與DAC,使得成本和功耗更低;利用MSP430的5種省電模式,加上ZigBee技術本身的低功耗、低成本特性,使得在僅用電池供電的情況下有更長的工作時間。系統(tǒng)涉及到通信原理、無線技術、抗干擾技術、軟件設計等多種理論和技術,為ZigBee技術的廣泛應用提供了依據(jù)。
[1]瞿雷,劉盛德,胡咸斌.ZigBee技術及應用[M].北京:北京航空航天大學出版社,2007.
[2]沈建華,楊艷琴,翟曉曙.MSP430系列16位超低功耗單片機原理與應用[M].北京:清華大學出版社,2006.
[3]代忠,樊曉光,萬明,等.基于射頻芯片CC2420的 Z igBee無線通信節(jié)點設計[J].傳感器世界,2006(12):41-44.
[4]陳玉蘭,聶軍.面向無線傳感器網絡的 C C2420接口設計[J].電子工程師,2005,31(12):36-38.
[5]吳文南,胡愛群,宋宇波.短距離無線語音和數(shù)據(jù)傳輸模塊的設計與實現(xiàn)[J].現(xiàn)代電子技術,2007(5):29-31.
[6]王秀梅,劉乃安.利用2.4GHz射頻芯片CC2420實現(xiàn)Zig-Bee無線通信設計[J].國外電子元器件,2005(3):59-62.