ISD33000型語音芯片及其在心音記錄方面的應(yīng)用
引言
語音記錄芯片有很多種,但美國isd公司的isd系列芯片倍受廣大用戶的青睞,它采用直接模擬存儲專利技術(shù),把語音信號以原始的模擬形式直接存儲在片內(nèi)的eeprom存儲器中,無需進(jìn)行a/d轉(zhuǎn)換和壓縮處理,沒有大多數(shù)固態(tài)數(shù)字化聲音存儲技術(shù)對聲音質(zhì)量的影響,從而減少了失真,大大提高了錄放音質(zhì)量,并具有抗斷電、音質(zhì)好、使用方便、可反復(fù)錄放,無需專用的語音開發(fā)工具,能隨意更改內(nèi)容和耗電省等優(yōu)點,很適合于現(xiàn)場錄放音系統(tǒng)。
isd系列語音記錄芯片廣泛應(yīng)用于自動化通信系統(tǒng)、移動電話、智能儀器及其他需要語音提示的各種電子產(chǎn)品中。本文介紹了isd33180在一種可以進(jìn)行心音記錄的電子聽診器中的應(yīng)用。
圖1 isd33000系列封裝圖
isd33000的介紹
isd33120/150/180/240系列是采用3伏電源供電的單片語音錄/放設(shè)備,可存儲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所示。
ss 片選信號(低電平允許芯片工作);
mosi 串行數(shù)據(jù)輸入端;
miso 串行數(shù)據(jù)輸出端;
sclk 串行時鐘信號;
vcca、vccd模擬和數(shù)字電路電源端;
vssa、vssd模擬地和數(shù)字地;
aud out 音頻信號輸出端,可驅(qū)動5kω負(fù)載;
am cap 自動靜噪控制端;
ana in-、ana in+ 模擬信號輸入端,模擬信號可以采用單端輸入和差分輸入兩種方式;
rac 行尋址時鐘,當(dāng)達(dá)到存儲器每一行的末尾時該引腳保持137.5ms的高電平和12.5ms的低電平,可用于信息管理;
int 中斷端(低電平有效);
xclk 外部時鐘輸入端。
一組四線(sclk,mosi,miso,ss)spi接口提供了isd33000系列的控制和尋址功能。isd33000系列產(chǎn)品的構(gòu)成就如在操作一個基于微控制器spi總線接口的外圍設(shè)備。對于所有的內(nèi)部記錄器的讀寫允許操作都是通過spi接口實現(xiàn)的。數(shù)據(jù)轉(zhuǎn)換方面的約定是,微控制器的spi轉(zhuǎn)換鎖存器在sclk的下降沿處鎖定,對于isd33000設(shè)備,mosi引腳上的數(shù)據(jù)在sclk的上升沿處被鎖定,內(nèi)部數(shù)據(jù)在sclk的下降沿處被鎖定輸出到miso引腳上。中斷信號(int)和內(nèi)部的只讀狀態(tài)記錄器是為了提供握手信號的目的。控制位和地址位的分布如下:〈5位控制位〉和〈11位地址位〉。需要說明的是isd33120/150/180/240設(shè)備只需要10位地址位,但為了錄音時間更長產(chǎn)品的需要保留了第11位。對于每一個以eom和ovf結(jié)束的操作,包括信息檢索周期,都將產(chǎn)生一個中斷。這個中斷將在下一個spi周期有效時被清除。
表1 控制位摘要 應(yīng)用舉例
所設(shè)計的電子聽診器對拾取心音的操作與普通的錄音機相似,可以播放、記錄,還可以在各段記錄間搜索。這里采用89c51型單片機作為語音芯片的控制器,用戶的意圖通過按鍵來表達(dá)。
各指令與控制位的關(guān)系如表1所示。isd33000設(shè)備啟動要經(jīng)過tpud時間后才可進(jìn)行操作(對于采樣頻率位8khz的產(chǎn)品來說,約為25ms)。用戶在發(fā)出操作命令之前要等待tpud的時間。以播放操作為例,從地址address開始的播放操作應(yīng)按下述的步驟進(jìn)行:
發(fā)出powerup命令;
等待tpud時間(啟動延遲時間);
發(fā)出從地址address的setplay命令;
發(fā)出play命令。
當(dāng)發(fā)現(xiàn)eom標(biāo)記時產(chǎn)生一個中斷,然后停止播放操作。
該應(yīng)用中單片機的p1端口設(shè)計為人機接口,p2端口為單片機與語音芯片的通訊口。p1口的按鍵依次為:k1鍵為播放記錄選擇鍵(p/r);k2鍵為開始鍵(start);k3鍵為停止鍵(stop);k4鍵為前倒鍵(pre);k5鍵為后倒鍵(next),其中k1鍵為撥動開關(guān),其余各鍵均為不可自鎖的按鍵,發(fā)出脈沖信號。p2口依次連接33180的sclk、mosi、miso、ss和rac引腳,在記錄操作期間,存儲的信息達(dá)到存儲陣列的每一行末尾時,rac端會發(fā)出長度一定的高脈沖,單片機此時將地址變量加一,記錄語音芯片的地址信息。在每段語音信息的末尾,語音芯片會發(fā)出一個中斷,將該中斷信號送入單片機外部中斷0的輸入端。
在沒有要求單片機工作之前,單片機處于循環(huán)查詢狀態(tài),一旦p1端口的k2、k4、k5、k6鍵有信號發(fā)出,指針表會跳轉(zhuǎn)至各自子程序執(zhí)行相應(yīng)的操作。以播放操作子程序為例,先后向語音芯片發(fā)出powerup命令,setplay命令和play命令,然后進(jìn)入等待狀態(tài)查詢p1.2端口stop鍵是否有觸發(fā),如有觸發(fā)則終止播放操作,進(jìn)入循環(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 oisto1, #07h
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使用中應(yīng)注意的幾個問題
·isd器件的音頻信號輸出功率很小,并不能直接驅(qū)動揚聲器,需要加音頻功放,如lm386。同時isd送出的信號需通過電容耦合,隔離直流分量,以免其飽和。
·應(yīng)注意rac端口,每完成一行的錄音、放音及搜索操作,該端口輸出一個正脈沖。單片機檢測到此正脈沖,對應(yīng)當(dāng)前的行地址,可用于對錄放信息的精確定位。
·當(dāng)中斷數(shù)據(jù)從isd33000設(shè)備的miso引腳移出時,控制位和地址位同時移入mosi引腳。所以應(yīng)注意傳送的數(shù)據(jù)是否符合當(dāng)前系統(tǒng)的操作。
評論