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