网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> DSP >> C2000文章 >> C28X系列 >> 文章正文
  [组图]TMS320F2812型数字信号处理器与PC的串行通信       ★★★ 【字体:
TMS320F2812型数字信号处理器与PC的串行通信
作者:曹军军    文章来源:国外电子元器件    点击数:    更新时间:2006-3-14    

来源:国外电子元器件  作者:西安交通大学电气工程学院 曹军军 陈小勤 吴 超

摘要:讨论TMS320F2812PC之间的串行通信方案,给出TI公司的TMS320F2812DSPMaxim公司的MAX3160型收发器的硬件接口电路,以及在此基础上使用中断和查询方法实现的串行通信软件流程,同时给出DSP SCI的初始化、发送和接收数据程序代码。

 

    关键词:串行通信;数据信号处理;收发器;PC

 

引言

 

目前,微控制器系统在国民经济和人民生活中得到了广泛的运用,而数据传输业仍是一个很重要的领域。对于这些与计算机相距不远的人-机交换设备和串行存储的外部设备(如终端、打印机、逻辑分析仪、磁盘等)来说,采用串行通讯方式交换数据已非常普通[1]

 

在以往DSPPC之间的串行通信中,由于运行速度的差异和上下位机之间编程软件的限制,系统的实时性一般较差。本文针对这些问题,从硬件和软件两个方面探讨了TMS320F2812PC的通信方案,介绍该方案的串行通信接口电路和采用中断与查询方法实现数据通信的软件流程。

 

1

 

1 串行通信的硬件接口电路

 

TMS320F2812SCI和以往的DSPSCI相比具有两个特点:一是传送、接收都具有独立的FIFO;二是波特率可以自动检测。自动波特率检测逻辑主要解决通信过程中终端波特率的确定问题。而其16字的FIFO可大大减少通信中断次数,提高通信速率。TMS320F2812SCI4个外部引脚:SCIRXDASCITXDASCIRXDBSCITXDB,不作通讯时,这些引脚可以用作通用I/OSCI有一个16位的波特率选择寄存器,通过改变寄存器的值可以得到多于65000种的波特率。

 

本设计选用Maxim公司生产的MAX3160型收发器,它是一种可编程的多协议收发器,能支持RS-232/RS-485/RS-422等传送方式。

 

MAX3160的引脚RS-485/RS-232用于选择工作在RS-422/RS-485还是RS-232接口标准;引脚HDPLX用于选择是RS-422还是RS-485;引脚FAST用于控制信号转换率;引脚DE485用于控制RS-422/RS-485方式时发送器是否使能,以及RS-485RS-232方式时的RTS信号复用。图1中的电路使用的MAX3160RS-232方式,所以要将11RS-485/RS-232与此12HDPLC置为低电平。

 

本设计将这些控制引脚集成在一个寄存器UART_SCI中,并将这个寄存器映射在TMS320F 2812电路Zone1上的0X4010存储单元中,该寄存器各位的定义如图2所示。TMS320F2812可通过该寄存器对MAX3160进行操作。

 

2 串行通信软件包实现

 

设计TMS320F2812串行通信软件可采用查询和中断两种方式。本设计中,发送数据采用的是查询方式,接收数据采用的是中断方式。

 

    2.1 SCI的初台化

 

TMS320F28122SCI总共包括26个寄存器,其中控制寄存器有SCICCRSCIPRISCICTL1SCICTL2;设备波特率的寄存器有SCIHBAUDSCILBAUD;状态寄存器有SCIRXST;缓冲寄存器有SCIRXEMUSCIRXBUFSCITXBUF;另外还有TMS320F2812SCI独有的FIFO寄存器SCIFFTXSCIFFRXSCIFFCT。在程序的开始应先对其中一些寄存器进行初始化。

 

SCI的初始化程序如下:

 

#include "DSP28_Device.h"

 

unsigned int * UART_SCI=(unsigned int *)0x4010;

 

void InitSci(void)

 

{ *UART_SCI=0x44; //设定MAX3160RS-232的工作方式

 

EALLOW

 

GpioMuxRegs.GPFMUX.all=0x0030;

 

EDIS;

 

SciaRegs.SCICCR.all=0x07;//将传输数据长度设为8

 

SciaRegs.SCICTL1.all=0x03;//启动发送和接收

 

SciaRegs.SCICTL2.all=0x03;//允许RXRDY/BRKDTTXRDY中断

 

SicaRegs.SCIHBAUD=0x00;

 

SicaRegs.SCILBAUD=0xF3;//设置传输的波特率为

 

SicaRegs.SCICTL1.all=0x23;//寄存器已设置好,将SW RESET1,启动发送和接收

 

PieCtrl.PIEIER9.bit.INTx1=1;/启动中断

 

PieCtr1.PIEIER9.bit.INTX2=1;

 

}

 

2.2 数据的发送与接收

 

数据发送采用查询方式,其流程图如图3所示。数据的接收采用中断方式,其流程如图4所示。SCIATX_Ready是寄存器SCICTL2的发送就绪位,Send_FlagTMS320F2812设置的一个发送标志。SCIARX_Ready是寄存器SCIRXST的准备就绪位。SCIA的接收中断为INT9.1,发送中断为INT9.2;而SCIB的接收中断为INT9.3,发送中断为INT9.4。本设计方案只使用SCIA的接收中断INT9.1。在中断服务子程序中,通过检查外设中断向量寄存器的值可转入相应的接收中断处理程序。

 

3 结论

 

本通信方案已应用于某上位机控制数据采集卡的运行中,结果表明是可行的。该方案虽然具有硬件电路简单、实施容易等特点,但由于受RS-232/485/422串行通讯的限制,因而只能用于短距离的数据发送与接收。此外,TI公司的TMS320F/C2XX系列DSP具有相同的串行通信模块,因此本设计方案也适用于其他的TMS320F/C2xx系列DSP器件。

 

 

               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    基于DSP的USB语音传输接口设…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号