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