0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于DSP和FPGA实现RS-485平衡型差分传输系统的设计

电子设计 来源:电子设计应用 作者:王菡,郭小舟 2021-06-23 14:47 次阅读

在高速磁浮交通系统中,车载测速定位单元对车辆的位置和速度进行实时测量,并将位置和速度信号通过无线电系统传送至地面上的牵引控制系统和运行控制系统,以用于长定子直线同步电机牵引的反馈控制,以及车辆运行的指挥和安全防护。测速定位单元是牵引和运控系统闭环控制的核心与关键。

测速定位单元紧邻悬浮电磁铁及长定子绕组和铁心,处于悬浮磁场和牵引磁场中,电磁环境非常复杂,这对其通信设备的电磁兼容性能提出了很高的要求。另外,为满足牵引控制系统的需求,测速定位信号的精度要求相当高。因此,测速定位信号传输的速度、实时性及可靠性都面临挑战。基于以上考虑,本文提出了基于DSPFPGA的磁浮列车同步485通信方式的研究,以解决上述挑战。

同步485的实现方法

考虑到测速定位单元的工作环境及通信功能需求,在选择该单元与车载无线电系统之间的通信方式时,经过分析,本研究采用了传输速率较高的同步通信方式,并使用屏蔽性能较好的双绞线实现RS-485平衡型差分传输。

接口设计及通信协议

测速定位单元与车载无线电控制单元之间的通信接口关系如图1所示。车载无线电控制单元为主控方,车辆测速与定位单元为受控方。通信双方均由收发器控制器构成,收发器之间采用RS-485同步串行接口方式,每个接口有4对差分线。

图1中,CLK为时钟信号,ANF为无线电请求信号,UEF为门控信号,DATA为数据信号。车辆测速定位单元每20ms向无线电控制单元发送一次数据,传输速率为512kbps。为了防止小脉冲信号的干扰,ANF信号的宽度为10个CLK信号;在ANF信号变为低电平后,等待10个CLK信号宽度,UEF才开始跳变为有效。ANF、UEF、DAFA信号均在CLK的上升沿变化。在无信号传输时,UEF、DATA、ANF均为低电平,时钟信号保持传输。数据传输采用左移方式,即先传高位,后传低位。信息帧格式如表1所示。

同步485的收发器实现

在本文所论述的通信系统中,车辆测速定位单元及车载无线电控制单元双方均采用XC2S100作为通信收发器,模拟同步485的发送与接收时序。同步485的FPGA设计主要是基于Verilog硬件描述语言,所使用的EDA工具包括ISE(含其内部集成工具)、Modelsim

时钟及定时信号的的产生

车载无线电控制单元需要产生速率为512k的时钟信号与20ms一次的ANF信号。另外,该单元在串行接收定位数据时接收时钟应为512k(波特率时钟)的16倍,即8M。因此,分频器在同步485通信方式中得到有效应用。

对偶数分频,只需设计一个计数器进行计数,待计数至分频数的二分之一时,使分频后的时钟电平翻转即可;奇数分频较为复杂,因为计数器不能对非整数进行计数,需使用一定的算法进行处理。这里对奇数分频模块进行功能仿真后的波形见图2。

ANF信号每隔20ms发送一次,每次发送脉宽为10个时钟周期。ANF信号的产生可以分成两部分实现:首先产生间隔20ms的脉冲信号,然后把此脉冲信号的宽度变成10个时钟周期。

串行数据的发送与接收

产生串行数据时,根据通信协议的要求,测速定位单元每隔20ms应串行移出72bits数据。如果每个发送时钟周期移出一位,则需要72个时钟周期才能全部移出,因此门控信号也需要保持72个时钟周期的宽度。

接收串行数据时,同步串行接收一帧(72bits)数据与异步串行接收是不同的。由于收发时钟不是异步的,因此不能以判断在空闲态以后出现的第一个低电平作为一帧的开始,而是以门控信号(UEF)的上升沿作为一帧数据到来的判断。为了避免数据传输过程中毛刺的影响,我们仍以波特率时钟的16倍进行接收,即每隔16个波特率时钟周期采样一次,因此,每个数据将在传输的每一位的中点处被采样。

