單片機(jī)控制下的ISD芯片內(nèi)容復(fù)制電路的解決方案
ISD2532的典型錄放電路見(jiàn)圖2,外圍電路包括:麥克風(fēng)、揚(yáng)聲器、開(kāi)關(guān)和少數(shù)電阻、電容,以及常用5V電源。其基本控制過(guò)程極為簡(jiǎn)單。首先將PD調(diào)為低電平,使芯片上電準(zhǔn)備工作,同時(shí)設(shè)置P/R電平(高電平為放音,低電平為錄音);然后輸入地址,制定錄放操作的起始地址;最后使CE為低電平,即在其下降沿啟動(dòng)放音操作,在低電平狀態(tài)啟動(dòng)錄音操作。一般情況下,放音操作自動(dòng)結(jié)束;當(dāng)PD或CE變?yōu)楦唠娖綍r(shí),即刻停止錄音操作。
ISD2532芯片可互斥工作于地址和模式兩種方式,這取決于地址引腳最高兩位的輸入狀態(tài)。當(dāng)最高兩位都為高電平時(shí),其余地址引腳就作為操作模式選擇端,芯片可按預(yù)設(shè)的多種模式進(jìn)行錄放,以便用最少的外圍器件實(shí)現(xiàn)最多的功能。否則,所有地址引腳的輸入均被解釋為地址位,用作當(dāng)前錄放操作的起始地址。由此可見(jiàn),ISD2532芯片中的9位地址最多只能提供384個(gè)地址。好在ISD器件中的E2PROM存儲(chǔ)空間不是按字節(jié)編址的,而是以行為基本單位進(jìn)行編址。ISD2532內(nèi)部的256K E2PROM存儲(chǔ)器被均勻地規(guī)劃為320行,從0開(kāi)始的每個(gè)地址指向其中的一行。ISD2532的錄放時(shí)間是32s,因此它的地址分辨率為100ms。
ISD器件可以進(jìn)行多段錄放操作,每段稱(chēng)為一個(gè)信息段,占用一行或多行存儲(chǔ)空間,其中存放音頻數(shù)據(jù)和一個(gè)結(jié)束標(biāo)志(EOM)。錄音及放音功能均從設(shè)定的起始地址開(kāi)始,錄音結(jié)束時(shí)芯片內(nèi)部自動(dòng)在該段的結(jié)束位置插入一個(gè)EOM標(biāo)志;而放音時(shí)遇到EOM標(biāo)志即自動(dòng)停止本段放音。
3 ISD2532芯片內(nèi)容復(fù)制的實(shí)現(xiàn)
和數(shù)字存儲(chǔ)器復(fù)制不同的是,ISD芯片中存儲(chǔ)的是連續(xù)變化的聲音模擬量,因而對(duì)于ISD芯片的內(nèi)容復(fù)制標(biāo)準(zhǔn)可放寬到只要求根據(jù)存儲(chǔ)信息回放的聲音信息聽(tīng)起來(lái)相同即可。鑒于此,在控制源芯片放音的同時(shí),讓目的芯片錄音可達(dá)到內(nèi)容復(fù)制的目的,參見(jiàn)圖3,在單片機(jī)控制下,向源芯片和目的芯片發(fā)出相同的起始地址,同時(shí)控制兩個(gè)芯片的錄放操作即可實(shí)現(xiàn)復(fù)制目標(biāo)。
由于ISD芯片可以指定起始地址進(jìn)行錄放,所以,內(nèi)容復(fù)制必須保證在相同的起始地址處,源芯片和新復(fù)制的芯片存儲(chǔ)有聽(tīng)起來(lái)相同的聲音信息。換句話說(shuō),復(fù)制過(guò)程必須保證兩芯片中存儲(chǔ)的信息段要實(shí)現(xiàn)地址對(duì)齊。因此,獲取源芯片中所有信息段的起始地址對(duì)于完成內(nèi)容復(fù)制任務(wù)是至關(guān)重要的。
3.1 源芯片地址信息獲取
ISD芯片的地址引腳只能作為輸入使用,因而在沒(méi)有專(zhuān)業(yè)開(kāi)發(fā)設(shè)備的情況下,其內(nèi)部信息段的起始地址無(wú)法直接讀出[2]。然而在一般情況下,為充分利用存儲(chǔ)空間,芯片中第一個(gè)信息段的起始地址為0,并且上一段信息結(jié)束后的下一個(gè)地址就是當(dāng)前段的起始地址。所以,對(duì)于ISD2532芯片,設(shè)第i信息段的起始地址為Add[i],并占Len[i]行存儲(chǔ)空間,則有:
這樣,要獲得Add[i]就必須知道Len[i]。由于已知ISD2532的地址分辨率是100ms,所以第i信息段的時(shí)間長(zhǎng)度應(yīng)介于(Len[i]-1)x 100ms和Len[i] x 100ms。在源芯片播放時(shí),通過(guò)捕捉其輸出的EOM信號(hào)可以獲知某個(gè)信息段的結(jié)束[2]。因此,通過(guò)對(duì)每個(gè)信息段的播放時(shí)間進(jìn)行計(jì)時(shí)可確定該信息段占用的存儲(chǔ)空間大小,從而可得每個(gè)信息段的起始地址。
評(píng)論