《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于ARM的音頻頻譜顯示器的設(shè)計(jì)
基于ARM的音頻頻譜顯示器的設(shè)計(jì)
來源:微型機(jī)與應(yīng)用2014年第1期
段麗娜
(華中科技大學(xué) 武昌分校,,湖北 武漢 430064)
摘要: 詳細(xì)介紹了一種基于ARM的音頻頻譜顯示系統(tǒng)的實(shí)現(xiàn),,整個(gè)音頻顯示系統(tǒng)包括音頻信號(hào)采集、音頻信號(hào)處理以及音頻信號(hào)轉(zhuǎn)換后的顯示等功能,。在設(shè)計(jì)中綜合了聲音采集,、ARM技術(shù)及FFT算法,,構(gòu)建了一個(gè)實(shí)時(shí)采集的頻譜顯示系統(tǒng),可以應(yīng)用于各種需要對(duì)聲音進(jìn)行采集和分析的場(chǎng)合,。其中,,硬件系統(tǒng)主要包括聲音信號(hào)的采集與處理、最小系統(tǒng),、電源和顯示模塊,;而軟件系統(tǒng)則是將ADC轉(zhuǎn)換的數(shù)據(jù)通過FFT算法后顯示在LCM12864顯示器上。測(cè)試結(jié)果表明,,該系統(tǒng)具有較好的實(shí)時(shí)性和準(zhǔn)確性,。
關(guān)鍵詞: ARM 音頻 頻譜顯示 FFT Cortex-M0
Abstract:
Key words :

摘  要: 詳細(xì)介紹了一種基于ARM音頻頻譜顯示系統(tǒng)的實(shí)現(xiàn),整個(gè)音頻顯示系統(tǒng)包括音頻信號(hào)采集,、音頻信號(hào)處理以及音頻信號(hào)轉(zhuǎn)換后的顯示等功能,。在設(shè)計(jì)中綜合了聲音采集、ARM技術(shù)及FFT算法,,構(gòu)建了一個(gè)實(shí)時(shí)采集的頻譜顯示系統(tǒng),,可以應(yīng)用于各種需要對(duì)聲音進(jìn)行采集和分析的場(chǎng)合,。其中,硬件系統(tǒng)主要包括聲音信號(hào)的采集與處理,、最小系統(tǒng),、電源和顯示模塊;而軟件系統(tǒng)則是將ADC轉(zhuǎn)換的數(shù)據(jù)通過FFT算法后顯示在LCM12864顯示器上,。測(cè)試結(jié)果表明,,該系統(tǒng)具有較好的實(shí)時(shí)性和準(zhǔn)確性。
關(guān)鍵詞: 音頻,;頻譜顯示,;FFT;ARM

 本文設(shè)計(jì)了基于SONiX公司的ARM Cortex-M0 SN32F700的音頻頻譜顯示器,,采用性價(jià)比較高的Cortex-M0 SN32F700實(shí)現(xiàn)對(duì)音頻頻譜的分析處理,取代了傳統(tǒng)使用純硬件濾波器或?qū)S脭?shù)字處理芯片DSP來實(shí)現(xiàn)的方法,,具有較高的實(shí)用價(jià)值,。本文采用ARM作為控制核心[1-3],充分發(fā)揮了其功耗超低,、精度較高等優(yōu)勢(shì),,其他各部分電路設(shè)計(jì)也充分考慮了簡(jiǎn)單、可靠,、經(jīng)濟(jì)等因素,,為實(shí)際應(yīng)用提供了一定的參考價(jià)值。
1 系統(tǒng)總體設(shè)計(jì)方案
1.1 系統(tǒng)控制芯片選擇

 本系統(tǒng)以SONiX公司的ARM Cortex-M0 SN32F700芯片為控制核心,,SN32F700的主時(shí)鐘的速率為50 MHz,,采用三級(jí)流水線結(jié)構(gòu)且片上資源豐富,能夠很好地實(shí)現(xiàn)系統(tǒng)的控制和算法,,甚至能簡(jiǎn)化一些復(fù)雜的硬件電路,。相比于普通的單片機(jī),采用ARM作主控芯片的方案具有靈活性,、可擴(kuò)展性,、通用性的優(yōu)點(diǎn),而且還可以根據(jù)市場(chǎng)的需求組合,,價(jià)格上也有一定的優(yōu)勢(shì),,本系統(tǒng)最終選擇ARM的芯片方案來構(gòu)建音視頻處理平臺(tái)。
