综合资讯 在线阅读 原文阅读 在线商城 下载专区 DATASHEET 技术论坛 商务频道

嵌入式系统  单片机  D S P  EDA/PLD  接口电路  存储技术  显示光电  电源技术
传感/控制  模拟技术  通信网络  无线通信  电测仪表  消费电子  汽车电子

所在的位置:首页技术文章通信网络正文
 
TMS320VC33与PC机RS-232通信的几种方法
发布日期:2008-06-21 作者:党瑞荣,石浩亮,高国旺 来源:数据采集与处理

摘  要   为了实现高速数字信号处理器TMS320VC33与PC机RS-232的接口,提出了三种具体的接口电路和软件设计方法,第一种方法是通过TMS320VC33的通用I/O引脚实现通信,第二种方法是通过TMS320VC33中可设置为通用I/O的串行引脚实现,第三种方法是直接利用TMS320VC33的串口功能实现通信。在硬件和软件设计的基础上,完成了相关的软硬件的调试和试验,实现了高速DSP与低速设备的接口,达到了预期的效果。可以作为其它高速CPU与PC机实现异步通信的参考。
关键词   异步串行通信 ;RS-232 ; DSP

引言

数字信号处理器(Digital Signal Processor, DSP)有高速数字信号处理等特点,软件运行采用了流水线作业方式,指令周期为ns级,字长可以是16位、32位或64位,能够实现整数或浮点数的实时处理,在图形图像处理、高精度测量控制、高性能仪器仪表等众多领域得到越来越广泛的应用。在许多场合,往往需要把DSP采集处理后的数据传送给PC机进行存储和进一步处理,通过PC机的RS-232异步串行口通信是一种简单易行的方法。但DSP的种类繁多,硬件不兼容,指令不统一,即使同一厂商推出的芯片,其功能和性能也差异很大。运行速度一般很高,有些DSP的指令周期仅为0.05ns[1],字长多为32位或更长,I/O电平多为3.3V,即使有些DSP中设置了串行口,其串口的引脚数目、通信速率、工作方式、接口电平等与PC机的RS232口也有着很大的差异,这对DSP与PC机RS232口的通信带来了一定的困难。

采用德克萨斯仪器公司(Texas Instrument, TI)于2001年推出的新一代高性价比DSP—TMS320VC33实现了与PC机RS232口的通信。选择该芯片实现与RS232口通信的意义在于:第一,在目前的几十家DSP生产商中,TI是最大的供应商,占到市场份额的50%以上[1];第二,TMS320VC33是该公司性价比最高的芯片;第三,该芯片的I/O电平、字长、运行速度、串口功能代表了许多DSP的共同特点。因此,TMS320VC33与PC机RS232通信的实现方法对其它类型的DSP有许多可供参考之处。

采用通用I/O引脚实现串行通信

PC机的RS-232口没有时钟信号,只能按照设定的固定波特率传送。通过PC机的RS-232串行口进行通信采用三线式接法,即只需连接RX(数据接收)、TX(数据发送)、GND(地)三个引脚。PC机按帧格式发送、接收数据,一帧通常包括1位起始位(“0”电平)、5-8位数据位、1位(或无)校验位、1 位或1位半停止位(“1”电平)。起始位表示数据传送开始,数据位是低位在前,高位在后,停止位表示一帧结束。而VC33的串口帧格式与PC机不同,它没有起始位和停止位,只有数据位,而且是高位在前,因此要想利用VC33的通用I/O引脚实现串行通信,必须针对RS232的通信协议编写相应的DSP程序,同时这一工作又与所采用的DSP硬件资源有关。

VC33共有10个引脚可配置为通用I/O引脚,其中XF0和XF1是专用的通用I/O引脚,通过软件设计可使这两个专用I/O引脚与PC机RS232实现串行通信,其电路结构如图1所示。

            

图1  通用I/O引脚与PC机RS232口的连接图

图中采用MAX202作为RS232C电平与TTL电平的转换芯片,即R1in、T1out为RS232C电平,R1out、T1in为TTL电平,但由于VC33能够承受的最高电压为4.5V[2],所以作为输入引脚使用的XF0和INT2不能直接与R1out相连,为了简化结构,采用了电阻分压的方式,使这两个引脚上的高电平为3.3V,这就保证了VC33不被损坏。XF1是VC33的输出引脚,可以与MAX202的T1in引脚直接相连。

