《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 设计应用 > 基于COM Express架构的数据记录仪的设计与实现
基于COM Express架构的数据记录仪的设计与实现
来源:电子技术应用2011年第12期
王 维1,2,蒋景宏1,2,刘 垚1,2,蔡惠智1,2
1.中国科学院声学研究所,北京100190; 2.北京中科海讯数字信号处理技术有限公司,北京100107
摘要: 为实现声纳数据的海量实时存储,提出一种基于COM Express架构的数据记录仪的设计与实现方法。该记录仪在COM Express载板上集成了ETXexpress处理器模块、光纤数据采集子卡,以及由4个500 GB硬盘组成的RAID0存储阵列。应用结果表明,该记录仪可以达到80 MB/s以上的实时存储速率,很好地胜任了声纳数据的存储任务。
中图分类号: TP216+.2
文献标识码: A
文章编号: 0258-7998(2011)12-0029-04
The design and implementation of a data recorder based on COM Express architecture
Wang Wei1,2,Jiang Jinghong1,2,Liu Yao1,2,Cai Huizhi1,2
1.Institute of Acoustic, Chinese Academy of Sciences, Beijing 100190,China; 2.Beijing Zhongkehaixun Digital Signal Processing Technology Co. Ltd, Beijing 100107,China
Abstract: In order to implement the real-time mass data storage in the SONAR system, a method of data recorder's design and implementation which based on COM Express architecture is proposed. The recorder integrated ETXexpress CPU module, fabric data acquisition board and RAID0 storage array that composed by four 500 GB hard-disks on a COM Express carrier board. The results of application indicated that, the real-time storage velocity of the recorder can be above 80 MB/s, and it can be competent for task of SONAR data storage.
Key words : COM Express;PCI Express BUS;recorder;fabric data acquisition


    在军事应用领域,基于通用信号的处理平台,通常需要实现高速大容量的数据存储。如何解决数据I/O和存储带宽瓶颈,以满足雷达、声纳等系统对高速大容量数据存储的要求,以及如何基于不同的架构平台,开发通用、开放的存储模块,是需要解决的一个问题。
    现阶段声纳某型数据记录仪采用CPCI架构,记录仪中的数据采集板卡与信号处理机之间的通信接口采用并行的LVDS连接线,数据采集板卡通过PCI总线将接收到的数据提交至主控板进行存储。由于受并行连接线间串扰和PCI总线带宽的双重限制,记录仪的性能、通用性和可扩展性差,存储速率也不理想,不能很好地满足未来声纳系统对实时数据存储的要求。因此,基于新架构和高速串行总线的数据记录仪的研究变得十分迫切。
    基于上述问题,本文提出了一种基于COM Express架构的新型数据记录仪的设计与实现方法,并且对其硬件重要组成部件——光纤采集子卡进行了详细讨论,最后给出了测试结果。
1 记录仪系统结构与关键技术
1.1 记录仪系统结构

    本设计从架构体系和总线结构两个方面进行考虑,选择了德国控创公司的ETXexpress-PC模块作为处理器单元,在COM Express载板上设计了XMC-PCIE规格的夹层卡作为光纤数据采集模块,同时使用4个500 GB的磁盘组成RAID0存储阵列完成新型记录仪的设计。记录仪结构框图如图1所示。

    控创公司的ETXexpress-PC模块使用Intel公司的45 nm工艺级酷睿2双核处理器以及GS45和ICH9M芯片组,支持SATA 、USB、PCI Express、千兆以太网等高速接口,并且模块都严格遵循COM Express规范,便于载板的升级,减少了重复设计带来的资源浪费[1]。
    为加速产品的开发,记录仪主要是在控创公司提供的一款COM Express评估板的基础上进行设计的。在有限的载板空间上,为了给光纤采集卡提供足够的安装空间,设计保留了原载板的VGA、PS/2、RS232、USB、LAN等必须的外围接口,去掉了Express Card、Mini Express等记录仪不需要却占用大量空间的接口。载板上没有给硬盘留出空间,是因为实际应用中为了方便硬盘的拆卸和更换,记录仪的机箱设计了专门的硬盘仓。SATA硬盘是通过定制的加固SATA连接线与载板连接,所以只需要在载板的合适位置安装上定制的SATA卡座即可。
