《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業(yè)界動態(tài) > 基于AVR 8位單片機的短距離立體聲數字音頻無線傳輸系統(tǒng)開發(fā)

基于AVR 8位單片機的短距離立體聲數字音頻無線傳輸系統(tǒng)開發(fā)

2008-07-15
作者:陳德明, 孫光民, 王 強, 趙

??? 摘 要: 采用WM8739/8731、nRF2401和ATmega48等芯片實現(xiàn)短距離數字音頻無線傳輸系統(tǒng)" title="傳輸系統(tǒng)">傳輸系統(tǒng)的設計,詳細介紹了系統(tǒng)的軟硬件設計、實現(xiàn)以及ADPCM音頻編碼方法等,為解決低成本采集和傳輸數字音頻問題提供了一種參考方法。
??? 關鍵詞: 短距離通信? 數字音頻? 無線傳輸? AVR單片機

?

??? 與相同傳輸距離的有線音頻傳輸系統(tǒng)相比,無線音頻傳輸系統(tǒng)減少了線纜的開銷,傳輸距離也不再受線纜長度的限制,解決了有線音頻傳輸布線困難、影響美觀和浪費線纜等問題,而且占用空間小、能耗低、使用更加靈活、方便。因此,短距離無線通信已成為當前研究的一個熱點。ISM(Industrial Scientific Medical)2.4GHz(2.4G~2.4835GHz)頻段, 由于具有較高的帶寬和相對較低的實現(xiàn)成本,在各種產品中得到了廣泛的應用。但這種通用性也產生了性能下降與成本增加等問題。目前國內外同類無線技術方案主要是基于藍牙技術的產品方案以及一些小廠商提供的基于2.4GHz的產品方案。在一些特定的應用中,追求的目標是更低的成本與更高的音質, 對通用性的要求并不高, 采用藍牙或無線局域網技術則顯然不合適。而在音頻信號" title="音頻信號">音頻信號處理過程中,由于其數據量大,處理算法復雜,實時性要求比較高,當今一些小廠商提供的基于2.4GHz的產品方案[1]實現(xiàn)成本相應較高。
??? 基于以上特點,本著先進性、科學性、穩(wěn)定性、經濟性相統(tǒng)一的原則,本文設計一種低成本、適用面廣的無線數字音頻傳輸系統(tǒng)。
1 數字音頻無線傳輸系統(tǒng)方案設計
??? 本系統(tǒng)以MCU主控模塊為核心,由發(fā)送子系統(tǒng)和接收子系統(tǒng)組成。發(fā)送部分從音頻輸出設備采集音頻信號,經過A/D" title="A/D">A/D轉換模塊將模擬信號轉換為數字音頻信號,再通過SPI接口將數字音頻信號傳至主控模塊進行壓縮編碼處理,壓縮完成的數據成幀后經串行口傳送給射頻芯片,經過射頻芯片內部的一系列處理后,將控制信號和音頻數據發(fā)送出去(發(fā)送的數據需要進行一定的功率放大處理,以達到較好的傳輸效果)。接收部分的工作是其逆過程。系統(tǒng)原理框圖如圖1所示。

?


