新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于AVR 8位單片機(jī)的短距離立體聲數(shù)字音頻無線傳輸系統(tǒng)開發(fā)

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

作者: 時(shí)間:2017-06-04 來源:網(wǎng)絡(luò) 收藏

與相同傳輸距離的有線音頻傳輸系統(tǒng)相比,無線音頻傳輸系統(tǒng)減少了線纜的開銷,傳輸距離也不再受線纜長(zhǎng)度的限制,解決了有線音頻傳輸布線困難、影響美觀和浪費(fèi)線纜等問題,而且占用空間小、能耗低、使用更加靈活、方便。因此,短距離無線通信已成為當(dāng)前研究的一個(gè)熱點(diǎn)。ISM(Industrial Scientific Medical)2.4GHz(2.4G~2.4835GHz)頻段, 由于具有較高的帶寬和相對(duì)較低的實(shí)現(xiàn)成本,在各種產(chǎn)品中得到了廣泛的應(yīng)用。但這種通用性也產(chǎn)生了性能下降與成本增加等問題。目前國(guó)內(nèi)外同類無線技術(shù)方案主要是基于藍(lán)牙技術(shù)的產(chǎn)品方案以及一些小廠商提供的基于2.4GHz的產(chǎn)品方案。在一些特定的應(yīng)用中,追求的目標(biāo)是更低的成本與更高的音質(zhì), 對(duì)通用性的要求并不高, 采用藍(lán)牙或無線局域網(wǎng)技術(shù)則顯然不合適。而在音頻信號(hào)處理過程中,由于其數(shù)據(jù)量大,處理算法復(fù)雜,實(shí)時(shí)性要求比較高,當(dāng)今一些小廠商提供的基于2.4GHz的產(chǎn)品方案[1]實(shí)現(xiàn)成本相應(yīng)較高。

基于以上特點(diǎn),本著先進(jìn)性、科學(xué)性、穩(wěn)定性、經(jīng)濟(jì)性相統(tǒng)一的原則,本文設(shè)計(jì)一種低成本、適用面廣的無線數(shù)字音頻傳輸系統(tǒng)。

1 數(shù)字音頻無線傳輸系統(tǒng)方案設(shè)計(jì)

本系統(tǒng)以MCU主控模塊為核心,由發(fā)送子系統(tǒng)和接收子系統(tǒng)組成。發(fā)送部分從音頻輸出設(shè)備采集音頻信號(hào),經(jīng)過A/D轉(zhuǎn)換模塊將模擬信號(hào)轉(zhuǎn)換為數(shù)字音頻信號(hào),再通過SPI接口將數(shù)字音頻信號(hào)傳至主控模塊進(jìn)行壓縮編碼處理,壓縮完成的數(shù)據(jù)成幀后經(jīng)串行口傳送給射頻芯片,經(jīng)過射頻芯片內(nèi)部的一系列處理后,將控制信號(hào)和音頻數(shù)據(jù)發(fā)送出去(發(fā)送的數(shù)據(jù)需要進(jìn)行一定的功率放大處理,以達(dá)到較好的傳輸效果)。接收部分的工作是其逆過程。系統(tǒng)原理框圖如圖1所示。


2 系統(tǒng)各模塊的硬件設(shè)計(jì)與實(shí)現(xiàn)

本文引用地址:http://butianyuan.cn/article/201706/348368.htm

2.1 A/D和D/A轉(zhuǎn)換模塊設(shè)計(jì)及初始配置

A/D和D/A轉(zhuǎn)換模塊選擇WOLFSON 公司的WM8739和WM8731器件。WM8731是一款帶有集成耳機(jī)驅(qū)動(dòng)器的極低功耗、高質(zhì)量音頻編碼解碼器,專為便攜數(shù)字音頻應(yīng)用而設(shè)計(jì)。該器件可以提供CD音質(zhì)的音頻錄音和回放,為16Ω的負(fù)載提供50mW的輸出功率;帶有一個(gè)片上時(shí)鐘發(fā)生器,支持多種時(shí)鐘模式,通過一個(gè)16MHz時(shí)鐘,該器件可以直接生成44.1kHz、48kHz和96kHz等采樣率,以及MP3標(biāo)準(zhǔn)定義的其他采樣率,完全不需要一個(gè)獨(dú)立的鎖相環(huán)(phase locked loop)或晶振,支持其他公用的主時(shí)鐘頻率,例如12.288MHz。而WM8739與WM8731不同的是,它并沒有將A/D轉(zhuǎn)化和D/A轉(zhuǎn)化集成在一起,它只能用作A/D轉(zhuǎn)換模塊,其他性能與WM8731相同,其價(jià)格較WM8731便宜。

芯片的初始配置如下:

