基于McBSP的双DSP间高速通信
发布时间:2008/9/23 0:00:00 访问次数:578
tms320c6000系列(以下简称c6000系列)dsp是美国德州仪器(ti)公司近年来推出的高端产品,因其性能优良,编码效率高,性价比好等诸多优点,被广泛的用于数字图象处理,通信基站,雷达信号处理等领域。在实际的使用中,因为数据吞吐量太大,很多时候单片dsp无法满足系统设计的要求,需要将两片或多片dsp进行互连,于是研究dsp间的高速通信就显得尤为重要。本文介绍了利用mcbsp来实现c6000系列dsp间高速通信的软硬件设计和实现。
1. 多通道缓冲串口(mcbsp)的功能和特点
多通道缓冲串口(mcbsp)是ti公司标准串口的增强版本。功能强大的c6000系列的mcbsp是基于tms320c2000和c5000系列的标准串口之上的。其内部框图如图1所示。它具有如下功能和特点[1],[5]:
全双工通信;
双缓冲数据寄存器,支持连续的数据流;
独立的接收、发送帧和时钟信号;
可以直接与工业标准的编码器,模拟接口芯片和其他a/d,d/a器件通信连接;
具有外部移位时钟发生器及内部频率可编程移位时钟;
发送和接收通道数多达128路;
支持宽范围的数据格式,包括8,12,16,20,24,32位字长;
利用 律或a律压缩扩展通信;
帧同步和时钟信号的极性可编程;
可编程内部时钟和帧同步信号发生器等。
图1 mcbsp的内部框图
数据通过数据发送引脚(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间最大传输数据时的时序图
3. 软件实现
用mcbsp实现c6000系列双dsp间的高速通信软件设计[4]需分别对主机dsp0和从机dsp1进行编程。软件设计的重点是对mcbsp相关寄存器的设置,以使其工作在最高数据传输速度模式下。表1列出了高速通信模式下需要配置的寄存器的位段,未列出的寄存器位段采用系统默认值。
表1 高速通信模式下需配置的寄存器位段
寄存器[位段]
位段名
主片
从片
说明
rcr[17:16]
rdatdly
0 h
1 h
接收数据延迟:0h:0-bit数据延迟;1h:1-bit数据延迟
xcr[17:16]
xdatdly
1 h
0 h
发送数据延迟:1h:1-bit数据延迟;0h:0-bit数据延迟
srgr[29]
clksm
1
0
时钟信号产生模式位:1:时钟信号来自于cpu时钟;0:时钟信号来自于clks引脚
srgr[28]
fsgm
1
0
tms320c6000系列(以下简称c6000系列)dsp是美国德州仪器(ti)公司近年来推出的高端产品,因其性能优良,编码效率高,性价比好等诸多优点,被广泛的用于数字图象处理,通信基站,雷达信号处理等领域。在实际的使用中,因为数据吞吐量太大,很多时候单片dsp无法满足系统设计的要求,需要将两片或多片dsp进行互连,于是研究dsp间的高速通信就显得尤为重要。本文介绍了利用mcbsp来实现c6000系列dsp间高速通信的软硬件设计和实现。
1. 多通道缓冲串口(mcbsp)的功能和特点
多通道缓冲串口(mcbsp)是ti公司标准串口的增强版本。功能强大的c6000系列的mcbsp是基于tms320c2000和c5000系列的标准串口之上的。其内部框图如图1所示。它具有如下功能和特点[1],[5]:
全双工通信;
双缓冲数据寄存器,支持连续的数据流;
独立的接收、发送帧和时钟信号;
可以直接与工业标准的编码器,模拟接口芯片和其他a/d,d/a器件通信连接;
具有外部移位时钟发生器及内部频率可编程移位时钟;
发送和接收通道数多达128路;
支持宽范围的数据格式,包括8,12,16,20,24,32位字长;
利用 律或a律压缩扩展通信;
帧同步和时钟信号的极性可编程;
可编程内部时钟和帧同步信号发生器等。
图1 mcbsp的内部框图
数据通过数据发送引脚(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间最大传输数据时的时序图
3. 软件实现
用mcbsp实现c6000系列双dsp间的高速通信软件设计[4]需分别对主机dsp0和从机dsp1进行编程。软件设计的重点是对mcbsp相关寄存器的设置,以使其工作在最高数据传输速度模式下。表1列出了高速通信模式下需要配置的寄存器的位段,未列出的寄存器位段采用系统默认值。
表1 高速通信模式下需配置的寄存器位段
寄存器[位段]
位段名
主片
从片
说明
rcr[17:16]
rdatdly
0 h
1 h
接收数据延迟:0h:0-bit数据延迟;1h:1-bit数据延迟
xcr[17:16]
xdatdly
1 h
0 h
发送数据延迟:1h:1-bit数据延迟;0h:0-bit数据延迟
srgr[29]
clksm
1
0
时钟信号产生模式位:1:时钟信号来自于cpu时钟;0:时钟信号来自于clks引脚
srgr[28]
fsgm
1
0
上一篇:LabVIEW的浏览器访问