数字信号处理器串行通信接口SCI 模块和RS485 串口通信

2010-11-12 11:03:00来源:21世纪电子网 热度:

  以TMS320F240 系列为例,简要介绍了数字信号处理器串行通信接口SCI 模块和RS485 串口通信,并编程实现了TMS320F240 与PC 机串行通信接口电路。

  1 引言

  DSP既是Digital Signal Pricessing 的缩写,也是Digital Signal Pricessor 的缩写。前者是指数字信号处理的理论和方法,后者则是指用于数字信号处理的可编程微处理器。TMS320F240 系列是在TMS320F2000TM 平台下的一种定点DSP 芯片,是专为数字电机控制和其他控制应用系统而设计的16位定点运算的DSP。它集合了DSP 的高速运算功能与电机的强大控制能力,为控制系统应用提供了一种理想的解决方案。TMS320F240 片内外设有一个16 位的同步串行外围接口(SPI),一个用于串行通讯接口的SCI 模块,双10 位A/D 转换器,带中断的看门狗定时器模块(WDT),带有锁相环(PLL)时钟发生器。另外,还集成了两个事件管理模块EVA 和EVB。因此,TMS320F240 不仅具有高速数据处理能力,还具有控制和事件管理能力,可完成人机界面、与上位机进行串行通信等功能。

  2 串行通讯接口(SCI)模块

  SCI 接收器和发送器是双缓冲的,每一个都有他自己单独的使能和中断标志位。两者可单独工作,或在全双工的方式下同时工作。为了确保数据的完整性,SCI 对接收到的数据进行间断检测、奇偶性校验、超时和帧出错的检查。通过一个16 位的波特率选择寄存器,数据传输的速度可以被编程为65535多种不同的方式。SCI 的串行通信接口包括SCIRXD(串行通信数据接收)和SCITXD(串行通信数据发送),在不使用SCI 时,这两个引脚也可作通用I/O 口。发送和接收的操作可以利用状态标志位通过中断驱动或查询算法来完成。与之相关的主要寄存器:发送缓冲寄存器SCITXBUF、接收缓冲寄存器SCIRCBUF、接收仿真缓冲寄存器SCIRXEMU;通信控制寄存器SCICCR、中断使能和内部时钟使能SCICTL1 和SCICTL2 、波特率选择高字节寄存器SCIHBAUD、波特率选择低字节寄存器SCILBAUD、优先级控制寄存器SCIPRI、引脚控制功能SCIPC2 以及反映通信状态SCIXST 等。

  串行通信接口模块有两个多处理器通信协议:空闲线多处理器模式和地址多处理器模式。空闲线模式在地址前留有一个固定空间,该模式没有附加的地址/数据位,它在处理包含多于10 个字节的数据块方面比地址位模式更有效;地址位模式在每个字节中加入一个额外位(地址位)来区分地址和数据,这种模式在处理多个小数据块时更有效。

  3 RS-485串口通信

  RS-232 虽然被广泛接受,但其数据传送的速度慢、在现代网络通信中已暴露出的接口处各信号间容易产生干扰等明显的缺点。RS-232 只能传输15 米,不能满足远距离传输要求,而RS-485 最大传输距离为1200 米,最大传送速率可达10Mb/s。因此,RS-485 在远程通信和多机总线系统中具有很大吸引力。MAX48X/49X 系列收发器芯片适合于RS 一422/RS 485 通信标准。其主要有以下特点:


  ·单+5V 电源供电;

  · 低功耗:工作电流120~ 500μA :

  · 驱动过载保护;

  · 通信传输线上可挂32 个收发器方便组成半双工通信电路;

  · 共模输入电压范围:-7V ~ + l2V

  MAX485为8 脚封装,引脚配置如图l 所示,各引脚功能说明如表l 所示。