图1中VC33的INT2引脚为外部中断脚,MAX202的R1out经电阻分压后同时连接到INT2和XF0,这样可以利用传输的第一位触发VC33的外部中断。这种传输方式的传输速率及传输位数都是在软件中控制的。实现这种方案的关键是软件设计,在本系统中设计的传输软件不仅灵活性很高,并且在一定程度上降低了误码率。

利用VC33内部定时器和中断标志寄存器IOF来完成软件设计。数据接收和发送流程基本相同,下面以图2的数据接收流程来说明数据传输过程(假设已经对系统进行了初始化)。设传输速率为9600bit/s,一个起始位(“0”),8位数据位,一个终止位(“1”)。开始位只定时半位的时间,第一位以后的定时周期设置为一个位的时间,这就保证了每一位都是在中间采样,这是与传统RS232串口传输方式最大的不同,也是设计这种传输方式的一个特点,这种方法有利于降低传输的误码率。

当数据的起始位到来时就触发VC33的INT2中断,进入INT2中断服务子程序后,首先关掉INT2中断,设置传输的字节长度Rx =0AH,开定时器0(TIMER0)的中断。当进入定时器0中断服务子程序后,先判断Rx是不是0Ah,即判断是不是传输起始位,若Rx=0Ah,表明传输的是数据起始位,同时要判断XF0管脚的状态是“0”还是“1”,如果此时XF0管脚上的状态是“1”,则可以判定数据传输错误,重新开始接收下一个数据的准备工作。反之表明数据开始正常的传输。Rx将减1,同时刷新Rx中的内容,即Rx=Rx-1,在TIMER0

图2  通用I/O引脚实现串行通信的数据接收流程图

的周期寄存器和计数寄存器中存入定时整个位的时间常数,开定时器0的中断。定时时间一到,程序又进入TIMER0的中断服务子程序,再判断Rx是不是终止位,如果是终止位,就开始接收新的数据,打开INT2,TIMER0周期寄存器和计数寄存器中存放半位的时间参数。如果判断的结果不是终止位, 采样并存储XF0的状态,同时刷新Rx中的内容,即Rx=Rx-1,启动定时器。定时一到就进入TIMER0的中断服务子程序,再判断各个参数。直到接收到的是终止位。处理发送数据的程序与接收数据的程序大体相同。

3 VC33的串口引脚作为通用I/O引脚实现串行通信

VC33的串口引脚也可以作为通用I/O引脚,通过对I/O引脚的操作可实现串行数据的接收和发送,本文用VC33中口的数据接收引脚DR接收RS232数据,用VC33的数据发送引脚DX向RS232口发送数据,电路结构如图3,图中,

            

  

 图3  VC33的串口引脚与PC机RS232口的连接图

MAX202的R2out与VC33的INT1和DR相连。

VC33软件的设计需要用到定时器和串口寄存器,其中定时器的设置与图1所示电路相同,因此,将VC33的串口寄存器设置好后,数据接收流程与图2类同。VC33串口寄存器设置的关键是将其串口引脚DR、DX设置为通用I/O引脚,即不实施串口功能。这时,DR、DX引脚的作用与图1中XFO和XF1的功能相同,接收数据的流程也与图2大体相同。

需要说明的是:第一,通过图1和图3所示硬件电路的组合,可实现一片VC33与两台微机的同时通信;第二,VC33共有10个引脚可配置为通用I/O引脚,因此,通过巧妙地利用VC33的内部和外部中断源、2个定时器、1个串口定时器和软件定时等方式,实现1片VC33与多台微机同时通信。

4 直接利用VC33的串口功能实现RS232通信

这种方法的特点是直接利用VC33的串口功能进行通信,而不是将串口引脚设置为通用I/O引脚再实现串行通信。VC33 的串行通信有固定数据速率和可变数据速率两种类型,每种类型又有连续、标准和爆发方式[3],适合与RS232接口的通信方式是固定速率的爆发方式,在该方式下,每个字的传送都由帧同步(FSX/FSR)信号开始,后面是数据位,其时序如图4所示。

          图4  VC33串口固定爆发方式时序图

