datasheet

高速DSP与PC实现串口通信的方法

2008-05-09来源: 电子世界关键字:串口通信  DSP  PC  微处理器  外部中断  时间常数  串行口  RS-232接口

  数字信号处理器(Digital Signal Processor,DSP)在图形图像处理、高精度测量控制、高性能仪器仪表等众多领域得到越来越广泛的应用,实际运用中,通常须将DSP采集处理后的数据传送到PC机,然后进行存储和处理。

  T1公司的TMS320VC33微处理器具有性价比高,同时,该芯片的I/O电平、字长、运行速度、串口功能具有大多数DSP的共同特点。本文针对TMS320VC33与PC RS-232的通讯,分析三种具体的接口电路和软件设计方法,实现高速DSP与低速设备的通讯:①通过TMS320VC33的通用I/O口实现通信;②通过TMS320VC33中可设置为通用I/O的串行引脚实现通信;③直接利用TMS320VC33的串口功能实现通信,在硬件和软件设计的基础上,完成相关试验和调试,并达到预期的效果。

  采用通用I/O口实现

  PC的RS-232接口按照设定的固定波特率传送,RS-232串行口进行通信采用三线式接法,即RX(数据接收)、TX(数据发送)、GND(地)三个引脚,PC机按帧格式发送、接收数据,一帧通常包括1位起始位("0"电平)、5-8位数据位、1 位(或无)校验位、1位或1位半停止位("1"电平),起始位表示数据传送开始,数据位为低位在前、高位在后,停止位表示一帧数据结束。

  TMS320VC33微处理器的串口帧格式没有起始位和停止位,只有数据位,且数据位为高位在前、低位在后。利用TMS320VC33微处理器的通用I/O引脚实现串行通信时,须依据RS232的通信协议并结合DSP硬件资源编写相应的DSP程序。

  1.硬件设计

  TMS320VC33微处理器共有10个引脚可配置为通用I/O口,其中XFO、XFl为专用的通用I/O口,通过软件设计可实现XFO、XFl专用I/O口与RS232的串行通信,电路结构如图1所示。

  

  

  本文选用MAX3232E作为RS232C电平与TTL电平的转换芯片,R1in、T1out为RS232C电平,R1out、T1in为TTL电平,TMS320VC33微处理器的INT2引脚为外部中断脚,R10ut同时连接到INT2和XF0,即可利用传输的第一位触发TMS320VC33微处理器的外部中断。

  2.软件设计

  假设系统已经完成初始化,数据接收流程如图2所示,设传输速率为9600bit/s,一个起始位("0")、8位数据位、一个终止位("1")。数据传输时对起始位定时半位的时间,数据位第一位以后的定时周期设置为一个位的时间,保证每一位数据都在中间采样,与传统RS232串口传输方式不同,有利于降低传输的误码率。

  

  

  数据传输时,先判断Rx是否为OAh,即判断是不是传输起始位,若Rx=OAh,表明数据开始传输;接着判断XF0管脚的状态是否为"O",若XF0=1,则数据传输错误,重新接收下一个数据;若XF=0,则表示数据开始正常传输;然后将Rx-1,同步刷新Rx中的内容,即Rx=Rx-1;同时,在TIMER0的周期寄存器和计数寄存器中存入定时整个位的时间常数,开定时器0的中断,定时时间一到,程序进入TIMER0的中断服务子程序,再判断Rx是不是终止位,若Rx为终止位,则开始继续接收新的数据,打开INT2,将TIMER0周期寄存器和计数寄存器中存放半位的时间参数;若Rx不是终止位,则继续接收数据位,直到Rx接收到终止位。

  数据发送程序与数据接收程序原理相同,此处略。

  串口引脚作为通用I/O口实现

  1.硬件设计

  TMS320VC33微处理器的串口引脚也可作为通用I/O口,通过对I/0口的操作即可实现串行数据的接收和发送,将微处理器的数据接收引脚DR作为RS232的数据接收端,数据发送引脚DX作为RS232的数据发送端,电路结构如图3所示,图中MAX3232E的R2out与TMS320VC33微处理器的lNT1和DR相连。

  

  

  2.软件设计

  软件设计与I/O口软件原理相似,TMS320VC33微处理器串口寄存器将串口功能引脚DR、DX设置为通用I/O口功能,不实施串口功能,即DR、DX引脚的功能与图1中XF0和XF1的功能相同,接收数据的流程与图2原理相同。

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

  串口功能实现

  该方法直接利用TMS320VC33微处理器的串口功能实现通信。TMS320VC33微处理器的串行通信有固定数据速率和可变数据速率两种类型,每种类型又分连续、标准和爆发三种方式。

  1.硬件设计

  本文与RS232接口的通信方式采用固定速率的爆发方式,在该方式下,每个字的传送都由帧同步(FSX/FSR)信号开始,后面开始为数据位,其时序如图4所示。TMS320VC33微处理器在爆发方式接收数据时,从帧同步信号后开始接收数据,并不再考虑FSR信号,在一帧信号传输的最后一位时,FSR必须为低电平,否则将会被作为下一帧的帧同步信号位。

  

  

  TMS320VC33微处理器与标准串口间的通信硬件结构如图5所示,同样采用三线连接的电路。因PC起始位为低电平,TMS320VC33微处理器帧同步位为高电平,为使两者统一,MAX3232E的R10ut信号经一反相器后,再连接到DSP的DR和FSR引脚,同时加反相器后,数据相位和停止位都相应变反,但是很容易用软件方法还原数据信号。

  

  

  2.软件设计

  软件设计比前两种方法更为简单,只需将串口的相应寄存器位设置好,然后开启相应中断即可完成与PC的通信,此方

  法在接收时采用帧同步信号,误码率较低,是一种比较实用的方法。

  ①在DSP接收时,接收信号同时连接到接收引脚DR和接收帧同步引脚FSR,故PC发送1帧信号的起始位是被用作接收帧同步信号,然后才开始接收数据,而且FSR引脚在接收帧的最后一位时必须为低电平,以满足TMS320VC33微处理器爆发方式串行通信的要求。PC采用上述发送帧格式,停止位反相后,正好满足FSR的要求。

  ②在DSP发送时,TMS320VC33微处理器的字长只能是8、16、24或32位,且不需要起始位、结束位;RS232的字长只能是8位,且需要起始位和结束位。由图5知,TMS320VC33微处理器的FSX采用内部同步,DX引脚上为数据位,为符合PC接收的帧格式,需将数据位设置为16位,将最高位作为起始位、8位数据位、1位停止位、6位空闲位,即符合PC帧格式为10位的通信要求,同时空闲位不影响数据通信,同时也正是由于有空闲位,所以采用固定速率的爆发方式。

  结论

  本文的TMS320VC33微处理器与PC实现串口通信的方法可以为其它型号的高速DSP与PC之间实现通信提供参考。

  另外,将MAX3232E芯片换成MAX485可实现DSP与RS-485接口的通信,即提高了数据传输速率,增加了传输距离,同时,增强了数据传输中抗干扰能力,对复杂环境的数据传输通讯有重要的应用意义。

 