硬件配置:CSB(Pin20)及MODE(Pin19)均配置為低電平(兩線制傳輸)。
軟件配置:工作模式選擇從機(jī)模式,數(shù)據(jù)順序選擇MSB首先發(fā)送,采樣率控制模式選擇正常模式384分頻,核時(shí)鐘同主時(shí)鐘一樣(由主控模塊提供,為16MHz),這樣由核時(shí)鐘384分頻即可得到左右聲道的44.1kHz的采樣頻率,該頻率是標(biāo)準(zhǔn)CD 音源的采樣頻率。
其他的軟件配置字均為缺省值。該配置字由SDIN和SCLK寫入,具體規(guī)則可參考芯片使用手冊(cè)[2]。

2.2 RF發(fā)送/接收模塊設(shè)計(jì)及初始配置

RF發(fā)送/接收模塊,選擇NORDIC公司的nRF2401。nRF2401[3]芯片與藍(lán)牙一樣,都工作在2.4GHz自由頻段,能夠在全球無線市場(chǎng)暢通無阻;支持多點(diǎn)間通信,最高傳輸速率達(dá)1Mbps,而且比藍(lán)牙具有更高的傳輸速度;采用SoC方法設(shè)計(jì),只需少量外圍元件即可組成射頻收發(fā)電路。

對(duì)該芯片的初始配置如下:對(duì)發(fā)送和接收模塊的激活模式分別選擇transmit模式和receive模式,通信模式選擇Direct模式,頻率通道初始配置為2.4GHz,輸出功率增益選擇為-10dBm,晶振頻率選擇16MHz,RF數(shù)據(jù)傳輸速率選擇1Mbps。

其他的軟件配置字均為缺省值。其配置字由DATA端口串行逐位寫入。

2.3 MCU主控模塊及系統(tǒng)接口設(shè)計(jì)

MCU主控模塊選擇ATMEL公司的AVR ATmega48[4]。AVR ATmega48是高性能、低功耗的8位AVR微處理器,采用先進(jìn)的RISC結(jié)構(gòu),131 條指令,大多數(shù)指令的執(zhí)行時(shí)間為單個(gè)時(shí)鐘周期,32×8通用工作寄存器,只需兩個(gè)時(shí)鐘周期的硬件乘法器;4KB的系統(tǒng)內(nèi)可編程 Flash和256B的EEPROM,擦寫壽命均為10 000次;512B的片內(nèi)SRAM;具有獨(dú)立鎖定位的可選Boot代碼區(qū),通過片上Boot程序?qū)崿F(xiàn)系統(tǒng)內(nèi)編程,真正的同時(shí)讀寫操作;兩個(gè)具有獨(dú)立預(yù)分頻器和比較器功能的8 位定時(shí)器/ 計(jì)數(shù)器,一個(gè)具有預(yù)分頻器、比較功能和捕捉功能的16 位定時(shí)器/ 計(jì)數(shù)器,可編程的串行USART 接口,可工作于主機(jī)/從機(jī)模式的SPI 串行接口。系統(tǒng)接口設(shè)計(jì)如下:

(1)如圖2所示將三個(gè)模塊連接在一起。在對(duì)各個(gè)模塊進(jìn)行初始配置之前,要按照?qǐng)D2所示的端口連接方向正確設(shè)置端口的輸入輸出模式,然后要對(duì)系統(tǒng)的各個(gè)時(shí)鐘作正確的配置。系統(tǒng)主時(shí)鐘由16MHz的外部晶振產(chǎn)生,將外部晶振接ATmega48的PB6和PB7即可。MCLK可由PB0的第二功能將16MHz的系統(tǒng)時(shí)鐘輸出,此時(shí)鐘將作為WM8739的工作時(shí)鐘。ADCLRC可利用PB1的第二功能的定時(shí)器輸出比較功能,將該計(jì)數(shù)器的上限設(shè)為191即可產(chǎn)生44.1kHz的采樣率對(duì)比時(shí)鐘。BCLK可利用PB5的第二功能將主時(shí)鐘二分頻得到SPI 8MHz總線時(shí)鐘。


(2)主控模塊與A/D模塊之間采用SPI串行同步通信。SPI的主要初始控制字配置如下:首先開啟SPI使能和關(guān)閉SPI中斷使能,工作模式選擇主機(jī)模式,數(shù)據(jù)次序設(shè)為MSB首先發(fā)送,主機(jī)SCK速率設(shè)為fosc/2(fosc為系統(tǒng)主時(shí)鐘)。在進(jìn)行數(shù)據(jù)傳輸時(shí),BCLK信號(hào)作為串行時(shí)鐘來決定串行傳輸速率。在ADCLRC信號(hào)的同步下,音頻數(shù)據(jù)由ADCDAT傳入主控模塊進(jìn)行壓縮編碼處理。

(3)主控模塊與RF模塊之間采用USART串行異步通信。USART主要初始控制字配置如下:開啟發(fā)送使能,同時(shí)關(guān)閉接收使能,工作模式選擇異步奇校驗(yàn)操作模式,波特率設(shè)置為1Mbps,數(shù)據(jù)為8位,停止位為2位。在向RF模塊發(fā)送數(shù)據(jù)時(shí),為保證和接收子系統(tǒng)同步,以ADCLRC信號(hào)作為同步信號(hào)。

