基于FPGA的高速数据传输系统设计与实现

2016-11-17 08:56李正军周志权赵占锋
计算机测量与控制 2016年9期
关键词:以太网上位命令

李正军, 周志权, 赵占锋

(哈尔滨工业大学(威海)信息与电气工程学院,山东 威海 264209)



基于FPGA的高速数据传输系统设计与实现

李正军, 周志权, 赵占锋

(哈尔滨工业大学(威海)信息与电气工程学院,山东 威海 264209)

为了满足国家重点专项“量子科学实验卫星”中“量子存储板”高速串行数据传输的测试要求,提出了一种以Nios II嵌入式处理器为控制核心,TLK2711、RS422、USB2.0和千兆以太网为传输接口的高速数据传输解决方案;系统采用TLK2711完成高速数据的串并转换,采用RS422完成命令和控制信号的传输,实现与“量子存储板”的高速数据传输;利用Xilinx公司Zynq-7000芯片独有的ARM+FPGA架构实现千兆以太网完成数据的高速传输,利用EXAR公司XR21V1414 USB转串口芯片实现命令、遥测等数据的传输;采用Labview编写上位机控制整个系统的运行,实现命令发送、指令解析、运行状态显示、数据帧产生、高速数据传输、解析和存储等功能;实测结果表明,此系统数据传输速率高达600 Mbps,满足高速串行数据传输的要求,且具有稳定性高、可靠性好等优点。

Nios II;TLK2711;Zynq-7000;ARM+FPGA;千兆以太网

0 引言

随着数字信号处理技术的蓬勃发展,在雷达信号处理、遥感数据处理、无人机实时监测、卫星通信、量子通信、航测等众多领域,复杂、庞大的数据传输和处理面临着严峻的挑战[1]。日益剧增的原始数据、庞大的实时运算量和高度复杂的算法都对处理、传输速度提出了更高的要求,高速、稳定、安全、高效的数据传输方案成为整个系统不可分割的组成部分和技术难点。

TLK2711是一种基于串行/解串技术的高速收发器件,单路传输速度高达2.5 Gbit/s[2]。TLK2711采用VML差分信号,具有较好的抗干扰能力[3];采用自同步通信方式,利用时钟和数据恢复技术实现串行代替并行传输,有效解决了传输中信号和时钟的偏移问题。此外,串行技术充分利用传输媒介的信道容量,减少所需要的连接器的引脚数目,设备及电缆布线更为简单,系统的抗干扰能力更强。

千兆以太网是在以太网基础上发展起来的,完全兼容大量使用的以太网,除了具有高效、高速、高性能等优点外,还能实现电气完全隔离,在数据传输中有显著的优势。

Nios II是Altera公司推出的32位基于RISC指令集的处理器软核。用户可以根据自身的需求定制具有特定功能的嵌入式处理器[4]。随着技术的发展,Nios II功能日益完善,处理能力逐渐增强,在FPGA中内置软核的数据处理方式已经应用于各种领域,并逐渐成为一种研究趋势[5]。

本文根据国家重点专项“量子科学实验卫星”中“量子存储板”的测试要求,以及TLK2711、Nios II和千兆以太网的众多优点,设计和实现了一种新型高速数据传输系统。该系统以定制的Nios II嵌入式处理器为控制核心,通过TLK2711和RS422与“量子存储板”完成数据交互,将接收的数据通过千兆以太网、串口传输给上位机,上位机完成数据实时解析、存储,显示“量子存储板”的运行状态;用户将数据包、指令通过千兆以太网、串口下发给系统,实现对“量子存储板”的控制。

1 系统硬件设计

本系统以Altera公司的Cyclone V系列的EP5CGXFC3B7F23C8N芯片作为控制核心,内嵌Nios II嵌入式处理器控制整个系统的运行。通过TLK2711和RS422与“量子存储板”对接,TLK2711用于高速数据传输,RS422用于传输控制信号和命令。FPGA将TLK2711传来的数据通过千兆以太网传输给上位机;上位机将数据包通过千兆以太网发送给FPGA,FPGA将接收的数据通过TLK2711和控制信号发送给“量子存储板”实现高速数据的传输。上位机将命令通过串口发送给FPGA,FPGA完成命令解析和下发,接收“量子存储板”回传的遥测数据,将其发送给上位机。FPGA控制AD完成对供电接口电压、电流的实时采样,上传结果,实现对电源的实时监测。系统硬件结构图如图1所示。

图1 系统硬件结构

1.1 千兆以太网模块设计