1.2 关键技术
    COM(Computer On Module)Express是国际工业电气协会(PICMG)定义的计算机模块标准,由几大嵌入式工业计算机厂商共同制定[2]。COM Express的处理器模块集成了CPU和南北桥芯片,所有的I/O功能都通过AB和CD两个440 PIN的双排连接器实现。其中,AB连接器定义了PCI Express、SATA、SDVO、千兆以太网以及USB等高速接口,CD连接器定义了PCI、IDE等传统的并行总线接口。用户可以根据不同的应用场合选择不同CPU性能、功耗、I/O能力的处理器模块,以及开发不同的功能模块。功能模块一般都设计成标准的接口,通过特定的连接器与载板相连。与传统的CPCI架构相比,COM Express具有接口丰富、使用灵活、开发周期短的优势。
    数字光纤通信是一种远程数据传输技术,具有高带宽、低延迟、高可靠性、传输距离长、抗干扰性强、技术成熟等优点[3]。点到点的光纤通信速率可以达到2 Gb/s~4 GB/s,在远程数据采集、远程实时监控的领域有着广泛的应用前景。本设计选用光纤来代替并行LVDS连接线作为记录仪数据采集接口,很好地克服了高速串扰和通信距离的问题。
    传统的32 bit/33 MHz PCI总线的理论传输速率为133 MB/s,远远达不到要求,成为了制约记录仪存储性能的主要因素。PCI Express是第三代高性能I/O总线,在总线结构上由并行总线变为了串行总线,采用点到点的互连,大大提高了系统的传输带宽。并且其总线结构从地址空间、配置机制以及软件上均保持了与PCI总线的兼容[4]。使用PCIE总线代替PCI总线作为数据采集卡与主控板之间的数据通路,不仅可以大幅提高存储的性能,还可以保持良好的向上兼容性。
    磁盘阵列(RAID)是指将多台硬盘通过RAID控制器(软件或硬件控制器)组合成虚拟单台大容量硬盘的使用,通过资源冗余来提供各种服务质量。例如,将多个独立的磁盘组织成一个逻辑盘,提供更大的存储容量;通过数据分割、多通道并行来提高数据的I/O速率;通过保存冗余的数据、校验信息来提高存储系统的可靠性等。使用多磁盘的RAID技术将大大提高存储容量、存储速率以及可靠性。
2 光纤采集卡的设计
2.1 光纤采集卡概述

    光纤采集卡是记录仪的核心部分。板卡是基于Xilinx公司的一款Virtex5系列FPGA芯片XC5VLX50T进行开发的,遵循VITA42.3 XMC PCI Express规范所定义的尺寸形状和机械结构,使用Samtec公司的标准XMC连接器ASP-105885与COM Express载板之间进行互连通信。板卡主要由光纤接口模块、DDR2高速缓存模块、PCIE接口模块、电源管理模块、时钟管理模块和复位电路组成,其系统框图如图2所示。

2.2 光纤接口设计

 


    光纤模块采用FINISAR公司的FTLF1321 SFP高速收发器。光纤采集的工作流程是:光纤收发器接收数据并进行光电转换,然后将串行的数据传输到FPGA的Rocket IO硬核进行串并转换,最后将并行的数据存储到FPGA的内部FIFO中。为了增加数据的可靠性、降低误码率,以及匹配收发双发的速率,需要引入流控、数据管理和编解码的机制,因此,设计使用了Xilinx公司免费提供的Aurora协议对光纤通道进行驱动和管理。Aurora协议是一种简洁、轻量级、可裁剪的通信协议,使用非常灵活,占用系统资源少,并且可以扩展多路光纤通道。
