DSP 与PC 机串行通讯的设计

发布者:柔情细语最新更新时间:2010-10-23 关键字:DSP  串口通信  RS-485 手机看文章 扫描二维码
随时随地手机看文章

  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中断处理

  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]=’’;

  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 单片机相比,其电路简单、设置灵活、运行速度快,性能可靠稳定。

关键字:DSP  串口通信  RS-485 引用地址:DSP 与PC 机串行通讯的设计

上一篇:TMS320C54x系列DSP的中断机制
下一篇:基于模糊逻辑的指纹图像对比度增强算法

推荐阅读最新更新时间:2024-05-02 21:10

嵌入式C语言开发ADSP21XX系列DSP
摘要: 详细介绍使用VisualDSP开发工具进行ADSP21XX的C语言编程的方法;分析其C语言运行库的结构,并且结合实例介绍C语言工具的使用方法,包括C语言与汇编语言混合编程的方法,从C运行库提取代码用于自己的汇编语言程序的方法、修改运行库的源代码以适应自己开发需要的方法等。 关键词: DSP VisualDSP 嵌入式C语言 汇编语言 引言 长期以来,在DSP系统开发中,一直把汇编语言作为主要的开发工具;但汇编语言与自然语言差距很大,不易常,而且汇编语言是依赖于处理器的,不利于软件的可重复利用和系统的稳定性,程序不易移植,给开发工作带来了很大的困难。随着嵌入式系统复杂程度的不断提高,用汇编语言编写一个巨大的程度
[单片机]
单片机IO口模拟UART串口通信
为了让大家充分理解 UART 串口通信的原理,我们先把 P3.0 和 P3.1 当做 IO 口来进行模拟实际串口通信的过程,原理搞懂后,我们再使用寄存器配置实现串口通信过程。 对于 UART 串口波特率,常用的值是 300、600、1200、2400、4800、9600、14400、19200、28800、38400、57600、115200 等速率。IO 口模拟 UART 串行通信程序是一个简单的演示程序,我们使用串口调试助手下发一个数据,数据加 1 后,再自动返回。 串口调试助手,这里我们直接使用 STC-ISP 软件自带的串口调试助手,先把串口调试助手的使用给大家说一下,如图 11-6 所示。第一步要选择串口助手菜单,第二步
[单片机]
单片机IO口模拟UART<font color='red'>串口通信</font>
基于TMS320C6000系列DSP的维特比译码程序优化设计
摘要:在软件无线电技术中,经常采用DSP芯片实现信道解码,但维特比译码算法在DSP上的运行速度限制了DSP译码在高速实时系统中的应用。针对TMS320C6000系列DSP的特点,提出了一种优化的译码程序设计方案。利用DSP的并行运算能力,极大地缩短了译码器中“加比选”单元的运算时间。优化后的程序比优化前的译码速度上提高约4倍。当在167MHz的TMS320C6701上运行的时候,对(2,1,7)卷积码的译码速度可以达到870kbps。 关键词:数字信号处理器 维特比译码器 软件无线电 卷积码因为其编码器简单、编码增益高以及具有很强的纠正随机错误的能力,在通信系统中得到了广泛的应用。基于最大似然准则的维特比算法(VA)是在加性高
[嵌入式]
TMS320F2812 DSP在柴油发电机组频率测量中的应用
0 引 言 对于柴油发电机组而言,调频性能的好坏,是决定整个发电机组电气性能的关键,决定了它的电压特性、带载能力。而传统的模拟频率调节装置要实现复杂的控制规律或扩展更多的功能,就必然造成结构复杂,成本提高,可靠性降低的问题。随着微处理器技术和现代控制理论的发展,柴油发电机的频率调节从传统的模拟技术转向数字控制。数字式控制器具有算法灵活、精度高、抗能力强等特点,对数字式控制器的研究已成为柴油发电机领域的热门课题。本文论述的就是柴油发电机数字控制器中频率测量环节的功能实现。 1 测频原理 系统的原理框图如图l所示,柴油发电机的频率可由光电编码器来检测,码盘与机组传动轴连接,能够产生两个频率变化且正交(即相位相差90°)的脉冲,DSP通过
[测试测量]
TMS320F2812 <font color='red'>DSP</font>在柴油发电机组频率测量中的应用
利用MSGQ模块简化复杂DSP的应用
  电信基础设备、视频基础设备以及影像应用等对于带宽的要求迅速提升,这些系统需要支持具有更高分辨率、更快帧速率以及更出色音质的音视频流。同时,上述系统还要提高信道密度,降低每信道的功耗。此外,该市场不仅要求提高外设与存储器的集成度,而且还要进一步缩减电路板面积,从而节约系统成本。开发人员需要高度可扩展的灵活硅芯片器件和工具来帮助他们跟上市场发展趋势的要求。   用于数字信号处理器(DSP)的一些传统高性能I/O在可靠性、带宽充足性以及可扩展性等方面都存在一定的局限性。串行RapidIO(sRIO) 能够通过提供一种高性能的分组交换式互连技术解决这种局限性问题,这对复杂的DSP拓扑而言非常有用。与其前代技术不同,sRIO不需要与存
