隨著單片機集成化程度的不斷提高,現代單片機已經具備了數字信號處理功能,使語音信號處理用單片機實現成為可能。臺灣凌陽科技公司(SunPlus)推出的一款SPCE061A就是這樣的產品。SPCE061A是以μ"nSP TM16位微控制器及信號處理器芯片為內核的16位單片機,采用模塊式集成結構,片內集成了2KB RAM、32KB Flash、ADC、DAC、并行I/O等,特別適合語音信號處理。本文介紹如何實現用SPCE061A單片機采集語音信號,并傳送到PC機中的方法。
1 硬件系統結構
1.1 SPCE061A結構
SPCE061A的內部結構如圖1,其特點如下:
*16位μ"nSP TM微控制器;
*工作電壓:VDD為2.6~3.6V(CPU),VDDH為VDD~5.5V(I/O);
*CPU時鐘為0.32~49.152MHz;
*內置存儲器:SRAM為2KB,內存Flash為32KB;
*可編程音頻處理;
*2個16位可編程定時器/計數器;
*7通道10位ADC(內置麥克風放大和自動增益控制功能);
*2個10位DAC;
*32路可編程通用輸入輸出端口;
*串行輸入輸出接口;
*低電壓監測/低電壓復位功能;
*14個中斷源可來自定時器、外部時鐘輸入、鍵喚醒等;
*內置在線仿真電路ICE。
1.2 SPCE061A開發方法
SPCE061A的開發是通過在線調試器PROBE實現的,如圖2所示。它利用了SPCE061A內置的在線仿真電路ICE和凌陽公司的在線串行編程技術。
1.3 語音采集的硬件電路
語音采集的硬件電路如圖3所示。MIC采用駐極體電容話筒,這種話筒具有靈敏度高、無方向性、重量輕、體積小、頻率響應寬、保真度好等優點。
與PC機的串行通信用SPCE061A的UART接口,用MAX232芯片進行電平轉換,即可實現RS232通信。
2 軟件設計與實現
2.1 語音信號的采集壓縮與數據傳輸
(1)語音信號的采集壓縮
語音信號處理的基礎是對語音信號進行數字化,并采樣存儲。SRCE061A內置專門用于語音信號采集的自動增益控制放大器(AGC)的麥克風輸入通道(MIC_IN)。語音信號經麥克轉換成電信號,由隔離電容隔掉直流成分,然后輸入至內部前置放大器。SPCE061A內部自動增益控制電路AGC能隨時跟蹤、監視前置放大器輸出的音頻信號電平,當輸入信號增器時,AGC電路自動減小放大器的增益;當輸入信號減小時,AGC電路自動增大放大器的增益,以便使進入A/D的信號保持在最佳電平,又可使諧波減至最小。
ADC初始化程序如下:
INT OFF;
R1=0x0030;
[P_TimerA_CTRl]=R1;
//時鐘頻率為CLKA的fosc/2
R1=0xfa00;
[P_TimerA_Data]=R1;
//采樣率為16kHz
R1=0x003d;
[P_ADC_Ctrl]=R1; //設置AGC功能
R1=0x00A8;
[P_DAC_Ctrl]=R1; //采用自動方式且通過MIC_IN通道輸入,通過定時器A的溢出鎖存數據,ADC為自動方式
R1=0x1000;
[P_INT_Ctrl]=R1; //開中斷IRQ1_TM
INT IRQ;
采樣后的數字語音信號數據量非常大,且由于語音信號采樣點幅度分布的非均勻性和樣本間的相關性等原因,使語音信號中含有大量的冗余信息。因此,在實際應用中采用各種信源編碼技術來消除語音信號的冗余度。語音編碼方法主要有波形編碼、參數編碼和混合編碼。
*波形編碼的基本原理是以波形逼近為原則,在時域上把幅度樣本分層量化并用代碼表示;特點是語音質量高、抗噪性強編碼率高,適于語音及高保真音樂。
*參數編碼是基于某種語音產生模型,在編程端分析出該模型參數選擇適當的方式進行編碼;特點是語音質量差、抗噪抗弱和編碼率低。
*混合編碼綜合了波形和參數編碼之優點。
凌陽SPCE061A提供了壓縮算法庫——SACMLIB(見表1),其處理的語音信號范圍是200Hz~3.4kHz的電話語音,并將A/D、編/解碼、存儲及D/A做成相應的模塊,對于每個模塊都有其應用程序接口API。
表1 SACM-LIB庫中模塊及其算法
(2)語音數據的傳輸
SPCE061A的通用異步串口(UART)提供了一個8位全雙工標準接口,用于完成SPCE061A與外設之間的串行通信。借助于IOB口的特殊功能和UART IRQ中斷,可以同時完成UART接口的接收與發送數據的過程。根據應用需求,把UART設置為中斷方式接收數據,以查詢方式發送數據。
UART初始化程序InitUART()見網絡補充版(
http://www.dpj.com.cn)。2.2 上位機控制和存儲模塊
目前,MircoSOFt公司的VC++6.0是基于Windows程序設計的主流開發工具之一。VC++不僅秉承了C++簡便、靈活及面向對象等優點,而且提供了功能強大的MFC類庫,并能自動生成應用程序框架,提供標準化的程序結構和用戶接口。特別需要指出的是,為了今后調用低層的音頻處理API函數,對由下位上傳的音頻數據進一步進行語音識別方面的處理,我們使用VC來編寫上位機的控制及存儲程序。
在實驗室和工業應用中,RS232串口是常用的計算機與外部串行設備(單片機)之間的數據傳輸通道,由于串行通信簡單易用,所以應用廣泛。通常在VC++中有三種方法可以實現串行通信:
*使用VC++的標準通信函數_inp和_outp來實現串口通信;
*把串口看成是一個特殊的設備文件,使用有關文件處理的API函數來實現串口通信;
*使用ActiveX的串行通信控件MSComm來實現串口通信。
對于本實例來說,主要考慮的因素是實時語音數據存取,以及位機與下位機的配合。因此,采用了串行通信MSComm控件方法來實現串口通信。另外,可以采用二進制流文件Cfile類來存儲聲音文件。具體步驟見網絡補充版。
結語
通過以上實例錄制的語音數據,可以從PC機下載到SPCE061A中(或者作為資源文件放入工程中),使用SACM_A2000模塊的函數播放驗證,效果能夠滿足進一步語音信號處理需要。
用凌陽SPCE061A處理語音信號有如下獨特之處:
*硬件電路簡單,因SPCE061A是一款專門為語音信號處理設計的,麥克和喇叭可直接接入,用戶不必外接放大電路等;
*軟件編程容易,有相應的API函數,可直接調用。
*用ICE和圖形界面編譯軟件,調試方便。
上一篇:基于單片機STCl2C2052AD的比例遙控控制系統設計
下一篇:基于MSP430單片機的M430/OS對系統的意義解析
推薦閱讀
史海拾趣
作為一家具有社會責任感的企業,君耀始終注重環保和可持續發展。公司在生產過程中采用環保材料和工藝,減少對環境的影響。同時,君耀還積極參與各種環保活動,推動行業的綠色發展。這種理念不僅提升了公司的社會形象,也為公司的長期發展奠定了堅實的基礎。
這些故事只是君耀公司發展歷程中的一部分,每個階段都充滿了挑戰和機遇。君耀憑借其堅韌不拔的精神、卓越的技術實力和市場洞察力,成功在電子行業中崛起并持續壯大。如需更多詳細信息或具體故事,建議查閱君耀公司的官方資料、相關新聞報道或行業分析報告。
隨著公司規模的擴大和訂單量的增加,ECLIPTEK面臨著越來越大的供應鏈管理挑戰。為了應對這些挑戰,公司投入大量資源優化供應鏈管理,引入先進的供應鏈管理系統和自動化生產設備。通過提高生產效率和降低生產成本,ECLIPTEK成功地保持了其在市場上的競爭優勢。
為了進一步擴大市場份額,ECLIPTEK公司決定實施國際擴張戰略。公司先后在亞洲、歐洲和北美等地設立了分支機構,并在當地建立了生產基地。為了更好地滿足當地客戶的需求,ECLIPTEK還實施了本地化戰略,根據市場特點調整產品設計和生產流程。這一舉措不僅提高了公司的市場覆蓋率,還增強了其國際競爭力。
在LED產業蓬勃發展的背景下,統明亮(DOMINANT)公司在2000年應運而生。它的誕生源于歐司朗(OSRAM)在馬六甲工廠的分拆,加上馬來西亞財團的加持,這家新公司迅速嶄露頭角。統明亮公司從成立之初就專注于LED技術的研發和生產,憑借其卓越的技術實力和創新能力,逐漸在電子行業中樹立了良好的口碑。經過數年的不懈努力,統明亮在全球貼片式LED領域取得了領先地位,特別是在車用LED封裝領域,其產品質量和技術水平均處于行業前列。
隨著市場競爭的加劇,CTI意識到品質管理對于企業發展的重要性。于是,公司開始引進先進的品質管理體系,從原材料采購到生產流程控制,再到產品檢測,每一個環節都嚴格把關。同時,CTI還加大了品牌宣傳力度,通過參加行業展會、舉辦技術研討會等方式,提升品牌知名度和影響力。這些舉措不僅提高了產品的品質穩定性,也贏得了客戶的信賴和支持。
為了進一步擴大市場份額和提升品牌影響力,DiCon積極開展國際合作與全球布局。公司與多家國際知名企業建立了戰略合作關系,共同研發和推廣光纖通信技術。同時,DiCon還在全球范圍內設立了多個研發中心和銷售分支機構,以便更好地服務當地客戶和市場。
正在編寫使用VC++6.0的MSComm控件做通訊的東西,不過實現不了230400或256000波特率的通訊,請問有什么辦法? 是MSComm不夠格?還是需要其他什么辦法?… 查看全部問答∨ |
|
如果采用PLC串口通訊模塊,波特率可達到19200。 我每次通訊10Bytes,那么通訊頻率是不是就是簡單的19200/8/10=240Hz? 我用的是西門子的CPU312,串口模塊是341的。在這種配置下一般可以通訊頻率可以達到多少?… 查看全部問答∨ |
|
本帖最后由 jameswangsynnex 于 2015-3-3 19:49 編輯 電路工作原理簡述如下: 三極管VT1為開關電源管,它和T1、R1、R3、C2等組成自激式振蕩電路。加上輸入電源后,電流經啟動電阻R1流向VT1的基極,使VT1導通。   ...… 查看全部問答∨ |
本帖最后由 jameswangsynnex 于 2015-3-3 20:03 編輯 2012中國(廣州)國際微電子技術展覽會 【展會時間】2012年9月20-22日【展會地點】廣州?中國進出口商品交易會琶洲展館 【批準單位】中華人民共和國科技部 【主辦單位】中國電子材 ...… 查看全部問答∨ |
昨天下午剛收到手表,實在是喜歡,玩到晚上12點多!差不多是一步步按照用戶手冊上的步驟做的,一步步深入發現有好多問題,一是硬件上有些東西是沒有的,無法使用,例如沒有有源心率胸帶,只能簡單的模擬!二是,在SynC功能階段,不知道為什么,“Re ...… 查看全部問答∨ |
|
本帖最后由 dontium 于 2015-6-23 18:00 編輯 一、設計目的在電源變壓器作隔離的數字設備中,過去人們常用的辦法是,變壓器次級整流濾波后,使用7805之類的線性電源提供數字電路所用的5V電壓。這樣的方法雖然有較好的紋波特性,但它的效率卻非常 ...… 查看全部問答∨ |