GMS97C2051與ISD2560組成的小型語音系統(tǒng)
摘要:介紹單片機(jī)GMS97C2051與語音芯片ISD2560組成的電腦語音系統(tǒng),給出實用電路和錄、放音程序框圖以及源程序。系統(tǒng)硬件電路簡單,調(diào)試方便,性價比高,實用性強(qiáng),可作為電腦語音服務(wù)系統(tǒng)的語音板,具有一定的實用價值和參考價值。
本文引用地址:http://butianyuan.cn/article/242324.htm關(guān)鍵詞:GMS97C2051單片機(jī) ISD2560語音芯片 分段錄音 組合回放
目前電腦語音服務(wù)行業(yè)越來越廣,如電腦語音鐘、語音型數(shù)字萬用表、手機(jī)話費(fèi)查詢系統(tǒng)、排隊機(jī)以及公共汽車報站器等等。筆者用單片機(jī)GMS97C2051和ISD2560設(shè)計了一款微電腦語音板,實現(xiàn)了語音的分段錄取、組合回放,通過軟件的修改還可以實現(xiàn)整段錄取,循環(huán)播放。該系統(tǒng)完成語音錄放功能,可作為語音服務(wù)系統(tǒng)的子系統(tǒng),而且不必使用專門的ISD語音開發(fā)設(shè)備。
1 系統(tǒng)簡介與接口電路
GMS97C2051是LG半導(dǎo)體公司生產(chǎn)的一種功能強(qiáng)大的微控制器,為很多嵌入式控制應(yīng)用系統(tǒng)提供了一個高度靈活有效的解決方案。GMS97C2051帶有2K字節(jié)可編程的EEPROM、128字節(jié)RAM、15根I/O線、2個16位定時/計數(shù)器、1個全雙向的串口、1個精密比較器等等。其與工業(yè)標(biāo)準(zhǔn)MCS-51的指令集和引腳兼容。引腳排列如 圖1(a) 所示。
P1口是一個雙向I/O口,其中P1.2~P1.7口內(nèi)部提供了上拉電阻,P1.0、P1.1需外部上拉。P1.0、 P1.1同時也是片內(nèi)精密比較器的正輸入端(AIN0)和負(fù)輸入端(AIN1)。P3口是7個帶有內(nèi)部上拉電阻的雙向口(P3.6除外,其為片內(nèi)比較器的輸出腳,而不能作為普通的I/O口使用)。GMS97C2051具體性能請見參考文獻(xiàn)[1]。
ISD2560是ISD系列單片語音錄放集成電路的一種,是一種永久記憶型錄放語音電路,錄音時間為60 s,能重復(fù)錄放達(dá)10萬次。它采用直接電平存儲技術(shù),省去了A/D、D/A轉(zhuǎn)換器。ISD2560集成度較高,內(nèi)部包括前置放大器、內(nèi)部時鐘、定時器、采樣時鐘、濾波器、自動增益控制、邏輯控制、模擬收發(fā)器、解碼器和480 K字節(jié)的EEPROM等等。內(nèi)部EEPROM存儲單元,均勻分為600行,具有600個地址單元,每個地址單元指向其中一行,每一個地址單元的地址分辨率為100 ms。ISD2560控制電平與TTL電平兼容,接口簡單,使用方便。引腳排列如圖1(b)所示。
◇ A0~A9為地址線,共有1 024種組合狀態(tài)。最前面的600個狀態(tài)作內(nèi)部存儲器的尋址用,最后256個狀態(tài)作為操作模式,具體使用見參考文獻(xiàn)[2]。本系統(tǒng)采用對地址直接進(jìn)行操作的方式。
◇ 微處理器接口端: P/R錄放音控制端,此端為高電平時為放音狀態(tài),為低電平時為錄音狀態(tài);端用于錄放音時的啟??刂疲ǔEcP/R端配合使用;端為每段信息結(jié)束信號輸出端,為負(fù)向信號,時間為12.5 ms,上升沿標(biāo)志信息結(jié)束。
◇ MIC IN是話筒前置放大器輸入端;MIC REF為話筒補(bǔ)償端,與麥克風(fēng)連接電路如圖2所示;AGC自動增益控制端;ANA IN與ANA OUT是模擬信號的輸入端和輸出端,它們之間連接耦合電容,通常取值為0.22~1μF。
ISD2560與單片機(jī)GMS97C2051的接口電路以及外圍電路如 圖 2 所示。單片機(jī)的P1口、P3.4和 P3.5與ISD2560的地址線相連,用以設(shè)置語音段的起始地址。P3.0~P3.3用以控制錄放音狀態(tài)。P3.7擴(kuò)展一錄音鍵,供錄音時使用。ISD2560具體性能和使用方法見參考文獻(xiàn)[2]。
2 系統(tǒng)工作原理及程序設(shè)計
2.1 ISD2560內(nèi)部地址單元尋址
ISD2560雖然提供了地址輸入線,但它的內(nèi)部信息段的地址卻無法讀出。通常使用不需要知道地址的操作模式,但這不能滿足實際的不同需要。一般使用對地址進(jìn)行直接操作,而要讀出ISD2560內(nèi)部信息地址需專用的ISD開發(fā)設(shè)備,其價格較昂貴。本系統(tǒng)采用單片機(jī)來控制,不需讀出信息地址,而直接設(shè)置信息段起始地址。其實現(xiàn)方式有多種,一種方式為:由于ISD2560的地址分辨率為100 ms,所以可用單片機(jī)內(nèi)部定時器定時100 ms,然后再利用一計數(shù)器對單片機(jī)定時次數(shù)進(jìn)行計數(shù),則計數(shù)器的計數(shù)值為語音段所占用的地址單元。該方式能充分利用ISD2560內(nèi)部的EEPROM,在字段較多時可利用該方法。該方法的具體使用請見參考文獻(xiàn)[4]。語音字段如果較少,則可用下面的方式:根據(jù)每一字段的內(nèi)容多少,直接分配地址單元。一般按每1 s說3個字計算,60 s可說180個字,再根據(jù)ISD2560的地址分辨率為100 ms,即可計算出語音段所需的地址單元數(shù)。本系統(tǒng)即采用該方式。
2.2 錄放音時GMS97C2051單片機(jī)對ISD2560的控制
錄音時,按下錄音鍵,單片機(jī)通過口線設(shè)置語音段的起始地址,再使PD端、P/R端和端為低電平啟動錄音;結(jié)束時,松開按鍵,單片機(jī)又讓端回到高電平,即完成一段語音的錄制。同樣的方法可錄取第二段、第三段等等。值得注意的是,錄音時間不能超過預(yù)先設(shè)定的每段語音的時間。
放音時,根據(jù)需播放的語音內(nèi)容,找到相應(yīng)的語音段起始地址,并通過口線送出。再將P/R端設(shè)為高電平,PD端設(shè)為低電平,并讓端產(chǎn)生一負(fù)脈沖啟動放音,這時單片機(jī)只需等待ISD2560的信息結(jié)束信號,即的產(chǎn)生。信號為一負(fù)脈沖,在負(fù)脈沖的上升沿,該段語音才播放結(jié)束,所以單片機(jī)必須要檢測到的上升沿才能播放第二段,否則播放的語音就不連續(xù),而且會產(chǎn)生啪啪聲,這一點在編制軟件時一定要注意。錄放音程序框圖如 圖 3、圖 4 所示。
2.3 系統(tǒng)接口源程序
下面編制了錄取5段語音信息的錄音程序和對這5段語音進(jìn)行組合播放的源程序。播放時,可根據(jù)實際情況組合回放。實際需要時,可對該程序進(jìn)行擴(kuò)充。
評論