ISD4004-16M語(yǔ)音芯片的循環(huán)錄放電路設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:針對(duì)ISD語(yǔ)音芯片的特點(diǎn),設(shè)計(jì)一種由單片機(jī)控制,能夠循環(huán)錄放的語(yǔ)音電路,可作為錄音機(jī),復(fù)讀機(jī)、音頻記錄儀使用,既節(jié)省存儲(chǔ)空間,又降低成本,具有較高的實(shí)用價(jià)值。
關(guān)鍵詞:ISD4004 語(yǔ)音 循環(huán)錄放
目前,市場(chǎng)上的固體錄音機(jī)及各種錄音筆,大多采用的是順序錄音,不具備循環(huán)錄音功能,一旦存儲(chǔ)器錄滿,必須重新操作才行。本文設(shè)計(jì)一種能夠循環(huán)錄放的語(yǔ)音電路,即可解決上述問(wèn)題。
1 器件功能介紹
ISD系列語(yǔ)音芯片是美國(guó)ISD公司推出的產(chǎn)品。該系列語(yǔ)音芯片采用多電平直接接模擬存儲(chǔ)(Chip Corder)專利技術(shù),聲音不需要A/D轉(zhuǎn)換和壓縮,每個(gè)采樣值直接存儲(chǔ)在片內(nèi)的閃爍存儲(chǔ)器中,沒(méi)有A/D轉(zhuǎn)換誤差,因此能夠真實(shí)、自然地再現(xiàn)語(yǔ)音、音樂(lè)及效果聲。避免了一般固體錄音電路量化和壓縮造成的量化噪聲和金屬聲。
圖1
ISD4004語(yǔ)音芯片采用CMOS技術(shù),內(nèi)含晶體振蕩器、防混疊濾波器、平滑濾波器、自動(dòng)靜噪、音頻功率放大器及高密度多電平閃爍存儲(chǔ)陣列等(見(jiàn)圖1),因此只需很少的外圍器件就可構(gòu)成一個(gè)完整的聲音錄放系統(tǒng)。芯片設(shè)計(jì)是基于所有操作由微控制器控制,操作命令通過(guò)串行通信接口(SPI或Microwire)送入。采樣頻率可為4.0Hz、5.3Hz、6.4Hz、8.0kHz,頻率越低,錄放時(shí)間越長(zhǎng),而音質(zhì)則有所下降。片內(nèi)信息存于內(nèi)爍存儲(chǔ)器中,可在斷電情況下保存100年(典型值)反復(fù)錄音10萬(wàn)次。器件工作電壓3V,工作電流25~30mA,維持電流1μA?單片錄放語(yǔ)音時(shí)間8~16min,音質(zhì)好,適用于移動(dòng)電話機(jī)及其它便攜式電子產(chǎn)品中。
1.1 引腳描述
ISD4004系列芯片引腳圖如圖2所示。
圖2
同相模擬輸入(ANA IN+)-這是錄音信號(hào)的同相輸入端,輸入放大器可用單端或差分驅(qū)動(dòng)。單端輸入時(shí),信號(hào)由耦合電容輸入,最大幅度為峰峰值32mV,耦合電容和本端的3kΩ輸入阻抗決定了芯片頻率的低端截止頻率。在差分驅(qū)動(dòng)時(shí),信號(hào)最大幅度為峰峰值16mV。
反相模擬輸入(ANA IN-)-差分驅(qū)動(dòng)時(shí),這是錄音信號(hào)的反相輸入端。信號(hào)通過(guò)耦合電容輸入,最大幅度為峰峰值16mV,本端的標(biāo)稱輸入阻抗為56kΩ,單端驅(qū)動(dòng)時(shí),本端通過(guò)電容接地。兩種方式下,ANA IN+和ANA IN-端的耦合電容值應(yīng)用相同。
音頻輸出(AUD OUT)-提供音頻輸出,可驅(qū)動(dòng)5kΩ的負(fù)載。
片選(SS)-此端為低,即選中ISD4004系列。
串行輸入(MOSI)-此為單行輸入端,主控制器應(yīng)在串行時(shí)鐘上升沿之前半個(gè)周期將數(shù)據(jù)放到本端,供ISD輸入。
圖3
串行輸出(MISO)ISD-串行輸出端,ISD未選中時(shí),本端呈高阻態(tài)。
串行時(shí)鐘(SCLK)-ISD的時(shí)鐘輸入端,由于控制器產(chǎn)生,用于同步MOSI和MISO的數(shù)據(jù)傳輸。數(shù)據(jù)在SCLK上升沿鎖存到ISD,在下降沿移出ISD。
中斷(INT)-本端為漏極開(kāi)路輸出,ISD在任何操作(包括快進(jìn))中檢測(cè)到EOM或OVF時(shí),本端變低并保持,中斷狀態(tài)在下一個(gè)SPI周期開(kāi)始清除,中斷狀態(tài)也可用RITN指令讀取。
行地址時(shí)鐘(RAC)-漏極開(kāi)始輸出。生個(gè)RAC周期表示ISD存儲(chǔ)器的操作進(jìn)行了一行(ISD4004系列中的存儲(chǔ)器有2400行)。8kHz采樣頻率的器件,RAC周期為200ms,其中175ms保持高電平,低電平為25ms??爝M(jìn)模式下,RAC為218.75μs高電平,31.25μs為低電平,該端可用于存儲(chǔ)管理技術(shù)。
外部時(shí)鐘(XCLK)-本端有內(nèi)部下拉元件,芯片內(nèi)部的采樣時(shí)鐘在出廠前已調(diào)校,誤差在+1%內(nèi),在不外接時(shí)鐘時(shí),此端必須接地。
自動(dòng)靜噪(AM CAP)-1μF電容構(gòu)成內(nèi)部峰值檢測(cè)電路的一部分,檢測(cè)出的峰值電平與內(nèi)部設(shè)定的閾值作比較,決定自動(dòng)靜噪電路的工作與否。大信號(hào)時(shí)自動(dòng)靜噪電路不衰減,靜音時(shí)衰減6dB。同時(shí),1μF電容也影響自動(dòng)靜噪電路時(shí)信號(hào)幅度的響應(yīng)速度,本端接VCCA則禁止自動(dòng)靜噪。
1.2 串行外部接口(SPI)
ISD4004工作于SPI串行接口。SPI協(xié)議是一個(gè)同步串行數(shù)據(jù)傳輸協(xié)議,協(xié)議假定微控制器的SPI移位寄存器在SCLK的下降沿動(dòng)作。因此,對(duì)ISD4004而言,在時(shí)鐘上升沿鎖存MOSI引腳數(shù)據(jù),在下降沿將數(shù)據(jù)送至MISO引腳。協(xié)議具體內(nèi)容如下。
①所有串行數(shù)據(jù)傳輸開(kāi)始于SS下降沿。
②SS在傳輸期間必須保持為低電平,在兩條指令之間保持為高電平。
③數(shù)據(jù)在時(shí)鐘上升沿移入,在下降沿移出。
④SS變低,輸入指令和地址后,ISD行才開(kāi)始錄放保持。
⑤指令格式是8位控制碼加16位地址碼。
圖5
⑥ISD的任何操作(含快進(jìn))如果遇到EOM或OVF,則產(chǎn)生一個(gè)中斷,該中斷狀態(tài)在下一個(gè)SPI周期開(kāi)始時(shí)被清除。
⑦使用“讀”指令會(huì)使中斷狀態(tài)位移出ISD的MISO引腳時(shí),控制及地址數(shù)據(jù)也同步從MOSI端移入。
⑧所有操作在運(yùn)行位(RUN)置1時(shí)開(kāi)始,置0時(shí)結(jié)束。
⑨所有指令都在SS端上升沿開(kāi)始執(zhí)行。
OVF標(biāo)志指示ISD錄放操作已到達(dá)存儲(chǔ)器的末尾。EOM標(biāo)志只有放音過(guò)程中檢測(cè)到內(nèi)部的EOM標(biāo)志時(shí),此狀態(tài)位置1,如圖3所示。
以下列舉了幾種對(duì)ISD器件進(jìn)行操作進(jìn)的批令次序。
圖6
*信息快進(jìn)。用戶不必知道確切的地址,就能快地跳過(guò)一條信息。信息快進(jìn)只用于放音模式。放音速度是正常的1600倍,遇到EOM后停止,內(nèi)部地址計(jì)數(shù)器加1,并接下條信息開(kāi)始處。
*上電順序。器件延時(shí)TPUD(8kHz)采樣時(shí),約25ms后才能開(kāi)始操作。因此,用戶發(fā)完上電指令后,必須等待TPUD,才能發(fā)出一條操作指令。例如從00處放音,應(yīng)遵循如下時(shí)序:發(fā)power up命令;等待TPUD(上電延時(shí));發(fā)地址值為00的SETPLAY命令;發(fā)PLAY命令。器件會(huì)從00地址開(kāi)始放音,當(dāng)出現(xiàn)EOM時(shí),立即中斷,停止放音。如果從00處錄音,則按以下時(shí)序:發(fā)power up命令;等待TPUD(上電延時(shí));發(fā)power up命令;等待2倍TPUD;發(fā)地址值為00的SETREC命令;發(fā)REC命令。器件便從00地址開(kāi)始錄音,一直到出現(xiàn)OVF(存儲(chǔ)器末尾),錄音停止。
1.3 時(shí)序
8位及24位命令格式如圖4和圖5所示。
錄音、放音、停止時(shí)序如圖6所示。
圖7
2 循環(huán)錄放電路的設(shè)計(jì)
該電路采用AT89C51單片機(jī),通過(guò)操作5個(gè)微型按扭開(kāi)關(guān)和一個(gè)微動(dòng)開(kāi)關(guān)實(shí)現(xiàn)功能轉(zhuǎn)換,操作命令由串行通信接口(SPI)送入。電路即可工作在順序模式,又可工作在循環(huán)模式。當(dāng)工作在循環(huán)模式。當(dāng)工作在循環(huán)模式的錄音狀態(tài)時(shí),ISD芯片將始 終記錄最后16min的語(yǔ)音信息,直至按下停止鍵。
2.1 硬件電路設(shè)計(jì)
電路原理圖如圖7所示,整個(gè)電路由單片機(jī)控制顯示電路、ISD4004語(yǔ)音錄放電路、話筒輸入電路、音頻功率放大電路幾部分構(gòu)成。ISD4004的片選信號(hào)SS由控制器P2.0提供。單片機(jī)AT89C51的串行口工作于同步移位寄存器方式,同步移位脈沖由TXD(P3.1)輸出至ISD4004的串行時(shí)鐘輸入端SCLK,數(shù)據(jù)由RXD(P3.0)輸入輸出。因AT89C51單片機(jī)不具備(SPI)接口,故這里通過(guò)三態(tài)門將RXD(P3.0)數(shù)據(jù)線復(fù)用。對(duì)單片機(jī)而言,發(fā)射時(shí)作為輸出,接至ISD4004的串行輸入端(MOSI);接收時(shí)作為輸入,接至ISD4004的串行輸出端(MISO)。電路中拔動(dòng)開(kāi)關(guān)Ks用于選擇啟用或取消循環(huán)錄音功能。
2.2 軟件設(shè)計(jì)
整個(gè)程序包括主程序和中斷子程序兩部分。AT89C51單片機(jī)提供了用戶鍵盤、顯示和ISD4004所需接口。它接收擊鍵功作,并將相應(yīng)指令傳給ISD4004,同時(shí)監(jiān)控ISD4004的中斷輸出。當(dāng)開(kāi)關(guān)KS閉合(KS=1)時(shí),讀取ISD4004的狀態(tài)寄存器,從而根據(jù)OVF和EOM的狀態(tài)進(jìn)行相應(yīng)的處理。當(dāng)OVF=1,即存儲(chǔ)器溢出時(shí),則不管當(dāng)前為何種狀態(tài)均將ISD4004的地址置零,并繼續(xù)運(yùn)行原指令;當(dāng)EOM=1時(shí),當(dāng)前狀態(tài)只可能為放音或快進(jìn),若為快進(jìn)則置為放音態(tài),并繼續(xù)運(yùn)行。如此設(shè)計(jì)便實(shí)現(xiàn)了循環(huán)錄放的功能,同時(shí)在快進(jìn)時(shí),自動(dòng)停止在下一個(gè)語(yǔ)音段開(kāi)始處,并繼續(xù)放音。
中斷程序流程圖如圖8所示。源程序清單見(jiàn)網(wǎng)站www.dpj.com.cn。
3 總體性能與功能擴(kuò)展
該電路正常工作時(shí)功耗為200mW,音量增大時(shí)功耗有所增加。整個(gè)電路工作穩(wěn)定、可靠,輸出的聲音清晰,音色優(yōu)美,主觀上聽(tīng)不到循環(huán)模式下將ISD地址置零所產(chǎn)生的間斷音。系統(tǒng)最大錄放時(shí)間為16min,如需增加錄放時(shí)間,只需增加ISD4004芯片數(shù)量,通過(guò)片選即可實(shí)現(xiàn)。例如,采用4片ISD4004,就能達(dá)到近一個(gè)小時(shí)的錄音長(zhǎng)度。