基于USB3.0的小型化通用测试平台设计

2018-07-27 05:15:12
计算机测量与控制 2018年7期
关键词:固件板卡芯片

(上海航天电子技术研究所,上海 201100)

0 引言

固存单元模块作为数据的存储的功能单元,在卫星、船器、火箭领域中都有广泛的应用,针对不同应用领域,其功能要求、技术条件也不一样,因此,提出的测试需求也不一样,普通测试设备因功能固化,接口种类单一,很满足多型号的测试需求,往往需要多台测试设备配合测试,测试复杂度高。而高性能的测试设备,大多采用PCIE总线,对测试计算机性能要求高,设备笨重,不便于移动,灵活性较差。USB传输技术具有通用性强,便携性高,传输速度快,支持热插拔,独立供电,可扩展性强,功耗低的优点[1],一直作为与计算机通信的主流传输技术,目前,新一代的USB3.0技术已经商用,USB3.0技术的传输速度已经达到5 Gb/s,相比USB2.0提高了10倍[2],在拥有诸多其他总线无法比拟的优点外,其性能得到了大大的提高,使得利用USB总线技术进行高速数据传输成为了可能。本文设计的小型化通用测试平台利用充分利用USB3.0技术的优势,针对需求,无论是在硬件电路还是在软件实现上都进行了通用性设计,将整个测试平台做到小型化,通用化,高性能,低功耗,是航天领域中测试系统的一种新的解决方案,具有很强的实用性,也符合高性能、低成本、通用性的产品研发理念。

1 通用测试平台系统架构

本通用测试平台主要想实现的功能分为两大部分,一是能够将计算机中的数据传输给测试平台,测试平台产生数据输出,完成数据源模拟以及遥控数据输出功能。二是对外部遥测数据和数传数据进行采集,完成是将外部数字信号通过USB3.0的接口高速实时地传输到计算机上,并在传输过程中或存储后进行数据处理、分析。本测试平台具有的性能如下:

1)1.2 Gbps高速数据传输;

2)具备LVDS接口;

3)具备RS422接口;

4)具有软件实时数据处理功能;

5)具有1 Gbps实时存盘功能;

6)具有数据模拟功能;

7)具有重配置功能。

根据使用需求,将通用测试平台进行功能层次划分,主要分为软件应用层、硬件实现层、接口交互层。测试系统原理框图如图1所示。

图1 系统组成框图

软件应用层,主要包括测试平台的人机界面显示、数据传输控制和命令交互控制、数据分析三个部分[3]。主要完成测试数据和测试参数的输入,采集数据的分析、比对、存储,以及测试平台运行状态的显示。

硬件实现层,主要包括USB传输控制、数据存储控制、数据组帧以及各测试功能的实现。测试功能的实现主要是通过对测试需求按功能进行分割,进行模块化设计,包括遥控输出单元的逻辑设计,遥测接收单元的逻辑设计、载荷模拟的逻辑设计以及数据采集单元的逻辑设计。最终完整个平台测试功能的集成。

接口交互层,主要是完成测试设备与被测设备的连接,包括节点、通道的分配,输入输出电平的匹配。由于不同被测设备的输入输出接口的差异,以及测试需求不同,因此,需要动态的改变接口参数,以匹配不同的被测设备的测试要求。实现通用性。

2 通用测试平台硬件设计

2.1 电路设计

根据使用需求以及开发成本,以及开发周期等方面的综合考虑,本测试平台硬件板卡采用USB3.0接口芯片+ FPGA +大容量缓存的架构实现。硬件框架结构如图2所示。

图2 硬件框架结构图

该测试平台板卡使用的FPGA选用XILINX公司的XC7K160T-FFG676,该芯片属于Kintex-7系列的FPGA,具有162,240个逻辑单元,11,700 Kb的RAM资源,8个时钟管理CMT,8个GTX高速收发器,400个用户可用IO资源[4],是一款低成本、低功耗、高性能的FPGA,能够满足板卡对芯片逻辑资源,运行速度以及IO接口数量的要求。

USB3.0接口芯片选用的是Cypress公司所提供的CYUSB3014芯片,这款芯片具有高度集成的灵活性,是新一代USB3.0的外围设备控制器[5],而且它还提供了一个可以进行完全可配置的、并行通用的、可编程的GPIFII接口,其可以与任何处理器如FPGA相连接。该平台USB3.0芯片与FPGA连接采用slave FIFO模式将GPIFII接口配置为32 bit并行数据线、1个时钟线和若干控制线,用于数据和命令的传输控制[6]。USB3.0与FPGA通信的时钟频率为100 MHz,从而实现3.2 Gbps的通信总线带宽。芯片的另一端通过线缆与计算机相连,最终完成FPGA与计算机之间的通信。

为了控制计算机与板卡之间数据传输、处理过程中的延时,板卡搭载了两片镁光公司的大容量DDR3存储器颗粒MT41J256M16,每片颗粒大小为4 GB,通过两片DDR3的并联,实现8 Gb的缓存大小的板上存储空间以及25 Gbps的数据存储带宽,能够满足平台对存储数据的缓存容量和速度要求。

