ISD33000型語音芯片及其應用
引言
語音記錄芯片有很多種,但美國ISD公司的ISD系列芯片倍受廣大用戶的青睞,它采用直接模擬存儲專利技術(shù),把語音信號以原始的模擬形式直接存儲在片內(nèi)的EEPROM存儲器中,無需進行A/D轉(zhuǎn)換和壓縮處理,沒有大多數(shù)固態(tài)數(shù)字化聲音存儲技術(shù)對聲音質(zhì)量的影響,從而減少了失真,大大提高了錄放音質(zhì)量,并具有抗斷電、音質(zhì)好、使用方便、可反復錄放,無需專用的語音開發(fā)工具,能隨意更改內(nèi)容和耗電省等優(yōu)點,很適合于現(xiàn)場錄放音系統(tǒng)。
ISD系列語音記錄芯片廣泛應用于自動化通信系統(tǒng)、移動電話、智能儀器及其他需要語音提示的各種電子產(chǎn)品中。本文介紹了ISD33180在一種可以進行心音記錄的電子聽診器中的應用。
ISD33000的介紹
ISD33120/150/180/240系列是采用3伏電源供電的單片語音錄/放設備,可存儲2.0、2.5、3.0至4分鐘的語音信息。四種型號的不同錄放時間是靠不同的輸入采樣率來實現(xiàn)的,他們分別是8.0、6.4、5.3、4.0kHz。該CMOS工藝芯片包含一個內(nèi)部時鐘振蕩器、抗混迭濾波器、平滑濾波器、自動選擇器、音頻放大器和高密度多層存儲陣列。ISD33000系列的EEPROM的容量都為960K,可存儲800行語音信息。
ISD33000系列具有TSOP和DIP/SOIC兩種封裝形式,如圖1所示。
圖1 ISD33000系列封裝圖
SS 片選信號(低電平允許芯片工作);
MOSI 串行數(shù)據(jù)輸入端;
MISO 串行數(shù)據(jù)輸出端;
SCLK 串行時鐘信號;
VCCA、VCCD模擬和數(shù)字電路電源端;
VSSA、VSSD模擬地和數(shù)字地;
AUD OUT 音頻信號輸出端,可驅(qū)動5kΩ負載;
AM CAP 自動靜噪控制端;
ANA IN-、ANA IN+ 模擬信號輸入端,模擬信號可以采用單端輸入和差分輸入兩種方式;
RAC 行尋址時鐘,當達到存儲器每一行的末尾時該引腳保持137.5ms的高電平和12.5ms的低電平,可用于信息管理;
INT 中斷端(低電平有效);
XCLK 外部時鐘輸入端。
一組四線(SCLK,MOSI,MISO,SS)SPI接口提供了ISD33000系列的控制和尋址功能。ISD33000系列產(chǎn)品的構(gòu)成就如在操作一個基于微控制器SPI總線接口的外圍設備。對于所有的內(nèi)部記錄器的讀寫允許操作都是通過SPI接口實現(xiàn)的。數(shù)據(jù)轉(zhuǎn)換方面的約定是,微控制器的SPI轉(zhuǎn)換鎖存器在SCLK的下降沿處鎖定,對于ISD33000設備,MOSI引腳上的數(shù)據(jù)在SCLK的上升沿處被鎖定,內(nèi)部數(shù)據(jù)在SCLK的下降沿處被鎖定輸出到MISO引腳上。中斷信號(INT)和內(nèi)部的只讀狀態(tài)記錄器是為了提供握手信號的目的??刂莆缓偷刂肺坏姆植既缦拢骸?位控制位〉和〈11位地址位〉。需要說明的是ISD33120/150/180/240設備只需要10位地址位,但為了錄音時間更長產(chǎn)品的需要保留了第11位。對于每一個以EOM和OVF結(jié)束的操作,包括信息檢索周期,都將產(chǎn)生一個中斷。這個中斷將在下一個SPI周期有效時被清除。
應用舉例
所設計的電子聽診器對拾取心音的操作與普通的錄音機相似,可以播放、記錄,還可以在各段記錄間搜索。這里采用89C51型單片機作為語音芯片的控制器,用戶的意圖通過按鍵來表達。
各指令與控制位的關(guān)系如表1所示。ISD33000設備啟動要經(jīng)過TPUD時間后才可進行操作(對于采樣頻率位8kHz的產(chǎn)品來說,約為25ms)。用戶在發(fā)出操作命令之前要等待TPUD的時間。以播放操作為例,從地址address開始的播放操作應按下述的步驟進行:
發(fā)出POWERUP命令;
等待TPUD時間(啟動延遲時間);
發(fā)出從地址address的SETPLAY命令;
發(fā)出PLAY命令。
當發(fā)現(xiàn)EOM標記時產(chǎn)生一個中斷,然后停止播放操作。
該應用中單片機的P1端口設計為人機接口,P2端口為單片機與語音芯片的通訊口。P1口的按鍵依次為:K1鍵為播放記錄選擇鍵(P/R);K2鍵為開始鍵(START);K3鍵為停止鍵(STOP);K4鍵為前倒鍵(PRE);K5鍵為后倒鍵(NEXT),其中K1鍵為撥動開關(guān),其余各鍵均為不可自鎖的按鍵,發(fā)出脈沖信號。P2口依次連接33180的SCLK、MOSI、MISO、SS和RAC引腳,在記錄操作期間,存儲的信息達到存儲陣列的每一行末尾時,RAC端會發(fā)出長度一定的高脈沖,單片機此時將地址變量加一,記錄語音芯片的地址信息。在每段語音信息的末尾,語音芯片會發(fā)出一個中斷,將該中斷信號送入單片機外部中斷0的輸入端。
在沒有要求單片機工作之前,單片機處于循環(huán)查詢狀態(tài),一旦P1端口的K2、K4、K5、K6鍵有信號發(fā)出,指針表會跳轉(zhuǎn)至各自子程序執(zhí)行相應的操作。以播放操作子程序為例,先后向語音芯片發(fā)出POWERUP命令,SETPLAY命令和PLAY命令,然后進入等待狀態(tài)查詢P1.2端口STOP鍵是否有觸發(fā),如有觸發(fā)則終止播放操作,進入循環(huán)查詢部分。播放操作的正常結(jié)束是通過外部中斷0的中斷子程序。
播放子程序清單:
PLAY: MOV OISTO1, #20H
LCALL TRANS ;發(fā)出POWERUP命令
MOV TMOD , #01H
MOV DPTR ,#25536
MOV TH0, DPH
MOV TL0, DPL
SETB TR0
JNB TF0,$ ;等待TPUD40ms時間
MOV OISTO, PFROM
MOV OISTO1, PFROM1
;讀取播放記錄的首地址
ANL O
ORL OISTO1, #0E0H
LCALL TRANS ;發(fā)出SETPLAY命令
ORL OISTO1, #0F0H
LCALL TRANS ;發(fā)出PLAY命令
MOV IE, #81H
HERE: JB P1.2, OVER ;如果要求中止則結(jié)束
SJMP HERE
OVER: MOV OISTO1, #10H
LCALL TRANS;發(fā)出STOPPWRDN命令
LJMP SELECT
INTX0: MOV IE, #0
LJMP OVER ;播放結(jié)束返回
RETI
注:
TRANS 為單片機與語音芯片的通訊子程
OISTO和OISTO1為存儲控制位和地址的寄存器
SELECT 為循環(huán)查詢子程
INTX0為中斷子程
其他記錄子程序,前倒子程序和后倒子程序與播放的程序相似,在此不再贅述。 ISD33000使用中應注意的幾個問題
評論