ISD4004語音芯片的工作原理及智能控制系統(tǒng)中的應(yīng)用
智能控制系統(tǒng)中的應(yīng)用。
本文引用地址:http://m.butianyuan.cn/article/201612/333174.htm1 概述
ISD4004是美國ISD公司制造的一種新款語音芯片。與ISD其它系列語音產(chǎn)品不同的是,ISD4004是一種微控制器“從”設(shè)備,而“主”控制器可以是內(nèi)置有SPI兼容接口的微控制器,也可以用I/O仿真SPI通信協(xié)議。ISD4004系列工作電壓為3V,單片錄放時(shí)間為8~16分鐘,音質(zhì)好,適用于移動(dòng)電話及其它便攜式電子產(chǎn)品中。該芯片采用CMOS技術(shù),內(nèi)含振蕩器、抗混疊濾波器、平滑濾波器、音頻放大器、自動(dòng)靜噪及高密度多電平閃爍存貯陳列。芯片的所有操作必須由微控制器控制,操作命令可通過串行通信接口(SPI或Microwire)送入。ISD4004采用多電平直接模擬量存儲(chǔ)技術(shù),每個(gè)采樣值直接存貯在片內(nèi)閃爍存貯器中,因此能非常真實(shí)、自然地再現(xiàn)語音、音調(diào)和效果聲,避免了一般固體錄音電路因量化和壓縮造成的量化噪聲和“金屬聲”。采樣頻率可為4.0,5.3,6.4,8.0kHz,頻率越低,錄放時(shí)間越長,音質(zhì)則有所下降, 片內(nèi)信息存于閃爍存貯器中,可在斷電情況下保存100年(典型值),反復(fù)錄音10萬次。
2 引腳功能描述
ISD4004的引腳排列如圖1所示,各引腳功能如下:
電源(VCCA,VCCD):為使噪聲最小,芯片的模擬和數(shù)字電路使用不同的電源總線,并且分別引到外封裝的不同管腳小,模擬和數(shù)字電源端最好分別走線。盡可能在靠近供電端處相連,而去耦電容應(yīng)盡量靠近器件。
地線(VSSA,VSSD):芯片內(nèi)部的模擬和數(shù)字電路也使用不同的地線。
同相模擬輸入(ANA IN+):錄音信號(hào) 的同相輸入端。輸入放大器可用單端或差分驅(qū)動(dòng)。單端輸入時(shí),信號(hào)由耦合電容輸入,最大幅度為峰峰值32mV,耦合電容和本端的3kΩ電阻輸入阻抗決定了芯片頻帶的低端截止頻率。差分驅(qū)動(dòng)時(shí),信號(hào)最大幅度為峰峰值16mV,與ISD33000系列相同。
反相模擬輸入(ANA IN-):差分驅(qū)動(dòng)時(shí),為錄音信號(hào)的反相輸入端。信號(hào)通過耦合電容輸入,最大幅度為峰峰值16mV。
音頻輸出(AUD OUT):提供音頻輸出,可驅(qū)動(dòng)5kΩ的負(fù)載。
片選(SS):此端為低,即向該ISD4004芯片發(fā)送指令,兩條指令之間為高電平。
串行輸入(MOSI):此端為串行輸入端,主控制器應(yīng)在串行時(shí)鐘上升沿之前半個(gè)周期將數(shù)據(jù)放到本端,供ISD輸入。
串行輸出(MISO):ISD的串行輸出端。ISD未選中時(shí),本端呈高阻態(tài)。
串行時(shí)鐘(SCLK):ISD的時(shí)鐘輸入端,由主控制器產(chǎn)生,用于同步MOSI和MISO的數(shù)據(jù)傳輸。數(shù)據(jù)在SCLK上升沿鎖存到ISD,在下降沿移出ISD。
中斷(INT):本端為漏極開路輸出。ISD在任何操作(包括快進(jìn))中檢測到EOM或IVF時(shí),本端變低并保持。中斷狀態(tài)在下一個(gè)SPI周期開始時(shí)清除。中斷狀態(tài)也可用RINT指令讀取。
OVF標(biāo)志用來指示ISD的錄、放操作已到達(dá)存儲(chǔ)器的末尾。只在放音中檢測到內(nèi)部的EOM標(biāo)志時(shí),此狀態(tài)位才置1。
行地址時(shí)鐘(RAC):漏極開路輸出。每個(gè)RAC周期表示ISD存儲(chǔ)器的操作進(jìn)行了一行(ISD4004系列中的存貯器共2400行)。該信號(hào)保持高電平的時(shí)間為175ms,低電平時(shí)間為25ms。在快進(jìn)模式,RAC可保持高電平218.75μs,低電平31. 25μs。該端可用于存儲(chǔ)管理技術(shù)。
3 工作原理與功能特性
ISD4004聲音錄放采用CchipCorder專利技術(shù),即無須A/D轉(zhuǎn)換和壓縮就可以直接儲(chǔ)存,沒有A/D轉(zhuǎn)換誤差,在個(gè)記錄位(BIT)可存儲(chǔ)250級(jí)聲音信號(hào),相當(dāng)于通常的A/D記錄的8倍。
3.1 SPI(串行外設(shè)接口)
ISD4004工作于SPI串行接口。SPI協(xié)議是一個(gè)同步串行數(shù)據(jù)傳輸協(xié)議,該協(xié)議假定微控制器的SPI移位寄存器在SCLK的下降沿工作,因此對于ISD4004而言,在時(shí)鐘上升沿將鎖存MOSI引腳的數(shù)據(jù),而在下降沿則將數(shù)據(jù)送至MISO引腳。
3.2 SPI接口指令
SPI的接口指令如表1所列。
表1 SPI的接口指令
指 令 | 8位控制碼<16位地址> | 操 作 摘 要 |
POWERUP | 00100XXX | 上電:等待TPUD后操作可以工作 |
SET PLAY | 11100XXX | 從指定地址開始放音。必須后跟PLAY指令使放音繼續(xù) |
PLAY | 11110XXX | 從當(dāng)前地址開始錄音(直至EOM或OVF) |
SET REC | 10100XXX | 從指定地址開始錄音。必須后跟REC指令錄音繼續(xù) |
REC | 10110XXX | 從當(dāng)前址開始錄音(直至OVF或停止) |
SET MC | 11101XXX | 從指定地址開始快,必須后跟MC指令快進(jìn)繼續(xù) |
MC | 11111XXX | 停止當(dāng)前操作 |
STOP WRDN | 0X01XXXX | 停止當(dāng)前操作并掉電 |
RINT | 0X110XXX | 讀狀態(tài):OVF和EOM |
3.3 SPI端口的控制位
SPI端口控制位如圖2所示。
3.4 SPI控制寄存器
SPI控制寄存器控制器件可以實(shí)現(xiàn)如錄放、錄音、信息檢索(快進(jìn))、上電/掉電、開始和停止操作、忽略地址指針等功能。具體控制位如表2所列。
表2 控制寄存器功能表
位 | 值 | 功 能 | 位 | 值 | 功 能 |
RUN | 允許/禁止操作 | PU | 電源控制 | ||
1 | 開始 | 1 | 上電 | ||
0 | 停止 | 0 | 停電 | ||
P/R | 錄/放模式 | IAB | 操作是否使用指令地址 | ||
1 | 放音 | 1 | 忽略輸入地址寄存內(nèi)容 | ||
0 | 錄音 | 0 | 使用輸入地址寄存的內(nèi)容 | ||
快進(jìn)模式 | P15P0 | 行指針寄存器輸出 | |||
1 | 允許快進(jìn) | A15A0 | 輸入地址寄存器 | ||
0 | 禁止 |
當(dāng)IAB置0時(shí),錄、放操作從A9~A0地址開始。為了能連貫地錄、放到后續(xù)的存儲(chǔ)空間,在操作到達(dá)該行末之前,應(yīng)發(fā)出第二個(gè)SPI指令將IAB置1,否則器件在同一個(gè)地址上將反復(fù)循環(huán)。這一點(diǎn)對語音提示功能很有用。RAC腳和IAB位可用于信息管理。
4 在智能控制中的典型應(yīng)用
本系統(tǒng)是以單片機(jī),語音處理芯片及報(bào)警傳感器為基礎(chǔ),利用公共電話網(wǎng)絡(luò)建立起來的智能家居服務(wù)系統(tǒng)。它具有以下主要功能:
(1)家電控制功能:打電話在通過密碼校驗(yàn)后,在語音的提示下,進(jìn)行遠(yuǎn)程控制家電、查詢其工作狀態(tài)及家電定時(shí)操作。
(2)電話錄音功能:可來電留主及用戶自己錄音。
(3)自動(dòng)語音報(bào)警功能:在無的情況下,監(jiān)控系統(tǒng)檢測到非法闖入,能自動(dòng)拔打報(bào)警電話。在叫通后,能接報(bào)警信息以語音的形式發(fā)送出去。
由上可以看到,在整個(gè)家居服務(wù)系統(tǒng)中,要多次實(shí)現(xiàn)語音提示,應(yīng)答,查詢等功能。這些功能的實(shí)現(xiàn)是靠單片機(jī)89C51與ISD4004之間的通訊來完成的。89C51與ISD4004的連接如圖3所示。
MIC是麥克風(fēng),即語音信號(hào)的輸入端,輸出的模擬語音信號(hào)通過三極管組成放大器加到ISD4004語音芯片的輸入端。
該系統(tǒng)的錄音子程序如下:
LUYIN: ;用戶錄音子程序
MOV R0,# # # # # # # # # #
ACALL FAST ;語音提示如何修改
JB P3.5,$
MOV A,#20H ;語音芯片上電
ACALL ISDX
SETB P1.0
ACALL YS50 ;上電延時(shí)
ACALL YS50
MOV A,# # # # #
;“# # # # # #”表示是錄音具體地址
ACALL ISDX ;置錄音地址
MOV A,#0A0H
ACALL ISDX
SETB P1.0
LUY1:MOV R1,#20H ;錄音開始
LUY2:ACALL YS50
DJNZ R1,LUY2
MOV A,#0B0H ;錄音
ACALL ISDX
SETB 1.0
JNB P3.3,$
LUY9:MOV A,#30H
ACALL ISDX
SETB P1.0
LUY3:MOV R5,#10H
LUY5:JNB P1.4,LUY4 ;檢查錄音是否超時(shí)
JNB P3.5,LUY3
DJNZ R5,LUY5
MOV A,#30H ;錄音停止
ACALL ISDX
SETB P1.0
LUY6:MOV R4,#0FFH
LUY7:MOV R5,#0FFH
LUY8:MOV R6,#0FFH
LUYA:JNB P3.5,LUY9
DJNZ R6,LUYA
DJNZ R5,LUY8
DJNZ E4,LUY7
SJMP GUANJI
LUY4:MOV R0,# # # # # #;“錄音超過,請重錄制”
ACALL FSAT
SJMP LUYIN
放音子程序:
FANGYI:MOV R0,# # # # # #;“提示放音程序開始工作”
ACALL FAST
FANGY2:MOV R1,#0FFH
FANGY3:MOV R2,#0FFH
FANGY4:MOV A,#0FFH
MOV P0,A
SETB P0.7
SETB P0.4
CLR P0.5
SETB P0.6
MOV A,P0 ;讀8880狀態(tài)寄存器
JB ACC.2,F(xiàn)ANGY6
FANGY6:DJNZ R2,F(xiàn)ANGY4
DJNZ R1,F(xiàn)ANGY3
SJMP GUANJI
CLR P0.4
MOV A,P0 ;讀8880接收數(shù)據(jù)寄存器
ANL A,#0FH ;屏蔽高四位
CJNE A,#02H,F(xiàn)ANGYI;查詢是否“2”鍵按下,是則放音
FANGY5:MOV A,#0FFH
MOV P0,A
SETB P0.7
SETB P0.4
CLR P0.5
SETB P0.6
MOV A,P0
JNB ACC.2,F(xiàn)ANGY5
MOV R0,# # # # #
ACALL FAST
INC R0
SJMP FANGY2
評(píng)論