串行数据发送与接收的仿真时序图见图3。

收发器与控制器之间的数据交换

基于RS-485的同步通信时序是用FPGA作为通信收发器来模拟的,但是通信数据最终是与系统的CPU进行数据交换的。在该通信方式的设计中,通信双方均采用TMS320F2812作为通信控制器。FPGA与DSP的数据交换必须满足一定的时序,才能保证测速定位单元向车载无线电控制单元实时地传输位置及速度信号。本系统中,DSP控制器采用C语言进行软件设计。

测速定位单元侧DSP与FPGA的数据交换

TMS320F2812的外部存储器XINTF可供选择的外部地址空间有XINTF0、XINTF2及XINTF6。其中XINTF0使用XZCS0AND1作为片选信号,外部存储器扩展空间为8K;XINTF2与XINTF6分别使用XZCS2、XZCS6AND7作为片选信号,外部存储器扩展空间均为0.5M。测速定位单元在发送位置速度信息时,通过DSP的数据线传输到FPGA,DSP根据相应的外部存储器片选信号找出对应的地址,在从底层传感器得到一个新的定位数据后写入该地址。相对应的硬件连接框图见图4。

根据协议要求,定位信息每次发送时包括5个字节的用户数据和2个字节的CRC校验,因此,16bits数据线至少需要连续发送四次,才能将底层的定位信息完整地传送到FPGA。

为了减少硬连线,这里只连接地址线的高五位,对其中的低四位地址线进行4~16译码,最高位地址线作为该译码器的使能信号。取对应于一个外部存储器片选信号的四个地址,比如片选信号XZCS2为低,即可选用0xe0000,0xe4000,0xe8000,0xec000四个地址作为DSP向FPGA写数据的地址。

由于每个不同的地址都对应一个地址译码值,当四个译码值都出现后才可认为一次定位信息传送完成。这时把连续接收到的七个字节加上帧头及帧尾,作为测速定位单元发送给车载无线电控制单元的一帧数据。

车载无线电控制单元侧DSP与FPGA的数据交换

为了避免占用过多的CPU资源,车载无线电控制单元中DSP从FPGA读数据时不采用查询方式,而采用外部中断来接收数据。将DSP的16bits数据线与FPGA连接,DSP的XINT1也连接到FPGA的I/O管脚。若选用XZCS0AND1作为外部存储器片选信号,则DSP从FPGA读数据的寻址空间范围为0x002000—0x004000,这个地址范围内所读出的数据即为数据线上传送到DSP的定位数据。相对应的硬件连接框图见图5。

由于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,则要进行相应的字符转义),依次接收以下的数据便得到完整的一帧定位信息。

通信双方的原理图

根据以上对同步485实现方法的描述,在ISE中利用ECS工具所描绘的顶层原理图如图7和图8所示。包括测速定位单元同步数据发送和车载无线电控制单元同步数据接收两部分。

图7中,addr_decode为地址译码模块,用于从DSP完整地接收一帧定位信息;tra485data为串行数据及门控信号发送模块。其中,din(15:0)直接来自DSP的16bits数据线;addr(3:0)与DSP的A17~A14地址线相连;clkin及anfin信号由车载无线电控制单元提供。输出的dataout及uefout经过输出缓冲及差分电平转换后送给车载无线电控制单元。

在图8所示的车载无线电控制单元同步数据接收方的原理图中,divide_512k为发送时钟产生模块,产生通信所需的波特率时钟;anf_shift用于产生无线电请求信号;rec485data用于串行接收定位信息并通过dataconvert模块转发到通信控制器。其中,Dataout(15:0)直接通过数据线连到DSP,Xint1则连到DSP的外部中断1。anfout和clkout由输入的晶振频率分频后得到,经输出缓冲及差分电平转换后送给车辆测速定位单元。

结语

