DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 361|回复: 0
打印 上一主题 下一主题

TMS320C32与PC机串行通信的软件实现方法

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 20:15:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  
         
    摘 要 根据TMS320C32以及PC机串行通信的特点,设计了两者进行串行通信的软件实现方法,设计方法原理简单,运行可靠。
关键词:TMS320C32,PC机,串行通信,码位倒置
1 引 言
  TMS320C32(以下简称C32)是一种高性能的数字信号处理器,它片内有1个串行口,可实现全双工串行通信,PC机也有串行通信接口,但两种串行口的通信协议有很大的不同:
  (1)C32是同步方式,PC机是异步方式。C32串行口的帧同步信号线与数据线分开使用,有独立的接收帧同步FSR和发送帧同步FSX,独立的接收数据线DR和发送数据线DX;PC机串行口则没有单独的帧同步,数据与同步在同一根信号线上,接收装置依靠检测起始位实现同步。
  (2)C32串行数据传送时字节的高位在前、低位在后,PC机则是低位在前、高位在后。
  (3)C32数据传送时,没有起始位,而PC机有起始位、可编程停止位和校验位。
  (4)C32支持8位、16位、32位的串行数据传送,而PC机支持5位、6位、7位、8位的数据传送。
  在某些应用场合,当C32需要与PC机进行串行通信时,这些接口协议的不同会带来一些麻烦。增加硬件电路,如TI公司的16C754芯片,可以直接实现协议转换。
  本人在实践中利用两者通信的特点,设计了一种软件实现TMS320C32与PC机串行通信的方法,下面详细介绍其实现原理。
2 串行通信约定
    串行通信约定为:
  通信方式:串行异步。接口方式:RS-232。波特率:38400bit/s。数据字符长度:8位。起始位:1位。停止位:2位。无校验位。
3 电路连接
    C32使用串行口0,PC机使用串行口A。串行通信的电路连接见图1。



图1中,通信信号线的缩写及名称、定义如下:
  TxD为数据发送Transfer Data,RxD为数据接收Receive Data,RTS为请求发送Request to Send,DX0为数据发送,DR0为数据接收,FSR0为数据接收帧同步脉冲,GND为地。
  图中的Max232E是Maxim公司生产的倒相驱动器,用于实现电平转换。PC机串行口的TxD、RxD经电平转换后,分别连接至C32串行口0的DR0、DX0。这里需要将PC机串行口的RTS(请求发送)经电平转换,连接至C32的帧同步脉冲FSR0,RTS产生C32所需的接收帧同步脉冲信号。
4 通信原理
4.1 TMS320C32向PC机发送数据
  C32向PC机的数据传送在DX1-RxD通信线上进行。C32的操作步骤如下:
  (1)初始化;(2)取数据(见图2a);(3)将8位数据进行码位倒置(见图2b)。进行码位倒置,是因为C32串行数据传送时高位在前、低位在后,而PC机则是低位在前、高位在后;(4)左移4位、16位操作,见图2c;(5)添加起始位和停止位,见图2d。PC机串行口没有单独的帧同步,数据传送与同步在一根信号线上,接收装置靠检测起始位实现同步,因此,要加上起始位和停止位;(6)写数据到发送数据寄存器;(7)重复步骤(2)~(6),发送下一个字节的数据。
  PC机的数据接收程序或过程,与常规的串行异步通信一样,不需要作任何改动,接收到的数据就是C32发送的数据。
    图2显示了C32在数据传送过程中,数据字节的变化情况。











4.2 PC机向TMS320C32发送数据
    PC机在向C32发送数据时,需产生一个帧同步脉冲信号FSR,该信号由串行口的RTS送出(见图1)。在产生FSR信号时,要由软件产生两个时延,时延1和时延2。时延1(见图3a)保证FSR脉冲宽度与波特率相对应,当波特率为38 400bit/s时,时延长度约为26μs;时延2(见图3b)保证FSR下降沿与发送数据起始位之间的时间间隔等于一位,波特率为38 400bit/s时,该时延长度也为26μs。PC机发送数据的操作步骤如下:
  (1)初始化。(2)软件置RTS=‘1’,产生FSR信号的上升沿。(3)软件时延1。(4)软件清RTS=‘0’,产生FSR信号的下降沿。步骤(2)~(4)产生一个完整的FSR脉冲信号(见图3a)。(5)软件时延2(见图3b)。(6)写数据到发送数据寄存器。(7)重复步骤(2)~(6),发送下一个字节的数据。
  C32接收数据时,先读取接收数据寄存器,再进行移位、码位倒置处理。其操作步骤如下:
  (1)初始化。(2)读接收数据寄存器,16位操作(见图3c)。(3)右移6位,有效的8位数据为d13~d6(见图3d)。(4)码位倒置,低8位数据即为PC机发送的数据(见图3e)。(5)重复步骤(2)~(4),读取下一个字节数据。
  PC机向C32发送数据时,帧同步脉冲信号与发送数据的对应关系,以及数据的变化过程见图3。
5 结束语
  文章介绍的软件通信实现方法,只需要增加少量的软件工作量,不需增加硬件电路,设计原理非常简单,实际应用也证明了这种通信方式非常可靠,可供类似的串行通信借鉴。
参考文献
1 张载鸿.微型机接口控制教程.北京:清华大学出版社,1992

         
          [/td]
        [/tr]
      
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-7-21 17:52 , 耗时 0.086878 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表