当前位置:首页 期刊杂志

千兆以太网高速数据通信记录系统①

时间:2024-05-04

姚 旺, 李 璞,2, 李 环, 金红新, 牟宏伟

1(中国运载火箭技术研究院, 北京 100076)2(国防科技大学, 长沙 410073)

千兆以太网高速数据通信记录系统①

姚 旺1, 李 璞1,2, 李 环1, 金红新1, 牟宏伟1

1(中国运载火箭技术研究院, 北京 100076)2(国防科技大学, 长沙 410073)

为开展航空、航天领域各项专项试验并实现数据获取与分析, 提出了一种基于FPGA的具备千兆以太网接口的高速数据通信记录系统的设计方案, 详细描述了该记录系统的功能设计、硬件设计、接口设计、嵌入式软件设计方法, 其主要功能是通过通信接口与配套使用的系统进行通信, 在通信过程中, 将所有的通信数据记录至非易失性存储器中, 事后通过数据读取接口将记录的数据读取至上位机完成数据处理与分析.

以太网; 通信; 记录; 设计

随着工业技术的不断发展, 特别是在航天、航空与工业控制领域, 为了验证某项新技术的攻关情况或者某种新研制的产品的功能与性能是否合格, 均需要开展多项的专项试验, 通过在试验中获取海量的试验数据, 并针对这些数据开展详细的数据分析工作, 才能够支撑进一步的技术攻关或者产品改进工作[1]. 因此, 对于海量试验数据的获取对于技术突破与产品研制均是十分重要的. 但是, 随着航天、航空与工业控制领域的不断延伸, 其技术验证与产品的使用环境日渐复杂, 利用人工的手段完成数据的记录已经难以实现,需要研制专用的配套数据记录系统, 在开展飞行试验中完成所有数据的记录. 试验结束后, 设计人员需要将试验数据从数据记录系统中读出, 并完成数据分析.

在很多种情况下, 试验中需要数据记录系统持续记录, 在全部试验完成后, 再完成数据的读取, 这使得数据记录系统将会记录海量的试验数据. 传统的数据记录系统在读取数据时, 多采用串口[2-4]、USB接口[5-7]等. 对于串口, 其最高速率约可达到10Mbps(理论值),对于USB2.0接口, 约可达到480Mbps(理论值). 当时候读取海量数据时, 采用传统的串口、USB接口传输数据往往需要花费数十小时, 不能满足快速获取试验数据、持续开展试验的需求.

随着网络技术的不断发展, 以太网的速度由10Mbps发展到1000Mbps, 其高速稳定工作的能力使其可以应用到海量数据的传输[8-10]. 本文设计了一种基于FPGA的具备千兆以太网接口的数据通信记录系统, 可通过RS485接口接收试验数据, 将海量试验数据存储至FLASH中, 并可针对FLASH进行管理, 同时可通过千兆以太网接口以1000Mbps的速率向上位机完成数据传输, 大大缩短了传统串口、USB等慢速接口传输数据所需要花费的时间, 在航天、航空与工业控制领域中具有广泛的应用前景. 接口传输数据所需要花费的时间, 在航天、航空与工业控制领域中具有广泛的应用前景.

1 功能设计

本文设计的具备千兆以太网接口的通信记录系统,具有两种工作模式. 模式一为与被测系统通信, 模式二为与上位机进行通信.

在模式一中, 通信记录系统与被测系统通过一路RS485接口相连接, 通信记录系统以20ms为通信周期,向被测系统发送测试指令, 被测系统接收到测试指令后, 回送相关的测试数据, 通信记录系统将接收到的所有测试数据, 连同发送的测试指令, 记录到FLASH中.

在模式二中, 通信记录系统通过千兆以太网接口与上位机(PC机)相连接, 通过运行在上位机的配套软件管理通信记录系统. 上位机的软件如图1所示. 通过上位机软件, 可完成对于存储在通信记录系统的数据进行查找, 查询结果显示在软件“查询结果”区域,用户可选取某一包数据, 点击“读取FLASH”按钮, 将该包数据从通信记录系统中通过千兆网口读取至上位机中, 之后用户可点击“存为Excel”按钮, 将数据存储为特定格式文件, 便于事后的数据处理.

图1 上位机操作软件

除了完成对于通信记录系统存储的系统的读取,通过上位机软件可针对通信记录系统进行日常的维护,主要包括对于通信记录系统中存储的数据擦除功能与标记存储器坏块的功能. 数据擦除功能用于在通信记录系统长时间使用后, 系统中存储了大量的数据, 用户可以选择将数据擦除; 标记存储器坏块功能用于系统在使用过程中定期的维护, 系统在使用过程中, 存储介质有可能出现个别的坏块, 通过标记存储器的坏块功能, 当系统在记录数据时, 可跳过特定的坏块, 确保即使出现个别坏块也不影响整个通信记录系统的使用.

