我們正在目睹個(gè)人計算領(lǐng)域的不斷發(fā)展。手機和平板電腦等移動(dòng)設備即將取代傳統的電腦。調頻收音機(FM Radio)是發(fā)展中國家的一種常見(jiàn)娛樂(lè )方式,但這個(gè)事實(shí)往往被人們所忽略,外加因特網(wǎng)無(wú)線(xiàn)電的出現,可能會(huì )導致 調頻收音機的消亡。OEM廠(chǎng)商通常不會(huì )考慮在平板電腦或移動(dòng)設備上配備調頻收音機。然而,許多大都市現在仍然有FM廣播電臺,而且近期也不會(huì )被淘汰掉。
一種微型插件在連接到手機或平板電腦后能給這些移動(dòng)設備帶來(lái) 調頻收音機功能。這種即插即用型FM接收器采用帶微控制器或SOC的FM接收器芯片。微控制器與平板電腦/移動(dòng)設備上的USB主機進(jìn)行通信時(shí)相當于一個(gè)USB器件,能夠接收頻道掃描、更換頻道、輸出功率設置等操作的命令。這種即插即用FM接收器配件通過(guò)總線(xiàn)供電,可收聽(tīng)本地FM頻道,而且其耗電量遠遠低于移動(dòng)寬帶收音機(因特網(wǎng)收音機)。
調頻收音機接收器
調頻收音機接收器芯片工作在70 MHz到108 MHz之間,能滿(mǎn)足全球頻段要求,支持美歐的87.5到108 MHz、日本的76到90 MHz和中國的76到108 MHz標準。通常來(lái)說(shuō),調頻收音機接收器能以50 kHz、100 kHz或200 kHz步進(jìn)的方式調諧頻率。此外,調頻收音機還支持無(wú)線(xiàn)電數據系統(RDS)/無(wú)線(xiàn)電廣播數據系統(RBDS)功能,能夠通過(guò)主機實(shí)現完全可編程。RDS除了用于發(fā)射音頻之外還能接收文本等信息。這些文本可能包括歌曲名稱(chēng)、廣播節目名稱(chēng)以及flash新聞等可供顯示的內容。在緊急情況下,RDS還可用來(lái)發(fā)射危急信息。
頻段掃描是指FM radio芯片掃描整個(gè)FM頻段并尋找可用無(wú)線(xiàn)電頻道的過(guò)程。收音機將最強的頻道頻率存儲在其內部存儲器中,供主機微控制器或SOC讀取。
存儲頻道后,可通過(guò)三種方法調諧到特定頻道:
●預設調諧:這種方法是將FM接收器的調諧頻率設置為主機定義的特定頻道。
●搜索調諧:這種方法是讓接收器通過(guò)頻率增加(上搜)或降低(下搜)的辦法自動(dòng)搜索下一個(gè)可用的有效頻道。
●步進(jìn)調諧:這種方法是讓接收器通過(guò)頻率序號的增加(漸進(jìn))或降低(漸降)選擇下一個(gè)頻道。
當今大多數無(wú)線(xiàn)電接收器芯片都通過(guò)I2C和SPI等標準協(xié)議與主機進(jìn)行通信。此外,無(wú)線(xiàn)電接收器芯片還會(huì )通過(guò)生成關(guān)鍵事件中斷的方式提醒主機注意,這些事件包括:
●當接收信號強度指示器(RSSI)的值降到閾值水平以下時(shí),信號質(zhì)量低;
●單聲道轉換到立體聲,或者相反;
●需要無(wú)線(xiàn)電數據系統 (RDS) 同步;
●RDS同步丟失;
●RDS緩沖區已滿(mǎn)。
由于該嵌入式系統工作在由電池供電的設備上,因此高效的電源管理至關(guān)重要。無(wú)線(xiàn)電接收器芯片支持多種電源模式,并可由SOC控制,以延長(cháng)電池使用壽命。因此,接收器芯片支持以下電源模式:
●關(guān)機:在此模式中,電源關(guān)閉,所有內部穩壓器被禁用;
●斷電:電源開(kāi)啟,但內部穩壓器仍然被禁用;
●待機:穩壓器可工作,保持無(wú)線(xiàn)電模式;
●上電:這是正常的運行模式,所有穩壓器被啟用且無(wú)線(xiàn)電全面工作。
圖1給出了FM接收器的方框圖。

