《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 基于STM32F429的音頻信號發(fā)生器

基于STM32F429的音頻信號發(fā)生器

2015-11-08
作者:田 谞,王宏偉,其木蘇榮

  摘  要: 基于STM32F429單片機(jī)控制系統(tǒng)設(shè)計了一款可遠(yuǎn)距離精確控制頻率和幅度值的音頻信號發(fā)生器。該發(fā)生器通過PC控制面板,按照要求輸入所需頻率、幅度值,借助以太網(wǎng)把控制命令遠(yuǎn)距離地傳輸給該發(fā)生器,經(jīng)發(fā)生器的處理,把音頻模擬信號傳輸給被測設(shè)備。與傳統(tǒng)音頻信號發(fā)生器相比,該發(fā)生器可同時輸出兩路相同的音頻信號,不用粗調(diào)、細(xì)調(diào),直接在PC控制面板上輸入所需幅度頻率即可,而且能遠(yuǎn)距離控制。

  關(guān)鍵詞: STM32F429;數(shù)字信號合成;PC端控制面板

0 引言

  為了對客觀世界的聲音信息進(jìn)行拾取、記錄、放大和傳輸,研制了聲音信號處理設(shè)備。聲音信號處理設(shè)備處理的對象是人耳聲頻域(20 Hz~20 kHz)內(nèi)的音頻信號,音頻信號發(fā)生器是測量聲音信號及處理設(shè)備性能指標(biāo)必不可少的儀器。早期音頻信號發(fā)生器由基本的LC振蕩電路及外圍電路組成,結(jié)構(gòu)簡單、成本較低,但設(shè)備笨重、頻率精度不高。目前常用的音頻信號發(fā)生器普遍由單片機(jī)及外圍電路組成,頻率穩(wěn)定,但都通過粗調(diào)、細(xì)調(diào)改變幅度、頻率,操作麻煩,不能馬上改變變量到所需值的大小。

  針對傳統(tǒng)音頻信號發(fā)生器的缺點,本文采用一款性價比高、功耗低的ARM Cortex-M4控制芯片[1],制作了一臺智能音頻信號發(fā)生器。該發(fā)生器的頻率、幅度連續(xù)可調(diào),按步進(jìn)1 Hz、1 mV線性變化,兼具頻率、幅度穩(wěn)定的優(yōu)點;通過PC端控制面板,直接輸入幅度、頻率值,就能快速地得到所需要的音頻信號,精度高[2];一改信號發(fā)生器必須近距離調(diào)試的缺點,可通過以太網(wǎng)直接遠(yuǎn)距離操控。

1 總體設(shè)計

  該音頻信號發(fā)生器采用模塊化設(shè)計,通過調(diào)用各個功能模塊,實現(xiàn)主控計算機(jī)可遠(yuǎn)距離快速控制音頻信號發(fā)生器輸出信號的幅度、頻率值。該系統(tǒng)以ARM Cortex-M4為核心,系統(tǒng)總體框圖如圖1所示。

001.jpg

2 硬件設(shè)計

  該音頻信號發(fā)生器通過主控計算機(jī)的控制面板輸入控制幅度、頻率值的指令,通過以太網(wǎng)快速遠(yuǎn)距離傳輸?shù)叫盘柊l(fā)生器,控制數(shù)字合成音頻信號的幅度、頻率值,最終通過音頻輸出端口輸出所需音頻信號。

  2.1 控制芯片

  控制系統(tǒng)的核心STM32F429是以ARM Cortex-M4為內(nèi)核的新型微控制器芯片,它的停止模式電流降至100 μA(典型值),降低了停止模式的電流消耗,可延長便攜應(yīng)用電池的壽命,頻率高達(dá)180 MHz,擁有市場領(lǐng)先的性能和圖形處理功能。該芯片包含3個12 bit A/D轉(zhuǎn)換器,多達(dá)24個通道,轉(zhuǎn)換速率為2.4 MSPS,在掃描模式下,自動轉(zhuǎn)換在選定的一組模擬輸入中進(jìn)行;還包括2個12 bit D/A轉(zhuǎn)換器,可獨立或同時轉(zhuǎn)換。同時集成了大部分存儲器控制器,可外接一個高速SDRAM作為內(nèi)存擴(kuò)充,有很高的性價比。

  2.2 遠(yuǎn)距離控制電路

  以太網(wǎng)遠(yuǎn)距離控制是整個控制系統(tǒng)中的一個重要部分。該發(fā)生器通過以太網(wǎng)與PC連接,操控PC控制面板,按照要求輸入所需的幅度、頻率值,通過以太網(wǎng)把控制命令遠(yuǎn)距離地傳輸給音頻信號發(fā)生器,達(dá)到遠(yuǎn)程控制的目的[3]。

  該以太網(wǎng)接口芯片DP83848CVV是一個全功能自適應(yīng)網(wǎng)絡(luò)連接速度10/100 Mb/s的單端口物理器件,允許設(shè)備使用所需操作電源的絕對最小值,提供低功耗性能。該芯片包括一個25 MHz的時鐘輸出,使應(yīng)用程序含有最少的外部器件,進(jìn)而降低成本;同時支持10BASE-T和100BASE-TX的以太網(wǎng)協(xié)議,以確保與其他基于以太網(wǎng)標(biāo)準(zhǔn)解決方案的兼容性和互操作性。

  2.3 SDRAM

  同步動態(tài)隨機(jī)存儲器SDRAM與系統(tǒng)總線同步,無等待周期,而且是雙存儲體結(jié)構(gòu),讀取效率得到成倍提高。SDRAM體積小、速度快、容量大、價格低,是比較理想的內(nèi)存擴(kuò)展器件[4-5]。

  該系統(tǒng)采用的SDRAM為MT48LC32M16A2P-7E,它的內(nèi)存高達(dá)256 MB,在時鐘頻率66 MHz、100 MHz、133 MHz之間兼容,所有信號寄存在系統(tǒng)時鐘的上升沿,自動預(yù)載,時鐘使能CKE中的停用時鐘提供預(yù)充電掉電和自刷新操作,在斷電和自刷新模式下,包括CLK的輸入緩沖區(qū)被禁用,提供低待機(jī)功耗。對每一行自動刷新的循環(huán)周期為64 ms,刷新命令一次對一行有效,發(fā)送間隔為7.812 5 μs,從而提供無縫、高速、隨機(jī)訪問操作。A0~A11作為SDRAM的行地址線,同時A0~A7又復(fù)用為列地址線,BA0和BA1作為bank選擇線,應(yīng)用讀、寫或預(yù)充電命令。其控制接口如圖2所示。