千兆以太网模块采用Xilinx最新的Zynq-7000芯片实现,它将双ARM Cortex-A9 MPCore处理器系统和可编程逻辑紧密集成在一起,实现了ARM和FPGA的无缝连接,设计者可以灵活选择,并且其性能完全不亚于传统的ARM+FPGA组合。本设计中将TCP/IP协议栈移植到ARM中实现千兆以太网功能,其FPGA部分用于时序控制和数据缓存。

为了降低维护难度,系统采用模块化设计,该模块只完成高速数据的传输。外部传来的上行数据在FPGA侧先用FIFO缓存,当FIFO中的数据满一帧后,将数据读出、打包通过以太网发送给上位机,上位机按照固定的协议完成数据的解析、显示、存储;用户将需要下发的数据包通过以太网下发,该模块完成解包并将数据写入下行数据缓存FIFO中,外部数据接口监测FIFO中是否有数据,一旦有数据就将其读出,控制TLK2711和控制信号将数据按照固定的帧格式发送给“量子存储板”。数据传输方案如图2所示。

图2 千兆以太网数据传输方案

1.2 定制Nios II嵌入式处理器

Nios II嵌入式处理器用于控制整个系统的运行,代替传统的DSP+FPGA架构中的DSP,这样不仅节约了成本而且减小了系统的体积。该处理器的结构如图3所示。系统中Nios II嵌入式处理器主要用于接收上位机通过USB转串口发送的指令,完成指令解析将结果用Status输出,FPGA根据Status的值是能系统;当产生AD读取上升沿中断时,Nios II读取AD采样结果,按照固定的帧格式将数据打包通过串口发送给上位机,上位机按照协议完成解析、显示。

图3 Nios II嵌入式处理器结构

2 系统软件设计

2.1 FPGA程序概要设计

系统的FPGA程序采用Verilog HDL语言编写,在TLK2711和控制信号的配合下完成与“量子存储板”的高速数据传输。通信的数据帧格式如图4所示。

图4 高速数据传输帧格式

数据传输流程可分为TLK2711->千兆以太网和千兆以太网->TLK2711。

TLK2711->千兆以太网:“量子存储板”将数据通过TLK2711发送给FPGA,当检测到帧头时开始将数据写入FIFO,当检测到帧尾时停止写FIFO完成一帧数据的传输,程序流程图如图5所示。当FIFO中的数据满一包时,启动千兆以太网发送,将这一包数据打包传给上位机。当FIFO的剩余空间不足一帧是,关闭传输使能信号,传完当前帧后停止传输;当FIFO的剩余空间大于一帧时,使能传输使能信号,继续数据传输。

千兆以太网->TLK2711:用户控制上位机将数据包发送给千兆以太网模块,完成解包之后,将数据写入TLK2711的发送缓存FIFO中并启动发送。发送模块从FIFO中读取数据,当检测到帧头时,开始数据传输,检测到帧尾时停止数据传输,完成数据的下发,程序流程图如图6所示。

图5 数据接收 图6数据发送

2.2 Nios II程序设计

在Quartus II中利用Qsys完成Nios II嵌入式处理器搭建后,还需要在Nios II IDE中完成C语言程序设计。系统中Nios II软核用于解析串口发来的命令、上传AD采样结果。

操作命令如表1所示,数据帧格式如图7所示。

表1 操作命令

图7 操作命令数据帧格式

本设计中串口的波特率设置为115200bps,数据帧格式如图8所示。

图8 串口数据帧格式

系统上电后,完成串口配置等初始化,当产生串口接收中断事件时,读取数据、进行命令帧判断、解析,执行相应的操作。当产生AD读取中断时,Nios II读取采样结果,按照数据帧格式打包,用串口查询模式发送给上位机,程序流程图如图9所示。

图9 Nios II 程序流程图

命令帧判断在这个程序中扮演着重要角色,只有它运行稳定、准确无误,系统才能正常运行。命令帧判断程序流程图如图10所示。首先检测帧头是否正确,其次检查命令号是否正确,再次检查数据长度是否正确,最后检查校验和是否正确。如果帧头、命令号、数据长度和校验和都正确,则这条命令正确,执行其相应操作,返回“命令正确”。如果帧头、命令号、数据长度不正确,则计数器清零,该条命令丢弃。如果帧头、命令号、数据长度正确,校验和不正确返回“命令错误”。

图10 命令帧判断

2.3 上位机软件设计

系统上位机软件采用Labview设计,软件由串口部分和千兆以太网部分组成,其结构图如图11所示。

图11 上位机结构图

串口部分:配置好串口控件后,将指令下发,如收到“命令正确”回传,则显示命令发送正确,反之显示命令未正确发送。遥测和AD采样都有数据回传,按照固定协议对数据完成解析、显示。

千兆以太网部分:千兆以太网用于接收高速数据,将网络配置好,等待上传数据,当接收到数据包后,根据协议完成数据解析、存储;按照协议产生下发数据包,用户可以根据自身的需求将数据包下发。

