TMS320C5402串行通信同步传输传输过程
[复制链接]
同步传输
对于C5402来说,同步问题分为发送同步和接收同步。如图12所示硬件系统,一旦发送同步有效,在XDATDLY指定的相应数据延迟之后,发送移位寄存器XSP[1,2]中的值被移出到DX引脚上。每当DXR[1,2]到XSR[1,2]复制时,下个CLKX下降沿使XRDY有效,表示下个要发送数据已经写入到发送寄存器(DXR[1,2])了。当CPU写入DXR[1,2]时,XRDY变无效。图12为一串行发送实例。
帧同步信号的周期决定帧频率,即:帧频率=位时钟频率/帧同步信号之间的位时钟数。通过减少帧同步之间的时间可以增加帧频率。如图13串行发送,当帧发送频率增加时,相邻传递数据信息包之间的无效周期减到0。帧同步之间的最小时间是每帧要传递的位数。最大帧频率定义为:最大帧频率=位时钟频率/每帧位数。通过设置C5402 McBSP输出的数据格式,使其符合PC机RS232串口数据格式,就解决了C5402发送数据同步问题。
一旦接收帧同步(FSR)变为有效状态,在接收器的CLKR第一个下降沿检测它。然后,在相应的RDATDLY设置的数据延迟之后,DR引脚上的数据被移入接收移位寄存器(RSR[1,2])。在每字结束时钟上升沿,RSR[1,2]的内容被复制到RBR[1,2]中,这里假设RBR[1.2]不满。那么,一个RBR[1,2]到DRR[1,2]的复制在下个CLKR下降沿把RRDY状态位置1。这表示接收数据寄存器(DRR[1,2])已准备好供CPU读取数据,当CPU读DRR[1,2]时,RRDY变无效。如图14为串行接收,利用PC机RS232串口数发送数据的起始位始终为低电平的特点,将其作为C5402 McBSP接收数据的帧同步信号,这就解决了C5402接收数据的同步问题。
系统中,C5402的接收帧同步信号线FSR与数据接收线DR接在一起,同时设置McBSP的RCR2寄存器的RFIG=1,即忽略第一个字以后的接收帧同步信号,这样即将PC机异步串口发送数据的起始作为C5402 McBSP的接收帧同步信号,又防止起始位后的数据对帧同步信号进行干扰,实现了DSP和PC机之间进行可靠的数据传输。
这里使用的COMS逻辑电平和RS232逻辑电平之间转换的芯片是MAXIM公司MAX232,由于MAX232供给电压为3.3V,在C5402接收数据采用两电阻串联分压来达到引脚电压匹配。从系统硬件连线可以看出,这种设计方案不增加额外硬件,即可实现DSP同步串口与PC机异步串口全双工通信,同时,它还具有与一般的异步串口和异步串口之间数据传输相同的速率。
传输过程
C5402在发送数据前先将数据进行如下编码:先把每个待发数据的每位按照由低到高的顺序扩展成16位,如“0”扩展成“0000h”,“1”扩展成“FFFFh”,这样一个8字符就扩展成8个16位字,再在这组数据前增加一个16位数据“0000h”作为结束标志。例如“b”的ASCII为“0110 0010b”,编码后的一组10个16位数据为“0000h,0000h,FFFFh,0000h,0000h,0000h,FFFFh,FFFFh,0000h,FFFFh”。设置C5402 McBSP发送数据格式为每帧10字,每字16位,在发送数据时将每组10个数据作为一帧信号发送出去。
C5402的接收数据过程与发送数据过程正好相反。设置McBSP工作在接收格式为每帧10字,每字16位。C5402接收完一帧数据完后,再按发送数据时的编码方式相逆的过程进行解码,恢复原值。
|