《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 业界动态 > 用TMS320C54x DSKplus Board构建声回波对消器

用TMS320C54x DSKplus Board构建声回波对消器

2009-04-29
作者:王春霞 谭 凯 王永德

  摘  要: 介绍了TMS320C54x DSKplus Board的基本结构和硬件特点,并以DSKplus Board构建声回波对消器为例,介绍了DSKplus Board的硬件接口扩展技术。

  关键词: DSP  TMS320C54x  DSKplus  Board  声回波对消器

 

  TMS320C54x DSKplus Board(DSK)是一种成本低、性能好的DSP入门套件。采用简便直观的代数语言编程,使初学者能迅速入门;同时,由于硬件上可以使用扩展板扩展存储空间及外部设备,也为广大的教师、科研工作者、工程技术人员学习及应用DSP提供了极大的方便。本文介绍以DSKplus Board构建的声回波对消器。该声回波对消器采用先进的自适应辨识算法,即通过对声回授通道的冲击响应的辨识,产生出同回声相似的信号,再从近端话音和回声中减去回声信号以达到回声对消的目的。声回波对消器需要两路A/D输入通道,由于DSK只有一路A/D输入通道,所以需要对其进行硬件上的扩展。在这里我们自行设计了另一路A/D输入通道,并利用DSK上的扩展口,非常方便地完成了硬件设计。经软、硬件调试通过后,工作正常。

1 TMS320C54x系列DSP简介

  TI公司于1996年推出的TMS320C54x系列DSP是新一代的定点数字信号处理器。它采用先进的修正型哈佛结构,片内共有8条总线(1条程序存储器总线、3条数据存储器总线和4条地址总线)以及CPU、在片存储器和在片外围电路等硬件,并有一套高度专业化的指令系统。TMS320C54x DSKplus Board是一种成本较低、性能优秀的DSP入门套件。它具有一个独立的应用板,通过主机并口连接在用户PC上,可以检查TMS320 C54x CPU的结构、运行情况及其外部设备。同时,还有一个基于Windows的调试器,能逐条分析代码,并在相应的窗口实时显示DSP内部寄存器的信息。

2 自适应声回波对消器原理

  自适应声回波对消器原理图见图1。远端话音经由未知的LRM(Louderspeaker-Room-Microphone)系统构成的声回授通道产生回声,回声又连同近端话音一起被传输到远端。在一个闭环系统中,可能会产生回声、啸叫等严重影响通话质量的现象。其回声对消的原理是:通过对未知LRM系统冲击响应的辨识,产生出一个同回声相同的信号,在近端话音及回声的混合信号传向远端之前从中减掉回声。自适应声回波对消器需要有两路A/D输入信号和一路D/A输出信号。TMS320C54x DSKplus Board上已有一路A/D输入通道及D/A输出通道,所以,只需在此基础上扩展一路A/D输入通道。

 

3 扩展DSK话音数据采集通道

  DSKplus Board上的AC01模拟接口电路可以完成单通道的话音信号的数据采样,它具有以下特性:单片A/D和D/A转换器,14bit量化;内置式可编程反混迭滤波器;软件可编程取样率;软件可编程复位、增益、低功耗模式;可主从配置级联操作。它具有三种基本操作模式:单独应用模式;主从模式;线性编/译码模式。在DSKplus Board上,AC01接口直接与C542 TDM串口连接,它产生所需的移位时钟脉冲SCLK和帧同步信号脉冲FS,以便输入输出数据。这些脉冲由软件可编程存储器和AC01主时钟共同决定,主时钟由板上的振荡器产生,频率为10MHz。为了快速便地的扩展一个话音采集通道,可应用AC01的主-从工作模式,增加一个小型AC01电路板即可。增加的AC01主要连接如图2所示。DSKplus Board上的AC01作为主(Master)通道,扩展板上的另一个AC01作为从(Slave)通道。

 

  注意:主AC01的FSD输出作为从AC01的FS信号,这样主从通道就能轮流地连续地对两路不同的话音信号进行采样了。

  硬件电路完成后,再按设计要求对主从模式的两个AC01进行软件初始化。AC01具有九个可编程的内部寄存器,可通过修改这九个内部寄存器的内容来完成其配置。寄存器具体定义可参见文献[2]。现介绍几个重要的寄存器:

  ·寄存器1,A寄存器,其内容决定帧同步时钟和低通滤波器的-3dB截止频率

  FCLK频率=主时钟频率/(A寄存器内容×2)

  低通滤波器的-3dB截止频率flp=FCLK/40

  ·寄存器2,B寄存器,其内容决定采样频率和高通滤波器的-3dB截止频率:

  采样频率=FCLK/B寄存器内容

  高通滤波器的-3dB截止频率fhp=采样频率/200

  ·寄存器7,帧同步延迟寄存器,其内容决定从AC01的帧同步信号相对于主AC01的延迟时间。

