您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于高速数字信号处理器与计算机串口通信方法的研究
1基于高速数字信号处理器与计算机串口通信方法的研究党瑞荣,石浩亮,高国旺西安石油大学,陕西省光电传感测井重点实验室陕西西安710065摘要为了实现高速数字信号处理器TMS320VC33与PC机RS-232的接口,提出了三种具体的接口电路和软件设计方法,第一种方法是通过TMS320VC33的通用I/O引脚实现通信,第二种方法是通过TMS320VC33中可设置为通用I/O的串行引脚实现,第三种方法是直接利用TMS320VC33的串口功能实现通信。在硬件和软件设计的基础上,完成了相关的软硬件的调试和试验,实现了高速DSP与低速设备的接口,达到了预期的效果。可以作为其它高速CPU与PC机实现异步通信的参考。关键词异步串行通信;RS-232;DSP中图分类号:TP273文献标识码:BRESEARCHMETHODBASEDONHIGHSPEEDDIGITALSIGNALPROCESSORCOMMUNICATINGWITHCOMPUTER’SSERIALPORTDANGRuirong,SHIHaoliang,GAOGuowang(Xi’anShiyouUniversity,ShanxiKeyLaboratoryofPhotoelectricSensingLogging,Xi’an710065,China)Abstract:Itdiscussestheinterfacebetweenhighspeeddigitalsignalprocessor-TMS320VC33andPC’sRS-232.Itprovidesthreedifferentinterfacecircuitsandsoftwaredesignmethods.ThefirstmethodusesuniversalI/OpinsofTMS320VC33tocommunicatewithRS232.ThesecondmethodcarriesoutcommunicationsbyserialportpinsofTMS320VC33,whichisconfiguredasuniversalI/Opins.ThelastmethoddirectlycompletescommunicationsbyserialportpinsofTMS320VC33,whichareconfiguredasserialfunction.Basedonthehardwaredesign,softwareemulationandthesystemexperiment,thehighqualitycommunicationsdeviceisaccomplished.ThesemethodsareusefulandcanbeusedasreferencehighspeedDSPcommunicationswithlowspeeddevice.Keywords:AsynchronousSerialCommunications;RS-232;DSP1引言数字信号处理器(DigitalSignalProcessor,DSP)有高速数字信号处理等特点,软件运行采用了流水线作业方式,指令周期为ns级,字长可以是16位、32位或64位,能够实现整数或浮点数的实时处理,在图形图像处理、高精度测量控制、高性能仪器仪表等众多领域得到越来越广泛的应用。在许多场合,往往需要把DSP采集处理后的数据传送给PC机进行存储和进一步处理,通过PC机的RS-232异步串行口通信是一种简单易行的方法。但DSP的种类繁多,硬件不兼容,指令不统一,即使同一厂商推出的芯片,其功能和性能也差异很大。运行速2度一般很高,有些DSP的指令周期仅为0.05ns[1],字长多为32位或更长,I/O电平多为3.3V,即使有些DSP中设置了串行口,其串口的引脚数目、通信速率、工作方式、接口电平等与PC机的RS232口也有着很大的差异,这对DSP与PC机RS232口的通信带来了一定的困难。采用德克萨斯仪器公司(TexasInstrument,TI)于2001年推出的新一代高性价比DSP—TMS320VC33实现了与PC机RS232口的通信。选择该芯片实现与RS232口通信的意义在于:第一,在目前的几十家DSP生产商中,TI是最大的供应商,占到市场份额的50%以上[1];第二,TMS320VC33是该公司性价比最高的芯片;第三,该芯片的I/O电平、字长、运行速度、串口功能代表了许多DSP的共同特点。因此,TMS320VC33与PC机RS232通信的实现方法对其它类型的DSP有许多可供参考之处。2采用通用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所示。接收端发送端地RS-232PC机MAX202INT2XF0XF1R1inR1outT1inT1outVC33R1R2图1通用I/O引脚与PC机RS232口的连接图图中采用MAX202作为RS232C电平与TTL电平的转换芯片,即R1in、T1out为RS232C电平,R1out、T1in为TTL电平,但由于VC33能够承受的最高电压为4.5V[2],所以作为输入引脚使用的XF0和INT2不能直接与R1out相连,为了简化结构,采用了电阻分压的方式,使这两个引脚上的高电平为3.3V,这就保3证了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开始Rx=0ah?采样XF0XF0=0?Rx=Rx-1TIMER0装载定时值开始定时返回Rx=01h?开始位错误开INT2中断采样XF0存储XF0状态存储整个字节XF0=1?开INT2,准备接收下一个数据结束位错误NOYESNOYESYESNOYESNO图2通用I/O引脚实现串行通信的数据接收流程图的周期寄存器和计数寄存器中存入定时整个位的时间常数,开定时器0的中断。定时时间一到,程序又进入TIMER0的中断服务子程序,再判断Rx是不是终止位,如果是终止位,就开始接收新的数据,打开INT2,TIMER0周期寄存器和4计数寄存器中存放半位的时间参数。如果判断的结果不是终止位,采样并存储XF0的状态,同时刷新Rx中的内容,即Rx=Rx-1,启动定时器。定时一到就进入TIMER0的中断服务子程序,再判断各个参数。直到接收到的是终止位。处理发送数据的程序与接收数据的程序大体相同。3VC33的串口引脚作为通用I/O引脚实现串行通信VC33的串口引脚也可以作为通用I/O引脚,通过对I/O引脚的操作可实现串行数据的接收和发送,本文用VC33中口的数据接收引脚DR接收RS232数据,用VC33的数据发送引脚DX向RS232口发送数据,电路结构如图3,图中,接收端发送端地RS-232PC机MAX202INT1DRDXR2inR2outT2inT2outVC33R1R2图3VC33的串口引脚与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所示。5R/XVAREN=0R/XFSM=0A1ANRINTXINTDXRloadedCLKX/RFSR/FSX(extermal)FSX(int-ernal)DX/DR图4VC33串口固定爆发方式时序图需要注意,VC33在爆发方式接收数据时,从帧同步信号后开始接收就不再考虑FSR信号,但在一帧信号的最后一位时,FSR必须为低电平,否则就将会被作为下一帧的帧同步信号位。根据上面的分析,通过软件模拟以及简单的硬件控制,就可实现VC33与标准串口间的通信。图5便是所设计的硬件连接电路,和上面的两种方法一样,也是采用三线连接的电路。由于PC机起始位为低电平,VC33帧同步位为高电平,为了使它们统一起来,MAX202的R1out信号经反相并通过电阻分压后连接到DSP的数据接收引脚DR和帧同步引脚FSR。采用分压电阻的原因是因为VC33引脚不能承受5V电平。加了反相器后,也会使数据相位和停止位都变反,但数据信号很容易用软件方法使它还原。接收端发送端地RS-232PC机MAX202DRDXR1inR1outT1inT1outVC33FSRR1R2图5VC33的串口与RS-232的连接电路由于图5所示方法是利用VC33的串口来实现异步串行通信的,所以软件设计比图1和图3所示将DSP引脚作为能用I/O引脚的情况简单,具体地说,只要把串口的相应寄存器设置好,开启串口相应的中断就可以完成与PC机的通信了,这种方法
本文标题:基于高速数字信号处理器与计算机串口通信方法的研究
链接地址:https://www.777doc.com/doc-315662 .html