在高速磁浮列车特殊的通信环境中,基于RS-485物理层的同步通信方式体现出其抗干扰性强、实时性好、误码率低等优点,且实现原理简单。利用FPGA所实现的通信收发器设计灵活、可靠性高,其功能在实际应用中已得到验证。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    544

    文章

    7682

    浏览量

    344350
  • FPGA
    +关注

    关注

    1602

    文章

    21320

    浏览量

    593158
  • 无线电
    +关注

    关注

    58

    文章

    2070

    浏览量

    115093
收藏 人收藏

    评论

    相关推荐

    通讯接口的小知识 ---RS-232、RS-422、RS-485区别

    10Mbps。3> RS-485接口是采用平衡驱动器和,接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。4> RS-485最大的通信
    发表于 06-22 20:34

    RS-485RS-422接口介绍

    只对 接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。1. 平衡传输RS-422、RS-485RS
    发表于 10-03 20:08

    RS-485电路设计经验

    传输网络的接地同样也是很重要的,因为接地系统不合理会影响整个网络的稳定性,主要存在两大隐患:共模干扰和EMI。共模干扰:RS-485接口采用
    发表于 10-13 10:07

    RS-485电路设计经验

    本帖最后由 lee_st 于 2017-10-31 09:23 编辑 转帖RS-485的标准全称为TIAA/EIA-485串行通讯标准。数据通讯采用分线号传输方式,也称作
    发表于 10-25 11:36

    RS232、RS422、RS485比较与介绍

    的数据最高传输速率为10Mbps。③ RS-485接口是采用平衡驱动器和接收器的组合,抗共模干能力增强,也就是说有很不错的抵御外界干扰的
    发表于 11-21 22:03

    RS-232、RS-422和RS-485串行数据接口标准

    ,分别用来接收数据和发送数据。RX与TX端子相接,并将地线相接即可实现自环。 RS-422和RS-485的数据信号均采用
    发表于 04-23 09:40

    采用CAN总线与RS-485实现DSP通信接口

    设备,负载设备可以是被动发送器、接收器或收发器,RS-485最大传输距离为1200m,最大传送速率可达10Mb/s。因此,RS-485在远程通信和多机总线系统中具有很大的吸引力,在实际
    发表于 06-14 05:00

    【银杏科技ARM+FPGA双核心应用】STM32H7系列53——RS-485

    时,传输速度可达100Kbps。③抗干扰能力强。 RS485 接口是采用平衡驱动器和接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好
    发表于 05-12 15:44

    使用RS-422和RS-485进行便捷,可靠的数据传输

    上的最大接收器数量为十(很好,请参阅下面的“单位负载”讨论)。另一方面,使用RS-485,你可以拥有一个实际的多点系统,其中“点”而不是“下降”表示一个分对可以支持多个发送器和多个接收器。该
    发表于 09-18 07:40

    RS-485总线介绍

    RS-485总线介绍RS-485仅是一个电气标准,描述了接口的物理层,像协议、时序、串行或并行数据以及链路全部由设计者或更高层协议定义。 RS-485定义的是使用平衡(也称作
    发表于 07-16 08:25

    RS-485通信相关资料分享

    RS-485是一种应用十广泛的通信协议bai。其显著特点是信号采用“”的方式传输,因此抗干扰能力很强,通信距离也比
    发表于 09-09 07:37

    RS-485的相关资料分享

    管理等领域。RS-485总线弥补了RS-232通信距离短,速率低的缺点,RS-485的速率可高达10Mbit/s,理论通讯距离可达1200米;RS-485
    发表于 02-09 07:10

    分享一份RS-485接口电路实际指南

    1、如何设计RS-485接口电路本文的重点在于工业最广泛使用的平衡传输线标准:ANSI/TIA/EIA-485-A(以下简称485)。在回顾
    发表于 06-02 18:16

    RS-485常见问题汇总

    越来越多的人在问关于 EIA/TIA-485(俗称 RS-485 数据传输标准)基本概念的一些问题,这一事实表明未来数年 RS-485 仍会在各种工业接口中起到举足轻重的作用。 本文中
    发表于 11-23 07:53

    3个理由了解为什么CAN总线与RS-485更好

    双线、多点的串行通信标准协议。就像RS-485一样,通过CAN的信号以CAN-H和CAN-L作为电压流动。分信号的传输类似于
    发表于 04-03 14:32