在对外测试接口方面,为了满足通用性,板卡采用的接口驱动芯片具有相同封装类型,可实现LVDS接口与RS422接口的互换,增加配置灵活性。板卡采用DS90LV031A和DS90LV032A芯片作为LVDS接口驱动芯片实现模拟源发送和载荷接收功能,两款芯片单通道可实现最高150MHz的传输速率。采用DS26LV031A和DS26LV032A芯片作为RS422接口驱动芯片实现遥控发送和遥测接收功能,两款芯片单通道可实现最高30 MHz的传输速率。该板卡分别设计了24路LVDS和RS422输出接口,可根据需求灵活配置多通道同步或异步接口。板卡设计了12路LVDS输入接口和12路RS422输入接口,用于实现多通道的载荷数据和遥测数据采集。

板卡配置模块用于给FPGA加载程序,FPGA程序的加载分为两种方式,一种是通过计算机进行在线程序配置,通过软件发送指令和配置数据完成。另一种是通过板上存储芯片,采用BPI的模式实现FPGA程序的快速配置,板上配置芯片采用PC28F00AP30,该芯片容量为1 Gb,可满足任何FPGA文件的存储。

板卡的系统供电输入来自于外部5 V供电接口,板上的集成了TI公司的LMZ31710电源模块,通过适当的外部电阻,可将5 V输入电压转化为1V0、1V2、 1V5、 3V3板卡所需的各个电压输出,输出电流最大为10 A,完全可以满足整个平台的供电。

通过以上针对固存单元模块的测试平台硬件设计,该平台在硬件上具备了的通用性,能够根据实际要求对数据收发通道进行配置,最大可实现8通道三线制LVDS和RS422数据发送和4通道三线制LVDS和RS422数据接收。在性能上,该平台具备3.2 Gbps的数据传输带宽,具备1.2 Gbps的数据实时存储能力,具备能够8 GB数据缓存能力,能够满足固存单元的测试需求。

2.2 FPGA设计

测试平台为了满足通用性,不仅在硬件接口上进行了设计,在FPGA软件中,针对数据处理通用性上,也进行了设计,主要采用模块化程序设计和参数软件可配置的方式实现[7]。FPGA程序模块设计框图如图3所示。

IO矩阵控制模块主要用来控制FPGA的IO管脚分配,数据输入输出通道的选择,包括设置遥控数据和模拟源数据发送通道位置、发送通道的使能与禁用。设置遥测数据和载荷数据的接收通道位置、接收通道的使能与禁用以及接收数据的位宽。

数据处理模块主要根据测试需求的不同进行功能实现,主要包括遥控数据的组帧、编码,模拟源数据的数据注入、帧头设置、帧计数插入、数据加扰,遥测数据的采集、帧同步、校验、数据转发,载荷数据的帧同步、解扰、帧解析、分包上传等处理。

图3 FPGA模块设计

参数配置存储模块主要用于存储计算机发给系统的命令参数,包括发送模块同、异步模式选择参数(时钟、门控、数据)、同步时钟频率参数(1~120 MHz)、异步波特率参数(9 600~192 000)、奇偶校验设置参数、发送通道设置参数。接收模块的帧同步头参数、门控设置参数、加、解扰选择参数、接收数据位宽(1 bit、2 bit、4 bit、8 bit)选择参数等。

通道控制逻辑主要用来控制各模块间数据流传输的切换,包括不同通道遥测数据以及载荷数据的循环读取、数据的帧头以及帧计数的插入,按照软硬件交互协议约定格式进行上传以及对来自计算机的数据帧进行解析并将解析数据发送到遥控发送模块或模拟源发送模块进行数据发送。

DDR3控制模块主要实现对DDR3芯片的控制,利用乒乓操作的方式对数据进行写入和读取,用于采集数据的缓存,能够将计算机不能及时响应的采集数据进行临时存储,避免数据丢失[8]。

USB控制器模块则用来负责对USB3.0芯片的双向传输控制,包括由板卡到计算机的载荷数据和遥测数据的采集和由计算机到板卡的模拟源数据和遥控数据的注入。对于待传给计算机的数据,模块能够根据待上传的数据大小进行短包传输、整包传输以及零长度包传输。USB控制器模块能够实现数据收发最高3.2 Gbps的通道传输速率,保证测试平台与计算机之间的数据通信。

为了提高USB3.0的数据传输带宽,测试平台与计算机之间的数据传输采用数据帧的方式进行传输[9],帧长固定为2048 KB。发送和接收数据帧定义如图4和图5所示。

图4 发送数据帧

图5 计算机到测试平台传输数据帧

对于发送帧,即测试平台到计算机传输数据帧,帧主导头长度为4 Byte,主要用于表示数据的来源为遥测数据或是载荷数据,帧记数长度为4 Byte,用于软件实时监测传输过程中是否发生丢帧,保证数据传输过程的正确性,数据区为对应帧主导头的要传输的数据,数据区校验采用CRC方式对所传送的数据进行校验,以保证采集数据的正确性。

