G.723標(biāo)準(zhǔn)數(shù)字錄音系統(tǒng)設(shè)計
3 系統(tǒng)控制軟件設(shè)計
ADSP21XX系列提供了一整套軟件開發(fā)工具及相應(yīng)的仿真器開發(fā)平臺,給系統(tǒng)的調(diào)試與仿真提供了極大的方便。軟件開發(fā)系統(tǒng)包括系統(tǒng)建造器、帶運(yùn)行時時間庫的C編譯器、匯編器、連接器、PROM劃分器等。通過編譯連接匯編源程序,可以生成EXE文件。此文件是存儲映像文件,可以加載到仿真器上進(jìn)行仿真;調(diào)試成功后,通過PROM劃分器和EPROM燒制設(shè)備可以寫入EPROM,系統(tǒng)復(fù)位時DSP加載EPROM程序便可自動運(yùn)行,控制整個系統(tǒng)的工作。系統(tǒng)軟件設(shè)計采用自舉和中斷控制兩種方式。自舉方式系統(tǒng)一上電,ADSP-2181讀取EPROM中的程序,自動運(yùn)行程序去控制整個系統(tǒng)工作。
中斷控制利用了ADSP-2181的兩個中斷,即sport0接收中斷和timer中斷。ADSP-2181的sport與AD73311相連。當(dāng)?shù)玫揭粋€采樣數(shù)據(jù)時,產(chǎn)生一個接收中斷,ADSP-2181讀取便得到采樣數(shù)據(jù)。由于sport0是全雙工的,當(dāng)產(chǎn)生接收中斷時,同時可以發(fā)送數(shù)據(jù),一方面在錄音時可以得到回放效果;另一方面則在播放時可直接發(fā)送數(shù)據(jù),而對采樣數(shù)據(jù)置之不理,這樣便于解碼數(shù)據(jù)以固定的碼率回放。Timer中斷定時檢測外部控制引腳狀態(tài),包括錄音、放音、快放及碼率轉(zhuǎn)換4個引腳,每個引腳的0/1狀態(tài)對應(yīng)兩種控制,即開始錄音/停止錄音、開始放音/停止放音、5.3kbps/6.3kbps碼率轉(zhuǎn)換及快放狀態(tài),共有七個狀態(tài)。 DSP匯編語言的結(jié)構(gòu)與ASM匯編語言類似,其開頭部分對應(yīng)中斷向量表。工作在中斷方式時,則向量表對應(yīng)中斷處一般為一條跳轉(zhuǎn)語句;產(chǎn)生中斷時,則跳到相應(yīng)語句執(zhí)行中斷控制功能。主程序的中斷設(shè)置部分如下: JUMP start;NOP;NOP;NOP; {reset start interrupt} RTI;NOP;NOP;NOP; {IRQ2} RTI;NOP;NOP;NOP; {IRQL1} RTI;NOP;NOP;NOP; {sport0 transmit} JUMP sportReceive;NOP;NOP;NOP; {sport0 receive} RTI;NOP;NOP;NOP; {IRQE} RTI;NOP;NOP;NOP; {BDMA} RTI;NOP;NOP;NOP; {sport1 transmit} RTI;NOP;NOP;NOP; {sport1 receive} JUMP settimer;NOP;NOP;NOP; {timer interrupt} RTI;NOP;NOP;NOP; {PowerDown} sporto和timer中斷控制說明如下: (1)sporto接收數(shù)據(jù)中斷在程序中,數(shù)據(jù)處理集中在此進(jìn)行。主要過程是:在錄音時,每收到240個采樣數(shù)據(jù),就進(jìn)行G.723編碼,將編碼結(jié)果保存到閃速存儲器中;在播放時,每次讀取24個數(shù)據(jù),將讀取的數(shù)據(jù)進(jìn)行解碼,再通過串行口發(fā)送出去,經(jīng)揚(yáng)聲器還原成語音信號。其流程如圖6所示。(2)timer中斷 timer中斷用來檢測用戶的控制信息及顯示運(yùn)行時間信息。用戶控制有4個,即碼率選擇、錄音控制、放音控制及快退控制。對應(yīng)這4個控制引腳,初始設(shè)定為輸入態(tài),然后通過檢測各個引腳的電平設(shè)定工作態(tài)。其流程如圖7所示。
4 系統(tǒng)調(diào)試
系統(tǒng)調(diào)試要使用AD公司提供的ADSP21XX系列的整套軟件開發(fā)工具和仿真器。筆者使用ADSP-2181-EZ-ICE仿真器進(jìn)行調(diào)試。仿真器上自帶33MHz的2181,調(diào)試支持20個斷點(diǎn),可單步、設(shè)斷點(diǎn)和全速運(yùn)行,可隨時觀察和修改寄存器和存儲單元的值。仿真器上提供了一個14針的仿真接口,仿真器通過此接口仿真控制目標(biāo)系統(tǒng)。仿真器與計算機(jī)間有一個RS-232接口,通過數(shù)據(jù)進(jìn)行連到計算機(jī)的串行口上,在仿真器開發(fā)平臺上就可以進(jìn)行軟件調(diào)試。系統(tǒng)調(diào)試時遇到的主要問題是存儲器讀寫及LCD的顯示問題。開始時發(fā)現(xiàn)寫進(jìn)閃速存儲器的數(shù)據(jù)與讀出的數(shù)據(jù)不符。經(jīng)仔細(xì)分析,發(fā)現(xiàn)是由于沒有嚴(yán)格按照閃速存儲器的讀寫操作時序進(jìn)行編程,或是延遲量不夠,或是兩個信號的先后次序弄反了,數(shù)據(jù)可能根本沒有寫進(jìn)去,讀出的數(shù)據(jù)當(dāng)然是錯的。在嚴(yán)格按照其說明書的時序進(jìn)行編程控制后,數(shù)據(jù)的讀寫擦除操作完全正常。在播放錄音數(shù)據(jù)時,曾出現(xiàn)聲音跳變不連續(xù)的問題,經(jīng)分析發(fā)現(xiàn)原因在于地址定位時出錯。因為對閃速存儲器擔(dān)任時每次讀寫都是一幀數(shù)據(jù),而編解碼時一次操作的數(shù)據(jù)為20/24個字節(jié),兩者長度不一樣,需要進(jìn)行轉(zhuǎn)換操作。
本系統(tǒng)中ADSP-2181處理器的機(jī)器周期為30ns,經(jīng)設(shè)定最大的等待周期為7機(jī)器周期后也才有240ns,而LCD的工作使能脈寬至少要300ns。因此在硬件上增加了一單穩(wěn)延遲電路,這樣便解決了此問題。
p2p機(jī)相關(guān)文章:p2p原理
評論