1.2 音頻頻譜顯示方案
 方案一 利用硬件濾波器和A/D轉(zhuǎn)換器,,并用DDS芯片配合FIFO對(duì)信號(hào)進(jìn)行采集,,通過DDS集成芯片產(chǎn)生一個(gè)頻率穩(wěn)定度和精度相當(dāng)高的信號(hào)作為FIFO的時(shí)鐘,然后由FIFO對(duì)A/D轉(zhuǎn)換的結(jié)果進(jìn)行采集和存儲(chǔ),,最后送入MCU進(jìn)行處理,。
 方案二 直接由32位MCU的定時(shí)中斷進(jìn)行信號(hào)的采集,,然后對(duì)信號(hào)進(jìn)行分析。因?yàn)?2位MCU是50 MHz的單指令周期處理器,,所以其定時(shí)精確度為20.0 ns,,已經(jīng)遠(yuǎn)遠(yuǎn)可以實(shí)現(xiàn)本文期望的采樣率,而且控制方成本較低,,因此選擇由MCU直接采樣,。
方案一實(shí)現(xiàn)簡(jiǎn)單,但硬件成本高,,方案二軟件和硬件實(shí)現(xiàn)都較簡(jiǎn)單,。而這里針對(duì)ARM資源多、運(yùn)算速度快的特點(diǎn),,提出一種切實(shí)可行的快速傅里葉變換算法實(shí)現(xiàn)頻譜顯示,。因此選取方案二作為音頻頻譜顯示計(jì)方案。
1.3 系統(tǒng)控制方案選擇
 在整個(gè)音頻處理系統(tǒng)中,,采用順序,、循環(huán)掃描和定時(shí)輸出顯示的方式來對(duì)整個(gè)系統(tǒng)控制[4]。軟件系統(tǒng)中的各個(gè)子程序逐步實(shí)現(xiàn),,最后再將所需要的子程序合并,,這樣就具有編寫代碼容易、易于移植,、維護(hù)及開發(fā)周期短等特點(diǎn),。最重要的是實(shí)現(xiàn)了程序中數(shù)據(jù)的快速處理輸出,使得將來的擴(kuò)展更加方便,。因此選用的主控芯片是SN32F700,。

 在上述硬件電路設(shè)計(jì)中,主要著眼于音頻信號(hào)預(yù)處理電路的設(shè)計(jì),。在實(shí)際應(yīng)用中,,音頻信號(hào)主要來源是咪頭、麥克風(fēng)輸入信號(hào)或者是播放器輸出信號(hào),,圖3所示是一段電腦播放音樂時(shí)聲卡輸出的音頻波形,。
從圖3可以看到,電腦上的聲音信號(hào)的電壓有正,、負(fù)兩種狀態(tài),,當(dāng)直接從電腦上取聲音信號(hào)時(shí),需要對(duì)其進(jìn)行處理,,使采集的電壓全為正,。下面介紹如何對(duì)信號(hào)進(jìn)行處理,可以直接從電腦上取出聲音信號(hào),,也可以通過采集電路采集外界的聲音信號(hào),。

2.3 音頻預(yù)處理放大電路
 由于在實(shí)際的音頻運(yùn)用中,,音頻信號(hào)會(huì)出現(xiàn)電壓為負(fù)值的現(xiàn)象,而單片機(jī)只能識(shí)別0和1,,對(duì)負(fù)電平不能處理,,因此要對(duì)音頻信號(hào)進(jìn)行處理,使得音頻信號(hào)最后的輸入達(dá)到單片機(jī)的電壓變換范圍,,即在AVREFH和AVREFL之間,,以便于MCU進(jìn)行ADC轉(zhuǎn)換。
 由于是對(duì)聲音信號(hào)處理,,因此選擇了對(duì)于音頻信號(hào)具有很低失真率的LM358運(yùn)算放大器,。根據(jù)以上分析,設(shè)計(jì)出的音頻預(yù)處理電路如圖4所示,。

 圖4中電阻R5,、R6更具運(yùn)算放大器中虛短與虛斷的特性,即反相端2和同相端3兩個(gè)輸入口的電壓和電流相等,,R5,、R6組成的是一個(gè)運(yùn)算放大電路,(1+R5/R6)是其放大倍數(shù),。將輸入的負(fù)電壓信號(hào)變成正的電壓信號(hào),其原理是串聯(lián)電阻分壓和RC組成的低通濾波器根據(jù)輸入電壓的高低對(duì)輸入信號(hào)進(jìn)行充放電,,使輸入信號(hào)的電壓得到升高,。