2 详细设计

通信记录系统的数据处理核心为FPGA, 型号为Xilinx公司Virtex-5系列的XC5VLX50T, 非易失性存储器选用三星公司FLASH, 型号为K9K8G08U0M,容量为8Gb.

根据功能需求, 将核心FPGA划分为通信管理模块、FLASH管理模块与以太网IP核控制模块, 通信记录系统的系统架构如图2所示.

图2 通信记录系统架构图

当通信记录系统工作于模式一时, 通信记录系统通过RS485接口与被测系统相连接, 通信记录系统上电后, 通信管理模块通过定时器, 以20ms为周期, 读取发送数据RAM中存储的测试指令, 将该测试指令完成并串转换, 构建同步时钟, 通过RS485接口发送至被测系统; 被测系统接收到该测试指令后, 通过RS485接口回送测试数据, 通信管理模块将该测试数据完成串并转换, 并存储于接收数据RAM中, FLASH管理模块读取接收数据RAM中的数据, 通过FLASH写入模块, 将测试数据写入至FLASH中.

当通信记录系统工作于模式二时, 通信记录系统通过网口与上位机相连接, 上位机通过网口向通信记录系统发送控制指令, 主要包括握手指令、数据查询指令、数据读取指令、擦除数据指令与标记坏块指令,通信记录系统接收到控制指令后, 通过以太网IP核控制模块, 完成网络接口协议的解析, 之后FLASH管理模块通过指令译码模块, 完成指令译码, 识别上位机发送的控制指令, 并根据相应的控制指令, 调用FLASH写入模块、读取模块与擦除模块, 完成针对FLASH的特定操作, 并将相应的数据通过以太网IP核控制模块回送至上位机.

2.1 通信记录模块

通信记录模块由发送数据RAM、接收数据RAM、串并转换模块与并串转换模块组成. 利用FPGA内RAM资源, 例化2个容量为64×8bit的双口RAM, 分别作为发送数据RAM与接收数据RAM, 其中将发送RAM中写入初始化的测试指令数据.

通信记录系统上电后, 读取发送数据RAM中的测试指令数据, 利用并串转换模块将读取的RAM数据加入两个字节的数据帧头(0x7E7E), 并逐个字节进行CRC校验计算, 最后将CRC校验和结果(1字节)作为帧尾附加在测试数据最后, 以20ms为周期输出.

当被测系统收到测试指令后, 向通信记录系统回复测试数据, 串并转换模块首先识别两个字节的数据帧头(0x7E7E), 帧头正确后, 按字节计算CRC校验和,最后将计算的校验和与帧尾的校验和相比对, 数据一致视为通过校验, 将该帧数据存储至接收数据RAM中. 同时调用FLASH管理模块, 将该帧数据存储至FLASH中.

2.2 FLASH管理模块

本通信记录系统选用的FLASH为K9K8G08U0M,由8192个块组成, 其中每1块包括64页, 每页包含2048+64=2112Byte字节, FLASH总共包含512K页, 总容量为8448Mbits.

为了便于管理FLASH中的数据, 将FLASH中数据存储格式构建如表1所示. 对于每页数据, 前四个字节为数据头, 从字节5至字节2K为记录的测试数据,每页中2K后的字节不使用. 由于FLASH中的数据字初始状态均为0xFF, 因此, 将每页数据头的初始值设计为0xFFFFFFFF, 并用于表示第1次试验数据, 为了区分每次试验的试验数据(每次试验中, 通信记录系统持续加电, 试验完成后断电), 将每次试验数据的数据头依次减1, 例如: 第2次试验数据的数据头为0xFFFFFFFE, 第3次试验数据的是巨头为0xFFFFFFFD, 以此类推.

FLASH中第1块至第8191块用于记录试验数据,第8292块中的第512K页用于记录FLASH的坏块信息.

表1 FLASH中数据存储格式

FLASH管理模块包括指令译码模块、FLASH写入模块、FLASH擦写模块与FLASH读取模块. FLASH管理模块一方面执行上位机发送的控制指令, 另一方面管理FLASH, 完成数据的存储、擦除与读取. FLASH管理模块主要完成的功能如下:

① 上电后查找本次试验数据开始记录的位置;

② 与测试系统连接时, 记录试验数据;

③ 根据上位机指令, 查找历史试验数据记录的位置;