002.jpg

  信號采樣頻率為48 kHz,每個樣點采用16 bit量化,如果最小頻率分辨率為1 Hz,所需查表的大小為48 k×16 bit,共需48 k×16 bit的RAM空間。顯然SDRAM的存儲空間足夠使用,也便于以后該發(fā)生器對方波、三角波等波形的擴(kuò)展。

3 軟件設(shè)計

  整個系統(tǒng)采用模塊化設(shè)計,除主程序外,各功能子程序分別執(zhí)行PC端輸入控制命令、以太網(wǎng)傳輸、SDRAM內(nèi)存擴(kuò)展、正弦查詢表映射、數(shù)模轉(zhuǎn)換等相應(yīng)功能,系統(tǒng)主程序流程如圖3所示。

003.jpg

  3.1 PC端控制

  信號發(fā)生器可產(chǎn)生正弦波、方波、三角波等規(guī)則波形信號,本信號發(fā)生器僅以正弦波為例。

  音頻信號發(fā)生器的PC控制端采用Java技術(shù),因為它可跨平臺操作,具有卓越的通用性、高效性,所以設(shè)計的PC控制端具有界面友好、操作簡單、成本低、容易實現(xiàn)等優(yōu)點。所設(shè)計的PC控制界面如圖4所示,部分程序如下:

