基于TMS320C6201的多通道信号处理平台

2006-05-07 15:50:06来源: 电子技术应用

它包括输入/输出接口、并行的C6201芯片组、SDRAM、PCI总线控制和主机等五部分,每一片C6201可看作一个多通道处理子系统。输入/输出接口负责多路数据的A/D和D/A,并且有一定的复用和解复用能力;C6201用于信号处理和数据的接收/发送(至输入/输出接口);SDRAM存放接收/输出的数据和通道上下文相关数据;PCI总线控制主机与C6201芯片组的通信;主机负责获取处理后的数据以及发送其本身采集的数据。

    当处理程序目标代码小时,可选用Boot方式将程序全部装入片内;而当代码太长时,可选用cache模式,将片内程序空间设为cache,程序放在片外的SDRAM或其它外设中。运行时程序根据CPU需要部分装入。在使用cache工作方式时,CPU的工作效率约为90%。

    输入的数据先经解复用,然后分别发给C6201。C6201通过DMA通道自动接收数据,并且将数据存放在SDRAM中。在接收的同时DMA也将数据输出到输入/输出接口。当一帧数据接收完毕,外部缓存DMA产生一个中断信号,通知C6201、C6201在接收到中断信号后,更新其设置,即切换输入数据的目标地址和输出数据的源地址。与此同时,C6201也启动信号处理模块,对接收的数据通道逐个地进行处理。当然,在处理前需将该通道上下文相关数据从片外SDRAM搬移进片内,处理完后再将其搬移出去。在处理当前通道时,DMA还将同时将下一通道的上下文相关数据搬移进来。如此循环,直至所有通道都处理完毕。

    SDRAM存放接收和发送数据至少需要分配两个段,一个段用于当前外部缓存DMA使用,一个段用于内部搬移DMA使用。

    主机通过PCI总线对C6201芯片组的HPI进行访问,其访问方式设为DMA方式。之所以采用PCI总线是为了保证高速的数据传输。作为PCI总线和HPI桥梁的总线控制器可以有很多选择,以S5933为例,由于S5933与串行EEPROM可无缝连接,所以其初始化可在上电时由EEPROM自动载入。它有五个基址寄存器,它们可分别服务于PCI控制器的寄存器、JTAG测试总线控制器、平台的控制和状态寄存器以及C6201的HPI。PCI总线上的数据可通过S5933的mailbox寄存器、FIFO或直通数据通道等多种方式灵活地与平台实现数据的交换,为基于主机的调试提供了良好的硬件基础。

    通过对整个系统的工作原理的描述中可以看出,在信号处理算法的运算速度得到保证后,整个系统的瓶颈将是C6201的DMA资源。在硬件开销允许的情况下,使用快速的外设会提高系统的性能。

