磁浮列车同步485通信方式的研究
空间均为0.5M。测速定位单元在发送位置速度信息时,是通过DSP的数据线传输到FPGA,DSP根据相应的外部存储器片选信号找出对应的地址,在从底层传感器得到一个新的定位数据后写入该地址。相对应的硬件连接框图如图4所示: 图4 车辆测速定位单元DSP控制器向FPGA收发器写数据的硬件连接示意图 根据协议要求,定位信息每次发送时包括5个字节的用户数据和2个字节的CRC校验,因此16bits数据线至少需要连续发送四次才能将底层的定位信息完整地传送到FPGA。 为了减少硬连线,这里只连接地址线的高五位,对其中的低四位地址线进行4-16译码,最高位地址线作为该译码器的使能信号。取对应于一个外部存储器片选信号的四个地址,比如片选信号XZCS2为低(对应的外部存储器地址范围:0x080000―0x100000),即可选用0xe0000,0xe4000,0xe8000,0xec000四个地址作为DSP向FPGA写数据的地址。 由于每个不同的地址都对应一个地址译码值,当四个译码值都出现后才可认为一次定位信息传送完成。这时把连续接收到的七个字节加上帧头及帧尾作为测速定位单元发送给车载无线电控制单元的一帧数据。相对应的地址译码值如表2所示。 表2 地址译码值 (2) 车载无线电控制单元侧DSP与FPGA的数据交换 由于采样时间为毫秒级,为了避免占用过多的CPU资源,车载无线电控制单元中DSP从FPGA读数据时不采用查询方式,而采用外部中断来接收数据。将DSP的16bits数据线与FPGA连接,DSP的XINT1也连接到FPGA的I/O管脚。若选用XZCS0AND1作为外部存储器片选信号,则DSP从FPGA读数据的寻址空间范围为0x002000―0x004000,这个地址范围内所读出的数据即为数据线上传送到DSP的定位数据。相对应的硬件连接框图如下: 图5 车载无线电传输单元DSP控制器从FPGA收发器读数据的硬件连接示意图 由于FPGA传送到DSP的一帧数据为72bits,因此通过16bits数据线传输需要分5次才能传送完,每16bits数据到达时产生一次外部中断。设波特率时钟为512k,假设来自定位单元完整的一帧数据为0x02123456789abcde03,车载无线电单元通过16bits数据线分次转发到DSP的数据则为0x0002, 0x1234, 0x5678, 0x9abc,0xde03 。数据及中断信号产生的时序如图6所示。由图6可以看出,每对应移出一次dataout,都会相应地发出一个外部中断信号xint1,DSP一旦接收到外部中断便在中断服务子程序中从16bits数据线读取信号值。为了完整的接收一帧信号,可在外部中断服务程序中定义一个16级FIFO,当从FIFO的最底层读出的数据为0x02时,便可以判断一帧数据的开始(若在用户数据和校验值中存在0x02则要进行相应的字符转义),依次接收以下的数据便得到完整的一帧定位信息。 图6 车载无线电传输单元DSP控制器从FPGA收发器读数据的仿真波形 2通信双方的原理图 根据以上对同步485实现方法的描述,在ISE中利用ECS工具所描绘的顶层原理图如下,包括测速定位单元同步数据发送和车载无线电控制单元同步数据接收。 定位测速单元同步数据发送方的原理图如图7所示。 图7 同步数据发送方原理图 图7中,addr_decode为地址译码模块,用于从DSP完整地接收一帧定位信息;tra485data为串行数据及门控信号发送模块。其中,din(15:0)直接来自DSP的16bits数据线;addr(3:0)与DSP的A17-A14地址线相连;clkin及anfin信号由车载无线电控制单元提供。输出的dataout及uefout经过输出缓冲及差分电平转换后送给车载无线电控制单元。 车载无线电控制单元同步数据接收方的原理图如图8所示。 图8 同步数据接收方原理图 图8中,divide_512k为发送时钟产生模块,产生通信所需的波特率时钟;anf_shift 用于产生无线电请求信号;rec485data用于串行接收定位信息并通过dataconvert模块转发到通信控制器。其中,Dataout(15:0)直接通过数据线连到DSP,Xint1则连到DSP的外部中断1。anfout和clkout由输入的晶振频率分频后得到,经输出缓冲及差分电平转换后送给车辆测速定位单元。 3 结束语 在高速磁浮列车特殊的通信环境中,基于RS-485物理层的同步通信方式体现出其抗干扰性强、实时性好,误码率低等优点,且实现原理简单,硬件连接也不复杂。利用FPGA所实现的通信收发器设计灵活、可靠性高,其功能在实际应用中已得到验证,且效果良好。
磁浮列车同步485通信方 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)