[嵌入式]
基于DSP和GC5322 的数字预失真系统设计
随着多载波调制技术的发展,调制电平也随之增加。功放的各种线性和非线性失真对无线数据传输性能的影响越来越大。尤其是功放发射峰均比较大时,发射功率变化较大,有时甚至会造成功放的自保护,导致停止发射或者烧毁功放。功放的实际工作曲线不是呈线性变化,而是呈非线性变化,而且不同的功放曲线变化不一致,就是同一个功放在不同工作环境下其曲线也不一致。这样,使得无法使用一种通用的算法公式校正功放的工作曲线。为此,提出功放预失真技术,校正功放的非线性工作曲线,使得实际发射功率稳定。   数字预失真技术目前已经在软件实现上得到了初步的发展。目前一般的预失真技术采用软件架构,使用数字信号处理器采集功放功率值,并分析其变化曲线,形成数据表格,并存储。在以后
[嵌入式]
基于<font color='red'>DSP</font>和GC5322 的数字预失真系统设计
基于DSP+FPGA的红外移动目标识别跟踪系统设计
与通用集成电路相比,ASIC芯片具有体积小、重量轻、功耗低、可靠性高等几个方面的优势,而且在大批量应用时,可降低成本。现场可编程门阵列(FPGA)是在专用ASIC的基础上发展出来的,它克服了专用ASIC不够灵活的缺点。与其他中小规模集成电路相比,其优点主要在于它有很强的灵活性,即其内部的具体逻辑功能可以根据需要配置,对电路的修改和维护很方便。DSP+FPGA结构最大的特点是结构灵活,有较强的通用性,适于模块化设计,从而能够提高算法效率;同时其开发周期较短,系统易于维护和扩展,适合于实时数字信号处理。本文介绍的就是一种可以应用于军事侦察的红外动目标识别跟踪系统的设计。 设计任务及要求红外动目标跟踪与识别系统的输入信号是红外摄像机提供
[嵌入式]
基于<font color='red'>DSP</font>+FPGA的红外移动目标识别跟踪系统设计
增强并口EPP与DSP接口的设计
利用计算机进行数据采集与控制一直都是研究的热点。大部分数据采集与控制系统都是做成插卡的形式;然而,对于日益普及应用的笔记本电脑而言,由于没有提供扩展插槽,不能够直接做成插卡的形式,因此就需要充分利用笔记本提供的外围接口,例如并口、串口等来实现。由于串口速度的限制,对于速度比较高的数据采集与控制系统,往往采用计算机的并口。这几年在国内已经有很多大在做利用增强型并行口(EPP)与外界进行通信这方面的工作,但大部分都是与一些简单外围电路的通信与控制(例如FIFO、A/D转换器),很少有人涉及到与DSP的通信。我们所设计的并口与ADSP2181的接口,为和外围复杂电路进行通信提供了一种途径。 一、EPP并口 最常见的计算机并口模式
[单片机]
增强并口EPP与<font color='red'>DSP</font>接口的设计
小广播
热门活动
换一批
更多
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved