基于TMS320C6000的DSP扩展总线接口设计
扫描二维码
随时随地手机看文章
摘要 设计了一种基于TI公司TMS320C6000系列DSP的扩展总线接口。介绍了C6000 DSP的扩展接口组成及其工作模式,给出了一种两片DSP之间利用扩展总线进行数据传输的电路设计方案,以及软件流程框图。该接口电路设计和软件实现简单,工作在异步L/O模式下,传输速率可达3.2 Gbit·s-1,可显著提高DSP的数据吞吐量。
关键词 TMS320C6000;DSP;扩展总线;接口设计
随着DSP性能的提高和成本的大幅下降,DSP应用范围不断扩大,包括雷达信号处理、通信信号处理、语音识别和自动控制等领域。在这些应用领域内,大运算量和高吞吐量的需求对DSP的工作时钟和外设接口的速率提出了更高的要求。为此,各DSP厂家都提供了大量的外设接口,以满足用户对接口的需求。文中针对TI公司的TMS320C6000系列DSP介绍了其扩展总线的接口设计。介绍了扩展总线基本组成及其工作模式,给出了一种扩展总线的接口设计电路和软件设计流程。
1 TMS320C6000扩展总线简介
TMS320C6000系列DSP最高可以单周期执行8条32位指令,内核CPU包括两个32位通用寄存器组A和寄存器组B,8个功能单元。C6000系列DSP的主要外设接口包括DMA控制器、EDMA控制器(C64x)、主机口(HPI)、扩展总线接口(XBUS)、外部存储器接口(EMIF)、多通道缓冲串口(McBSP)和定时器等。
其中扩展总线宽度为32位,提供了与不同类型的异步外设、异步或同步FIFO、PCI桥接芯片和其他外部主机。图1为扩展总线(XBUS)的功能框图。
扩展总线(XBUS)提供了一种灵活的总线仲裁机制,用两个信号来完成仲裁:XHOLD和XHOLDA。XBUS有两个主要的工作模式:I/O口和主机接口。
I/O口模式下又分为异步I/O模式和同步FIFO模式。对XBUS的4个XCE空间来说,这些模式都是可选的。第一种模式(异步I/O模式)提供了输出选通信号,在这种模式下可以进行灵活地编程操作,和对外部存储器接口(EMIF)的异步信号操作类似。XBUS接口提供了4个输出地址信号,通过译码操作以后,每个XCE空间最多可以连接16个外围器件。在FIFO模式下,可对一个FIFO进行同步读操作,或者最多4个同步写FIFO操作。XBUS I/O口和DSP存储器的数据交互通过DMA控制器完成。
XBUS的第二种工作模式是主机口。这个接口也可以工作在两种模式下:同步主机口模式和异步主机口模式。同步主机口模式支持主/从操作,并且还有复用的地址和数据信号。异步主机口模式只支持从模式,与C6201/C6211/C6701/C6711的HPI口类似,但是数据宽度是32位。
2 电路设计
文中结合某项目,设计了一个扩展总线的实例,两片C6000 DSP通过扩展总线进行数据传输,其中DSP0工作在异步I/O模式下,DSP1工作在异步主机口模式下,DSP0通过扩展总线把数据传送到扩展总线DSP1上。设计的电路连接图如图2所示。
[!--empirenews.page--]
3 软件设计
硬件电路配置好以后,在软件设计的发送端(DSP0)的软件流程如图3所示。
流程图中,需要注意程序中DMA方式不能换成CPU方式进行数据传输,因为对扩展总线的异步I/O口工作模式,只能使用DMA完成。第一次传送的数据实际上是发送端DSP的一个地址,这个地址的含义是后续的DMA要存数的起始地址。在第一个DMA操作中,DMA的地址中的最后3位,必须要设置成“100(b)”,因为按照硬件连接,这样可以保证发送端(DSP0)的XA2为1,接收端(DSP1)的XCNTL为1,才能保证发送端(DSP0)对接收端(DSP1)的XBISA寄存器进行访问。
在第二个DMA中,DMA的地址中的最后3位必须要设计成“000(b)”,这样发送端(DSP0)的XA2为0,根据硬件连接可以知道此时接收端(DSP 1)的XCNTL为0,才能保证发送端(DSP0)对接收端(DSP1)的XBD寄存器进行写操作,从而完成数据传输过程。在接收端(DSP1)只需到相应地址去读取数据。
4 结束语
介绍了TI公司TMS320C6000系列DSP的扩展总线,设计了一种基于扩展总线接口的两片C6000 DSP的数据传输方案,给出了硬件连接框图和软件流程。