网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> DSP >> C3000文章 >> VC30系列 >> 文章正文
  [组图]TMS320C3x DSP和PC机的异步串行通信设计         ★★★ 【字体:
TMS320C3x DSP和PC机的异步串行通信设计
作者:齐崇英 …    文章来源:电子工程师    点击数:    更新时间:2006-12-16    
齐崇英 陈西宏 苏红潮

                    陕西空军工程大学导弹学院(陕西三原713800)    

  【 】在简要介绍TMS320C3x系列芯片的基础上,主要介绍了在数字信号处理系统中,DSP与上位PC机异步串行通信的软硬件解决方案。
    关键词:TMS320C3x 异步串行通信 MSComm控件
  
1 引 言

   TMS320C3x DSP是目前国内应用比较广泛的DSP芯片之一,它提供了可与外部串行设备通信的串行接口,支持8/16/24/32位数据交换,为设计A/D、D/A接口电路提供了很大的灵活性。然而,当DSP系统和PC机进行通信时,如何设计合理的接口电路和通信软件,将DSP处理后的数据实时准确地传输给PC机,同时使PC机实时有效地控制DSP,成为DSP系统设计中的重要一环。本文采用异步串行通信(Universal Asychronous Receiverand Transmitter,UART),较好地解决了DSP和PC机通信这一问题。
2 TMS320C3x简介
  TMS320C3x(以下简称C3x)是TI(TexasInstruments)公司生产的第三代产品,也是第一代浮点DSP芯片,包括C30、C31、C32和C33四种,是TMS320系列中性能价格比较高的一种浮点DSP芯片,具有32位的浮点精度,总共有三套总线,即程序总线、数据总线和DMA总线,取指、读写数据以及DMA操作可并行进行,可以寻址16M字的空间。其中C31是C30的简化和改进型,它去掉了扩展总线和一个串口,降低了芯片的成本,并且在硬件上增加了一个非常有用的功能,即程序引导功能(Bootloader),使其程序可以从低速EPROM、PROM或串行口装入到系统的高速RAM中全速运行 。C32和C33是C31的进一步简化和改进,其中C32片内RAM减为512字,以降低成本。C33片内RAM为34K ,需3.3V电源。
3 DSP系统结构框图
    图1为整个DSP系统的硬件框图。
                            
    其中,TLC32044是TI公司生产的话带模数接口芯片(简称AIC)TLC32040系列中的一种,它集A/D、D/A于一体,具有两个模拟输入口和一个模拟输出口,最高采样频率为19.2kHz。MC6850为Motorola公司生产的异步串行接口芯片(UART),它可以进行8位或9位数据的发送和接收,并可选择÷1、÷16、÷64三种不同的时钟模式。DSP通过对MC6850的控制寄存器初始化来设置异步通信协议,然后MC6850对DSP的并行数据和PC机的串行数据按照协议进行并串转换。MAX232芯片进行TTL电平和RS-232电平之间的转换。外部信号经A/D转换进入DSP,DSP对其进行处理后,经UART送入PC机,由PC机对数据进行处理和存储。同时,PC机将控制信号或待发数据经UART送入DSP,对DSP实施控制或经DSP处理后送入D/A,经低通滤波后还原为模拟信号。
4 DSP系统通信软件
  传输时,发送双方应按照共同遵循的协议进行初始化。通信协议采用起止式异步通信协议,下面分别是DSP对MC6850和上层PC机软件对串行口初始化操作的源程序代码。
4.1 MC6850异步串口通信程序设计
  加电之后,6850处于闭锁状态,以避免输出错误的发送。使用前,必须通过程序将控制寄存器的CR0和CR1置“1”,以进行主复位,使其从闭锁状态释放。然后就可以对控制寄存器编程,以确定6850的时钟分频、数据格式和发送与接收控制功能等。以下是在Code Composer集成开发环境下,用C语言实现对6850的初始化设置和发送数据程序。
                         
4.2 PC机通信程序设计
  在VC++6.0环境下,利用PC机进行串口通信的常用方法有两种:(1)调用Windows API(Application Program Interface)函数;(2)使用ActiveX的MSComm控件。第一种方法需声明及调用许多API函数,十分烦琐。故本文采用第二种方法。
    PC机通信的具体实现过程如下:
    第一步,启动VC++6.0,新建一个基于对话框的应用程序TxRx。
  第二步,在对话框中插入串口控件,增加新的静态文本、编辑框和按钮控件,并为它们添加相应的变量。其属性如下:
                          
  
第三步,在TxRxDlg.cpp文件中添加有关程序代码。
  首先,在文件头第一条注释行中加入全局变量说明。
                           
    其次,需要初始化串口参数,在OnInitiDialog()函数中TODO语句后加入以下代码:
                    
    //
先预读缓冲区以清除残留数据
  接着,为发送按钮IDC-TRSMITT添加消息处理函数OnTransmitt(),内容如下:
                             
   下面举例说明如何在Transmitt()函数中实现发送一帧数据。
                            
                           
                              UpdateData(FALSE);//更新对话框

5 结束语
  以上是DSP与PC机之间异步串行通信的软硬件解决方案,目前此方案已应用于短波通信智能终端数据传输系统中,运行稳定,通信性能良好,较好地解决了DSP和PC机的通信问题。


 

     
 
1 Texas Instruments.TMS320C3x User′s Guide.2000
2 Texas Insturments.Code Composer User′s Guide.2000
3 张雄伟.DSP芯片的原理与开发应用.北京:电子工业出版社,2001
4 吕文哲,黄强.再谈用VC++开发环境下串行通信程序.电子技术应用,1998,24(9)
               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

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