位置:51电子网 » 技术资料 » EDA/PLD

基于FPGA的PXI多路高速数据传输系统设计

发布时间:2008/5/28 0:00:00 访问次数:624

孙黎军 刘源

  摘要:针对目前自动测试系统中要求测试信号传输距离远、传输速度快、传输信号种类多、系统工作环境恶劣等问题,设计并实现了基于pxi总线的多路高速数据传输卡。采用fpga实现了自主化的uart和pxi接口模块,与专用接口芯片相比,具有传输速度快、灵活高效的特点,增强了系统的集成度、稳定性和可靠性。

  关键词:pxi总线;数据传输;通用异步收发器;fpga

1引言

  随着自动测试技术的不断发展,基于pxi总线的测试系统已成为总线化自动测试系统的一个重要分支。在航空航天和其它测控领域,普遍存在着测试信号传输距离远、传输通道多、传输信号种类多种多样、系统工作环境恶劣等问题。文中主要针对航天测控领域提出上位机和各种测试终端之间的数据传输问题,以12个通道为例设计了多路pxi总线高速数据传输系统,在自主研制的uart和pxi模块的控制下,实现了输入信号和上位机间的远距离高速数据传输。基于fpga的自主化pxi和uart接口设计将总线模块和用户模块更紧密地结合起来,提高了系统的灵活性和可靠性,并减小了体积,对于组建自定义的总线化测试系统具有重要意义。

2系统的总体设计和功能

  自动测试系统由各种测试终端和控制主机组成,并且测试终端和主机通常相隔很远,所以它们之间的数据传输一般采用rs-485差分信号。针对导弹测试系统提出的基于pxi总线测试的具体要求,设计了多路高速数据传输系统,实现了控制主机对测试终端的控制。整个传输系统主要由信号前端预处理和fpga内部处理模块两部分构成,结构框图如图1所示。

图1rs-485差分信号传输卡的结构框图

  前端处理部分主要将输入的rs-485差分测试信号转换为ttl逻辑信号,并通过光电隔离模块以减少恶劣的测试工作环境产生的影响,然后进入fpga内部进行信号处理。在fpga内部,主要通过uart处理模块实现信号的格式转换,而后通过pxi总线接口传到上层主机,可以实现主计算机和各种测试终端设备之间的数据传输。信号输出的处理过程和信号输入的过程刚好相反。下面详细介绍基于fpga的uart和pxi模块的设计与实现过程。

3uart的fpga实现

  传输系统的控制逻辑采用fpga编程实现,包括pxi总线接口控制模块和uart处理模块两部分,该部分的结构框图如图2所示。由于要支持12路异步串行信号的并行接收和发送,uart的内部处理模块必须含有发送和接收缓冲区。同时该模块增加了串行数据接收和发送控制器,主要用于12路数据传输的协调,选择最优的调度算法,尽可能保证数据的完整性和正确性。

图2uart和pxi的结构

3.1异步串行数据收发模块
  通用异步数据收发器uart是一种应用广泛的短距离串行传输接口,整个模块的结构框图如图3所示,其功能主要是将数据进行特定的并p串转换和串p并转换。uart的发送部分是将准备输出的并行数据,按照图4所示的uart格式转换成txd信号串行输出,此时的时钟信号只需使用相应波特率的本地时钟即可。一帧uart数据包括一个起始位,8个数据位,一个可选的校验位,一个数据停止位。uart的接收器的功能是接收rxd串行信号,并将其转换为并行数据,但串并转换的时钟若同发送器一样进行处理,收发设备间的时钟误差会被累计从而导致误码。这就需要一个远远高于波特率的本地时钟信号对输入信号rxd不断地采样,以不断地让接收器与发送器保持同步,本系统采用的异步串行数据接收模块采样的时钟频率是相应波特率的16倍。

图3 uart结构框图

图4 uart数据的帧格式

  波特率发生器实际上就是一个分频比可以设定的分频器。可以根据给定的系统时钟频率(晶振时钟)和要求的波特率算出波特率分频因子。已算出的波特率分频因子作为分频器的分频数。该分频数可以根据传输波特率的需要通过pxi总线进行设定。波特率发生器产生的时钟,是波特率时钟频率的16倍,目的是为了在接收是进行精确地采样,以提取串行数据。

  由于串行数据的发送和接收时钟是异步的,由逻辑1转为逻辑0可以被视为一帧数据的起始位。为了避免毛刺的影响,设计过程中要求接收到的起始位在波特率时钟采样的过程中至少有一半都是属于逻辑0才可以确定。由于内部采样时钟bclk是接收或发送波特率的16倍,所以需要至少接收到8个连续bclk周期的逻辑0,才认为接收到了起始位;接下来的数据位和校验位将每隔16个bclk周期对接收信号进行一次采样,并且数据位在中点处被采样。在接收完数据位和校验位后,该模块指示等待16个时钟周期用以接收结束位,并不对信号进行采样。图5是uart接收器的状态机。