由于整个过程有严格的操作流程,为了防止用户的误操作,上位机采用互斥设计,严格控制操作流程。

3 系统测试

完成系统软硬件设计后,对系统功能和稳定性进行测试。

3.1 串口测试

将一条USB转422线一头接到系统的RS422接口一头接到PC上,PC用来模拟“量子存储板”。操作上位机,将命令下发,观察串口调试助手收到的数据是否正确;将“量子存储板”应该返回的数据通过串口调试助手发送,观察上位机收到的数据是否正确,数据解析是否正确。经测试,系统此部分能正常稳定的运行。

3.2 高速数据传输测试

将TLK2711的收发通过同轴电缆短接,FPGA中按照帧格式产生数据并通过TLK2711发送出去,TLK2711将数据接收上传,上位机完成数据解析、存储后,观察存储数据中的帧计数是否连续,若连续,则系统运行正确,反之系统运行不正确。上位机将数据包下发,由于TLK2711外部短接,系统会将下发的数据原封不动的上传,上位机比较两个数据包是否相同。经测试,系统高速数据传输正常、稳定,且传输速度高达600Mbps,现已交付使用。

4 结束

基于FPGA的高速数据传输系统运行稳定,成功模拟了“量子通信与流程控制板”和“量子实现主控板”,完成对“量子存储板”的控制和高速数据传输、解析和存储。系统设计中采用NiosII代替传统FPGA+DSP架构中的DSP,实现全部功能。采用TLK2711作为高速传输接口,连接简单传输速率高,有效解决了时钟和信号偏移问题。采用千兆以太网与计算机互联,电气完全隔离且数据传输速率高达600Mbps。系统采用模块化设计,硬件通用性强,可以应用于多种场合为高速数据传输提高了一个稳定、高效的解决方案。

[1] 林 坤. 基于PCIe的高速数据采集卡的FPGA设计与实现[D]. 成都:电子科技大学,2013.

[2]TexasInstrumentsIncorporated.TLK2711-SP: 1.6-Gb-psto2.5-GbpsclassVtransceiver[Z].Texas:TexasInstrumentIncorporated, 2012.

[3] 叶菁华. 高速串行数据发送器的研究[D]. 上海:复旦大学,2005.

[4]AlteraCorp.NiosIISoftwareDeveloper’sHandbook[Z].Altera, 2005,89-120.

[5] 常苏晋,杨建军,刘维亭.基于NiosII软核的LSINS数据采集与预处理[J]. 科学技术与工程,2012,12(25):6549-6553.

Design and Implementation of High-speed Data Transmission Based on FPGA

Li Zhengjun, Zhou Zhiquan, Zhao Zhanfeng

(School of Information and Electrical Engineering, Harbin Institute of Technology,Weihai 264209,China)

To satisfy the test requirements of Quantum Memory Board high-speed serial data transmission in national key project Quantum Science Experiment Satellite, this paper proposes a new solution to high-speed serial data transmission. Taking the high-speed requirement into consideration, the system takes a Nios II embedded processor as the control core. In addition, TLK2711, RS422, USB2.0 and Gigabit Ethernet are worked as the transmission interfaces. To be specific, TLK2711 and RS422 are separately used to complete the high-speed data conversion from serial to parallel and transmission between the system and Quantum Memory Board. Gigabit Ethernet which is constructed by the unique ARM+FPGA architecture contained in the Zynq-7000 chip of Xilinx, is taken to complete high-speed data transmission work. XR21V1414 chip of EXAR, which can convert USB to UART, is designed to realize the transmission of commands and telemetry data. An control system which integrates the following functions commands transmission, instruction analysis, test progress display, data frame producing, high-speed data transmission, analysis and storage is developed in Labview. The measured results show that the system has the advantages of high stability and reliability, besides the data transmission rate is up to 600 Mbps.

Nios II; TLK2711; Zynq-7000; ARM+FPGA; gigabit Ethernet

2016-03-04;

2016-04-25。

李正军(1991-),男,陕西安康人,硕士研究生,主要从事数字信号处理方向的研究。

周志权(1973-),男,辽宁铁岭人,教授,博士研究生导师,主要从事数字信号处理、数字图像处理方向的研究。

1671-4598(2016)09-0188-03

10.16526/j.cnki.11-4762/tp.2016.09.053

TP274.2

A

猜你喜欢
以太网上位命令
只听主人的命令
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
特斯拉 风云之老阿姨上位
移防命令下达后
谈实时以太网EtherCAT技术在变电站自动化中的应用
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
这是人民的命令
一种90W高功率以太网供电系统的设计
以新思路促推现代农业上位