数据通过数据发送引脚(DX)和数据接收引脚(DR)与连接到McBSP的器件进行通信。时钟形式并且帧同步的控制信息通过CLKX,CLKR,FSX和FER通信。外围器件通过32位控制寄存器与McBSP通信。CPU或者DMA控制器从数据接收寄存器(DRR)读取接收的数据,而把要发送的数据写入数据发送寄存器(DXR)。写入DXR的数据通过发送移位寄存器(XSR)输出到DX引脚[2]。相似地,在DR引脚接收到的数据先进入接收移位寄存器(RSR),然后拷贝到接收缓冲寄存器(RBR)。RBR然后再拷贝到DRR,DRR中的数据才能被CPU或者DMA控制器读出。这样就允许内部数据移动和外部数据通信同时进行。还有其他一些CPU可访问的寄存器用来配置McBSP的工作机制。
2. 硬件接口
C6000系列DSP的多通道缓冲串口(McBSP)可以和其他C6000系列DSP芯片的多通道缓冲串口(McBSP)进行高速互连。为了达到最高的数据传速速度,其中的一片DSP必须同时作为时钟信号和帧同步信号的发生器,换句话说,作为发送端的McBSP在发送数据传输时钟信号的同时也发送帧同步信号,而作为接收端的McBSP只能等待主片发来的这些控制信号。图2是硬件系统的设计框图[3]。DSP0的McBSP0被配置成时钟信号和帧同步信号的发生器,即主片;而DSP1的McBSP1被配置成只能被动的等待这些控制信号。
图2 最大传输速度下的硬件互连框图
图3是C6000系列双DSP的McBSP间传输数据的信号时序图。在该时序图的例子中,DSP0的McBSP0的时钟信号频率采用其CPU主频的一半。当主片产生时钟信号和帧同步信号的同时,CLKX和FSX编程配置成输出。因为在数据最大传输情况下,不支持零数据的延迟,所以FSX引脚输出的第一个数据是非零值。在该时序图中,RCR和XCR寄存器的(R/X)DATDLY都被配置为1。图3中CLKX和FSX为主片引脚,CLKR和FSR为从片引脚。
图3 McBSP间最大传输数据时的时序图