【學習筆記】基於STM32F429的音頻信號發生器

2021-02-20 電子技術應用ChinaAET

0 引言

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

  針對傳統音頻信號發生器的缺點,本文採用一款性價比高、功耗低的ARM Cortex-M4控制晶片,製作了一臺智能音頻信號發生器。該發生器的頻率、幅度連續可調,按步進1 Hz、1 mV線性變化,兼具頻率、幅度穩定的優點;通過PC端控制面板,直接輸入幅度、頻率值,就能快速地得到所需要的音頻信號,精度高;一改信號發生器必須近距離調試的缺點,可通過乙太網直接遠距離操控。

1 總體設計

  該音頻信號發生器採用模塊化設計,通過調用各個功能模塊,實現主控計算機可遠距離快速控制音頻信號發生器輸出信號的幅度、頻率值。該系統以ARM Cortex-M4為核心,系統總體框圖如圖1所示。

2 硬體設計

  該音頻信號發生器通過主控計算機的控制面板輸入控制幅度、頻率值的指令,通過乙太網快速遠距離傳輸到信號發生器,控制數字合成音頻信號的幅度、頻率值,最終通過音頻輸出埠輸出所需音頻信號。

  2.1 控制晶片

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

  2.2 遠距離控制電路

  乙太網遠距離控制是整個控制系統中的一個重要部分。該發生器通過乙太網與PC連接,操控PC控制面板,按照要求輸入所需的幅度、頻率值,通過乙太網把控制命令遠距離地傳輸給音頻信號發生器,達到遠程控制的目的。

  該乙太網接口晶片DP83848CVV是一個全功能自適應網絡連接速度10/100 Mb/s的單埠物理器件,允許設備使用所需操作電源的絕對最小值,提供低功耗性能。該晶片包括一個25 MHz的時鐘輸出,使應用程式含有最少的外部器件,進而降低成本;同時支持10BASE-T和100BASE-TX的乙太網協議,以確保與其他基於乙太網標準解決方案的兼容性和互操作性。

  2.3 SDRAM

  同步動態隨機存儲器SDRAM與系統總線同步,無等待周期,而且是雙存儲體結構,讀取效率得到成倍提高。SDRAM體積小、速度快、容量大、價格低,是比較理想的內存擴展器件。

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

  信號採樣頻率為48 kHz,每個樣點採用16 bit量化,如果最小頻率解析度為1 Hz,所需查表的大小為48 k×16 bit,共需48 k×16 bit的RAM空間。顯然SDRAM的存儲空間足夠使用,也便於以後該發生器對方波、三角波等波形的擴展。

3 軟體設計

  整個系統採用模塊化設計,除主程序外,各功能子程序分別執行PC端輸入控制命令、乙太網傳輸、SDRAM內存擴展、正弦查詢表映射、數模轉換等相應功能,系統主程序流程如圖3所示。

  3.1 PC端控制

  信號發生器可產生正弦波、方波、三角波等規則波形信號,本信號發生器僅以正弦波為例。

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

  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("關閉");//關閉控制面板

  …}

  對控制界面進行操作時應注意以下事項:

  (1)「打開」和「關閉」按鈕分別代表打開和關閉控制端;

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

  3.2 數字合成音頻信號

  直接採用數位技術合成正弦音頻信號,不僅在轉換速度上要優於一般電路,在合成精度上也要優於一般振蕩電路,而且具有與標準頻率源相同的頻率準確度和穩定度。輸出信號頻率通常可按十進位數字選擇,最高能達11位數字的極高分辨力。

  信號發生部分由主機產生數字音頻流,通過STM32F429自帶的數模轉換功能獲得所需的模擬信號。在數字音頻處理中,聲音和數據的轉換有多種方式,本設計採用脈衝編碼調製(PCM),不進行壓縮數據便可完成此功能,數據以常見的波形(WAVE)格式保存。關於頻率設置的部分程序如下:

  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 實物調試

  整個研究過程通過了模擬試驗及系統軟硬體設計,最終實現預期目標。

  該信號發生器的截止頻率設定為20 kHz,大於20 kHz的信號都是幹擾信號,通過較大幅度的衰減進行濾除,從而保證較小的信號諧波失真。

  接通電源後,通過計算機控制信號發生器的信號頻率、幅值等參數,通過乙太網把控制命令字傳輸給發生器,發生器對控制字進行周期性掃描,頻率、幅度控制字需要轉換成二進位,傳送到單片機STM32F429,接到命令後通過正弦查詢表映射成數字量信號,通過單片機本身的數模轉換功能即可得到所需的音頻信號。由於輸出後的正弦信號會出現失真現象,需通過濾波器進行濾波,從而得到正確的正弦信號。

  通過示波器對設計的音頻信號發生器發出的音頻信號進行採集,結果如表1所示。

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

  通過測試,本設計實現的音頻信號發生器的基本功能達到了預期效果,其頻率響應為±0.4 dB,失真度控制在0.5%,而傳統音頻信號發生器的失真度在20 Hz~100 Hz時≤0.8%,在100 Hz~20 kHz時≤0.5%。

