基于TMS320C6000的串行通信扩展方法.docx
《基于TMS320C6000的串行通信扩展方法.docx》由会员分享,可在线阅读,更多相关《基于TMS320C6000的串行通信扩展方法.docx(11页珍藏版)》请在冰豆网上搜索。
基于TMS320C6000的串行通信扩展方法
课程结业论文
基于TMS320C6000的串行通信扩展方法
课程名称:
DSP原理及应用
任课教师:
许善祥
所在学院:
信息技术学院
专业:
电气工程及其自动化
班 级:
09电气
(2)班
学生姓名:
齐宏力
学 号:
20094073243
中国·大庆
2012年5月
摘要
在信号处理器DSP的应用中,能够高速可靠的传输数据是非常重要的。
TMS320C6000的McBSP不仅具有以往DSP标准串口的基本功能,而且支持许多方式的传输接口,尤其可以利用LVDS实现DSP与DSP之间的数据传输。
本文以TMS320C6711B为例,介绍了两种串行通信的扩展方法,同时给出了相应的软件实现程序。
关键词:
TMS320C6000;McBSP;SPI模式;LVDS串行通信
Abstract
Indigitalsignalprocessor(DSP)applications,itisimportanttotransferdatatoandfromDSPs,aswellasbetweenthem,athighspeedandwithhighreliability.TMS320C6000multichannelbufferedserialport(McBSP)isdesignednotonlytohavebasicfunctionsofpreviousDSPSerialPort,butalsosupportmanyinterfacedevices,especiallytransferdatabetweenDSPsusingalowvoltagedifferentialsignaling(LVDS).TMS320C6711Btwoextendedserialportcommunicationwaysareintroducedandcorrespondingprogramisprovided.
Keywords:
TMS320C6000;McBSP;SPImode;LVDSserialportcommunication
在DSP的应用中,能够高速可靠的进行数据传输是非常重要的。
TMS320C6000的多通道缓冲串口(McBSP)是在C2x,Ox,C5x和C54x标准串口的基础上发展而来的,它除了具备基本的功能外,还具有以下特点:
(1)支持下面方式的传输接口。
①TI/El帧协议;
②MVIP兼容的交换方式以及ST-BUS兼容设备;
③IOM-2兼容设备;
④AC97兼容设备;
⑤HS兼容设备;
⑥SPI设备。
(2)可与多达128个通道进行收发。
(3)支持传输的数据字长可以是8bit,12bit,16bit,20bit,24bit或32bit.
(4)内置拜一律和A一律压扩硬件。
(5)对8bit数据的传输,可选择先传LSB或MSB。
(6)可设置帧同步信号和数据时钟信号的极性。
(7)内部传输时钟和帧同步信号可编程程度高。
本文以TMS320C6711B(提供了两个McBSP串口)为例,介绍两种串行通信的扩展方法。
基于TMS320C6000的串行通信扩展方法-1-
摘要-2-
Abstract-2-
1多通道缓冲串口(McBSP)接口设计-4-
1.1数据通道-4-
1.2控制通道-5-
2SPI协议接口到UART的转换-5-
2.1McBSP的SPI功能-5-
2.2MAX311IE-SPI兼容UART-5-
2.3时序-6-
2.4McBSP与MAX3111E的通信设置-7-
3McBSP扩展LVDS高速串行通信口-8-
3.1LVDS原理-8-
3.2LVDS收发器SN65LVDS32和SN65LVDS31-8-
3.3LVDS设计考虑-8-
4结论-10-
参考文献:
-10-
1多通道缓冲串口(McBSP)接口设计
本系统需要一个异步串行口作为调试或者作为异步串行通信使用,但McBSP不是异步串口。
通常对于TI的DSP芯片可以采用多种方法搭建一个异步串口,比如直接在EMIF口用专用UART扩展或使用CPLD扩展甚至可以直接利用McBSP,使用大量软件编程来模拟一个异步串口,它们各有优缺点。
在设计中为了充分利用DSP的现有资源,考虑到McBSP支持SPI设备,所以使用SPI到UART转换专用IC(MAX3111E)来实现UART(RS-232),另外一个McBSP,作为同步高速串口增加LVDS驱动,搭建成一个高速串口。
McBSP口(结构框图见图1)包含两个主要的功能模块:
1.1数据通道
数据通道完成数据的发送和接收。
CPU或EDMA控制器向数据发送寄存器(DXR)写入待发送的数据,从数据接收寄存器(DRR)读取接收到的数据。
①接收。
一旦接收帧同步信号变为有效后,DR管脚上接收到的数据先移位进入接收转移寄存器(RSR),然后被复制到接收缓冲寄存器(RBR)中,RBR再将数据复制到DRR中,等候CPU或EDMA控制器将数据读走。
②发送。
写入DXR中的数据先移位进入发送移位寄存器(XSR),当发送帧同步有效后,XSR中的数据输出至DX管脚。
1.2控制通道
控制通道完成的任务包括内部时钟产生、帧同步信号产生、对这些信号的控制以及多通道的选择等。
控制通道还负责产生中断信号送往CPU,产生同步事件通知EDMA控制器。
2SPI协议接口到UART的转换
2.1McBSP的SPI功能
SPI(seiresprotocolinterface)是利用4根信号线的串行接口协议4个接口信号是:
串行数据输入(MISO,主设备输入,从设备输出)、串行数据输出(MOSI,主设备输出,从设备输入)、移位时钟(SCLK)、从设备使能(SS)。
SPI的最大特点是由主设备时钟信号出现与否来界定主/从设备通信,一旦检测到主设备时钟信号,就开始传输数据,时钟信号无效后,传输结束。
McBSP的数据同步时钟具有停止控制选项,因此可以与SPI协议兼容,以McBSP作为SPI的主控端。
McBSP可以很容易地通过对相关寄存器的设定完成SPI兼容功能。
表I列出了CLKSTP与CLKXP相配合,对串口时钟工作模式的控制。
2.2MAX311IE-SPI兼容UART
MAX31IIE是一个全功能UART与SPI兼容极易与微处理器接口需要4条接口线实现与微控制器握手接口,另一条中断信号线可选用。
MAX31IIE仅需要50B的程序,在等待串行事件时,处理器和UART可以进入休眠状态,其FIFO还可缓冲接收突发信息。
MAX3111E工作在3.3V,而且自带具有士巧kVESD保护的RS-232收发器,还包括了UART/SPI接口、波特率发生器(最大波特率230kb/s)、中断发生器和8B的FIFO.通过“写结构寄存器”完成波特率、字长、校验、8B接收FIFO的设定并选择通用UART方式或IrDA方式,控制节电状态和4个中断任务。
图2给出了SPI到UART的转换模块,图3给出了MAX31IIE与CPU的连接图。
片内时钟X1可以是1.8432MHz.3.6864MHz或由占空比为45%-55%的外部方波驱动X1,片内时钟除16是波特率时钟,BO-B3四位确定波特率系数(BRD),波特率时钟除以BRD即为波特率,波特率的范围是300-230kbaud。
2.3时序
MAX3111E的接口是一个全双工结构,无论读写哪个寄存器都是从DIN逐位输入16bit数据,同时从DOUT逐位输出16bit数据。
每次数据输入都是先从高位开始,到低位结束。
DIN的输入的前两位告诉了UART传输的类型,DIN在SCLK的上升沿被锁存,DOUT在SCLK上升沿被McBSP读入。
DOUT的第1位在CS的下降沿输出,第14-0位在SCLK的下降沿输出。
每次数据都是16bit,如果在数据读写的过程中CS变高,那么这次传输终止。
图4是它的时序图。
2.4McBSP与MAX3111E的通信设置
McBSP中的传输时钟具有停止模式选项,这保证了与SPI协议的兼容性。
McBSP作为主设备,MAX31IIE作为从设备。
通过对McBSP的相关寄存器的设置完成通信交连。
相关寄存器有:
串口控制寄存器(SPCR),接收控制寄存器(RCR),发送控制寄存器(XCR),管脚控制寄存器(PCR),采样率发生控制寄存器(SRGR)。
根据MAX3111E时序上的要求,McBSP寄存器设置如下:
①CLKXM=1(PCR),CLKX为输出。
②CLKSM=1(SRGR),采样率发生器时钟来源于CPU。
③CLKGDV=29(SRGR),采样率发生器分频数为300
④FSXM=1(PCR),FSX为输出。
⑤FSGM=O(SRGR),FSX在每次包传输时被激活。
⑥FSXP=1(PCR),FSX低有效。
⑦XDATDLY=01(XCR),发送时钟延时为to
⑧RDATDLY=01(RCR),接收时钟延时为to
⑨CLKSTP=10(SPCR),时钟停止模式1,无延迟,数据接收在下降沿。
CLKXP=O(PCR),发送数据在时钟上升沿。
⑩RWDLEN1=010(RCR),发送包长为16位。
XWDLENI=010(XCR),接收包长为16位。
3McBSP扩展LVDS高速串行通信口
在许多通信应用中,需要在远距离传输数据,例如在机箱内的板到板之间甚至在机柜到机柜之间的传输几十Mb/s甚至几百Mb/s速率的数据,传统的RS-485.RS-422,RS-232,USB2.0等串行接口标准根本达不到如此高的传输速率,如何稳定、高速地传输数据成为了一个难题。
LVDS接口的出现解决了高速传输这一瓶颈。
3.1LVDS原理
LVDS(lowvoltagedifferentialsignaling)是一种小振幅差分信号技术,使用非常低的幅度信号(350mV),通过一对差分PCB走线或平衡电缆传输,它允许单个信道传输率达到每秒百兆比特(Mb/s),它特有的低振幅及恒流源模式驱动只产生极低的噪声,消耗非常小的功率,目前LVDS使用的是TIA/EIA-644标准。
3.2LVDS收发器SN65LVDS32和SN65LVDS31
采用SN65LVDS32和SN65LVDS31收发器作为McBSP的LVDS的扩展,其特点如下:
①符合甚至超过ANSI,TIA/EIA-644标准;
②LVDS类型,输出电压350mV,10092负载;
③速率高达400Mb/s;
④典型寄生延时1.7ns;
⑤操作电压为单3.3V;
3.3LVDS设计考虑
(1)输入。
①未使用的输入引脚可以开路,因其内部有下拉电阻300M;
②LVDS31和LVDS32的“G”和“/G”选通信号可以直接接地或VCC,如果接上拉、下拉电阻阻值不应超过10W;
③印制板上在McBSP与LVDS接收器之间的连接线应尽可能短并且匹配,保持任何连接线在长度在5cm之内,相应匹配长度误差小于1cm.
(2)电源供给。
0.01四0805电容在PIN16和GND之间,尽可能靠近IC.
(3)输出。
①PCB引线在发送器和连接器之间要小于2cm,PCB必须构造一个可控的差分阻抗>100。
;
②每条引线在收发器和连接器之间的匹配长度误差小于1CM.
(4)端接。
使用0603或0805,1001215%,1/20W电阻跨接在差分对线上,引线特征阻抗90S2具体的软件程序实现如下:
;EMIF寄存器初始化
*(unsignedvolatileint*)McBSP1_SPCR=0;
*(unsignedvolatileint*)McBSP1_RCR=0x000500a0;
*(unsignedvolatileint*)McBSP1_XCR=0x000100a0;
*(unsignedvolatileint*)McBSP1_SRGR=0x300000ld;
*(unsignedvolatileint*)McBSP1_MCR=0x0;-
*(unsignedvolatileint*)McBSP1_RCER=0x0;
*(unsignedvolatileint*)McBSP1_XCER=0x0;
*(unsignedvolatileint*)McBSP1_PCR=0xa05;
For(i=0;i<90000;i++);
*(unsignedvolatileint*)McBSP1_SPCR=0x00401800;
*(unsignedvolatileint*)McBSP1_SPCR=0x00411801;
*(unsignedint*)McBSP1_DXP=0xc00b;初始化完毕
for(i=0;i<90000;i++);
for(i=0;i<90000;i++)
{
*(unsignedvolatileint*)(McBSP1_DXP=0x8235;
for(temp=0;temp<90000;temp++);
}
4结论
由于TMS320C6000的McBSP支持SPI设备,这就使得调试系统的硬件和软件更为方便,从而缩短了系统的开发周期。
同时,由于可以用LVDS进行DSP之间的数据传输,因此,使得高速可靠的进行数据传输得到了保证。
参考文献:
[I]李方慧,王飞,何佩混,等.TMS320C600()系列DSPs原理与应用「M].北京:
电子工业出版社.
[2]DSPtoDSPLinkUsingLVDS(slla105)[Z].
[3]TMS320C6000McBSPInitalization(SPRA488)[Z].
[4]TMS32OC6000DigitalSignalProcessordatasheets[EB/OL].w.
[5]TMS320C6000PeripheralsReferenceGuide(SPRU190)[Z].
[6]UsingtheTMS32OC6000McBSPasaHighSpeedCommunicationPort[Z].
[7]TMS320C6000McBSPInterfacetoSPIROM(SPRA487c)[Z]