(4) 接收子系統(tǒng)與發(fā)送子系統(tǒng)硬件的連接。除了兩個(gè)數(shù)據(jù)傳送端口外,其他連接基本一致。將ATmega48的PB4、PD1與ADCDAT、DATA斷開,且將PB3(MOSI)與WM8731的DACDAT相連,同時(shí)將PB3設(shè)置為輸出端口。另外,將PD0(RXD)與nRF2401的DATA相連,同時(shí)將PD0設(shè)置為輸入端口。此外,在USART初始設(shè)置上要開啟接收使能而關(guān)閉發(fā)送使能即可。

3 主控模塊的軟件流程

由于nRF2401的數(shù)據(jù)傳輸率為1Mbps,而從WM8739對(duì)模擬信號(hào)抽樣量化后的數(shù)據(jù)長(zhǎng)度為16bit,左右聲道的采樣率均為44.1kHz,若不對(duì)數(shù)據(jù)進(jìn)行編碼壓縮,則需要1.41Mbps(16bit×44.1kHz×2)的數(shù)據(jù)傳輸帶寬,顯然超出了RF模塊的數(shù)據(jù)傳輸能力。為了充分利用線路資源,而又不希望明顯降低音頻信號(hào)的質(zhì)量,就要對(duì)數(shù)據(jù)作進(jìn)一步壓縮,本文采用自適應(yīng)差分脈沖編碼調(diào)制ADPCM (Adaptive Difference Pulse Code Modulation)的壓縮算法。
ADPCM是利用樣本與樣本之間的高度相關(guān)性和量化階自適應(yīng)來壓縮數(shù)據(jù)的一種波形編碼技術(shù),它綜合了APCM的自適應(yīng)特性和DPCM系統(tǒng)的差分特性,是一種性能較好的波形編碼。ADPCM的核心思想是:利用自適應(yīng)改變量化階的大小,即使用小的量化階去編碼小的差值,使用大的量化階去編碼大的差值;使用過去的樣本值估算下一個(gè)輸入樣本的預(yù)測(cè)值,使實(shí)際樣本值和預(yù)測(cè)值之間的差值總是最小。ADPCM記錄的量化值不是每個(gè)采樣點(diǎn)的幅值,而是該點(diǎn)的幅值與前一個(gè)采樣點(diǎn)幅值之差。這樣16bit的數(shù)據(jù)經(jīng)ADPCM編碼之后只需4bit表示其差值,數(shù)據(jù)壓縮比為4:1。接收端的譯碼器使用與發(fā)送端相同的算法,利用傳送來的信號(hào)確定量化器和逆量化器中的量化階大小,并且用它來計(jì)算下一個(gè)接收信號(hào)的預(yù)測(cè)值。ADPCM算法實(shí)現(xiàn)框圖如圖3所示。

為了保證數(shù)據(jù)傳輸?shù)挠行?,以及避免其他同頻率信號(hào)的干擾,定義了如表1所示的傳輸數(shù)據(jù)的幀結(jié)構(gòu)。

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

為避免在2.4GHz公共頻段上容易出現(xiàn)的對(duì)音質(zhì)的干擾,本系統(tǒng)提供了頻點(diǎn)選擇功能,有125個(gè)頻點(diǎn)可選。如果系統(tǒng)在工作過程中,發(fā)現(xiàn)有較強(qiáng)的噪音出現(xiàn),即在當(dāng)前頻點(diǎn)存在干擾影響輸出音質(zhì)時(shí),可選擇新的工作頻點(diǎn),以保持產(chǎn)品良好的使用效果。

4 實(shí)驗(yàn)結(jié)果與結(jié)論

本系統(tǒng)的設(shè)計(jì)充分利用了ATmega48豐富的片上外設(shè),方便地實(shí)現(xiàn)了對(duì)語音芯片WM8739/8731和單片無線收發(fā)芯片nRF2401的連接。本系統(tǒng)應(yīng)用于點(diǎn)對(duì)點(diǎn)的無線數(shù)據(jù)傳輸中,系統(tǒng)工作于ISM頻段,有125個(gè)可選頻點(diǎn),44.1Kbps數(shù)字音頻采樣率,16bit樣本量化級(jí),20Hz~20kHz頻率響應(yīng),音頻輸出達(dá)到CD音質(zhì)效果,有效傳輸距離達(dá)到100m,有障礙物情況下能達(dá)到40m。

本系統(tǒng)為無線傳輸系統(tǒng)提供了一種比較實(shí)用且經(jīng)濟(jì)的解決方案,可以廣泛地應(yīng)用于無線耳機(jī)、話筒,小范圍內(nèi)的廣播、家庭影院的后置音箱、多功能會(huì)議廳、多房間無線音響系統(tǒng),無線教室教學(xué)系統(tǒng)等場(chǎng)合。



評(píng)論


技術(shù)專區(qū)

關(guān)閉