如果用AC01的主从模式,则要求寄存器7为最后一个初始化的寄存器,最小值18。

  ·寄存器8,帧同步个数寄存器,其内容决定系统中有多少个AC01,个数为从AC01的个数加1。

在声回波对消的应用中,要求主从通道均采用9kHz采样频率,通带为300Hz~3.4kHz(其中高通滤波器的-3dB截止频率由外部接口电路决定),两个通道轮流由TDM串口向DSP产生中断。相应的寄存器内容见源程序中的REG1~REG8,设计出的实际参数为:

  采样频率:7.95kHz

  低通滤波器的-3dB截止频率flp=3.37kHz

  高通滤波器的-3dB截止频率fhp=40Hz

  初始化AC01的源程序如下:

  REGISTER.set 0cbH            ;设定需要修改的寄存器号,Bit0~Bit7分别对应REG1~REG8,

                 1表示要修改;0表示不修改,用上电的缺省值

  REG1 .set 125H               ;A寄存器,内容为37

  REG2 .set 211H               ;B寄存器,内容为17

  REG3 .set 300H

  REG4 .set 409H

  REG5 .set 501H

  REG6 .set 600H

  REG7 .set 722H             ;帧同步延迟寄存器

  REG8 .set 802H             ;帧同步个数寄存器,在本应用中为一主一从

AC01INIT:

            xf=0               ;复位ac01

            intm=1             ;禁止所有中断

             tcr=#10H           ;定时器停止

             imr=#280H          ;当TDM发送时,从休眠状态启动

             tspc=#0008H        ;暂停TDM串口

             tdxr=#0H           ;发送0作为第一个数

             tspc=#00c8H        ;复位并打开TDM串口

             xf=1               ;从复位状态释放AC01

;……………………Register init's……………………

              .evalREGISTER & 1H,SELECT

                               ;如果要修改REG1,则执行下列程序

              .if SELECT=1H

              a=#REG1          ;用REG1的值加载累加器A

              call REQ2        ;调用REQ2子程序初始化寄存器值

              .endif

              .eval REGISTER & 2H,SELECT

                               ;如果要修改REG2,则执行下列程序

              .if SELECT=2H

              a=#REG2

              call REQ2

              .endif 

              .eval REGISTER & 4H,SELECT 

                              ;如果要修改REG3,则执行下列程序

              .if SELECT=4H

              a=#REG3

              call REQ2

              .endif 

              .eval REGISTER & 8H,SELECT 

                              ;如果要修改REG4,则执行下列程序

              .if SELECT=8H

              a=#REG4

              call REQ2

              .endif

              .eval REGISTER & 10H,SELECT

                           ;如果要修改REG5,则执行下列程序

              .if SELECT=10H

              a=#REG5

       call REQ2

       .endif 

       .eval REGISTER & 20H,SELECT 

                          ;如果要修改REG6,则执行下列程序

       .if SELECT=20H

       a=#REG6

       call REQ2

       .endif

       .eval REGISTER & 80H,SELECT

                         ;如果要修改REG8,则执行下列程序

       .if SELECT=80H

       a=#REG8

       call REQ2

       .endif

       .eval REGISTER & 40H,SELECT

                        ;如果要修改REG7,则执行下列程序

       .if SELECT=40H

       a=#REG7

       call REQ2

       .endif

       return

REQ2

       ifr=#080H        ;清除中断标志寄存器IFR

       tdxr=#03H        ;请求AC01的二次通讯

       idle(1)          ;等待第一次发送

       tdxr=a           ;把寄存器内容送到串口

       ifr=#080H        ;清除中断标志寄存器IFR

       idle(1)          ;等待二次发送

       tdxr=#0H

       ifr=#080H        ;清除中断标志寄存器

       idle(1)

           return       ;中断返回

  在自适应声回波对消的主程序中,当有AC01中断时,中断服务程序首先判断数据是从哪一个通道送来的,主通道还是从通道?可通过接收数据的最低两位D01 D00检测出来。若LSBS是00,表明是主通道传来的数据,程序转向主通道的中断服务程序。若LSBS是01,表明是从通道传来的数据,程序转向从通道的中断服务程序。

  以上硬件电路已经成功地应用于实时声回波对消器中。当然,最终的产品应该是独立的脱机系统。但在研发初期,与从头设计一个DSP系统相比,扩展DSKplus Board的接口功能,为科研人员节省了大量的时间,也避免了由于开发初期考虑不周,造成反复设计DSP系统的巨大浪费,使科研人员能把主要的精力投入到需要创新、需要反复验证的关键步骤。由此看来,价廉且性能佳的DSK不仅能作为初学者入门的良好套件,也是科研人员加快初期研发工作进度的有力工具。

 

参考文献

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)

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。