文献标识码: A
文章编号: 0258-7998(2011)12-0029-04
在军事应用领域,基于通用信号的处理平台,通常需要实现高速大容量的数据存储。如何解决数据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).