2 系統(tǒng)各模塊的硬件設計與實現(xiàn)
2.1 A/D和D/A轉換模塊設計及初始配置
??? A/D和D/A轉換模塊選擇WOLFSON 公司的WM8739和WM8731器件。WM8731是一款帶有集成耳機驅動器的極低功耗、高質量音頻編碼解碼器,專為便攜數字音頻應用而設計。該器件可以提供CD音質的音頻錄音和回放,為16Ω的負載提供50mW的輸出功率;帶有一個片上時鐘發(fā)生器,支持多種時鐘模式,通過一個16MHz時鐘,該器件可以直接生成44.1kHz、48kHz和96kHz等采樣率,以及MP3標準定義的其他采樣率,完全不需要一個獨立的鎖相環(huán)(phase locked loop)或晶振" title="晶振">晶振,支持其他公用的主時鐘頻率,例如12.288MHz。而WM8739與WM8731不同的是,它并沒有將A/D轉化和D/A轉化集成在一起,它只能用作A/D轉換模塊,其他性能與WM8731相同,其價格較WM8731便宜。
??? 芯片的初始配置如下:
??? 硬件配置:CSB(Pin20)及MODE(Pin19)均配置為低電平(兩線制傳輸)。
??? 軟件配置:工作模式選擇從機模式,數據順序選擇MSB首先發(fā)送,采樣率控制模式選擇正常模式384分頻,核時鐘同主時鐘一樣(由主控模塊提供,為16MHz),這樣由核時鐘384分頻即可得到左右聲道的44.1kHz的采樣頻率,該頻率是標準CD 音源的采樣頻率。
??? 其他的軟件配置字均為缺省值。該配置字由SDIN和SCLK寫入,具體規(guī)則可參考芯片使用手冊[2]。
2.2 RF發(fā)送/接收模塊設計及初始配置
??? RF發(fā)送/接收模塊,選擇NORDIC公司的nRF2401。nRF2401[3]芯片與藍牙一樣,都工作在2.4GHz自由頻段,能夠在全球無線市場暢通無阻;支持多點間通信,最高傳輸速率達1Mbps,而且比藍牙具有更高的傳輸速度;采用SoC方法設計,只需少量外圍元件即可組成射頻收發(fā)電路。
??? 對該芯片的初始配置如下:對發(fā)送和接收模塊的激活模式分別選擇transmit模式和receive模式,通信模式選擇Direct模式,頻率通道初始配置為2.4GHz,輸出功率增益選擇為-10dBm,晶振頻率選擇16MHz,RF數據傳輸速率選擇1Mbps。
??? 其他的軟件配置字均為缺省值。其配置字由DATA端口串行逐位寫入。
2.3 MCU主控模塊及系統(tǒng)接口設計
??? MCU主控模塊選擇ATMEL公司的AVR ATmega48[4]。AVR ATmega48是高性能、低功耗的8位AVR微處理器,采用先進的RISC結構,131 條指令,大多數指令的執(zhí)行時間為單個時鐘周期,32×8通用工作寄存器,只需兩個時鐘周期的硬件乘法器;4KB的系統(tǒng)內可編程 Flash和256B的EEPROM,擦寫壽命均為10 000次;512B的片內SRAM;具有獨立鎖定位的可選Boot代碼區(qū),通過片上Boot程序實現(xiàn)系統(tǒng)內編程,真正的同時讀寫操作;兩個具有獨立預分頻器和比較器功能的8 位定時器/ 計數器,一個具有預分頻器、比較功能和捕捉功能的16 位定時器/ 計數器,可編程的串行USART 接口,可工作于主機/從機模式的SPI 串行接口。系統(tǒng)接口設計如下:
??? (1)如圖2所示將三個模塊連接在一起。在對各個模塊進行初始配置之前,要按照圖2所示的端口連接方向正確設置端口的輸入輸出模式,然后要對系統(tǒng)的各個時鐘作正確的配置。系統(tǒng)主時鐘由16MHz的外部晶振產生,將外部晶振接ATmega48的PB6和PB7即可。MCLK可由PB0的第二功能將16MHz的系統(tǒng)時鐘輸出,此時鐘將作為WM8739的工作時鐘。ADCLRC可利用PB1的第二功能的定時器輸出比較功能,將該計數器的上限設為191即可產生44.1kHz的采樣率對比時鐘。BCLK可利用PB5的第二功能將主時鐘二分頻得到SPI 8MHz總線時鐘。

?


??? (2)主控模塊與A/D模塊之間采用SPI串行同步通信。SPI的主要初始控制字配置如下:首先開啟SPI使能和關閉SPI中斷使能,工作模式選擇主機模式,數據次序設為MSB首先發(fā)送,主機SCK速率設為fosc/2(fosc為系統(tǒng)主時鐘)。在進行數據傳輸時,BCLK信號作為串行時鐘來決定串行傳輸速率。在ADCLRC信號的同步下,音頻數據由ADCDAT傳入主控模塊進行壓縮編碼處理。
??? (3)主控模塊與RF模塊之間采用USART串行異步通信。USART主要初始控制字配置如下:開啟發(fā)送使能,同時關閉接收使能,工作模式選擇異步奇校驗操作模式,波特率設置為1Mbps,數據為8位,停止位為2位。在向RF模塊發(fā)送數據時,為保證和接收子系統(tǒng)同步,以ADCLRC信號作為同步信號。
??? (4) 接收子系統(tǒng)與發(fā)送子系統(tǒng)硬件的連接。除了兩個數據傳送端口外,其他連接基本一致。將ATmega48的PB4、PD1與ADCDAT、DATA斷開,且將PB3(MOSI)與WM8731的DACDAT相連,同時將PB3設置為輸出端口。另外,將PD0(RXD)與nRF2401的DATA相連,同時將PD0設置為輸入端口。此外,在USART初始設置上要開啟接收使能而關閉發(fā)送使能即可。
3 主控模塊的軟件流程
??? 由于nRF2401的數據傳輸率為1Mbps,而從WM8739對模擬信號抽樣量化后的數據長度為16bit,左右聲道的采樣率均為44.1kHz,若不對數據進行編碼壓縮,則需要1.41Mbps(16bit×44.1kHz×2)的數據傳輸帶寬,顯然超出了RF模塊的數據傳輸能力。為了充分利用線路資源,而又不希望明顯降低音頻信號的質量,就要對數據作進一步壓縮,本文采用自適應差分脈沖編碼調制ADPCM (Adaptive Difference Pulse Code Modulation)的壓縮算法。
??? ADPCM是利用樣本與樣本之間的高度相關性和量化階自適應來壓縮數據的一種波形編碼技術,它綜合了APCM的自適應特性和DPCM系統(tǒng)的差分特性,是一種性能較好的波形編碼。ADPCM的核心思想是:利用自適應改變量化階的大小,即使用小的量化階去編碼小的差值,使用大的量化階去編碼大的差值;使用過去的樣本值估算下一個輸入樣本的預測值,使實際樣本值和預測值之間的差值總是最小。ADPCM記錄的量化值不是每個采樣點的幅值,而是該點的幅值與前一個采樣點幅值之差。這樣16bit的數據經ADPCM編碼之后只需4bit表示其差值,數據壓縮比為4:1。接收端" title="接收端">接收端的譯碼器使用與發(fā)送端相同的算法,利用傳送來的信號確定量化器和逆量化器中的量化階大小,并且用它來計算下一個接收信號的預測值。ADPCM算法實現(xiàn)框圖如圖3所示。

