摘? 要: 介紹了TMS320C54x DSKplus Board的基本結(jié)構(gòu)和硬件特點(diǎn),并以DSKplus Board構(gòu)建聲回波對消器為例,介紹了DSKplus Board的硬件接口擴(kuò)展技術(shù)。
關(guān)鍵詞: DSP? TMS320C54x? DSKplus? Board? 聲回波對消器
?
TMS320C54x DSKplus Board(DSK)是一種成本低、性能好的DSP入門套件。采用簡便直觀的代數(shù)語言編程,使初學(xué)者能迅速入門;同時,由于硬件上可以使用擴(kuò)展板擴(kuò)展存儲空間及外部設(shè)備,也為廣大的教師、科研工作者、工程技術(shù)人員學(xué)習(xí)及應(yīng)用DSP提供了極大的方便。本文介紹以DSKplus Board構(gòu)建的聲回波對消器。該聲回波對消器采用先進(jìn)的自適應(yīng)辨識算法,即通過對聲回授通道的沖擊響應(yīng)的辨識,產(chǎn)生出同回聲相似的信號,再從近端話音和回聲中減去回聲信號以達(dá)到回聲對消的目的。聲回波對消器需要兩路A/D輸入通道,由于DSK只有一路A/D輸入通道,所以需要對其進(jìn)行硬件上的擴(kuò)展。在這里我們自行設(shè)計了另一路A/D輸入通道,并利用DSK上的擴(kuò)展口,非常方便地完成了硬件設(shè)計。經(jīng)軟、硬件調(diào)試通過后,工作正常。
1 TMS320C54x系列DSP簡介
TI公司于1996年推出的TMS320C54x系列DSP是新一代的定點(diǎn)數(shù)字信號處理器。它采用先進(jìn)的修正型哈佛結(jié)構(gòu),片內(nèi)共有8條總線(1條程序存儲器總線、3條數(shù)據(jù)存儲器總線和4條地址總線)以及CPU、在片存儲器和在片外圍電路等硬件,并有一套高度專業(yè)化的指令系統(tǒng)。TMS320C54x DSKplus Board是一種成本較低、性能優(yōu)秀的DSP入門套件。它具有一個獨(dú)立的應(yīng)用板,通過主機(jī)并口連接在用戶PC上,可以檢查TMS320 C54x CPU的結(jié)構(gòu)、運(yùn)行情況及其外部設(shè)備。同時,還有一個基于Windows的調(diào)試器,能逐條分析代碼,并在相應(yīng)的窗口實時顯示DSP內(nèi)部寄存器的信息。
2 自適應(yīng)聲回波對消器原理
自適應(yīng)聲回波對消器原理圖見圖1。遠(yuǎn)端話音經(jīng)由未知的LRM(Louderspeaker-Room-Microphone)系統(tǒng)構(gòu)成的聲回授通道產(chǎn)生回聲,回聲又連同近端話音一起被傳輸?shù)竭h(yuǎn)端。在一個閉環(huán)系統(tǒng)中,可能會產(chǎn)生回聲、嘯叫等嚴(yán)重影響通話質(zhì)量的現(xiàn)象。其回聲對消的原理是:通過對未知LRM系統(tǒng)沖擊響應(yīng)的辨識,產(chǎn)生出一個同回聲相同的信號,在近端話音及回聲的混合信號傳向遠(yuǎn)端之前從中減掉回聲。自適應(yīng)聲回波對消器需要有兩路A/D輸入信號和一路D/A輸出信號。TMS320C54x DSKplus Board上已有一路A/D輸入通道及D/A輸出通道,所以,只需在此基礎(chǔ)上擴(kuò)展一路A/D輸入通道。
?
3 擴(kuò)展DSK話音數(shù)據(jù)采集通道
DSKplus Board上的AC01模擬接口電路可以完成單通道的話音信號的數(shù)據(jù)采樣,它具有以下特性:單片A/D和D/A轉(zhuǎn)換器,14bit量化;內(nèi)置式可編程反混迭濾波器;軟件可編程取樣率;軟件可編程復(fù)位、增益、低功耗模式;可主從配置級聯(lián)操作。它具有三種基本操作模式:單獨(dú)應(yīng)用模式;主從模式;線性編/譯碼模式。在DSKplus Board上,AC01接口直接與C542 TDM串口連接,它產(chǎn)生所需的移位時鐘脈沖SCLK和幀同步信號脈沖FS,以便輸入輸出數(shù)據(jù)。這些脈沖由軟件可編程存儲器和AC01主時鐘共同決定,主時鐘由板上的振蕩器產(chǎn)生,頻率為10MHz。為了快速便地的擴(kuò)展一個話音采集通道,可應(yīng)用AC01的主-從工作模式,增加一個小型AC01電路板即可。增加的AC01主要連接如圖2所示。DSKplus Board上的AC01作為主(Master)通道,擴(kuò)展板上的另一個AC01作為從(Slave)通道。
?
注意:主AC01的FSD輸出作為從AC01的FS信號,這樣主從通道就能輪流地連續(xù)地對兩路不同的話音信號進(jìn)行采樣了。
硬件電路完成后,再按設(shè)計要求對主從模式的兩個AC01進(jìn)行軟件初始化。AC01具有九個可編程的內(nèi)部寄存器,可通過修改這九個內(nèi)部寄存器的內(nèi)容來完成其配置。寄存器具體定義可參見文獻(xiàn)[2]。現(xiàn)介紹幾個重要的寄存器:
·寄存器1,A寄存器,其內(nèi)容決定幀同步時鐘和低通濾波器的-3dB截止頻率:
FCLK頻率=主時鐘頻率/(A寄存器內(nèi)容×2)
低通濾波器的-3dB截止頻率flp=FCLK/40
·寄存器2,B寄存器,其內(nèi)容決定采樣頻率和高通濾波器的-3dB截止頻率:
采樣頻率=FCLK/B寄存器內(nèi)容
高通濾波器的-3dB截止頻率fhp=采樣頻率/200
·寄存器7,幀同步延遲寄存器,其內(nèi)容決定從AC01的幀同步信號相對于主AC01的延遲時間。
如果用AC01的主從模式,則要求寄存器7為最后一個初始化的寄存器,最小值18。
·寄存器8,幀同步個數(shù)寄存器,其內(nèi)容決定系統(tǒng)中有多少個AC01,個數(shù)為從AC01的個數(shù)加1。
在聲回波對消的應(yīng)用中,要求主從通道均采用9kHz采樣頻率,通帶為300Hz~3.4kHz(其中高通濾波器的-3dB截止頻率由外部接口電路決定),兩個通道輪流由TDM串口向DSP產(chǎn)生中斷。相應(yīng)的寄存器內(nèi)容見源程序中的REG1~REG8,設(shè)計出的實際參數(shù)為:
采樣頻率:7.95kHz
低通濾波器的-3dB截止頻率flp=3.37kHz
高通濾波器的-3dB截止頻率fhp=40Hz
初始化AC01的源程序如下:
REGISTER.set 0cbH??????????? ;設(shè)定需要修改的寄存器號,Bit0~Bit7分別對應(yīng)REG1~REG8,
1表示要修改;0表示不修改,用上電的缺省值
REG1 .set 125H?????????????? ;A寄存器,內(nèi)容為37
REG2 .set 211H?????????????? ;B寄存器,內(nèi)容為17
REG3 .set 300H
REG4 .set 409H
REG5 .set 501H
REG6 .set 600H
REG7 .set 722H??????? ???? ;幀同步延遲寄存器
REG8 .set 802H????? ?????? ;幀同步個數(shù)寄存器,在本應(yīng)用中為一主一從
AC01INIT:
? ????????? xf=0?????????????? ;復(fù)位ac01
??? ??????? intm=1???????????? ;禁止所有中斷
? ?????????? tcr=#10H???????? ? ;定時器停止
???????????? imr=#280H????????? ;當(dāng)TDM發(fā)送時,從休眠狀態(tài)啟動
???????????? tspc=#0008H??????? ;暫停TDM串口
???????????? tdxr=#0H??????? ?? ;發(fā)送0作為第一個數(shù)
???????????? tspc=#00c8H??????? ;復(fù)位并打開TDM串口
???????????? xf=1?????????????? ;從復(fù)位狀態(tài)釋放AC01
;……………………Register init's……………………
????????????? .evalREGISTER & 1H,SELECT
????????????????????? ???????? ;如果要修改REG1,則執(zhí)行下列程序
????????????? .if SELECT=1H
????????????? a=#REG1? ??????? ;用REG1的值加載累加器A
????????????? call REQ2??????? ;調(diào)用REQ2子程序初始化寄存器值
????????????? .endif
????????????? .eval REGISTER & 2H,SELECT
?????????????????????????????? ;如果要修改REG2,則執(zhí)行下列程序
????????????? .if SELECT=2H
????????????? a=#REG2
????????????? call REQ2
????????????? .endif?
????????????? .eval REGISTER & 4H,SELECT?
????????????????????????? ??? ;如果要修改REG3,則執(zhí)行下列程序
????????????? .if SELECT=4H
????????????? a=#REG3
????????????? call REQ2
????????????? .endif?
????????????? .eval REGISTER & 8H,SELECT?
????????????????????????????? ;如果要修改REG4,則執(zhí)行下列程序
????????????? .if SELECT=8H
????????????? a=#REG4
????????????? call REQ2
????????????? .endif
????????????? .eval REGISTER & 10H,SELECT
?????????????????????????? ;如果要修改REG5,則執(zhí)行下列程序
????????????? .if SELECT=10H
????????????? a=#REG5
?????? call REQ2
?????? .endif?
?????? .eval REGISTER & 20H,SELECT?
????????????????????????? ;如果要修改REG6,則執(zhí)行下列程序
?????? .if SELECT=20H
?????? a=#REG6
?????? call REQ2
?????? .endif
?????? .eval REGISTER & 80H,SELECT
???????????????????????? ;如果要修改REG8,則執(zhí)行下列程序
?????? .if SELECT=80H
?????? a=#REG8
?????? call REQ2
?????? .endif
?????? .eval REGISTER & 40H,SELECT
??????????????????????? ;如果要修改REG7,則執(zhí)行下列程序
?????? .if SELECT=40H
?????? a=#REG7
?????? call REQ2
?????? .endif
?????? return
REQ2
?????? ifr=#080H????????;清除中斷標(biāo)志寄存器IFR
?????? tdxr=#03H????????;請求AC01的二次通訊
?????? idle(1)??????????;等待第一次發(fā)送
?????? tdxr=a???????????;把寄存器內(nèi)容送到串口
?????? ifr=#080H????????;清除中斷標(biāo)志寄存器IFR
?????? idle(1)??????????;等待二次發(fā)送
?????? tdxr=#0H
?????? ifr=#080H????????;清除中斷標(biāo)志寄存器
?????? idle(1)
?????????? return?????? ;中斷返回
在自適應(yīng)聲回波對消的主程序中,當(dāng)有AC01中斷時,中斷服務(wù)程序首先判斷數(shù)據(jù)是從哪一個通道送來的,主通道還是從通道?可通過接收數(shù)據(jù)的最低兩位D01 D00檢測出來。若LSBS是00,表明是主通道傳來的數(shù)據(jù),程序轉(zhuǎn)向主通道的中斷服務(wù)程序。若LSBS是01,表明是從通道傳來的數(shù)據(jù),程序轉(zhuǎn)向從通道的中斷服務(wù)程序。
以上硬件電路已經(jīng)成功地應(yīng)用于實時聲回波對消器中。當(dāng)然,最終的產(chǎn)品應(yīng)該是獨(dú)立的脫機(jī)系統(tǒng)。但在研發(fā)初期,與從頭設(shè)計一個DSP系統(tǒng)相比,擴(kuò)展DSKplus Board的接口功能,為科研人員節(jié)省了大量的時間,也避免了由于開發(fā)初期考慮不周,造成反復(fù)設(shè)計DSP系統(tǒng)的巨大浪費(fèi),使科研人員能把主要的精力投入到需要創(chuàng)新、需要反復(fù)驗證的關(guān)鍵步驟。由此看來,價廉且性能佳的DSK不僅能作為初學(xué)者入門的良好套件,也是科研人員加快初期研發(fā)工作進(jìn)度的有力工具。
?
參考文獻(xiàn)
1 TMS320C54x DSKplus DSP Starter Kit User’s Guide. TI,1996
2 TLC320AC01C Single-Supply Analog Interface Circuit Data Manual.TI,1996
3 TMS320C54x DSP Algebraic Instruction Set Reference Set.TI,1996
4 B.Farhang-Boroujeny.Fast LMS/Newton algorithms based on autoregresive modeling and their application to acoustic echo cancellation.IEEE Trans.Signal Processing,1997;45(8)