网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> DSP >> C6000文章 >> C64X系列 >> 文章正文
  [组图]TMS320C6000与UART的通信         ★★★ 【字体:
TMS320C6000与UART的通信
作者:任海 等    文章来源:电子产品世界    点击数:    更新时间:2004-7-27    

引言
UART标准是比较成熟的串行数据交换协议,因为它是异步方式的,所以通信链路不需要发送时钟信号。UART传输协议含有用来帮助同步接收器接收数据的起始位和停止位。数据序列中一个高电平到低电平的转变标志着传送的开始。在开始位后,数据位首先从LSB串行发送。奇偶校验位是可选的,这取决于UART的格式。每帧数据都以停止位结束(通常为逻辑高电平)。


图1 通常串口模式时TMS320C6000与UART连接图



图2 引脚控制寄存器(PCR)的配置



图3 接收控制寄存器(RCR)的配置



图4 发送控制寄存器(XCR)的配置



图5 采样速率发生寄存器(SRGR)的配置



图6 数据发送示意图



图7 TMS320C6000通常串口模式的UART数据接收



图8 GPIO模式时TMS320C6000与UART的连接图



图9 串行口控制寄存器配置



图10 引脚控制寄存器配置



图11 UART速率检测



图12 softUartInchar取得一字节UART数据的流程


TI公司的TMS320C6000是高性能的数字信号处理器,通常进行串口通信时是使用它的多通道缓冲串口McBSP(Multichannel Buffered Serial Port),这种串口模块是在C2000系列以及C5000系列DSP的标准串口基础上发展而来的,是一种同步串行接口,因此并不支持UART标准。为了实现TMS320C6000与UART的通信,可以通过软件,使McBSP具有UART的功能,本文 提出了两种方法,实现了TMS320C6000与UART的接口。第一种方法利用McBSP工作在通常的串口模式,第二种方法利用McBSP工作在GPIO模式。

TMS320C6000与UART通信方法
通常串口模式
当TMS320C6000以通常的串口模式与UART相连时,它的McBSP的数据输入和帧同步输入都与UART的发送数据线相连。这是因为UART的串行数据线既有数据信息,又有帧信息。而此时UART的接收数据线要与McBSP的数据输出线相连(见图1)。
TMS320C6000使用McBSP内部的采样时钟,McBSP可以配置成接收和发送数据,UART的1bit对应于McBSP的16bit字。软件必须将1bit扩展成要发送的16bit,同样也要将接收到的每个16bit字压缩成1bit。这就要求设置采样速率发生器产生一个内部串行时钟,是串行波特率的16倍。因为每个UART字都以一个下降沿开始,这个下降沿可以用作帧同步输入。数据线和帧同步信号都连接到UART的输出上就可以得到这一信号。
为了以8N1(8个数据位,没有奇偶校验位,1位停止位)的格式给UART发送1bit,发送器应该分两个部分。第一个部分包含9个16bit的字,第二个部分包含2个8bit的字。帧的第一部分是开始位和8个数据位,第二部分是停止位。其它UART的格式可以通过调整帧字的数量来实现。当以16bit字发送UART时,UART的1被编码为0xffff,0被编码为0x0000。停止位编码为8bit字以便于调整成为1.5位停止位,这样来适应可能需要的其它UART格式设置。

控制寄存器的设置
为了以通常的串口模式与UART进行通信,McBSP参数必须重新设置。主要涉及以下三个寄存器(阴影位使用默认值)。
引脚控制寄存器(PCR),设置如图2所示。
接收/发送控制寄存器(RCR/XCR):
对于接收,因为数据链路转化可以在FSR引脚上看到,不需要的帧同步必须忽略。对于发送,因为发送帧同步信号FSX在每次DXR到XSR的拷贝时产生。对于一个UART帧来说,它出现的比期望的频繁。不期望的帧同步被忽略。设置如图3、4所示。
采样速率发生寄存器(SRGR):
为了使产生的速率是波特率的16倍,时钟的除法比例必须近似设置一个。例如,CPU的时钟频率为200MHz,并且期望的波特率是115200bps,这样CLKGDV的近似值为108。注意到当采样速率发生器时钟由内部时钟源产生时,就可以获得准确的16倍波特率的串行时钟。另外,CLKGDV的有限长度确定了一个串口可以提供时钟的最小的波特率。如果波特率比最小值小或希望得到其它的波特率,就需要在CLKS引脚上使用外部时钟来驱动采样速率发生器。设置如图5所示。