圖1:接收器的方框圖
第一階段是模擬信號處理階段,該階段負責將RF天線(xiàn)信號轉換為一個(gè)較低的中頻(IF)數字信號。自動(dòng)增益控制單元(AGC)將低噪聲RF放大器(LNA)保持在其線(xiàn)性工作范圍內;祛l器用于將接收到的RF信號下變頻為較低的中頻(IF)信號。而ADC將信號轉換為數字格式。在數字域內完成FM解調。此外,數字信號處理器也用于處理RDS數據。
調頻收音機配件的實(shí)施
圖2中的完整FM系統采用通用型FM radio芯片,其簡(jiǎn)單實(shí)施方框圖如下所示:

圖2:系統方框圖
隨著(zhù)現代可編程SOC的出現,除了一些無(wú)源器件之外,實(shí)施完整的設計不再需要額外的外部元件。SOC可以發(fā)送命令并通過(guò)I2C端口從調FM radio芯片接收狀態(tài)信息。SOC通過(guò)已有的 USB接口與平板電腦相連。平板電腦上的前端應用可以訪(fǎng)問(wèn)FM radio信息,用于進(jìn)行頻道掃描和選擇。一旦FM radio接收到鎖定特定頻率的命令,它會(huì )在特定引腳上輸出模擬音頻。FM radio接收器的模擬輸出由SOC進(jìn)一步處理,得到的數字音頻會(huì )通過(guò)USB傳輸給平板電腦。FM radio芯片的工作電源由USB總線(xiàn)提供。大多數FM radio芯片需要的電流一般只有幾毫安,電壓甚至不到1.8V,USB總線(xiàn)完全能夠滿(mǎn)足這一需求,而且這種功耗對于便攜式設備來(lái)說(shuō)完全可以接受。
在SOC中實(shí)施收音機配件需要以下資源:
●放大器
●模數轉換器(ADC)
●通信協(xié)議(I2C/SPI)
●USB接口
●濾波器模塊
通常來(lái)說(shuō),調頻收音機芯片輸出音頻信號的強度約為100mV的水平。放大器用來(lái)放大FM接收器的模擬音頻信號,隨后將信號提供給SOC中的ADC。如方框圖所示,模擬音頻輸出的強度在通過(guò)可編程增益放大器(PGA)之后得到了加強。這就能確保整個(gè)ADC的輸入范圍得到了利用,從而在FM radio芯片輸出端真實(shí)地復制音頻。此外,我們也可以采用輸入范圍較窄的 ADC對信號進(jìn)行數字化。但是,信號強度越低,就越容易受到系統噪聲的影響。
模數轉換器(ADC)以44.1 kHz的頻率采樣放大器的模擬輸出,并將其轉換為16位的數字信號。采樣率設為44.1 kHz是為了滿(mǎn)足Nyquist原理,該原理要求采樣頻率必須至少為最大工作頻率的2倍。
通信協(xié)議:如I2C或SPI等標準協(xié)議,可用于連接SOC和FM接收器。如果使用I2C協(xié)議,則SOC將作為主機,無(wú)線(xiàn)電接收芯片作為從機,數據速率為100/400 kHz。改變頻道或掃描FM頻段的命令可由I2C主機通過(guò)I2C 總線(xiàn)發(fā)送給FM接收芯片。FM接收芯片能夠解碼預定義的命令,從而執行各種任務(wù)。如果使用RDS協(xié)議,則接收的數字信息可由控制器通過(guò)I2C接口從 FM接收器讀取。我們也能讀取其它狀態(tài)信息(如FM radio接收器通過(guò)I2C接收到的信號強度指示(RSSI)信息),并在平板電腦或PC上顯示出來(lái)。
直接存儲器存取(DMA):在許多微控制器中,DMA都是一種強大的特性,有助于減輕存儲器不同位置之間的數據傳輸任務(wù),從而提高性能。DMA可用來(lái)將經(jīng)過(guò)轉換的數字信息從ADC傳輸到存儲器或直接傳輸到USB,從而使CPU能夠處理其它關(guān)鍵任務(wù)。
USB:USB是主機平板電腦與SOC之間的接口。USB中斷端點(diǎn)可用來(lái)接收主機發(fā)送的各種命令,如頻道掃描、頻道加減等。請注意,如果命令數據比較小,那么USB設備上的控制端點(diǎn)也可用來(lái)傳輸命令。我們可以用控制端點(diǎn)來(lái)發(fā)送命令。命令可作為廠(chǎng)商定義的命令發(fā)送,然而在控制端點(diǎn)上,一個(gè)USB數據包最多包含8個(gè)字節的數據內容。來(lái)自ADC的44.1 kHz數字數據通過(guò)同步USB傳輸模式發(fā)送給主機。同步傳輸在這里是最理想的方式,原因在于它的延遲性能有保障、分配了總線(xiàn)帶寬并且沒(méi)有錯誤校正和握手過(guò)程,因此能保持交付時(shí)間的一致性。請注意,CRC字段可以檢查錯誤,但并不予以校正。人耳無(wú)法聽(tīng)出偶然的數據錯誤或傳輸丟失,除非是頻繁的停頓才會(huì )引起注意。由于沒(méi)有錯誤校正,因此即便數據包有錯誤也不會(huì )中斷數據傳輸。對于同步端點(diǎn)來(lái)說(shuō),微控制器支持的最大數據包為1023字節。
提高音質(zhì)
在移動(dòng)操作系統中,通常采用專(zhuān)用的媒體服務(wù)器或媒體引擎來(lái)播放音頻。如果用戶(hù)需要,該媒體引擎也可用來(lái)增強或修改音頻特性。在某些移動(dòng)處理器中,有專(zhuān)用的DSP硬件實(shí)現這一目的。使用媒體引擎或DSP會(huì )消耗額外的電量,降低性能,也可能對用戶(hù)體驗造成不利影響。還有一種辦法是在SOC中處理音頻,然后通過(guò)USB將處理后的音頻流發(fā)送到主機(Host)平板電腦。平板電腦需要做的僅僅是播放音頻。利用SOC中的資源還能實(shí)現低音、高音等控制選項,使用戶(hù)可以更加精細地控制音質(zhì)。這一功能是通過(guò)賽普拉斯PSoC 3等器件中的數字濾波器模塊(DFB)實(shí)現的。DFB模塊接收數字輸入數據,并將處理后的數字數據進(jìn)行輸出。在本應用中,數據流通過(guò)DMA進(jìn)入DFB,按照音質(zhì)要求加以過(guò)濾,再通過(guò)USB發(fā)送至終端進(jìn)行播放?赏ㄟ^(guò)圖形用戶(hù)界面(GUI)控制音質(zhì)。GUI提供了一個(gè)類(lèi)似于音樂(lè )播放器均衡器的界面。整個(gè)音頻范圍可被分為多個(gè)分立頻段。我們通過(guò)改變GUI上的控件位置,可以向 DFB加載新的調節系數,這些系數會(huì )改變每個(gè)頻段的增益,從而改變輸出音質(zhì)。
主機應用
主機運行一個(gè)用于控制音頻接收器的前端應用。如果主機運行的是Android操作系統,則可以用標準的Java和Android庫創(chuàng )建簡(jiǎn)單的GUI。如果是Windows平板電腦,則可以用C# GUI完成同樣的工作。用戶(hù)通過(guò)按鈕等控制對象能夠實(shí)現頻道選擇、加減頻道等操作。
Windows操作系統中的DirectSound驅動(dòng)程序與USB的同步傳輸模式配合使用,可將音頻流傳輸到揚聲器。這項功能在Windows 7操作系統中同樣適用。專(zhuān)為平板電腦設計的Windows 8 操作系統也支持GUI和音頻驅動(dòng)器,且無(wú)需任何變化。同步傳輸目前還無(wú)法支持Android平板電腦。Apple的iPad和少數其它iOS設備具有內置的USB主機和同步傳輸模式,可用于音頻播放。
前端主機應用或Windows Form應用可根據用戶(hù)的如下請求生成事件:
●頻道掃描請求
●頻道上調請求
●頻道下調請求
●從接收器請求接收信號強度指示器 (RSSI)
對于Windows而言,可在Visual Studio中利用C#開(kāi)發(fā)應用。USB設備和端點(diǎn)可通過(guò)標準庫或SOC制造商提供的定制庫來(lái)進(jìn)行訪(fǎng)問(wèn)。庫提供了通過(guò)USB接口訪(fǎng)問(wèn)SOC的方法和對象。我們可以創(chuàng )建Windows Form來(lái)發(fā)送命令并顯示狀態(tài)信息,如下所示。

圖3:FM Radio GUI
可添加按鈕等控制對象,用來(lái)實(shí)施頻道掃描、下一頻道、上一頻道和音量控制等各種不同操作。除此之外,還可以將數字音頻錄制為.WAV文件。也可以針對Android操作系統和 Apple的iOS開(kāi)發(fā)類(lèi)似應用。
PSoC 3等現代SOC可以通過(guò)單芯片的方式實(shí)現即插即用型調頻收音機配件。模擬音頻放大、數字化、濾波、向主機傳輸音頻流以及控制FM接收器等操作都能得到高效處理。當不工作時(shí),這種由總線(xiàn)供電的設備可以使FM接收器和SOC在待機和斷電等低功耗模式下運行,因此它在平板電腦等電池供電的主機中使用時(shí)具有很高的能效。平板電腦的時(shí)代已然開(kāi)啟,這種微型配件將利用計算設備中的已有資源實(shí)現巨大價(jià)值。 |