3 平台的软件设计

    根据上面介绍的硬件结构,可以根据不同的需要设计相应的系统软件,以下仅介绍一种可靠性较高的软件结构。

    鉴于TMS320C6201的高速运算能力,所以在每块芯片内部均采用线性结构,依照某种顺序依次处理各通道的信号。芯片内部的数据RAM分割出两块空间当作处理信号缓存,即用作ping-pong缓存,一块用作当前处理,一块用于后台数据搬移。处理后的数据可视占用RAM的大小,适当地安排在片内或片外,便于HPI访问。

    整个软件采用中断同步式控制,利用输入信号所产生的中断来触发信号处理模块的运行,中断信号可以是一帧信号的结束(或开始)。其结构如图2,系统在进行完初始化后,立即进入同步信号等待。当检测到中断信号后,表明一帧信号接收的结束,首先关闭中断,随后进行外部存储的DMA通道设置的更新,切换输入信号的缓存。然后,检测控制内部数据搬进的DMA状态,如果搬移完成,更新DMA设置,即切换处理信号的ping-pong缓存,通知存储器接口控制单元开始搬移下一路信号的数据。如果当前处理的是最后一个通道,则内部数据搬进DMA设置为下一帧第一通道。接着进行信号处理模块,在当前通道信号处理完成后,首先设置内部数据搬出DMA,将当前通道的上下文相关数据搬移到外部存储器中保存,然后再检测是否所有通道处理结束。若没有,则跳回内部数据DMA状态检测;若结束,则进行系统状态的更新。系统状态更新完成后,打开中断,进入中断信号等待。

    这样的结构看来不够灵活,而且仅用到了一个中断资源,似乎是大材小用了,为什么不增加DSP对外界的响应且一直打开中断呢?实际上这是有一定道理的。之所以将HPI的访问方式设置为DMA方式,而只使用一个外部中断。完全是为了让DSP将主要时间花在信号处理上,且尽可能地减少DSP被频繁的数据输入输出打断。其原因有四点:第一,为加快信号处理算法的速度,尽可能地对循环进行流水线规划,CPU运行至下次时,由于跳转指令的频繁出现,根本无法相应中断;当循环次数较大时,无法保证中断的及时响应。第二,如果将循环改为可中断式的,势必造成寄存器资源使用过大,代码的效率也将大幅度下降。第三,汇编语言编写的程序大多都在不同程度对CPU的流水线时序有要求,即寄存器对流水线时序敏感。若任意时间均要响应中断的话,必将造成软件产生不可预测的错误,出现混乱。第四,由于汇编语言编写的程序代码效率一般比优化后的C语言高50%,所以为提高运算速度,核心算法都用汇编语言编写,一些寄存器的值都与C语言模块中的不同[2],如B14(DP)、A15(FP);而高层调用和中断服务程序一般都用C语言编写,如果在任意时刻响应中断,很容易造成C语言中断服务程序的变量无法正确访问,出现致命错误。综上所述,中断同步式结构稳健性更强。

    在多通道处理中还应注意一个问题,即全局指针的重定向3。因为高层调用用C编写,以及通道数不确定等因素,一般情况下,很难保证同一通道的上下文相关数据每次均被放在同样的内存位置上,因而上一帧时保存的全局指针变量的数值对当前帧不一定适用,所以对全局指针的重定向是必要的。

    以上分析了C6201芯片组的工作方式,而主机与它们的通信是通过HPI对C6201存储器访问来完成的。在C6201片内RAM开出一段数据空间作为系统信息区,当C6201完成了一次多通道处理后,便在系统信息区中设置帧处理结束标志,并将处理后数据的存放地址和主机下载数据的存放地址写入系统信息区的相应位置。主机通过对各个C6201系统信息区的访问了解其工作状况,当发现某一块DSP一帧处理完成后,立即清除帧处理结束标志,并从系统信息区中给出的处理后数据的存放地址读取数据到硬盘(或其他设备)进行存储(或处理),而且将待处理的数据搬移至主机下载数据的存放地址,以便C6201下一帧处理使用。当然,主机除了数据搬移和控制功能外,还可根据实际的运算能力和工作负荷,再增添一些功能。

4 展望

    Radysis、Bluewave等公司基于C6000系列的多通道处理设备采用了与上述平台相似的结构。以VOIP的网关为例,本地电话的语音信号先传送到交换局,局内的复用设备(对应平台的输入/输出接口)根据C6201的处理能力分配相应的话路。C6201对原始语音信号进行压缩,压缩后的数据通过主机读取到网络处理区,交给网络处理设备进行打包处理,最后以IP方式传送到目的端。另一方面,网络处理设备拆包后的压缩码流通过主机传送到C6201控制的局部存储区中,经解压后由DMA发送至复用设备,最终由交换局送至本地电话。

    除了VOIP的智能网关和Modem Pool外,多通道处理的概念还可以延伸至雷达处理、多路数据采集、多路图象监控4等更为广泛的领域中。在多媒体和因特网技术日新月异的今天,基于相同类型信号的多通道处理可进一步拓展为基于不同类型信号的多通道处理,因而研究多通道信号处理平台有着很大的实际意义,它将成为新一代智能化多媒体终端的雏形。

编辑: 引用地址:http://www.eeworld.com.cn/designarticles/network/200605/2990.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved