基于單片機89C2051和ISD2560設(shè)計的語音錄放電路
ISD系列語音電路是美國ISD(InformationStorage Device)公司的專利新產(chǎn)品,該器件打破了傳統(tǒng)的先A/D再D/A模式,而采用獨特的直接存儲模擬信號技術(shù),從而大大提高了存儲密度,并且可將模擬信號永久保存。
本文用單片機89C2051和ISD2560設(shè)計了一款微電腦語音板,從而實現(xiàn)了語音的分段錄取和組合回放。也可通過修改軟件來實現(xiàn)整段錄取和循環(huán)播放。本產(chǎn)品可作為語音服務(wù)系統(tǒng)的子系統(tǒng),而不必使用專門的ISD語音開發(fā)設(shè)備。
ISD2500系列語音芯片可通過SPI協(xié)議方便地與CPU接口。本文用ISD2560芯片構(gòu)成的單片機通用開發(fā)板采用國內(nèi)最常用的MCS-51語言單片機89C51,來與ISD2500系列語音芯片相結(jié)合,可供用戶開發(fā)各種新型智能型數(shù)碼語音產(chǎn)品。
該開發(fā)板上已裝配好的器件包括:
◇AT89C2051單片機,該器件內(nèi)含8031內(nèi)核、4 KB可反復(fù)擦寫的程序存儲器,以及32條I/O口,并采用5 V電壓工作;
◇ISD2560語音芯片,采用音質(zhì)優(yōu)異的模擬存儲技術(shù),可反復(fù)錄放60秒;
◇LM386功率放大器,具有0.5 W驅(qū)動能力;
AT24C01(選配件)I2C總線串行存儲器;
此外,板上還有駐極體話筒(MIC)、話筒放大器、音量電位器、發(fā)光管等部件。當(dāng)板子工作時,該板的外接電源電壓為12 V(穩(wěn)壓),外接喇叭為4~16 Ω/0.5 W,工作電流在錄音時為25~30mA,在放音時為50~80 mA,靜態(tài)電流為13 mA,同時隨板提供有演示程序功能等配套軟件。
2 ISD2560與單片機的接口電路
ISD2560的A0~A9為地址線,它共有1024種組合狀態(tài)。最前面的600個狀態(tài)通常作內(nèi)部存儲器的尋址用,最后256個狀態(tài)用作操作模式。本系統(tǒng)采用對地址直接進行操作的方式進行設(shè)計。
在本系統(tǒng)與微處理器的接口中,P/R錄放音控制端在高電平時,為放音狀態(tài),低電平時為錄音狀態(tài);P3.5、P3.7端用于錄放音時的啟停控制,通常與P/R端配合使用;P3.4端為每段信息結(jié)束信號輸出端,該信號為負(fù)向信號,時間為12.5ms,其上升沿標(biāo)志信息結(jié)束。
系統(tǒng)中的MIC是話筒前置放大器輸入端;MIC REF為話筒補償端,AGC為自動增益控制端;ANA IN與ANA OUT是模擬信號的輸入和輸出端,它們之間連接的耦合電容通常取值為0.22~1μF。
本系統(tǒng)中基于ISD2560的語音錄放電路如圖1所示。一般情況下,可將單片機的P1口、P3.4和P3.5與ISD2560的地址線相連,用以設(shè)置語音段的起始地址。P3.0~P3.3用以控制錄放音狀態(tài)。P3.7為擴展錄音鍵,可供錄音時使用。
3 系統(tǒng)工作原理及程序設(shè)計
ISD2560雖然提供有地址輸入線,但它的內(nèi)部信息段的地址一般無法讀出。因此,通常使用不需要知道地址的操作模式。但要讀出ISD2560內(nèi)部信息地址,就需要專用的ISD開發(fā)設(shè)備,而這些設(shè)備的價格比較昂貴。為此,本系統(tǒng)采用單片機來控制。該方法不需讀出信息地址,而是直接設(shè)置信息段起始地址。該設(shè)想的實現(xiàn)方式有多種。第一種方式由于ISD2560的地址分辨率為100ms,所以,可用單片機內(nèi)部定時器定時100 ms,然后再利用一計數(shù)器對單片機定時次數(shù)進行計數(shù),這樣,計數(shù)器的計數(shù)值就是語音段所占用的地址單元。該方式能充分利用ISD2560內(nèi)部的EEPROM,故在字段較多時可利用該方法;而如果語音字段較少,則可用第二種方式:即根據(jù)每一字段的內(nèi)容多少直接分配地址單元。一般按每1 s說3個字計算,60 s可以說180個字,然后再根據(jù)ISD2560的地址分辨率為100 ms,計算出語音段所需的地址單元數(shù)。本系統(tǒng)即采用該方式。
3.1 AT89C2051對ISD2560的錄放音控制
錄音時,先按下錄音鍵,由單片機通過口線設(shè)置語音段的起始地址,再使PD端、P/R端和其它相關(guān)端口為低電平以啟動錄音;錄音結(jié)束,單片機又讓這些端口回到高電平,以完成一段語音的錄制。然后以同樣的方法,也可錄取第二段、第三段、等等。值得注意的是,錄音時間一般不能超過預(yù)先設(shè)定的每段語音的時間。
放音時,可根據(jù)需播放的語音內(nèi)容,找到相應(yīng)的語音段起始地址,并通過接口線送出。然后將P/R端設(shè)為高電平,PD端設(shè)為低電平,并讓其產(chǎn)生一負(fù)脈沖以啟動放音,這時單片機只需等待ISD2560的信息結(jié)束信號(即EOM的產(chǎn)生)。由于該信號為一負(fù)脈沖,且在負(fù)脈沖的上升沿,該段語音才播放結(jié)束,所以,單片機必須要檢測到該上升沿,才能播放第二段,否則,播放的語音將不連續(xù),而且會產(chǎn)生啪啪聲,這一點在編制軟件時一定要注意。圖2所示是其錄放音程序框圖。
其具體的操作方法如下:
(1)錄音
將跳線插在“REC”一側(cè),即為錄音狀態(tài),按下“REC”鍵,指示燈亮,即可對著板上話筒講話錄音,松鍵時,錄音停止并形成一段。再次按下,則錄下一段。操作時,按“STOP”鍵為復(fù)位,再錄音時,又將從第一段開始。
(2)放音
將跳線插在“PLAY”一側(cè),為放音狀態(tài),此后,按一下“PLAY”鍵即播放一段,一段結(jié)束后自動停止放音,再按“AN”,則播放下一段。操作過程中,按“STOP”鍵為復(fù)位,再放音時,又將從第一段開始。
3.2 程序設(shè)計
本程序是以AT89C2051為ISD2560的控制器,晶振頻率為12 MHz來編寫的。
下面給出錄取語音信息的錄音程序以及對這段語音進行播放的源程序。實際上,播放時也可根據(jù)實際情況組合回放。需要時,還可對該程序進行擴充。其ISD2560語音錄放系統(tǒng)程序如下:
此后,在錄音時,第一次按錄音鍵即開始錄音,第二次按錄音鍵表示暫停(即保存,設(shè)置EOM)。暫停錄音后,按放音鍵,可從地址指針為0處開始放音。錄音時,可通過PD(引腳P3.1)端的高脈沖來停止錄音。
播放時,第一次按播放鍵即開始播放。播放過程中,再次按播放鍵則可暫停,第三次按播放鍵可以在暫停處繼續(xù)播放。如在第二次播放鍵按下后,再按錄音鍵,則可從暫停處開始錄音。播放中,可通過PD(引腳P3.1)端產(chǎn)生的高脈沖來停止播放,同時將地址指針復(fù)位到0。播放中沒有PD高脈沖,則一直播放下去,直到遇到芯片溢出處時,再返回地址指針為0處,開始循環(huán)播放。
下面是其錄音子程序:
系統(tǒng)的播放子程序如下:
停止錄音或播放子程序如下:
系統(tǒng)初始化程序:
10ms的延時程序:
30ms的延時程序:
120 ms的延時程序:
4 結(jié)束語
本語音錄放電路具有結(jié)構(gòu)簡單,成本較低,調(diào)整方便,可靠性高等優(yōu)點。實際使用證明。該系統(tǒng)能夠滿足正常語音錄放要求。而且,通過適當(dāng)調(diào)整,也可以用于其它語音錄放的場合。
晶振相關(guān)文章:晶振原理 脈沖點火器相關(guān)文章:脈沖點火器原理 網(wǎng)線測試儀相關(guān)文章:網(wǎng)線測試儀原理
評論