5 結論

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

相關焦點

  • STM32F429的定時器的使用方法
    看來處理器越來越大眾化了,物聯網上的電子設備聯網,也越來越普及了,硬體成本不斷降低是大勢所趨,因此,作為一個電子設計人員,還是要不斷的學習掌握更多的技術知識與基礎,從而不會被社會很快淘汰。最近買了一個現成的STM32F429 Discovery 的開發板,想嘗試一下較大點的嵌入式作業系統如RTEMS的移植與應用。
  • stm32CubeIDE如何修改文檔編碼,來解決文本注釋亂碼問題
    01主題大家好,今天是2020.3.21,我是您的朋友:義縣遊學電子科技.經過幾天的開發測試,煩惱的stm32f429和stm32h743系列mcu還是沒有處理好通信問題.於是今天先不講技術問題了,說一個關於如何修改文檔編碼的小方法吧.
  • 基於FPGA的可選擇不同頻率的音頻發生器設計方案
    打開APP 基於FPGA的可選擇不同頻率的音頻發生器設計方案 發表於 2018-02-08 03:45:00 本文採用Altera Cyclone ||系列FPGA 實現可選擇音頻發生器,以實現聲樂中的幾種不同頻率的聲音。 聲音的產生是由於發聲物體以一定的頻率振動,帶動周圍的空氣振動,使動耳朵內的聽小骨一起振動,這些振動被轉換為微弱的電子腦波,它就使我們覺察到了聲音。不同的發聲物體(聲源)音色不同。聲源振動的快慢不一樣即產生的頻率不一樣,故有高音、低音、中高音、中低音等區分。
  • 基於LabVIEW測試音頻功率放大器
    摘要:本文介紹了將虛擬儀器技術引入到音頻分析儀器的設計,採用LabVIEW編寫程序。通過測試典型的音頻放大器,檢測虛擬式音頻放大器測試的實用效果,測量音頻信號的電壓與頻率、時域幅值分析、頻域分析、失真分析和信噪比等。
  • 基於直接數字合成技術的信號發生器的設計
    基於直接數字合成技術的信號發生器的設計 電子設計 發表於 2018-12-18 08:01:00 1 引言 現代通信技術、雷達技術、電子測量以及一些光電應用領域都要求高精度
  • STM32開發筆記3: STM32F407定時器2-5的使用方法
    主控制器:STM32(CAN,串口,網口,輸入,輸出)上位機:LibView ACR:卷收器(座椅上面的安全帶)ABL:電機(座椅右下角接安全帶的插孔)PUMA:控制器發送CAN給PUMA,PUMA控制ACR和ABL(DBC文件的解析);ACR通過CAN控制,ABL通過PWM控制電機。
  • 五一,宅在家裡修口罩超聲波發生器!
    在口罩上有一種用於焊接的機器,它就是超聲波發生器,看看口罩的耳帶和口罩四周的齒印,都是這種超聲波發生器的功勞。我們知道,人耳聽到的音頻信號頻率都在20到20Khz,超聲波發生器產生超過人體耳朵能聽到的聲頻信號,並把這種信號進行放大,通過超聲波的換能器,把這種電信號變成機械的振動信號,從而產生焊接的功能。
  • STM32開發筆記74: STM32L0低功耗喚醒後的時鐘選擇
    主控制器:STM32(CAN,串口,網口,輸入,輸出)上位機:LibView ACR:卷收器(座椅上面的安全帶)ABL:電機(座椅右下角接安全帶的插孔)PUMA:控制器發送CAN給PUMA,PUMA控制ACR和ABL(DBC文件的解析);ACR通過CAN控制,ABL通過PWM控制電機。
  • 基於DSP和SOPC數位訊號發生器的設計
    摘 要:為了比較DSP和SOPC技術在電子設計領域的應用,採用泰勒展開法和DDFS技術,分別給出設計方案的硬體電路結構和軟體流程圖,並通過集成開發環境CCS和DE2開發板實現正弦信號發生器
  • STM32F103C8T6引腳功能分布
    的PWM精度 ;                                 //只有部分定時器可以使用,例如,在stm32f0中,可用於TIM1, TIM15, TIM16以及TIM17,                             &nbsp 發表於
  • 基於MSP430的信號發生系統設計
    作者/ 曹鵬輝 郭湘南 武漢郵電科學研究院(武漢 430074)本文引用地址:http://www.eepw.com.cn/article/201611/340858.htm摘要:本文提出一種基於DDS晶片技術信號發生器設計的上位機控制系統
  • 層出不窮的信號發生器可有效節省測試時間
    一種可能是為某種特殊應用建立自己的信號源,但這並非必需。  這是因為不管正在設計或等待測試的設備是何種類型,都可以用現成的信號發生器產生合適的輸入信號。信號發生器就象是工作檯上的示波器、萬用表和電源一樣普遍。
  • 基於FPGA的m序列信號發生器設計
    因此,深入學習研究m序列具有重要的實際意義。  1 m序列信號發生器的組成  基於FPGA的m序列信號發生器硬體結構極其簡單,僅需兩個獨立按鍵(一個是復位按鍵與另一個控制數據率切換按鍵)、一個48 MHz的用於提供系統時鐘有源晶振、系統電源、一塊配置晶片、幾個簡單的電阻與電容即可實現。
  • 什麼是信號發生器?
    混和信號源又可分為函數信號發生器和任意波形/函數發生器,其中函數信號發生器輸出標準波形,如正弦波、方波等,任意波/函數發生器輸出用戶自定義的任意波形;邏輯信號發生器又可分為脈衝信號發生器和碼型發生器,其中脈衝信號發生器驅動較小個數的的方波或脈衝波輸出,碼型發生器生成許多通道的數字碼型。如泰克生產的AFG3000系列就包括函數信號發生器、任意波形/函數信號發生器、脈衝信號發生器的功能。
  • DSP在音頻解碼中基於心理-聲學的性能分析
    本文以心理-聲學壓縮設計的方法來考察DSP解碼的性能與表現,介紹了基於心理-聲學的音頻壓縮解碼概念,並給出了基於心理-聲學的DSP性能分析。本文引用地址:http://www.eepw.com.cn/article/201612/332377.htm從上個世紀90年代以來,數位訊號處理技術便逐步在消費音頻市場佔據重要地位。
  • 基於555定時器和D類放大器的耳機音頻線路驅動器設計
    打開APP 基於555定時器和D類放大器的耳機音頻線路驅動器設計 發表於 2019-05-28 15:19:52 音頻信號被傳送至555定時器的CV( 控制電壓)引腳。 本設計實例為耳機和音頻線路提供兩個簡單、便宜的驅動器,分別如圖1、圖2所示。這兩個驅動器針對電吉他和小提琴設計,但也可適用於更多其他應用。對於這樣的簡單應用而言,噪聲和總諧波失真(THD)並不是重點考慮因素,因此並未對這兩個數值進行測量。
  • 手機耳機放大器的信噪比要求如何影響音頻性能
    本文將探討手機性能的一個關鍵方面,即手機音頻播放,特別是MP3播放器到耳機的音頻輸出。 音頻中包含有用的內容和無用的內容。有用的音頻內容為音樂或電影信號;無用的內容為電源噪聲、諧波失真、串擾和數據壓縮等,會破壞收聽體驗。音樂內容本身也可能帶有噪聲,若不認真設計,主要的噪聲源可能是音頻IC耳機放大器和放大器周圍的系統。
  • 音頻信號及音頻分析
    所謂音頻設備就是將實際的聲音拾取到將聲音播放出來的全部過程中需要用到的各類電子設備,例如話筒、功率放大器、揚聲器等,衡量音頻設備的主要技術指標有頻率響應特性、諧波失真、信噪比、動態範圍等。在以計算機為中心的測試系統中,模擬信號進入數字計算機前先經過A/D變換器,將連續時間信號變為離散時間信號,稱為信號的採樣。然後再經幅值量化變為離散的數位訊號。這樣,在頻域上將會出現一系列新的問題,頻譜會發生變化。由模擬信號變成數位訊號後,其傅立葉變換也變成離散傅立葉變換,涉及到採樣定理、頻率混疊、截斷和洩漏、加窗與窗函數等一系列問題。
  • Ubuntu系統下安裝stm32官方開發工具STM32CubeIDE
    STM32CubeIDE是一個高級的C/ c++開發平臺,具有STM32微控制器和微處理器的外圍配置、代碼生成、代碼編譯和調試功能。它基於ECLIPSE/CDT框架和用於開發的GCC工具鏈,以及用於調試的GDB。它允許集成數以百計的現有插件,這些插件完成了ECLIPSEIDE的特性。