需要注意,VC33在爆发方式接收数据时,从帧同步信号后开始接收就不再考虑FSR信号,但在一帧信号的最后一位时,FSR必须为低电平,否则就将会被作为下一帧的帧同步信号位。

根据上面的分析,通过软件模拟以及简单的硬件控制,就可实现VC33与标准串口间的通信。图5便是所设计的硬件连接电路,和上面的两种方法一样,也是采用三线连接的电路。由于PC机起始位为低电平,VC33 帧同步位为高电平,为了使它们统一起来,MAX202的R1out信号经反相并通过电阻分压后连接到DSP的数据接收引脚DR和帧同步引脚FSR。采用分压电阻的原因是因为VC33引脚不能承受5V电平。加了反相器后,也会使数据相位和停止位都变反,但数据信号很容易用软件方法使它还原。

图5  VC33的串口与RS-232的连接电路

由于图5所示方法是利用VC33的串口来实现异步串行通信的,所以软件设计比图1和图3所示将DSP引脚作为能用I/O引脚的情况简单,具体地说,只要把串口的相应寄存器设置好,开启串口相应的中断就可以完成与PC机的通信了,这种方法在接收时采用了帧同步信号,所以误码率较低,是一种比较实用的方法。另外对该方法还需要说明两点:

(1)在DSP接收时,由于接收信号同时连接到接收引脚DR 和接收帧同步引脚FSR, 因此,PC发送1帧信号的起始位是被用作接收帧同步信号,其后才开始接收数据,而且引脚FSR在接收帧的最后一位时必须为低电平,以满足VC33 爆发方式串行通信的要求。PC机采用上述发送帧格式,其停止位反相后,正好满足FSR 的要求。

(2)在DSP发送时,VC33的字长只能是8、16、24或32位,且不需要起始位、结束位,而RS232的字长只能是8位,且需要起始位和结束位。由图5知,VC33的FSX采用内部同步,DX引脚上出现的是数据,要使它符合PC机接收的帧格式,需要设置为16位数据位,实际上是把最高位作为起始位,其后是8位数据位,1位停止位,6位空闲位,这样就可以符合PC帧格式为10位的通信要求,而空闲位的多少对通信数据没有影响。同时,也正是由于有空闲位,所以须采用固定速率的爆发方式。

结论

本文给出了利用VC33的通用I/O引脚、可配置为能用I/O的其它引脚(文中以串口引脚为例)、以及直接利用VC33的串口功能实现其与RS232通信的电路连接和软件设计方法,经过软、硬件设计和调试,达到了良好的效果,所采用的方法可作为其它型号的DSP与PC机之间实现通信的参考。

应该说明,除了本文所述方法外,也可采用CPLD(Complex Programmable

Logic Device)或FPGA(Field Programmable Gate Array)等可编程逻辑芯片接收VC33的并行或串行数据,进而实现与RS232的通信,也可以采用专用的异步通信器件来实现同步到异步协议的转化。显然这两种方法都需要添加器件,但通过合理的设计,均可达到DSP与PC机实现异步通信的目的。另外,利用异步通信器件还可以扩展异步串口,如应用TL16C554就可以实现四串口的扩展,进而满足工程设计的需要。

参考文献

[1]党瑞荣等编著, TMS320C3x DSP 原理与应用 [M]. 西安:陕西科学技术出版社,2006.2.

[2] TMS320VC33 Digital Signal Processor [s]. Texas Instrument. 1999.

[3] TMS320C3x User’s Guide [s].Texas Instrument. 1997.



 (全文结束)

信息发布:   转引自: 【 】 【打印】 【关闭
 相 关 文 章
基于DSP的上网方案的软硬件设计与实现 (03-15)
分层结构高速数字信号处理系统的设计与应用 (03-15)
一种基于TMS320VC33 DSP的通用图像处理系统设计 (10-04)
基于TL16C552的DSP串并行通信扩展技术研究 (01-11)
双口RAM在组合导航系统中的应用 (03-31)
基于DSP的自适应数据采集卡前向通道的实现 (03-06)
TMS320VC33扩展异步串口及串口通信的实现 (05-28)
关于我们 ┋ 友情链接


深圳市福田区海滨广场恒福花园恒华阁11F
电话:0755-88305872 传真:0755-88305880
Copyright©2005-2007 无忧电子开发网版权所有

粤ICP备05064233号