关键字:串口通信  DSP  PC  微处理器  外部中断  时间常数  串行口  RS-232接口

编辑:孙树宾 引用地址:http://www.eeworld.com.cn/gykz/2008/0509/article_865.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于CAN总线的电力抄表系统设计
下一篇:M2M市场的前景预测

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32串口通信--数据打包发送

串口及其中断初始化void USART1Init(void){  GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP
发表于 2019-04-10

stm8串口通信调试总结 (TTL)

一、硬件连接 一.GPIO及USART1初始化结构体变量定义/* 调试串口Pin和配置 */#define DEF_UBR_BAUDRATE           115200     #define DBG_UART                   USART1#define DBG_UART_CLK               
发表于 2019-03-29
stm8串口通信调试总结 (TTL)

【STM32CubeMX】HAL库中断方式UART串口通信

HAL库下,利用STM32CubeMX生成源代码,确实比较简单,比用标准库简单很多。现在总结自己学习的过程:硬件平台:正点原子探索者(STM32F407ZET6)1、配置STM32CubeMX(1)打开STM32CubeMX,选择相应的芯片型号,并配置调试信息为:Serial Wire(2)配置RCC主频,选择外部高速晶振(HSE):Crystal/Ceramic Resonator(译文:水晶/陶瓷谐振器)然后开始配置时钟树:外部晶振为8MHz,配置PLL使主频为168MHz,如下图:(3)配置USART1:选择异步通信模式(4)配置串口:115200,1,8,0,不用像标准库那样去自己写,直接在软件中进行配置即可,非常方便
发表于 2019-03-25
【STM32CubeMX】HAL库中断方式UART串口通信

【STM32】串口通信基本原理(超基础、详细版)

入/输出端同步通信 半双工 STM32串口通信基础STM32的串口通信接口有两种,分别是:UART(通用异步收发器)、USART(通用同步异步收发器)。而对于大容量STM32F10x系列芯片,分别有3个USART和2个UART。UART引脚连接方法RXD:数据输入引脚,数据接受;TXD:数据发送引脚,数据发送。对于两个芯片之间的连接,两个芯片GND共地,同时TXD和RXD交叉连接。这里的交叉连接的意思就是,芯片1的RxD连接芯片2的TXD,芯片2的RXD连接芯片1的TXD。这样,两个芯片之间就可以进行TTL电平通信了。若是芯片与PC机(或上位机)相连,除了共地之外,就不能这样直接交叉连接了。尽管PC机和芯片都有TXD
发表于 2019-03-13
【STM32】串口通信基本原理(超基础、详细版)

STM32中的串口通信

来每隔固定的时间就去读取信号线的电平状态,从而实现了对发送数据的解析。简单的列几个通信方式:UART(通用异步收发器):全双工USART(通用同步异步收发器):全双工SPI:同步通信  全双工IIC:同步通信  半双工单总线:异步通信  半双工接下来说一下STM32F103中的串口通信在F103中,串口1连接的时钟是PCLK2(72MHz),串口2—4连接的时钟是PCLK1(36MHz),这在一会我们计算波特率的时候会用到STM32F103串口异步通信需要配置的参数 起始位 数据位(8位或者9位) 奇偶校验位(第9位) 停止位(1,15,2位) 波特率设置
发表于 2019-03-12

STM32串口通信之超级终端控制LED灯

一、硬件介绍本程序使用开发板:STM32-PZ6806L1、GPIO控制LED开发板中LED的硬件电路参看:直接通过寄存器地址操作控制LED灯2、串口开发板中连接了MCU的2个串口,分别为USART1和USART3,其中USART1通过CH340G接PC端USB口,实现USB转串口功能,可以用于程序下载和串口通信,但通过PC端的超级终端连接时不能连接,所以本程序使用开发板上的另一个串口USART3,该串口信号转换成RS232,通过直连串口线与PC端的COM口相连,可以实现与超级终端通信。开发板串口的硬件连接图请参考:STM32串口通信之Hello二、项目创建与配置请参看《STM32串口通信之Hello》中的“使用库函数的串口
发表于 2019-03-09
STM32串口通信之超级终端控制LED灯

小广播

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved