《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 電源技術(shù) > 設(shè)計應(yīng)用 > 利用PWM給HCS12單片機應(yīng)用增加語音功能
利用PWM給HCS12單片機應(yīng)用增加語音功能
摘要: 隨著嵌入式領(lǐng)域的拓展,,目前許多微控制器芯片一般都不具備數(shù)據(jù)-模擬的雙向通道,但幾乎都集成有PWM產(chǎn)生模塊。本文利用飛思卡爾公司HCS12單片機的PWM模塊,,還原存儲在存儲器中的聲音采樣數(shù)據(jù),,在幾乎不增加成本的情況下,實現(xiàn)嵌入式應(yīng)用中的擴展語音功能,。
Abstract:
Key words :

  隨著嵌入式領(lǐng)域的拓展,,目前許多微控制器芯片一般都不具備數(shù)據(jù)-模擬的雙向通道,但幾乎都集成有PWM產(chǎn)生模塊,。本文利用飛思卡爾公司HCS12單片機的PWM模塊,,還原存儲在存儲器中的聲音采樣數(shù)據(jù),在幾乎不增加成本的情況下,,實現(xiàn)嵌入式應(yīng)用中的擴展語音功能,。

  HCS12系列單片機未包含數(shù)/模轉(zhuǎn)換的模塊。要給其擴展語音功能,,通常的做法是增加一塊數(shù)/模轉(zhuǎn)換芯片,。雖然這樣做可以得到非常好的音質(zhì)(取決于數(shù)/模轉(zhuǎn)換芯片的性能),但由于要多使用一塊數(shù)/模轉(zhuǎn)換芯片,,在對音質(zhì)要求不太高的應(yīng)用中,,會給設(shè)計增加額外的成本,同時也使電路設(shè)計相對復(fù)雜,。

  本文介紹利用PWM還原聲音的解決方案,,可以很好地解決這個矛盾。例如安全報警應(yīng)用中,,系統(tǒng)通常已經(jīng)包含了一塊微控制器(用來處理人機交互以及系統(tǒng)的控制等),,當(dāng)發(fā)出警報時,可以是“BB”或“當(dāng)當(dāng)”的蜂鳴聲,;當(dāng)然,,更好的做法是發(fā)出清晰的語音。

  用PWM產(chǎn)生聲音的基本原理,,是使用存儲在Flash中的音頻采樣數(shù)據(jù)或通過某種算法產(chǎn)生的聲音數(shù)據(jù),,來控制PWM每個波形的占空比;接下來通過一低通濾波器濾波,,就可將聲音從PWM的脈沖波里分離出來,,驅(qū)動揚聲器發(fā)出聲音。 

  1 從WAV文件中提取聲音采樣數(shù)據(jù)

  一般來說,,可以從WAV文件中提取聲音數(shù)據(jù),,標(biāo)準(zhǔn)的WAV格式的聲音文件含有聲音的采樣數(shù)據(jù)和文件頭。文件頭描述了后面聲音數(shù)據(jù)的一些信息,,如通道數(shù),、采樣頻率,、采樣位數(shù)以及數(shù)據(jù)的長度等。

  通道數(shù),,是指聲音的采樣路數(shù),,如單聲道、立體聲等,。采樣頻率,,是指每秒鐘對聲音的采樣次數(shù),采樣頻率越高,,還原出來的聲音越接近原始聲音,,如表l所列。要精確還原出某種頻率的波形,,其最小采樣率應(yīng)為該波形的2倍,。

采樣頻率與音質(zhì)關(guān)系

  采樣位數(shù),指的是每次采樣的采樣精度,。采樣位數(shù)越高,還原出來的聲音的量化噪聲越小,,波形也越接近原波形,。WAV文件的文件頭定義:

程序

  提取聲音數(shù)據(jù)時,請注意采樣頻率,、采樣位數(shù),、存儲容量與存儲時間的關(guān)系,如表2所列,。通常,,11.025 kHz的采樣頻率和8位的采樣位數(shù)可獲得清晰的語音以及較好的音樂聲,并且占有較少的存儲空間,。

采樣頻率

  通過了解和分析WAV文件的格式,,可以將文件中的聲音采樣數(shù)據(jù)讀取出來,并轉(zhuǎn)換為C語言格式的數(shù)組結(jié)構(gòu),,以便和其他程序一并編譯和下載到芯片中去,。例如:

程序

  2 產(chǎn)生PWM波形

  要還原聲音,最低要求是HCSl2系列微控制器具備一個PWM模塊,,芯片選擇的另一個細節(jié)是要有足夠的Flash存儲容量,,來存儲聲音的采樣數(shù)據(jù)。MC9S12DP256具有一個16位的PWM模塊.可產(chǎn)生16位解析精度的PWM波形,,這意味著nr以使用16位的采樣數(shù)據(jù)來產(chǎn)生PWM,。MC9S12DP256還具備256 KB的Flash,能夠存儲23 78 s八位11.025 kHz的采樣數(shù)據(jù),。

  產(chǎn)生PWM波形的步驟:

 ?、僭O(shè)置定時器.產(chǎn)生定時中斷:如采樣率為ll.025 kHz.則設(shè)置定時器的定時中斷頻率為11.025 kHz,。

  ②初始化PWM模塊,,產(chǎn)生11.025kHz的PWM波形,。

  ③等待定時器中斷,,在中斷處理程序中取采樣數(shù)據(jù),,并設(shè)置PWM占空比寄存器,判斷聲音是否播放完成,。若完成,,則關(guān)定時器巾斷,并停止PWM輸出,。

  3 低通濾波

  PWM輸出后須通過低通濾波器濾波,,才能還原成人耳能識別的聲音。低通濾波器的類型和參數(shù)取決于聲音的采樣頻率和價格預(yù)算,。最簡單的要數(shù)RC濾波器,。這種濾波器的優(yōu)點是儀需要兩個元件,另一種是有源濾波器,,濾波效果好,,但相對復(fù)雜。

  濾波器截止頻率的選擇,,對于音頻輸出是非常重要的,,推薦設(shè)置在采樣頻率的一半。若要獲得更佳的濾波器截止頻率,,就要進一步對采樣數(shù)據(jù)進行分析,,找出最大具有有效聲音數(shù)據(jù)的頻率。當(dāng)然,,在一般應(yīng)用中并沒有要求這么嚴(yán)格,,甚至在某些場合中,即使用參數(shù)不非常明確的元件也能獲得很好的聲音輸出,,這時RC濾波器將是最好的選擇,。

程序

程序

  推薦使用圖1所示的濾波器,其截止頻率為5.5 kHz(11.025 kHz/2),。這個設(shè)計中,,使用了2個運算放大器,足夠驅(qū)動一小型揚聲器,。

  圖2也給出一種簡單直接的接法:僅使用一22μF的電容用于低通濾波,,驅(qū)動一5 kHz、8Ω的小揚聲器,。

濾波器

  結(jié)語

  利用MC9S12DP256微控制器的PWM功能可為單片機的應(yīng)用增加語音功能,。對聲音采樣數(shù)據(jù)的存儲方式是用直接的,、原始的采樣數(shù)據(jù)。在具體的實際應(yīng)用中,,為存儲更長時間的聲音數(shù)據(jù),,還可對聲音數(shù)據(jù)進行壓縮,具體算法請參考相關(guān)資料,。

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