<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)Tmega8的無(wú)線(xiàn)擴音系統設計

基于A(yíng)Tmega8的無(wú)線(xiàn)擴音系統設計

作者: 時(shí)間:2013-10-09 來(lái)源:網(wǎng)絡(luò ) 收藏

2 系統接口設計

2.1 發(fā)射端系統接口

如圖3所示,通過(guò)SPI與NRF24L01連接。在對NRF24L01初始化之前,必須對IO口進(jìn)行初始化,方向寄存器DDR設置如圖上的箭頭所示。工作頻率為16 MHz,故通過(guò)設置SPCR、SPSR寄存器讓SPI工作于時(shí)鐘加倍模式,可使SPI時(shí)鐘頻率達8 MHz。內部A/D工作時(shí)鐘通過(guò)64分頻后為250 kHz;單次轉換周期為52μs;在連續轉換模式下,采樣頻率約為20 kHz、8 bit精度。每次完成轉換后將觸發(fā)ADC中斷。電源部分作為電路的重要組成部分,其性能好壞直接影響輸出音質(zhì)。由于發(fā)射端RF模塊工作于發(fā)射狀態(tài)時(shí)瞬間電流較大,如果模擬器件和RF模塊使用同一LDO,則輸出音頻會(huì )受到嚴重干擾,故模擬器件和數字器件各自使用獨立LDO,力求將影響減到最小。


2.2 接收端系統接口

如圖4所示,與NRF24L01連接方式與發(fā)射端相同,IO方向設置也與其相同。為了防止NRF24L01返回ACK時(shí)造成的電源波動(dòng),模擬器件和數字器件都各自使用獨立LDO。由于A(yíng)Tmega8的IO口較少,內部數個(gè)硬件接口使用同一個(gè)IO,導致接口沖突。SPI的MOSI和Timer2的OC2共用PB3,SS與Timer1的OC1B共用PB2,最后只有16 bit的Timer1OC1A可使用。通過(guò)修改TCCR1A寄存器讓Timer1工作在8bit PWM模式,工作頻率為62.5 kHz。修改OCR1則可以改變OC1B上輸出的PWM占空比。Timer2在比較匹配模式下工作,每隔52μs中斷一次,并修改緩沖區的數據送至Timer1,讓其改變PWM占空比,經(jīng)過(guò)低通濾波器濾去PWM高頻成分后,最終得到音頻信號。


3 主控軟件流程


3.1 發(fā)射端軟件流程

MCU上電復位后,首先會(huì )對SPI接口進(jìn)行初始化,再進(jìn)行IO設置。接著(zhù)再對外設NRF24L01和Timer0初始化。完成對NRF24L01的初始化后,緊接著(zhù)就是對接收機的搜索。流程圖內附有簡(jiǎn)略算法。與接收機建立握手后就開(kāi)始對A/D初始化,并開(kāi)始對音頻信號進(jìn)行采樣,將數據保存至A、B兩個(gè)緩沖區,一旦A緩沖區溢出后新采樣的數據就傳輸至B緩沖區,并將A緩沖區的數據打包發(fā)送。緊接著(zhù)進(jìn)入接收模式并等待接收端返回ACK。與此同時(shí)采集的數據將保存到B緩沖區內。當收到ACK后將進(jìn)入下一個(gè)循環(huán)周期。如果10 min內不斷發(fā)送數據且沒(méi)有收到ACK則認為和接收端的連接已經(jīng)中斷,這時(shí)將進(jìn)入待機狀態(tài)。定時(shí)器每10 ms觸發(fā)中斷,對當前連接狀態(tài)通過(guò)紅綠LED進(jìn)行顯示。正常狀態(tài)時(shí)綠色LED長(cháng)亮,一旦出現丟包現象則只有紅LED長(cháng)亮,用于告知發(fā)射端和接受端的距離過(guò)遠或信號受到障礙物阻擋、干擾。

3.2 接收端軟件流程

接收端的軟件實(shí)現流程為發(fā)射端的逆過(guò)程。首先對ATmage8的IO、SPI、定時(shí)器、NRF24L01進(jìn)行初始化,其設置與發(fā)射端一致。接著(zhù)設置NRF24L01為接受狀態(tài),MCU將搜索發(fā)射端握手信號和空閑頻道,如果搜索不到握手信號時(shí)將在空閑頻道上等待發(fā)射主動(dòng)搜索到該頻道。完成信號握手后接收端將會(huì )一直等待發(fā)射端發(fā)送數據包,并把數據包內的數據移至緩沖區,10 min后收不到數據包則進(jìn)入待機狀態(tài)。Timer2工作
于比較匹配模式,一旦TNCT2等于OCR2時(shí),MCU會(huì )對TNCT2硬件清零,從而產(chǎn)生一個(gè)周期為52μs的比較匹配中斷,并利用這個(gè)中斷去從緩沖區讀取音頻數據至Timer1用于輸出PWM占空比。與此同時(shí),timer也將產(chǎn)生一個(gè)10 ms的中斷用于LED顯示連接狀態(tài),實(shí)現原理與發(fā)射端的一致。

4 性能測試

無(wú)線(xiàn)數碼擴音器實(shí)現射頻頻率在2.4~2.5 CHz的數碼傳輸。在無(wú)遮擋直線(xiàn)傳輸的條件下,有效距離達60 m。收、發(fā)機可自動(dòng)應答和重發(fā)。頻響為100 Hz~10 kHz。信噪比>45 dB。在125個(gè)可選工作頻道中自動(dòng)跳頻,頻道切換時(shí)間極短。發(fā)射器工作狀態(tài)電流最大為12 mA,靜待狀態(tài)電流最大為0.06 mA,輸出功率5 W,數據速率為2 Mbit·s-1。

5 結束語(yǔ)

無(wú)線(xiàn)數碼擴音器設計方案,是利用ATmega8 MCU和nRF24L01射頻收發(fā)器件,以及詢(xún)址技術(shù)進(jìn)行開(kāi)發(fā)的,在可選工作頻道中自動(dòng)跳頻,頻道切換時(shí)間極短。在無(wú)障礙物的直線(xiàn)傳輸條件下實(shí)現輸出功率為5 W、發(fā)射和接收有效距離在60 m以?xún)?。ATmega8 MCU的應用雖然降低了該擴音器的成本,但ATmega8 MCU的性能限制,使擴音效果存在音頻爆音現象。處理的方法有不少,其中可采用窄帶高頻及中頻選頻濾波,外加噪聲數碼抑制電路,有效避免脈沖雜音,多種增強主音源,最大限度抑制了背景噪音,提高了傳音質(zhì)量。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>