?


??? 為了保證數據傳輸的有效性,以及避免其他同頻率信號的干擾,定義了如表1所示的傳輸數據的幀結構。

?


??? 數據幀的總長度為64B,其中幀頭為1B,用于射頻芯片進行幀同步的前導碼,3B,用于USART進行幀同步的同步碼,3B作為地址碼。另外為了保證接收端解碼后的數據的連續(xù)性,整個程序流程將引入“雙緩存區(qū)結構”即存儲區(qū)和發(fā)送區(qū),在發(fā)送一幀數據(位于發(fā)送區(qū))的同時,要完成對當前幀數據的壓縮編碼及存儲(存于存儲區(qū)),在存儲區(qū)放滿之后要將該存儲區(qū)則變?yōu)榘l(fā)送區(qū),而原來的發(fā)送區(qū)變?yōu)樾碌拇鎯^(qū)。在一幀的結尾還要產生一個CRC循環(huán)校驗碼,便于在接收端判斷傳送數據是否正確有效。接收端收到數據時,要先通過地址碼判斷數據是否有效,其余過程為發(fā)送端的逆過程。發(fā)送子系統(tǒng)程序流程如圖4所示。

?

?

??? 為避免在2.4GHz公共頻段上容易出現(xiàn)的對音質的干擾,本系統(tǒng)提供了頻點選擇功能,有125個頻點可選。如果系統(tǒng)在工作過程中,發(fā)現(xiàn)有較強的噪音出現(xiàn),即在當前頻點存在干擾影響輸出音質時,可選擇新的工作頻點,以保持產品良好的使用效果。
4 實驗結果與結論
??? 本系統(tǒng)的設計充分利用了ATmega48豐富的片上外設,方便地實現(xiàn)了對語音芯片WM8739/8731和單片無線收發(fā)芯片nRF2401的連接。本系統(tǒng)應用于點對點的無線數據傳輸中,系統(tǒng)工作于ISM頻段,有125個可選頻點,44.1Kbps數字音頻采樣率,16bit樣本量化級,20Hz~20kHz頻率響應,音頻輸出達到CD音質效果,有效傳輸距離達到100m,有障礙物情況下能達到40m。
??? 本系統(tǒng)為無線傳輸系統(tǒng)提供了一種比較實用且經濟的解決方案,可以廣泛地應用于無線耳機、話筒,小范圍內的廣播、家庭影院的后置音箱、多功能會議廳、多房間無線音響系統(tǒng),無線教室教學系統(tǒng)等場合。
參考文獻
[1] 胡應宏,曾慶喜,楊英杰. 基于TMS32OC55O9 DSP的無線語音傳輸采集傳輸系統(tǒng)[J]. 東北電力大學學報,2006,26(2):65-68.
[2] ?WOLFSON? Corp.? Portable internet audio CODEC with?headphone driver and programmable sample rates WM8731/WM8731L Rev. 4.0. http://www.wolfsonmicro.com.2005.
[3] ?Nordic Corp. Single chip 2.4GHz radio transceiver nRF2401A Rev. 1.0,http://www.nordicsemi.no.2004.
[4] ?Atmel Corp. 8-bit AVR microcontroller with 8K Bytes in-system programmable flash ATmega48/V Rev. 2545G-AVR-06/06,http://www.atmel.com.2006.

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。