对于接收帧,即计算机到测试平台传输传输数据帧,帧主导头长度为4 Byte主要用于表示数据的去向为模拟源数据或是遥控数据,数据长度为2 Byte,用于标记数据区有多少有效数据,数据区为对应帧主导头的要传输的数据,无效填充用于将数据帧补齐到固定长度,以保证帧格式的统一。

3 软件设计

开发的基于USB3.0的小型通用测试平台涉及应用程序、驱动程序、固件程序三个方面[10],软件的整体方案设计如图6所示。驱动程序采用芯片官方提供的CYUSB,重点进行了固件程序及应用程序的开发。

图6 软件架构

3.1 固件开发

USB3.0设备的枚举,重枚举,初始化工作,USB挂起时的电源管理,处理USB设备的请求,与计算机之间的通信和数据传输以及USB3.0协议的实现都是通过固件程序实现的[11]。

采用Eclipse开发工具结合Cypress公司的SDK中提供的相应固件框架和API函数库进行固件程序开发。固件程序主要实现了设备的启动停止复位、IO矩阵配置、SPI控制、GPIO控制、DMA传输等功能。主要的功能以及对应的实现函数见表1。

表1 主要功能及对应的实现函数表

CyFxSlFifoApplnUSBSetupCB是固件处理上位机传来控制指令的函数,通过CyU3PUsbGetEP0Data函数获得上位机调用ControlEndPoint端点传来的配置指令,再通过CyU3P-GpioSetValue函数将指令配置到FPGA,实现上位机到硬件的指令设置功能[12]。

CyFxConfigFpga实现对FPGA的加载功能,当收到加载FPGA指令时,调用CyU3PSpiSetSsnLine函数重置FPGA,通过监控FPGA的INIT_B管脚判断FPGA初始化状态,通过CyU3PSpiTransmitWords将FPGA程序文件传输给FPGA,最后通过监测FPGA的Done管脚判断FPGA是否加载成功,并通知应用程序。整个固件的框架如图7所示。

图7 固件架构

3.2 应用软件开发

采用Visual Studio 2013工具,使用C++/C#语言开发Windows应用程序。开发的应用程序提供友好的操作界面,通过设备驱动程序与设备固件程序通信,具备以下功能:

1)选择指定设备、控制设备的启动和停止;

2)通过应用程序在线更新固件程序;

3)通过应用程序在线更新FPGA程序;

4)通过应用程序更新设备的硬件状态,如复位等操作;

5)控制设备向上位机传输数据,进行实时数据处理,并显示和存储实时数据;

6)控制设备接收上位机传输的数据。

应用程序的流程如图8所示。

图8 软件流程

在线加载FPGA是实现通用化设计的关键功能,首先加载更新FPGA的固件,然后操作应用程序载入FPGA数据文件通过USB接口芯片将FPGA程序载入FPGA芯片。

为了实现测试平台的通用性,应用程序开发时设计了多层次的软件架构,采用模块化设计,多层次接口标准开放,便于迭代开发和重构,应用于不同的场合。应用软件架构如图9所示。

4 测试平台验证与分析

为了验证整个测试平台的性能和系统运行的可靠性,在室温条件下,对测试平台各个功能进行了自闭环测试, 主要包括数据的收发,数据的实时存储,软件的实时的数据分析、比对。测试计算机性能如下:

1)操作系统:Win7 64位。

图9 应用程序设计

2)CPU:酷睿I7-4790K。

3)内存:DDR3 8GB。

4)硬盘:三星512 G固态盘。

测试结果见表2。

表2 测试结果

测试平台测试结果如表2可以看出,该测试平台具备数据收发、数据存储以及数据实时比对功能,在开启软件实时分包、比对模式下,数据的实时存储速率最大为800 Mbps,在关闭数据实时比对功能后,数据实时存储速率最大为1 Gbps,在关闭分包功能后,数据实时存储速率最大为1.2 Gbps数据传输过程中无丢帧现象出现。由此可以看出,该测试平台能够可靠的进行数据传输,能够满足设计要求。

5 结论

本文设计并实现的基于USB3.0的小型化通用测试平台,以其灵活、可靠,成本低,性能优越的特点,可应用在卫星、船器、导弹、火箭等领域的地面测试、控制,高速数据存储,回放,分析等设备。目前,该方案已经成功应用在多个型号的固存测试设备中,具备广泛的应用前景。

猜你喜欢
固件板卡芯片
基于PCI9054的多总线通信板卡的研制
测控技术(2018年3期)2018-11-25 09:45:46
基于FPGA的多通道模拟量采集/输出PCI板卡的研制
测控技术(2018年12期)2018-11-25 09:37:42
芯片测试
基于固件的远程身份认证
多通道采样芯片ADS8556在光伏并网中的应用
一种基于光纤数据传输的多板卡软件程序烧写技术
提取ROM固件中的APP
电脑爱好者(2015年7期)2015-04-09 08:54:02
一种通过USB接口的可靠固件升级技术
一种通用模拟量及开关量信号采集板卡的设计
74HC164芯片的应用
河南科技(2014年10期)2014-02-27 14:09:18