图5uart接收模块状态
孙黎军 刘源

  摘要:针对目前自动测试系统中要求测试信号传输距离远、传输速度快、传输信号种类多、系统工作环境恶劣等问题,设计并实现了基于i总线的多路高速数据传输卡。采用fpga实现了自主化的uart和i接口模块,与专用接口芯片相比,具有传输速度快、灵活高效的特点,增强了系统的集成度、稳定性和可靠性。

  关键词:i总线;数据传输;通用异步收发器;fpga

1引言

  随着自动测试技术的不断发展,基于i总线的测试系统已成为总线化自动测试系统的一个重要分支。在航空航天和其它测控领域,普遍存在着测试信号传输距离远、传输通道多、传输信号种类多种多样、系统工作环境恶劣等问题。文中主要针对航天测控领域提出上位机和各种测试终端之间的数据传输问题,以12个通道为例设计了多路i总线高速数据传输系统,在自主研制的uart和i模块的控制下,实现了输入信号和上位机间的远距离高速数据传输。基于fpga的自主化i和uart接口设计将总线模块和用户模块更紧密地结合起来,提高了系统的灵活性和可靠性,并减小了体积,对于组建自定义的总线化测试系统具有重要意义。

2系统的总体设计和功能

  自动测试系统由各种测试终端和控制主机组成,并且测试终端和主机通常相隔很远,所以它们之间的数据传输一般采用rs-485差分信号。针对导弹测试系统提出的基于i总线测试的具体要求,设计了多路高速数据传输系统,实现了控制主机对测试终端的控制。整个传输系统主要由信号前端预处理和fpga内部处理模块两部分构成,结构框图如图1所示。

图1rs-485差分信号传输卡的结构框图

  前端处理部分主要将输入的rs-485差分测试信号转换为ttl逻辑信号,并通过光电隔离模块以减少恶劣的测试工作环境产生的影响,然后进入fpga内部进行信号处理。在fpga内部,主要通过uart处理模块实现信号的格式转换,而后通过i总线接口传到上层主机,可以实现主计算机和各种测试终端设备之间的数据传输。信号输出的处理过程和信号输入的过程刚好相反。下面详细介绍基于fpga的uart和i模块的设计与实现过程。

3uart的fpga实现

  传输系统的控制逻辑采用fpga编程实现,包括i总线接口控制模块和uart处理模块两部分,该部分的结构框图如图2所示。由于要支持12路异步串行信号的并行接收和发送,uart的内部处理模块必须含有发送和接收缓冲区。同时该模块增加了串行数据接收和发送控制器,主要用于12路数据传输的协调,选择最优的调度算法,尽可能保证数据的完整性和正确性。

图2uart和i的结构

3.1异步串行数据收发模块
  通用异步数据收发器uart是一种应用广泛的短距离串行传输接口,整个模块的结构框图如图3所示,其功能主要是将数据进行特定的并p串转换和串p并转换。uart的发送部分是将准备输出的并行数据,按照图4所示的uart格式转换成txd信号串行输出,此时的时钟信号只需使用相应波特率的本地时钟即可。一帧uart数据包括一个起始位,8个数据位,一个可选的校验位,一个数据停止位。uart的接收器的功能是接收rxd串行信号,并将其转换为并行数据,但串并转换的时钟若同发送器一样进行处理,收发设备间的时钟误差会被累计从而导致误码。这就需要一个远远高于波特率的本地时钟信号对输入信号rxd不断地采样,以不断地让接收器与发送器保持同步,本系统采用的异步串行数据接收模块采样的时钟频率是相应波特率的16倍。

图3 uart结构框图

图4 uart数据的帧格式

  波特率发生器实际上就是一个分频比可以设定的分频器。可以根据给定的系统时钟频率(晶振时钟)和要求的波特率算出波特率分频因子。已算出的波特率分频因子作为分频器的分频数。该分频数可以根据传输波特率的需要通过i总线进行设定。波特率发生器产生的时钟,是波特率时钟频率的16倍,目的是为了在接收是进行精确地采样,以提取串行数据。

  由于串行数据的发送和接收时钟是异步的,由逻辑1转为逻辑0可以被视为一帧数据的起始位。为了避免毛刺的影响,设计过程中要求接收到的起始位在波特率时钟采样的过程中至少有一半都是属于逻辑0才可以确定。由于内部采样时钟bclk是接收或发送波特率的16倍,所以需要至少接收到8个连续bclk周期的逻辑0,才认为接收到了起始位;接下来的数据位和校验位将每隔16个bclk周期对接收信号进行一次采样,并且数据位在中点处被采样。在接收完数据位和校验位后,该模块指示等待16个时钟周期用以接收结束位,并不对信号进行采样。图5是uart接收器的状态机。

图5uart接收模块状态
相关IC型号

热门点击

 

推荐技术资料

声道前级设计特点
    与通常的Hi-Fi前级不同,EP9307-CRZ这台分... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!