④ 根据上位机指令, 读取历史试验数据;

⑤ 根据上位机指令, 擦除历史试验数据;

⑥ 根据上位机指令, 标记坏块.

2.2.1 查找数据起始位置

为了保证本次试验数据不能覆盖之前记录的试验数据, 通信记录系统上电后, 首先需要查找本次试验数据应该写入FLASH的起始位置. 具体实现方法为:当系统上电后, FLASH管理模块首先逐页读取FLASH中每页的数据头(前4个字节), 并与前一页的数据头相比较, 若本次读取的数据头的值不大于前一页的值时,说明当前页不是本次试验数据应该写入的起始位置,应该继续读取下一页; 若当前页的数据头的值大于前一页的值, 则说明本页为本次试验数据FLASH的起始记录地址. 本次试验数据在记录时从本页开始记录, 并将上一页的数据头的值减1, 作为本次试验的数据头.

2.2.2 记录测试数据

通信记录系统上电完成查找数据起始位置后, 以20ms为周期向被测系统通过RS485发送测试指令, 被测系统接收到测试指令后, 向通信记录系统回复长度为60字节的测试数据, 通信记录系统首先将该帧数据存储至接收数据RAM中, 待数据接收完毕, FLASH写入模块将该帧数据从RAM中读出, 在该帧数据前加入本次试验的数据头, 顺序写入到本次试验数据记录的FLASH页地址中. 由于单帧测试数据(含数据头)不超过64字节, 为保证数据对齐, 每帧数据在测试数据之后补齐至64字节, 因此FLASH每页可记录32帧测试数据.

2.2.3 查找历史数据记录位置

当通信记录系统连接上位机时, 可利用上位机软件, 查找历史试验数据在FLASH中存储的位置. 当用户在点击上位机软件中“查找数据位置”按钮时, 上位机通过网口向通信记录系统发送查找数据位置指令,通信记录系统接收到指令后, FLASH读取模块逐页读取FLASH每页的数据头, 并将该页的数据头与前一页的数据头相比较, 如果该页数据头不大于前一页的数据头, 则将该页的数据头通过网口发送给上位机; 如果该页数据头大于前一页的数据头, 则说明该页之后的数据不是历史数据, 此后不再读取下一页的数据头.上位机收取到FLASH逐页的数据头后, 利用上位机软件, 计算每帧数据的起始页与终止页, 并显示在上位机软件界面上.

2.2.4 读取历史试验数据

通信记录系统连接上位机后, 用户可以选取任意一次历史试验数据, 点击“读取FLASH”按钮, 上位机将需要读取FLASH的起始页地址与终止页地址通过网口发送至通信记录系统, FLASH管理模块中的指令译码模块解析出起始页地址与终止页地址, 驱动FLASH读取模块, 从起始页至终止页逐页将数据从FLASH中读出, 通过网口发送至上位机.

2.2.5 擦除历史试验数据

通信记录系统连接上位机后, 用户可以点击上位机软件中“擦除FLASH”按钮, 上位机向通信记录系统发送擦除FLASH指令, FLASH管理模块中的指令译码模块识别该指令, 驱动FLASH擦写模块, 擦除FLASH第1块至第8191块的试验数据, 由于FLASH的第8192块中记录着FLASH的坏块信息, 该块数据不擦除.

2.2.6 标记坏块

在通信记录系统长期使用过程中, FLASH可能产生坏块, 在存储数据的时候, 坏块是不能成功写入数据的, 因此需要在存储数据的时识别坏块并跳过.

用户通过上位机软件点击“标记坏块”按钮, 上位机通过网口向通信记录系统发送标记坏块指令, 通信记录系统译码模块识别该指令后, 首先将FLASH第1块至第8191块的数据擦除, 此时擦除成功的FLASH数据内容应该全部为0xFF, 然后依次读取每页数据的数据头, 如果某1页数据的数据头不为0xFFFFFFFF,说明该页所在的块是坏块, 则将该块的地址记录在第8192页中(第8192页记录FLASH全部坏块的信息).在针对FLASH进行写入数据的操作时, 首先要判断该页是否为坏块, 如果该页不是坏块, 则正常写入数据;如果该页为坏块, 则直接跳过该块.

2.3 以太网IP核控制模块

通信记录系统的网络接口控制采用Xilinx Virtex-5系列FPGA网口控制IP核Embedded Tir-Mode Ehternet MAC Wrapper, 通过后端控制逻辑驱动IP核控制以太网口, 其内部组织架构如图3所示.

图3 以太网控制模块结构图

在使用该IP核之前需要完成IP核的配置, 配置界面如图4所示. 将通信记录系统使用的IP核进行如下配置:

① 仅使用EMAC0(IP核支持2个网口, 通信记录系统仅使用1个即可);

② 不使用Host Interface;

③ 物理接口配置为1000BASE-X PCS/PMA, 速度配置为1000Mbps;

④ 数据位宽为8位.

图4 以太网控制IP核配置界面

后端控制逻辑访问该网络控制IP核时, 仅需要针对发送FIFO与接收FIFO进行操作, 主要包含6个信号, 如表2所示.

表2 发送FIFO与接收FIFO控制信号

对于发送FIFO与接收FIFO的时序操作如图5所示, 向发送FIFO写入数据时, 以时钟上升沿驱动写入;从接收FIFO读取数据时, 以时钟下降沿驱动采集. 当sof_n信号出现1个周期的低电平时, 说明网络数据帧开始, 可向发送FIFO写入数据或从接收FIFO读取数据, 当eof_n出现1个周期低电平时, 说明网络数据帧结束, 停止向发送FIFO写入数据或从接收FIFO接收数据. 当src_rdy_n或dst_rdy_n不为低电平时, 说明信源或信目没有准备好, 在此时钟周期的数据没有被成功发送或接收, 需要当src_rdy_n或dst_rdy_n重新为低电平时, 继续进行数据写入或者读取.

图5 发送FIFO与接收FIFO操作时序

3 性能测试

通过记录多次试验数据, 并通过上位机进行数据读取, 实测了上位机读取数据记录系统的速率, 如所示, 由表中可知, 数据传输速率可达约800Mbps, 系统性能良好, 接近千兆以太网传输的理论值.

表3 上位机读取数据速率测试

3 256 0.32 801.85 4 128 0.16 801.53 5 64 0.80 801.22

4 结语

本文针对航天、航空以及工业控制领域大数据量试验数据记录与维护的需求, 设计了一种具有千兆以太网接口的通信记录系统. 系统以FPGA为控制核心, 实现对于FLASH的管理, 系统容量为8Gb, 利用Xilinx网口控制IP核实现了千兆以太网接口, 可通过网口连接上位机实现试验数据的读取, 并可针对通信记录系统进行日常的维护工作. 本文可为试验数据记录等相关应用的系统设计提供参考, 具有广泛的应用前景.

1 Kayeni B, Yisah S. Cloud based architecture solution for aircraft flight data recorder. British Journal of Applied Science & Technology, 2016, 13(2): 1–13.

2 刘根贤,吕国瑛,王晓林,邢勇.基于STM32的嵌入式数字记录模块关键技术研究.测控技术,2014,10:98–10.

3 张海洋.船载天线串口数据采集系统的设计与实现.计算机技术与发展,2016,1:156–160.

4 樊文侠,孙宾.LPC2478的通用串口数据记录器的设计与实现.西安工业大学学报,2010,6:565–569.

5 王安,钱晓亮,樊文侠.基于ARM的USB接口数据记录器的设计.计算机应用,2007,1:254–256.

6 Lehmann AE, Kirichenko DE, Gupta D. Improved high-speed data recorder for superconducting digital-RF receivers.IEEE Trans. on Applied Superconductivity, 2014, 24(4): 1–4.

7 Xu M, Bodik R, Hill MD. A “flight data recorder” for enabling full-system multiprocessor deterministic replay. ISCA-30, 2003: 122–133.

8 焦新泉,孙英良,焦亚涛.以太网大容量固态数据记录器的设计.电测与仪表,2010,12:77–80.

9 聂玉鑫.一种千兆以太网数据记录设备的实现.声学与电子工程,2013,2:33–34.

10 聂玉鑫,徐永刚,任国强,吴钦章,吴威.NAND Flash高速图像记录压力测试系统.红外与激光工程,2013,10:265–271.

Gigabit Ethernet High-Speed Data Communication Recording System

YAO Wang1, LI Pu1,2, LI Huan1, JIN Hong-Xin1, MOU Hong-Wei112
(China Academy of Launch Vehicle Technology, Beijing 100076, China) (National University of Defense Technology, Changsha 410073, China)

For the special experiment data acquire and analysis of aviation and spaceflight, this paper puts forward a design of a gigabit Ethernet interface based on FPGA of high speed data communication recording system, which describes function design, hardware design, interface design, embedded software design detailly, communicating with the system through the communication interface. The system can record data to the nonvolatile memory in the process of communication, afterwards, through the data interface output data to PC to complete the data processing and analysis.

ethernet; communication; recording system; design

2016-03-28;收到修改稿时间:2016-06-01

10.15888/j.cnki.csa.005557

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!