2.3 DDR2高速缓存设计
    由于数据采集系统都是实时系统,所采集的数据持续地送往记录仪,而Windows操作系统的非实时性、内核调度以及多线程操作的不可预知性,导致可能出现数据丢失。因此,为了保证记录仪的可靠性并减轻处理器模块的缓存压力,应在光纤采集卡上设计容量大、快速存取能力的缓存装置。板卡选用了2片Micron公司的MT47H128M16B型号的DDR2 SDRAM进行高速缓存。该芯片采用1.8 V核电压,最高支持667 MHz时钟频率。本设计采用Xilinx公司的内存管理生成器IP核MIG3.1来开发DDR2控制器,完成FPGA对DDR2的控制。DDR2控制器在管理数据高速缓存的同时,还需要管理与PCIE总线控制模块的DMA传输中断请求。
2.4 PCIE总线控制逻辑设计
    PCIE总线控制逻辑是光纤采集卡的难点。由于XC5VLX50T器件内嵌了PCIE endpoint block(端点模块),该IP核实现了PCIE总线的完整功能,因此可以选用FPGA的PCIE endpoint block硬核和Rocket IO硬核来实现PCIE协议的物理层、链路层和传输层的功能[5]。PCIE总线与处理器的交互可以通过PIO或DMA两种方式进行。PCIE硬核本身只包含了PIO的功能模块,而PIO模式需要CPU的参与,因此会影响到CPU的运行效率。为满足数据实时高速的存储,自行设计了DMA控制器来完成DMA功能。PCIE协议规定,PCIE的事务可分为四种:存储器事务、IO事务、配置事务和消息事务。事务的执行或者完成由发送和接收事务包(TLP)具体实现,也即PCIE端点与CPU之间通过TLP进行通信。本设计中主要需要使用的TLP包括:存储器读TLP(MRd)、存储器写请求TLP(MWr)和带数据的完成TLP(CplD)。因此PCIE总线控制逻辑的重点是PCIE事务包的构建与解析、中断的管理以及DMA传输的控制。DMA控制逻辑框图如图3所示。

    图3中主要模块功能如下:
    (1)DMA状态/控制寄存器模块主要负责板卡状态的管理、DMA传输的管理以及中断信号的部分管理。在例化PCIE endpoint block硬核时,向系统申请128 B的BAR0存储器空间来存放这些寄存器,主要的寄存器如表1所示。板卡驱动加载后,CPU会读取StutasReg寄存器来察看板卡的状态,如果光纤链路或者PCIE链路出现故障,模块负责给出相应的故障指示信号。如果板卡状态正常,CPU会向CtrlReg寄存器写入DMA传输的地址和长度信息,向IntReg寄存器写入相应中断的使能标志。

    (2)数据发射机模块负责从数据准备模块读取数据,构建MRd、MWr、CplD事务包,并且发送到endpoint block。数据准备模块所组织的数据来自于发送 FIFO或者DMA 状态/控制寄存器。
    (3)数据接收模块负责从endpoint block接收并解析MRd、MWr、CplD事务包,将接收到的数据存储到接收 FIFO、DMA 状态/控制寄存器,或者通知数据发射机模块构建相应的CplD事务包。
    (4)中断管理模块负责中断信号的产生、清除、复位,主要管理了四种类型的中断:DMA读中断请求、DMA读完成中断请求、DMA写中断请求和DMA写完成中断请求。其中,DMA中断读/写请求由DDR2控制器给出,用于通知CPU光纤采集卡中空余的缓冲空间/缓存的数据量足以达到一次读/写DMA传输的长度;DMA读/写完成中断由中断管理模块给出,用于通知CPU此次读/写DMA传输已经完成。
    一次写DMA数据传输的流程如下:(1)DDR2缓存模块对光纤接收的数据进行缓存,当缓存的数据量达到设定的阈值以后向中断管理模块发出DMA写中断请求。中断管理模块将这个中断传递到endpoint block,经PCIE链路去中断CPU,同时写IntReg寄存器记录本次中断的类型。(2)CPU收到中断后发起一个存储器读事务,读取IntReg寄存器的相应位。经过判断是DMA写中断请求以后,向CtrlReg寄存器发起一个存储器写事务来启动DMA传输。同时CPU向IntReg寄存器发起存储器写事务来关闭DMA写中断,打开DMA完成写中断。(3)DMA启动以后,CPU就不用参与数据的传输了,剩下的传输工作交给DMA控制器完成。数据的写DMA传输实质上就是DMA控制逻辑不断地向板卡驱动的DMA缓冲区发存储器写TLP。每发送一个TLP,DMA的传输长度值就会减去上次TLP数据的长度,一直减到零为止。(4)当DMA传输结束以后,中断管理器会向CPU发送DMA写完成中断,同时再次写IntReg寄存器记录本次中断的类型。(5)CPU收到并判断这个中断后,会通知应用程序读取收到的数据进行存盘,同时打开DMA写中断,关闭DMA写完成中断,等待下一次的写DMA传输。
