IS22C011/20語音芯片的原理及在MCS-51單片機中的應用
IS22C011和IS22C020是ISSI公司推出的高品質(zhì)語音芯片,它們采用 ADPCM壓縮技術、POP減噪技術和最先進的亞微米EPROM技術,實現(xiàn)了即時編程,并使用戶產(chǎn)品的開發(fā)時間大為縮短。IS22C011/20可由多種開發(fā)工具來支持,如IS22VP002(單片機開發(fā)系統(tǒng))、IS22VP003/004(PC機開發(fā)系統(tǒng))等。該芯片只需極少的外圍元件,便可實現(xiàn)高質(zhì)量的語音播放,IS22C011/20語音芯片采用串聯(lián)擴展可使播放時間不受限制,而采用并聯(lián)擴展則有利于混音的形成。同時由CPU對其進行部分引腳的控制可方便地應用于儀器設備的語音提示或報警。IS22C011與IS22C020的主要技術特性如下:
●語音長度:
— 8kHz取樣:011/020:8/16s;
— 6kHz取樣:011/020:10/20s;
— 5kHz取樣:011/020:12.8/25.6s;
●電源電壓:DC2.4~6.0V;
●靜態(tài)功耗:<5μA;
●防抖觸發(fā)延時時間(Debounce delay):15ms
●STP脈沖寬度:30ms;
●采用4鍵觸發(fā)可提供8段語音。
1 引腳功能
IS22C011/20采用16-PIN和SOP封裝形式,其引腳排列如圖1所示,各引腳功能如下:
1、6腳(LED1、LED2):LED顯示驅動端,3Hz閃爍,011為高電平有效,020為低電平有效;
2、3腳(VOUT1、VOUT2):蜂鳴器驅動端;
4 腳(GND):電源地;
5腳(STP/BUSY):STP語音結束脈沖輸出信號或BUSY信號;
7腳(COUT):電流型D/A轉換輸出端口,其輸出信號可用于驅動揚聲器;
8腳(OSC):振蕩器電阻接入端,可用于控制采樣頻率;
9 腳(VPP):編程電源端,放音時不用;
10、11、13、14腳(S1~S4):語音觸發(fā)端,通常在內(nèi)部被拉低,高電平有效,可用于控制8段語音,其譯碼如表1所列;
21腳(VCC):電源正端;
15腳(SBT):全播或順序播放控制端,此端采用內(nèi)部下拉,高電平有效;
16腳(IRP):停止播放控制端,采用內(nèi)部拉低,高電平有效。
2 內(nèi)部結構
IS22C011/20的內(nèi)部結構如圖2所示,由圖可知,該芯片用振蕩器、時鐘信號發(fā)生器來提供時鐘信號。其振蕩器頻率(即語音采樣頻率)由外接振蕩電阻ROSC確定,振蕩線路采用高穩(wěn)定結構,因此在正常的工作電壓范圍內(nèi),采樣頻率均可保持恒定。該芯片中的邏輯控制電路是芯片的控制中心,可協(xié)調(diào)和控制地址定序器、 ADPCM譯碼器、POP減噪電路等線路的工作。EPROM為256k字節(jié)的一次性(OTP)存貯器,可分成8段語音,每段語音長度由用戶編程控制,長短可不一,但總長度不能超過存貯器總容量的允許時間(如若采樣頻率為8kHz,總長度不能超過8s)。蜂鳴器緩沖輸出采用PWM輸出方式,可直接驅動蜂鳴器,并可減少耗電量,因此特別適用于鈕扣電池供電設備。其D/A電流輸出可直接用晶體管來推動揚聲器(1/4W),而無需復雜的濾波線路。
3 可編程選項及時序圖
IS22C011/20具有可編程選項功能,包括脈沖觸發(fā)及電平觸發(fā)選項、STB全播或順序播放選項、STOP或BUSY信號選項、放音結束噪音自動下降及非自動下降選項。圖3所示是其前三項選項的時序圖。放音結束噪聲自動下降通常是指在放音結束時COUT端出現(xiàn)的“POP”噪聲的下降。實際上,放音結束時使COUT端的輸出電流漸漸減少為零可降低電流突然為零(即非自動下降時)時出現(xiàn)的“POP”噪聲(即POP減噪),它可在聲音數(shù)據(jù)編碼時由用戶選擇與編程,其信息與聲音數(shù)據(jù)通常被存貯在存貯器中。
圖3中還給出了S1脈沖觸發(fā)及電平觸發(fā)的COUT時序圖,S2~S4的COUT時序圖則與S1完全一致。而SBT信號僅給出了脈沖觸發(fā)的時序圖,其電平觸發(fā)時序可參考S1時序。
4 典型應用
圖 4為 IS22C011/20的典型應用電路(LED1、LED2為020的驅動方式),圖中的三極管的β值應大于130、SP可選用8Ω、1/4W的揚聲器。圖5為芯片串聯(lián)使用時的電路圖,該電路的語音長度為兩片之和。圖6為并聯(lián)使用時的電路圖,其語音段可由8段擴展為16段,也可混音輸出。
5 在MCS-51單片機中應用
5.1 硬件連接
當IS22C011/20的S1~S4、STB/BUSY等信號端由MCS-51或其它接口芯片(如8255A)控制時可方便地實現(xiàn)單段一次、多次或多段連續(xù)觸發(fā),圖7為8031與IS22C011/20連接線路。由于8031在復位時的口線輸出為高電平,而S1~S4為高電平有效,因此P1. 0~P1.3可通過4069反相器與S1~S4相連。將STB/BUSY控制端與P3.5(T1口)相連可用于單段多次或多段連續(xù)觸發(fā),T1口工作于方式 2可自動再裝入8位計數(shù)方式,并允許T1口中斷。一旦前段播放完畢,則由STP信號觸發(fā)T1口向CPU發(fā)出中斷申請,以進行再次觸發(fā)或觸發(fā)下一段,因此, STP/BUSY信號選項應選擇STP信號,而S1~S4則用于選擇脈沖觸發(fā)。由于防抖觸發(fā)延遲時間為15ms,因此觸發(fā)時的脈沖寬度必須大于15ms,本文中的程序設計為30ms。
5.2 軟件編寫
以下為單段一次、再次播放和二段連播程序清單,其中“DEL”為觸發(fā)脈沖脈寬延時子程序,脈寬為30ms。為了提高CPU的工作效率,程序中采用T0 口中斷定時方式。R0用于設置播放次數(shù)或段落數(shù),#00H為單段一次播放,#01H為單段二次或二段連播。R1、R2的低四位設置二次播放的觸發(fā)譯碼,單段二次連播時R1、R2應設置相同的譯碼,單段一次時R2可不用。由于采用4069反相驅動,因此R1、R2中設置的觸發(fā)譯碼應將表1中的譯碼取反。具體的程序清單如下: