基于基于MLVDS和和USB3.0的多节点数据传输系统设计与实现的多节点数据传输系统设计与实现
针对数据采集系统中上位机无法与多节点采集设备高速通信的问题,设计了一种基于MLVDS接口和USB3.0接口
的数据传输系统。该传输系统采用CYUSB3014接口芯片实现计算机与FPGA的高速数据传输,采用ADN4693E
接口芯片完成多节点数据传输,以FPGA作为核心控制器,并基于MLVDS自定义协议解析多节点通信逻辑,实
现MLVDS接口与USB3.0接口之间的数据交互。测试结果表明,该系统数据转换结果准确、可靠,实现了上位机
与多节点数据采集设备间的高速通信。
0 引言引言
在各种测试现场中,数据采集单元往往分布在不同的地方,数据采集具有速度快、数据量大的特点,且对采集系统的实时
性要求越来越高。为了将分布在多处的传感器采集的大量数据进行统一的分析和管理,需要实现多节点的高速互连通
信
[1]
。MLVDS支持多节点互连的拓扑结构,可提供较高的数据传输速率(理论上高达500 Mb/s)和更低的功耗
[2]
,实现多节点采
集数据的可靠传输;USB3.0接口作为计算机的通用接口,其理论传输速率(5 Gb/s)是USB2.0接口的10倍
[3]
。设计中采用赛
普拉斯USB3.0接口芯片CYUSB3014作为FPGA同计算机通信的桥梁,采用SN65MLVD203接口芯片完成多节点数据传输,在
此基础上实现了多节点数据采集系统与计算机之间高速传输。
1 系统总体框架设计系统总体框架设计
本文设计的MLVDS和USB3.0接口数据传输系统结构框图如图1所示。该传输系统主要由USB3.0模块、FPGA主控模块、
MLVDS通信模块模块组成,系统硬件结构主要包括:FPGA、DDR3缓存芯片、USB3.0接口芯片、MLVDS接口芯片,选用
Xilinx公司的Spartan-6系列可编程逻辑器件6slx16csg324芯片为核心控制器,完成对传输系统整体逻辑的控制。
系统上电后,FPGA主控模块对MLVDS总线线上各节点的采集模块进行初始化配置,并启动发送数据包进程与接收数据包
进程来监测多个节点的运行状态。各节点采集的数据经过编帧之后将数据缓存到采集模块的DDR3中,当主节点需要读取某个
节点的数据时,从节点通过MLVDS通信模块将数据传输到MLVDS接口芯片,再通过总线将数据发送至主节点,主节点完成数
据解析后将有效数据存入DDR3中。同时,USB3.0通信模块读取DDR3中的缓存数据后,通过USB3.0接口上传到上位机。在
此过程中,上位机负责指令的下发和采集数据的分析与处理以及各节点上传的状态字的分析,指令下发过程与数据上传过程类
似,数据通过USB3.0接口下发至USB3.0接口芯片,然后经FPGA接收数据,发送至MLVDS通信模块,最后再将数据发送至
各个节点,各个节点会同时接收到数据,各节点接收到数据后只响应属于自己的指令。
2 硬件电路设计硬件电路设计
2.1 MLVDS接口电路设计接口电路设计
MLVDS驱动接收器、数字隔离器、信号连接器件三部分组成了MLVDS多节点总线传输硬件电路,根据需求,选用ADI公司
推出的ADN4693E全双工通信芯片作为MLVDS驱动接收器,数字隔离芯片和电源隔离芯片分别选用的是ADuM3442和
ADuM5000,以此来降低来自其他电路的影响。
ADN4639E是ADI公司发布的全双工MLVDS驱动接收器,内置驱动器和接收器且互不干扰,最高可支持200 Mb/s的数据速