收发数据
配置完成后,还要编写进行数据转换的软件,其实现方法有两种。可以以一个字一个字的方式处理UART数据,也可以以块的方式来处理。这里讨论了比较有效率的实现方法——块方式数据处理。
发送时,用发送转换子程序把一块数据转变为UART发送的字,即扩展每个数据位为16bit的字。发送转换子程序把这个发送字块放入发送缓冲器,并且帧开始位(0x0000)和停止位(0xffff)也放在了特定的位置,如图6所示。
接收时,DMA从McBSP接收器中读取扩展的数据,并把数据写入接收缓冲器,直到DMA结束数据块(包括开始位和停止位)到接收缓冲器的移动,软件才开始处理数据。接收转换子程序就会被调用,把接收到的数据压缩成UART字节。
因此软件除了对DMA、McBSP和中断进行必要的初始化以外,还需要以下几个子程序:
1、void process_transmit_data():发送转换子程序。
2、void process_receive_data():接收转换子程序。在此还要调用一个数据逻辑判断子程序unsigned short vote_logic(unsigned short value),用以确定每一个数据位的值,这在数据接收中起着重要的作用。接收过程如图7。

GPIO模式
TMS320C6000的McBSP的GPIO模式的意思是通用输入/输出模式,采取这种模式与UART通信时,用它的通用I/O引脚作为与UART的接口。在满足下列两个条件时,McBSP的引脚CLKX,FSX,DX,CLKR,FSR,DR和CLKS能被用作通用I/O引脚。
1.串行引脚控制寄存器(SPCR)内相关设置:/RRST=/XRST=0。
2.引脚控制寄存器(PCR)内相关设置:RIOEN= XIOEN=1,将通用目的I/O使能。
图8所示的就是DX和DR引脚用作通用I/O引脚时的连接方式。

控制寄存器的设置
以GPIO模式与UART通信时,McBSP设置涉及到串行口控制寄存器(SPCR)和引脚控制寄存器(PCR)两个寄存器。图9和图10说明SPCR和PCR的设置(阴影位使用默认值)。

收发数据
采用GPIO模式与UART通信时,还要有三个底层软件,分别用做UART的速率检测、数据发送和接收。这三个程序是unsigned int SoftUartSpeedDetct(void),void SoftUartOutchar (int, char)和char SoftUartInchar(int)。
函数SoftUartSpeedDetct()用来设置GPIO模式的SPCR和PCR寄存器。通过测试开始位的长度再加上第一个数据位(逻辑高)的长度来自动检查波特率。用户注意要确保第一个发送字符是(回车),因为第一个数据位必须是逻辑1。如图11所示。
时间T是由软件计数器自加1来实现的,这个时间持续到第二次发送从高到低变化。T代表了一个比特长度的时间。这种测试要求UART上的RX信号一直没有其它信号。简单测试起始位的长度来决定波特率是不够准确的。
SoftUartInchar子程序用来接收数据,它接收一个字节的工作流程如图12。
SoftUartOutchar子程序是与SoftUartInchar同一机制的。它也是要从SoftUartSpeedDetct获取速率参数。这个子程序通过写PCR寄存器的DX_STAT位实现在DX线上发送数据。在发送开始时,SoftUartOutchar向DX线上写一个“0”,然后它将每一个要发送的比特送到DX线上。发送字符首先要被放入一个寄存器的最后8比特,后面跟以三个停止位比特(0x00000700)。例如,字符‘A’(ASCII码为0x41)将被放入寄存器,变成了0x00000741。每次发送这个寄存器的LSB被送上DX线,同时寄存器向右移,准备下次发送。以字符‘A’为例,在第一个比特‘1’发送后,右移后,寄存器内容变为0x000003A0。

结语
TMS320C6000的多通道缓存串口是一个同步串口,因此不能与通用异步接收/发送器直接连接。但是,通过对相关控制寄存器的简单调整,在软件控制下,UART与TMS320C6000之间的通信成为可能。本文为TMS320C6000与UART之间良好的协同工作提供了两种解决办法——通常的串口模式和通用的输入/输出模式,并在此基础上对硬件接口和必要的软件部分进行了详细介绍。从而为TMS320C6000与UART设备特别是PC机之间协调工作提供了有用方案。

参考文献
1.Texas Instruments Application Report  TMS320C6000 McBSP:UART,TI
2.TMS320C6000 系列DSPs的原理与应用,任丽香等,电子工业出版社
作者单位:北方交通大学电信学院
               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    TMS320C6000系列带中断向量表…
    TMS320C6000系列DSP的Flash启…
    TMS320C6000嵌入式系统优化编…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号