3 系统调试与性能测试
    为验证系统设计的DMA传输符合Xilinx的PCI Express endpoint block IP核所规定的时序以及SATA存储的性能,搭建了一个记录仪存储测试平台。该平台由信号处理机通过光纤向记录仪发送以32 bit字长递增的数据进行存储。FPGA的硬件逻辑在Xilinx集成开发环境ISE11.2下进行,因此可以使用在线逻辑分析仪ChipScope捕捉到如图4所示的DMA传输时序图。


    从图4可以看出,在trn_sof_n和trn_eof_n的两个低电平之间就是PCIE总线传输的1个TLP,完全符合endpoint block IP核的时序要求,验证了DMA的逻辑设计。
    在完成了数据从采集卡DMA传输到驱动程序缓冲区的操作后,由应用程序完成从驱动中提取数据并且进行写磁盘的操作。最后通过Matlab程序对存盘数据的读取校验,验证了记录仪所记录数据的正确性。表2给出了在不同单次DMA长度和单次存盘长度下的平均存盘速率的影响。

    从表2可以看出,该记录仪的存储速率受单次存盘数据长度的影响较大,受单次DMA长度影响相对较小。其原因是:(1)PCIE的数据传输速率远大于数据的存盘速率;(2)非实时操作系统软件开销较大,对相同大小的数据量进行操作的次数越多,所花费的时间就越长。因此,使用时应该尽量增大单次存盘的数据长度,以提高记录仪的存储性能。
    本文实现了一种基于COM Express架构的新型记录仪的设计,该设计主要完成了光纤数据的高速采集、与处理器模块之间的DMA传输以及对数据的高速存储。实际应用表明,该记录仪与传统的记录仪相比较,在稳定性和存储速率方面都得到了极大的提升,可以很好地胜任未来声纳数据的采集存储的需要。而且由于COM Express是一种开放的架构,提供了许多主流的高速接口,可以灵活地扩展其他的功能模块,给嵌入式设计也提供了一种新的思路。
参考文献
[1] Kontron Corporation.ETXexpress-PC user′s guide.http:// www.kontron.com,2009.
[2] PEBLY B.COM Express:the next generation computer on module standard.Principal system engineer[M].Radisys Corporation,2005.
[3] 代孝森,张晋宁,沈辉.基于PCI Express总线的光纤检测系统[J].现代雷达,2011(1).
[4] 马萍,唐卫华,李绪志.基于PCI Express总线高速采集卡的设计与实现[J].微计算机信息,2008(9).
[5] 刘凯,徐欣.基于Vertex5的PCI-Express的总线接口设计[J].现代电子技术,2008(5).

此内容为AET网站原创,未经授权禁止转载。