2.4 音頻顯示電路
 本設(shè)計(jì)所選用的顯示屏LCM是JDL12864G-04。JDL12864G-04模塊是點(diǎn)陣液晶顯示模塊,,它主要由行驅(qū)動(dòng)器,、列驅(qū)動(dòng)器以及128×64全點(diǎn)陣液晶顯示器組成,可以完成圖形和8×4個(gè)漢字(16×16點(diǎn)陣),。
LCM向用戶提供一個(gè)標(biāo)準(zhǔn)的LCD顯示驅(qū)動(dòng)接口(有4位,、8位和VGA等不同類型),用戶按照接口要求進(jìn)行操作來控制LCD正確顯示,。相比玻璃LCM是一種更高集成度的LCD產(chǎn)品,,對(duì)小尺寸LCD顯示,LCM可以比較方便地與各種微控制器(比如單片機(jī))連接,。由于SN32F700的時(shí)鐘頻率是50 MHz,,則每秒鐘對(duì)LCM的可刷新次數(shù)為50 M/(128×64×8)=762次,完全滿足頻譜刷新的頻率,。LCM12864顯示電路如圖5所示,。

3 系統(tǒng)的軟件設(shè)計(jì)與調(diào)試
 系統(tǒng)的調(diào)試包括硬件平臺(tái)的調(diào)試與系統(tǒng)程序的調(diào)試。在每一個(gè)工程中,,調(diào)試都是一個(gè)非常重要且十分復(fù)雜的環(huán)節(jié),。
3.1 系統(tǒng)的軟件設(shè)計(jì)
 本系統(tǒng)軟件程序設(shè)計(jì)中包含了初始化部分,、音頻采集部分、FFT運(yùn)算部分,、幅值計(jì)算部分及頻譜顯示部分,。每個(gè)部分可以清晰地了解程序的流程,使得程序的結(jié)構(gòu)更加簡(jiǎn)單,,對(duì)于以后相應(yīng)的開發(fā)可以很好地進(jìn)行移植[5-6],。
3.2 系統(tǒng)的測(cè)試
 系統(tǒng)的測(cè)試電路是將1 kHz的正弦波作為聲音信號(hào)輸入到電路中,圖6是聲音信號(hào)經(jīng)過聲音采集電路后的顯示,。其中,,信號(hào)1是輸出,信號(hào)2是輸入,??梢悦黠@看出,信號(hào)1與信號(hào)2的波形是相反的,,相位相差180°,。
1 kHz的正弦波輸入經(jīng)過音頻采集電路和音頻預(yù)處理電路后的顯示如圖7所示。其中,,信號(hào)線1為輸入,,信號(hào)2為輸出,輸入與輸出方向相同,,相位無差別,。

 本文介紹了基于ARM的音頻頻譜顯示器的設(shè)計(jì)方法,完成了音頻頻譜顯示器的設(shè)計(jì)和制作,,并對(duì)其進(jìn)行了性能測(cè)試,。測(cè)試結(jié)果表明,整個(gè)系統(tǒng)能夠順利采集音頻信號(hào)并進(jìn)行處理,,最終在LCD上顯示所采集的頻譜圖,,達(dá)到一個(gè)較好的性能,實(shí)現(xiàn)了預(yù)期的效果,。
參考文獻(xiàn)
[1] 周林,,殷俠.?dāng)?shù)據(jù)采集與分析技術(shù)[M].西安:西安電子科技大學(xué)出版社,2005.
[2] 周立功,,王祖麟,,陳明計(jì),等.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].北京:北京航空航天大學(xué)出版社,,2008.
[3] 田澤.嵌入式系統(tǒng)開發(fā)與應(yīng)用教程[M].北京:北京航空航天大學(xué)出版社,,2005.
[4] 李明明,李宏,王晨波.基于FPGA與單片機(jī)的音頻頻譜分析系統(tǒng)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,,2013(1):101-102.
[5] 王春菊.數(shù)字式頻譜分析儀原理分析[J].標(biāo)準(zhǔn),、檢測(cè)與儀器,2001(12):95-96.
[6] 吳明暉.基于ARM的嵌入式系統(tǒng)開發(fā)與應(yīng)用[M].北京:人民郵電出版社,,2004.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。