微型弹载冲击信号记录仪设计
2020-07-13李金强张德彪赵计贺
李金强, 李 杰, 张德彪, 赵计贺
(中北大学 电子测试技术重点实验室, 山西 太原 030051)
0 引 言
近年来, 随着测试技术的发展, 对弹上各种工作参数的测试更加详尽, 数据量不断增大, 这都对弹载数据记录仪提出了更高的要求[1-2]. 微型弹载冲击信号记录仪用于测试弹丸在侵彻时的冲击加速度. 弹丸侵彻过程持续时间较短, 根据侵彻目标的不同, 持续时间在微秒到毫秒之间, 其中主脉冲宽度为几微秒到几百微秒不等[3]. 为了能够更加真实地还原侵彻过程中的冲击波形, ADC(Analog-to-Digital Converter)采样速率要大于信号变化频率的10倍以上[4]. 传统的弹载数据记录仪主要采用NAND Flash进行存储, 但受工艺限制, NAND FLash读写速度相对较低, 单片NAND Flash难以满足高速存储的需要, 通过多片NAND Flash组成存储阵列, 能够大幅度提高读写速度[5], 但是Flash 阵列使控制电路更加复杂, 增大了系统功耗与电路面积, 不符合弹载数据记录仪小型化的原则[6], 增加了抗高过载防护的难度.
综合考虑系统体积、 容量、 读写速度及功耗等参数, 本文提出了一种基于eMMC(Embedded Multi Media Card)高速存储芯片的微型弹载冲击信号记录仪的设计方案. eMMC作为一种新型存储介质, 内部集成了NAND Flash和控制器, 由控制器对 NAND Flash 进行读写控制, 同时, 还具备坏块管理、 损耗均衡以及ECC(Error Correcting Code)校验等较为复杂的功能[7-9]. 并且, 相对于NAND Flash, eMMC容量大, 读写速度快, 高性能eMMC芯片在HS400模式下读写速度高达400 MB/s[10-12], 能够满足弹载冲击信号记录仪高速、 大容量、 低功耗和小型化等要求.
1 记录仪系统总体设计
根据技术指标要求和设计原则, 整个记录仪由电源模块、 信号调理模块、 高速A/D采集模块、 FPGA(Field Programmable Gate Array)主控模块、 SRAM(Static Random-Access Memory)缓存模块、 eMMC存储模块和接口转换模块组成. 记录仪的总体原理框图如图 1 所示.
图 1 记录仪的总体原理框图Fig.1 Overall block diagram of the recorder
系统采用双供电模式, 由7.4 V锂电池或USB电源经电压转换芯片为各个模块进行供电. FPGA主控模块控制高速A/D转换芯片采集经信号调理模块调理后的冲击传感器信号, 经过SRAM缓存后写入eMMC存储芯片. 待测试完成后, 将记录仪回收, 通过数据读取设备将冲击数据传至上位机进行分析.
2 关键技术
2.1 高速A/D采集模块设计
记录仪须具备同时采集4路冲击传感器信号的能力, 为了保证能够采集到更加真实准确的模拟信号, 记录仪选用4通道、 16位高速模数转换器AD9653, 采用4路同步串行的方式完成冲击传感器信号的采集. 由于弹丸侵彻时主脉冲宽度能达到微秒级别, 因此设置采样率为10 MS/s, 则4路总数据量为80 MB/s.
2.2 存储模块设计
存储模块主要由FPGA控制单元、 SRAM缓存单元和eMMC存储单元组成, 其原理图如图 2 所示.
图 2 存储模块原理图Fig.2 Schematic diagram of the storage module
由于FPGA采用80 MHz时钟处理A/D采集的数据并通过100 MHz时钟控制SRAM缓存和eMMC存储, 因此数据处理模块和SRAM控制模块之间要增加一个深度为2 K的片内异步FIFO(First Input First Output)进行跨时钟域处理, SRAM控制模块与eMMC之间通过一个4 K同步FIFO缓冲. 当FIFO1中的写数据计数器计数到2 000时, SRAM进入写状态, FPGA开始读取FIFO1中数据并给出写地址, 将数据写入SRAM, 直至FIFO1中写数据计数器计数小于36时, FPGA停止读FIFO1并拉高SRAM写使能信号, 写操作停止, 这样既能保证FIFO不被读空, 又能防止数据溢出. 此时若FIFO2中写数据计数器计数小于4 000, SRAM直接进入读状态, FPGA拉低SRAM输出使能并给出读地址, 读出缓存数据写入FIFO2, 与此同时FIFO2变为非空, FPGA开始读取FIFO2中数据并发送给eMMC芯片. 当SRAM 读地址等于写地址时, 表明SRAM中缓存数据已读完, FPGA拉高SRAM输出使能, 读操作停止. 此时若FIFO1中写数据计数器计数到2 000, 继续进入写状态, 否则进入空闲状态等待, 如此循环.
图 3 为SRAM控制模块在modelsim中的仿真结果.
图 3 SRAM读写时序仿真图Fig.3 SRAM read and write timing simulation diagram
eMMC芯片在HS200模式下信号电平为1.8 V, 因此设置与其通信的FPGA的BANK0供电电压为1.8 V. 虽然eMMC在HS200模式下存储速率最高可达200 MB/s, 但是时钟速率太高, 势必会增大功耗, 并且由于记录仪内部空间狭小, 电路板面积有限, PCB走线过程中无法兼顾线间距, 相邻数据线之间容易造成信号串扰, 增大误码率, 而且成本也比较高. 由于A/D转换器采集的数据量为80 MB/s, 存储时间为10 min, 总数据量为46.88 GB, 综合考虑存储速度、 容量和成本等因素, 该记录仪选用三星公司生产的KLMCG4JENB-B041型eMMC存储芯片, 其容量为64 GB, 最高存储速度为140 MB/s, 能够满足记录仪需求.
系统上电后, 首先对eMMC进行初始化, 包括器件识别, 器件模式及相关寄存器的配置. 本设计将eMMC器件配置为HS200模式, 在该模式下, 最高时钟频率为200 MHz, 设置数据总线为8 bit, 数据传输类型为SDR(Single Date Rate), 初始化流程如图 4 所示.
在初始化过程中, FPGA为eMMC提供的时钟不能高于400 kHz, 发送完CMD6命令后, eMMC进入HS200模式, 此时将FPGA的控制时钟切换至系统数据传输状态下的工作时钟频率, 初始化完成后eMMC进入Tranfer状态, 在此状态下对器件进行读/写/擦操作. 读/写/擦流程如图 5 所示.
图 4 eMMC初始化流程图Fig.4 eMMC initialization flow chart
图 5 记录仪读/写/擦操作流程Fig.5 Recorder read / write / wipe operation flow
初始化完成后, FPGA控制模块开始检测供电模式.
若M_SEL1管脚为低电平, 表明记录仪由锂电池供电, 此时FPGA向eMMC发送写命令, 记录仪开始存储A/D转换器采集的数据, eMMC在写操作时, 由FPGA读取FIFO2中的数据, 每读 512个字节进行一次CRC16校验, 并将校验码编入数据末端一同发送给eMMC芯片, eMMC芯片接收到数据和校验码之后, 首先进行CRC(Cyclic Redundancy Check)校验, 然后将校验结果通过CRC Token发给FPGA, 若CRC校验通过, 则eMMC将数据写入内部存储器, 且DATA0信号会拉低作为忙信号, 当FPGA检测到DATA0为高电平时, 才会发送下一块数据; 如果校验不通过, eMMC将不会写入数据, 此次数据将被忽略.
若M_SEL1管脚为高电平, 则表明记录仪处于回收状态, 已通过地面读数设备与上位机连接, 此时, FPGA将接收地面读数设备命令对eMMC进行读数或者擦除操作. 由于eMMC在HS200模式下最低工作时钟为52 MHz, 则读数最低速度为52 MB/s, 而地面读数设备最高上传速率仅为30 MB/s. 为保证数据的完整性, 将eMMC设置为多块读取模式, 一次读出10块, 即5 KB数据, 上传完成后继续读取下一个10块数据, 这就保证了eMMC数据输出速度是由地面读数设备控制, 而不会丢失数据.
3 试验验证
为了验证采集数据的准确性, 利用记录仪采集信号发生器信号, 设置信号发生器输出5 V、 100 kHz的正弦波信号, 4通道同时接入信号发生器, 系统上电, 采集1 min后断电. 通过地面读数设备将记录仪数据上传至上位机, 共读取数据4.81 GB, 因为断电时间与计时时间存在细微差别, 因此数据总量基本正确. 数据分离后用MATLAB绘制采集的波形如图 6 所示, 波形较为圆滑、 无毛刺, 证明数据无丢帧、 错帧现象, 且误差仅为4 mV左右, 该误差主要由调理电路与供电电源误差造成.
图 6 记录仪采集的正弦波信号Fig.6 Recorder collects sine wave signal
为验证记录仪性能, 进行了冲击传感器数据采集试验, 传感器选用恩德福克公司的727-60K-10-120型号冲击传感器. 试验采用激光干涉式霍普金森杆, 将冲击传感器接到记录仪输入端后贴于霍普金森杆末端安装基座上, 对加压仓加压0.02 MPa, 记录仪上电稳定后击发, 激光干涉仪通过光栅反射测得基座上的加速度曲线如图 7 所示.
图 7 激光干涉仪反馈波形Fig.7 Laser interferometer feedback waveform
采集完成后, 通过地面读数设备将数据上传至上位机并进行数据处理, 记录仪采集的冲击波形如图 8 所示. 通过对比, 可以看出记录仪所采集的波形与激光干涉仪所测波形基本吻合, 主脉冲脉宽为22 μs, 峰值相差1 630g, 误差仅为5.36%, 该误差包含了记录仪采集误差、 冲击传感器输出误差以及传感器与霍普金森杆安装方式所带来的测试误差, 能够满足高速冲击信号测试要求, 说明微型弹载冲击数据记录仪实现了10 MS/s采样速率高速冲击信号的采集, 并能较真实地还原冲击波形.
图 8 记录仪采集数据波形Fig.8 Recorder data waveform
4 结 论
本文介绍的微型弹载冲击数据记录仪实现了4路、 10 MS/s的采样速率和80 MB/s的存储速率, 能够准确还原高速冲击信号, 具有体积小、 速度高、 容量大、 功耗低等优点, 适用于弹上狭小空间, 满足高速冲击信号的测试要求.