??? 摘 要: 簡要介紹了ISD4000系列語音芯片" title="語音芯片">語音芯片的特點及工作原理,。根據其工作特點設計了基于AVR單片機控制,、串口" title="串口">串口通信和MP3播放的智能語音錄制系統(tǒng)。詳細介紹了硬件電路設計,、軟件實現和MP3的設計以及部分源程序,。
??? 關鍵詞: ISD4002? ATMEGA16L? 串口通信" title="串口通信">串口通信? MP3播放
?
??? 語音電路已經被廣泛應用于報告運行狀態(tài)、運行提示,、提示系統(tǒng)操作過程以及故障報警等功能的實現中,。除了具有輸出接口的功能外,它還具有輸入接口的功能,,用于語音識別,、語音記錄等。但是,,做為輸出接口應用時,,語音芯片中必須有已經錄好的語音,,這就要求有一套快捷、可靠的錄音系統(tǒng),?;谶@方面的考慮筆者設計了具有語音錄放功能的智能系統(tǒng)。本系統(tǒng)應用串口通信很好地將錄音電路與PC機連接,,克服了手動按鍵錄放的缺點,,并且錄音的地址和長度也有很高的精度,錄音長度可精確到0.1秒,。
??? 本系統(tǒng)主要是針對當前應用較為廣泛的由美國信息存儲器件公司推出的ISD系列語音芯片中的ISD4000系列設計的,,本文中以ISD4003系列為例,對于其他系列的產品稍加改動即可,,其設計思路基本相同且管腳兼容,。
1 ISD 4003語音芯片簡介
??? ISD4003系列芯片的工作電壓3V,單片錄放時間4~8分鐘,音質好,,適用于移動電話及其他便攜式電子產品中,。芯片采用CMOS技術,內含振蕩器,、防混淆濾波器,、平滑濾波器、音頻放大器,、自動靜噪及高密度多電平閃爍存儲陣列,。芯片設計基于所有操作必須由微控制器控制,操作命令可通過串行通信接口(SPI)送入,。芯片采用多電平直接模擬量存儲技術,,每個采樣值直接存儲在片內閃爍存儲器中,因此能夠真實自然地再現語音、音樂,、音調和效果聲,,避免了一般固體錄音電路因量化和壓縮造成的量化噪聲和“金屬聲”。采樣頻率可為4.0kHz,,5.3kHz,,6.4kHz,8.0kHz,。頻率越低,,錄放時間越長,音質則有所下降,。片內信息存于閃爍存儲器中,,可在斷電情況下保存100年(典型值),反復錄音10萬次。
2 智能錄放系統(tǒng)的設計
??? 系統(tǒng)的整體思路是將錄制好的語音內容打包成可在MP3中播放的文件,,存儲在PC中,,通過串口和耳機插孔將錄放電路和PC機相連。筆者自行用VB設計了MP3軟件用于播放語音文件,,在此MP3中用戶可以自行設置錄放的起始地址和時間長度,。所以本系統(tǒng)的關鍵是PC機和錄放電路的通信以及錄放電路的設計和各功能的軟件實現。下面將從錄放系統(tǒng)的硬件設計,、軟件設計" title="軟件設計">軟件設計兩方面對本系統(tǒng)進行詳細的闡述。
2.1 硬件設計
??? 錄放電路是以ATMEL公司的ATMEGA16L為控制核心的,,通過串口接收由PC 機發(fā)送的控制命令,,同時通過SPI接口來控制語音芯片的錄放。其總體電路設計框圖如圖1所示,。
?
?
??? 由圖1可以看出,,核心控制單元通過串行接口從PC機接收用戶的錄放指令,然后再由單片機和語音芯片的SPI接口的輸入來控制語音芯片的錄放音,。
??? 串行通信接口電路部分選用的是MAXIM公司的MAX3232芯片,,這款芯片可以用3V供電且功耗較低。前面提及ISD4003芯片供電電壓是3V,,而傳統(tǒng)的MAX232芯片供電大部分為5V,,給電路設計增加了不必要的麻煩(尤其在布線過程中)。且MAX232比較耐用,,不宜燒毀,,這使得電路的穩(wěn)定性大大提高(注:在許多資料上MAX3232周邊的四個電容可以是0.1?滋F的,但經筆者多次嘗試,,圖2為最佳匹配,,不會出現異常,若加0.1?滋F的電容會出現莫名的錯誤),。圖2中的TXD,,RXD分別與ATMEGA16的TXD,RXD連接(見圖3),。
?
?
?
??? 核心控制芯片ATMEGA16L電路如圖3,,用的是片內的晶振,所以7,、8管腳懸空,。其JTAG下載口線采用雙排插針。由于此款單片機性能相當穩(wěn)定,,所以不需任何仿真模式,,直接燒寫程序即可,其內部帶有16kB的Flash可反復擦寫,筆者多次應用沒出現過由于燒寫程序而損壞片子的情況,,這也是選擇此款單片機的原因之一,。由于其SPI被JTAG占用,所以用單片機PC口(圖3)來控制語音芯片的SPI接口,。其中的LED為錄放指示和上電指示,。
??? 語音芯片接口電路部分基本為典型的電路連接如圖4,但在PCB圖中必須注意在語音芯片的電源和地之間加一個去偶電容,,以保護芯片,,并且電容要盡量靠近芯片(注:SPEAK為揚聲器接口)。
?
2.2 軟件設計
??? 軟件設計主要分為兩大部分,,一部分是錄放控制和串口通信的單片機內部的程序設計" title="程序設計">程序設計,,另一部分是VB語言的MP3設計。下面分別就這兩部分作簡要的介紹并給出部分程序代碼,。
??? 單片機內部的軟件編程是在串口中斷服務程序中加入判斷,,以此來控制語音芯片的錄放和錄放地址、時間長度等參數的設置,。在單片機中筆者使用的是C語言編程,,這樣可以提高設計的效率但對系統(tǒng)的運行不會帶來任何影響。其主程序流程圖如圖5所示,。
?
??? 在圖5的錄放服務程序中,,加入了定時器中斷,串口中斷的數據包中包括錄放音時間的參數,,一旦開始,,錄放音定時器計數(以100ms為溢出時間,這樣系統(tǒng)的錄放時間精度可以達到0.1s)。錄放時間到,,則置標志停止錄音,。以放音為例(注:錄放服務程序基本相同,只是控制端口的命令不同),,其流程圖如圖6所示,。
?
??? 系統(tǒng)中錄音流程和放音流程基本相同,在此不作贅述,。
??? PC機MP3的設計主要是關于串口和錄音控件的VB程序設計,,下面給出部分VB程序代碼。其中包括了串口和錄音控件的編程,。
′初始化串行口
intPort=1
strSet=″9600,,n,8,,1″
′frmMain.ctrMSComm.InBufferSize=1024
′frmMain.ctrMSComm.OutBufferSize=512
If Not frmMain.ctrMSComm.PortOpen Then′嘗試打開串行口
???? frmMain.ctrMSComm.CommPort=intPort
???? frmMain.ctrMSComm.Settings=strSet
?????frmMain.ctrMSComm.PortOpen=True′打開串行口
End If
frmMain.ctrMSComm.PortOpen=False ′關閉串行口
??????
End Sub
錄音控件部分
MediaPlayer1.URL=File1.Path+″″+File1.FileName
Caption=″正在播放:″& File1.Path′要播放的mp3路徑′
??? 筆者所設計的智能錄放系統(tǒng)可應用于各種語音的錄放,,但最終應用者的目的還是以錄音為主,如公交車的報站系統(tǒng)中的語音錄制。筆者所設計的這套錄放系統(tǒng)經多次實驗,,證明性能穩(wěn)定,、錄放精確,并已經應用于某警衛(wèi)系統(tǒng)的語音錄制工作中,。
參考文獻
[1] ISD4000系列單片語音錄放電路.www.atvoc.com.
[2] 魯奇璞,,魏豐.ISD4004-16M語音芯片的循環(huán)錄放電路設計.電子技術應用,2006,,(2).
[3] 梁子伊.ISD4000系列語音芯片的單片機控制技術.單片機與嵌入式系統(tǒng)應用,,2002,(2).