表1


  本设计以PC 机为主机,TMS320F240 为从机,主从机之间进行串口通信。TMS320F240 与PC 机之间采用RS 一485 标准进行半双工通信的接口电路如图2 所示。其中,接收器和驱动器的选择由TMS320F240 的XF/IOPC2 引脚控制。由于一般PC 机上提供的是标准的RS 232 C 串行接口,因此,需要RS 232C/RS485 转换器进行接口转换。


  4 上位机PC机的软件设计

  上位机PC 采用高级语言C,在用C 语言开发DSP 应用程序时,需要嵌入一句或几句汇编语言,如在程序的初始化阶段对INTM、SXM 等位的配置。用asm 的方式就可以实现单句汇编语言的嵌入。

  Code Composer Studio 简称CCS,是TI 公司推出的为开发TMS320 系列DSP 软件的集成开发环境(IDE)。CCS 工作在Windows 操作系统下,类似于VC++的集成开发环境,采用图形接口界面,提供有编辑工具和工程管理工具。在CC 环境下串行通信有两种方式:即同步方式和异步方式,在此仅讨论异步方式中的串行通信。PC 串行口发送器输出端和接收器输入端的数据格式为帧信息格式,与TMS320F240的SCI 口格式相同。通信时,双方必须约定通信数据传输格式、传输速率及各自工作方式等。本文设计,当上位机请求通讯时,先发请求通讯命令,下位机有效接收并判断,确认后向上位机发响应码。上位机在收到响应码后,再发操作命令。双方约定:波特率208h;8 位字符,一位停止位,无校验;传送方式:PC 机采用查询方式接收数据,TMS320F240 采用中断方式接收数据。

  5 DSP软件设计

  5.1 串口初始化

  首先对寄存器地址、波特率、数据位、停止位、奇偶校验位进行设置。

  void Set()

  {

  *SCICCR=0x7; //8 位字符,1 停止位,无校验

  *SCICTL1=0X13; //使能发送和接受

  *SCICTL2=0x03; //使能接受和发送中断

  *SCIHBAUD=0x02; //波特率=208h,40MHZ

  *SCILBAUD=0x08; //208h=40*106/(9600*8)-1

  *SCICTL1=0x33; //使能发送和接受,复位

  *SCIPRI=0X60; //SCI 中断(接受和发送中断)为低优先级中断

  5.2 中断初始化

  a)禁止总中断子程序

  void inline disable()

  asm("setc INTM");

  asm("setc SXM");

  b)使能总中断子程序

  void inline enable()

  asm("clrc INTM") ;

  c)中断服务程序

  void interrupt uarttr(){

  switch (*PVIR){

  //根据中断向量寄存器PVIR 的值区别是接收还是发送中断

  case 6:UartRec();

  //如果PVIR=6,则发生了接受中断,执行接受中断服务程序

  d)当由于干扰而引起其它中断时,中断进入此程序直接返回主程序

  void interrupt nothing(){

  return; }

  5.3中断处理

[FS:Page]

  void UartRec(){

  unsigned int uwork;

  int I, k;

  k=0;

  while(1) {

  do{

  uwork=(*SCIRXST);

  }while((uwork&0x40= =0));

  cReceive=(*SCIRXBUF);

  cBuffer[k]= cReceive;

  if(cReceive= =’.’) {

  cBuffer[k+1]=’\0’;

  nlen=k+1;

  Set();

  Break;

  k++; k%=16;

  5.4程序初始化

  # include "2407c.h"

  //初始化子程序

  Initial(){

  *IFR=0xFFFF; //清除中断标志

  *WDCR=0Xe8; //不使能看门狗

  *SCSR1=0x81FE; //CLKIN=6M, CLKOUT=24M

  *MCRA=0x3; //use SCITXD, SCIRXD

  *PADATDIR=0x100; //设置ADIR 为输出口

  5.5主程序

  Main(){

  Set();

  Disable(); //屏蔽所有中断

  Initial(); //系统初始化

  Enable(); //使能总中断

  While(1) {

  unsigned int uwork;

  For (intI=0;I<10;I++){

  Do{

  Uwork=(*SCICTL2);

  }while (uwork&0x0c0!=0x0c0);

  (*SCITXBUF)=cAnswer[i];

  *IFR=0x0010;

  Enable();

  Do{

  Uwork=(*SCICTL2);

  }while (uwork&0x0c0!=0x0c0);

  (*SCITXBUF)='\"';

  For(;;)

  6结束语

  本文作者创新点:利用DSP 的串行通信接口(SCI)和功能强大的开发环境CCS,可以方便地实现DSP 与PC 机间的单机或多机串行通信。通过实际运行表明,利用TMS320 的SCI 模块实现DSP 之间或与PC 机的通信,与传统的C51 单片机相比,其电路简单、设置灵活、运行速度快,性能可靠稳定。

责任编辑:51DTV编辑部

为您推荐

面向电视机和手机的微波数字电视有何不同

“微波数字电视”是指使用微波通信的数字化电视。利用固定天线接收信号的普通电视机的微波数字电视已于2003年12月在东京、大板及名古屋三大城市的部分地区开播。此外,还准备于2006年春开通便携终端的微波数字电视。下面就来介绍一下在微波数字电视中面向电视机和面向便携终端的服务有何不同。微波数字电视利用470M~770MHz即“UHF频带”发送无线电波。每家电视台将其中的约5.6MHz带宽等分成1

2005沈阳国际数字电视广播通信网络展会

一、展会背景介绍数字电视是我国电视领域采用的最新先进技术。从节目制作、编辑到传输、播放、接收均采用数字技术,与现正在使用的模拟技术相比,具有清晰度高、存储方便快捷、信号稳定、可与用户互动等优点。2004年是国家广电总局确定的数字电视发展元年,2015年全国将停播模拟电视信号,取而代之的就是数字信号。东北地区计划在2010年前完成电视数字化进程,工程浩大、任务艰巨、影响深远。东三省广电局为加快数字电视发展,于2005年6月16日至19日在沈阳国际会展中心举办了“2005沈阳国际数字电视广播通信网络展览会”。电视台、数字电视和电视节目与大众生活息息相关。由于受益群体非常之大,观众的参观热情要高于房

2005中国数字电视产业高峰论坛

指导:信息产业部国家广电总局主办:中国数字电视产业高峰论坛组委会(CDTF)协办:信息产业部软件与集成电路促进中心国家数字音视频编解码技术标准工作组(AVS)《卫星电视与宽带多媒体》杂志社北京华彩乐章广告有限公司支持媒体:《中国数字电视》《人民邮电报》《中国电子报》《计算机世界》《微电脑世界》《网络世界》《中国多媒体视讯》《中国广播电视报-产业周刊》《电信技术》《IT经理世界》《新经济导刊》《通信商业周刊》《通信世界》《流媒体世界》《消费电子世界》《广播与电视技术》《卫星电视与宽带多媒体》《数码精品世界》网络支持:新浪