![]() |
|
||||||||||||||
| . 网站首页 . 新闻 . 新品 . 方案 . 专访 . 活动 . DSP . EDA . 评测室 . 技术文库 . 会员区 . 商城 . 服务导航 . 邮购 . 资源 . | ||
|
||
|
|||||
| TMS320C6000与UART的通信 | |||||
作者:任海 等 文章来源:电子产品世界 点击数: 更新时间:2004-7-27 ![]() |
|||||
|
引言 图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寄存器。通过测试开始位的长度再加上第一个数据位(逻辑高)的长度来自动检查波特率。用户注意要确保第一个发送字符是 时间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条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|
|