004.jpg

  JPanel jp0,jp1;

  JPanel jp2,jp3;

  JLabel j0,j1,j2;

  JTextField txt1,txt2;

  JButton Bopen,Bclose;

  public TianComm(){

  jp0=new JPanel();

  jp1=new JPanel();

  jp2=new JPanel();

  jp3=new JPanel();

  j1=new JLabel("頻率(Hz):");

  //輸入頻率值,單位為Hz

  j2=new JLabel("幅度(mV):");

  //輸入幅度值,單位為mV

  txt1=new JTextField(10);

  txt2=new JTextField(10);

  Bopen=new JButton("打開");//打開控制面板

  Bclose=new JButton("關(guān)閉");//關(guān)閉控制面板

  …}

  對控制界面進(jìn)行操作時應(yīng)注意以下事項:

 ?。?)“打開”和“關(guān)閉”按鈕分別代表打開和關(guān)閉控制端;

 ?。?)頻率以Hz為單位,分辨率為1 Hz,假如頻率為2 000 Hz,就在頻率欄填寫2 000;幅度以mV為單位,分辨率為1 mV,假如需要1 V,則在幅度行輸入1 000,然后按回車鍵即可。

  3.2 數(shù)字合成音頻信號

  直接采用數(shù)字技術(shù)合成正弦音頻信號,不僅在轉(zhuǎn)換速度上要優(yōu)于一般電路,在合成精度上也要優(yōu)于一般振蕩電路,而且具有與標(biāo)準(zhǔn)頻率源相同的頻率準(zhǔn)確度和穩(wěn)定度。輸出信號頻率通??砂词M(jìn)制數(shù)字選擇,最高能達(dá)11位數(shù)字的極高分辨力[6-7]。

  信號發(fā)生部分由主機(jī)產(chǎn)生數(shù)字音頻流,通過STM32F429自帶的數(shù)模轉(zhuǎn)換功能獲得所需的模擬信號。在數(shù)字音頻處理中,聲音和數(shù)據(jù)的轉(zhuǎn)換有多種方式,本設(shè)計采用脈沖編碼調(diào)制(PCM),不進(jìn)行壓縮數(shù)據(jù)便可完成此功能,數(shù)據(jù)以常見的波形(WAVE)格式保存。關(guān)于頻率設(shè)置的部分程序如下:

  int FreSwitch(uint16_t fre)

  {

  switch(fre){

  case 20:

  FreIndex=0;

  VS1003_SineTest(2,SIN_SAMPLE_RATE_25600,1);

  //20 Hz break;

  case 21:

  FreIndex=1;

  VS1003_SineTest(2,SIN_SAMPLE_RATE_16000,2);

  //21 Hz

  break;

  case 22 :

  FreIndex=2;

  VS1003_SineTest(2,SIN_SAMPLE_RATE_40320,1);

  // 22 Hz

  break;

  …}

4 實物調(diào)試

  整個研究過程通過了模擬試驗及系統(tǒng)軟硬件設(shè)計,最終實現(xiàn)預(yù)期目標(biāo)。

  該信號發(fā)生器的截止頻率設(shè)定為20 kHz,大于20 kHz的信號都是干擾信號,通過較大幅度的衰減進(jìn)行濾除,從而保證較小的信號諧波失真。

  接通電源后,通過計算機(jī)控制信號發(fā)生器的信號頻率、幅值等參數(shù),通過以太網(wǎng)把控制命令字傳輸給發(fā)生器,發(fā)生器對控制字進(jìn)行周期性掃描,頻率、幅度控制字需要轉(zhuǎn)換成二進(jìn)制,傳送到單片機(jī)STM32F429,接到命令后通過正弦查詢表映射成數(shù)字量信號,通過單片機(jī)本身的數(shù)模轉(zhuǎn)換功能即可得到所需的音頻信號。由于輸出后的正弦信號會出現(xiàn)失真現(xiàn)象,需通過濾波器進(jìn)行濾波,從而得到正確的正弦信號。

  通過示波器對設(shè)計的音頻信號發(fā)生器發(fā)出的音頻信號進(jìn)行采集,結(jié)果如表1所示。

006.jpg

  設(shè)置頻率為10 kHz、幅值為1 Vpp,用一臺示波器來對比傳統(tǒng)音頻信號發(fā)生器與本文所設(shè)計的音頻信號發(fā)生器的波形曲線,如圖5所示。

005.jpg

  通過測試,本設(shè)計實現(xiàn)的音頻信號發(fā)生器的基本功能達(dá)到了預(yù)期效果,其頻率響應(yīng)為±0.4 dB,失真度控制在0.5%,而傳統(tǒng)音頻信號發(fā)生器的失真度在20 Hz~100 Hz時≤0.8%,在100 Hz~20 kHz時≤0.5%。

5 結(jié)論

  本文設(shè)計的音頻信號發(fā)生器具有操作簡單、信號穩(wěn)定、精度高、體積小、便于攜帶等特點,可應(yīng)用于電聲器件的聽音測試、揚(yáng)聲器的老化試驗等各種音頻電子測量和控制場合。通過PC控制端直接輸入所需音頻信號的幅度、頻率值,借助以太網(wǎng)遠(yuǎn)距離控制,而不必每次親臨現(xiàn)場,也不必每次通過粗調(diào)、細(xì)調(diào)即可達(dá)到要求。通過集線器可同時輸出多路相同音頻信號,對多臺相同儀器進(jìn)行測量。利用數(shù)字合成技術(shù)合成音頻信號,簡化電路,具有與標(biāo)準(zhǔn)頻率源相同的頻率準(zhǔn)確度和穩(wěn)定度;也可合成方波、三角波等規(guī)則波形,只需在PC控制面板上添加信號類型選擇項即可實現(xiàn)硬件的單一化、軟件的多元化,節(jié)約成本。

參考文獻(xiàn)

  [1] 黃智偉,王兵,朱衛(wèi)華.STM32F 32位ARM微控制器應(yīng)用設(shè)計與實踐[M].北京:北京航空航天大學(xué)出版社,2012.

  [2] 倪禎浩,盧博友,田澤.基于ARM的信號發(fā)生器人機(jī)交互系統(tǒng)設(shè)計[J].微計算機(jī)信息,2007(23):134-136.

  [3] 王廷堯.以太網(wǎng)技術(shù)與應(yīng)用[M].北京:人民郵電出版社,2005.

  [4] 陳焱輝.嵌入式SDRAM控制器設(shè)計研究[D].西安:西安電子科技大學(xué),2009.

  [5] 田豐,鄧建國,李巍,等.SDRAM控制器的設(shè)計與VHDL實現(xiàn)[J].電子技術(shù)應(yīng)用,2005,31(2):74-77.

  [6] 吉強(qiáng).基于DDS技術(shù)音頻正弦信號發(fā)生器的設(shè)計[J].器件與電路,2012(36):33-37.

  [7] 王瑜,郝迎吉,呼靳宏.基于8051F330的音頻信號發(fā)生器的設(shè)計與實現(xiàn)[J].國外電子元器件,2007(10),43-46.


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