基于FPGA的超声波流量测量仪数据存储系统设计

2024-01-23 01:51王红亮郭世友苏戈威
仪表技术与传感器 2023年12期
关键词:测量仪存储系统命令

全 贺,王红亮,林 宏,郭世友,苏戈威

(1.中北大学,省部共建动态测试技术国家重点实验室,山西太原 030051;2.北京宇航系统工程研究所,北京 100076)

0 引言

超声波流量计不仅广泛应用于工农业生产中,而且在航天事业发展中也发挥着十分重要的作用[1]。在超声波流量测量系统中,数据存储与数据采集处理具有举足轻重的作用。传统数据存储装置体积庞大,便携性不足,在复杂的环境中存在干扰,应用起来十分困难[2],很难将其集成在超声流量测量仪中,因此,本文设计了基于FPGA的超声波流量测量仪数据存储系统,对超声流量测量仪的数据进行动态存储,采取多种方式保证数据记录与传输的可靠性、稳定性与安全性。

1 数据存储系统整体方案设计

超声流量测量仪数据存储系统主要由数据决策模块与存储单元构成。数据决策模块通过外部输入设备接口实时获取当前流速、体积流量、质量流量、管壁厚度等数据;与数据读取设备通过RS422总线进行命令控制、数据下载等传输,与存储单元通过SDIO总线进行命令交互数据传输。

利用超声发射起始信号控制高速A/D转换器对回波数据进行采集,FPGA将A/D转换后的数据与流速、流量等信息进行数据融合后,通过高速SDIO总线接口,数据决策模块与存储单元进行命令与数据的传输。通过RS422接口数据决策模块实现与数据读取设备的数据传输和命令控制,数据传输接口采用双冗余设计,有效保证数据传输的可靠性与稳定性,命令控制主要是对SD卡操作(擦除、读取、加密),系统整体方案如图1所示。

图1 系统整体方案

2 硬件方案设计

2.1 高速采集电路设计

高速模数转换芯片选用AD9226芯片,AD9226是一款12 bit高速模数转换器,最高采样率65 Mbps,其优势在于具有片内高性能采样保持放大器和参考电压源,具有信号溢出指示位,并可直接以二进制形式输出数据[3]。超声流量测量仪最大测量速率为1000 Hz,每次测量回波信号为8个正弦信号,信号频率依据测量管径不同分为1、2、5 MHz,当采用1 MHz探头接收回波信号,需进行10 μs采集,65 MHz×10 μs×12 bit=7 800 bit,65 MHz可以推算出回波信号采样速率约1 MB/s。高速模数转换器采集电路如图2所示。

图2 采集电路原理图

2.2 SD存储电路设计

SD卡支持安全数据总线(SD)模式和串行外设(SPI)总线模式[4]。SPI模式只需要4个IO接口,但传输速率较低,适用于对数据传输速率要求不高的场合。SDIO模式分为一线SDIO模式和四线SDIO模式[5],SDIO总线信号包括CLK时钟线、CMD命令线和DATA[0:3]四根数据线[6]。为满足超声流量测量仪数据存储速率需求,本文基于四线SDIO模式进行数据存储系统设计。SD卡采用micro SD 32 GB存储卡,能够满足超声流量测量仪数据存储容量需求。SD卡作为灵活可移动存储设备,电路中需设计安装卡槽以及外围电路。SD存储电路如图3所示。

图3 SD存储电路

2.3 高速数据传输电路设计

四路RS422数据传输接口中,1路用于接收体积流量、质量流量、累计流量、流速等信息,1路用于接收数据读取设备发送的控制命令,2路采用双冗余设计用来进行数据下载。为了保证数据存储系统数据传输的可靠性,选用AM26LV31E和AM26LV32E作为RS422接口芯片[7],具备四路三态输出BICOMS差分线路驱动器,具有超低功耗、低成本、传播延时低等优点,最高开关切换速率可达32 MHz。高速数据传输电路如图4所示。

图4 高速数据传输电路

3 软件方案设计

超声流量测量仪数据存储软件系统可分为5部分,分别为SD延时、时钟生成、SDIO总线控制、串口通讯和AD采集。SD延时为SD卡初始化提供74个SDCLK同步稳定时钟[8];时钟生成用于数据采集、数据融合、数据存储和数据传输;SDIO总线控制依据操作模式分为4个单元,分别是指令控制单元、命令发送与响应单元、数据接收发送单元和时钟切换单元;串口通讯同数据读取设备通讯和与流量测量系统进行数据交互。系统软件框图如图5所示。

图5 系统软件框图

3.1 SDIO总线指令与操作模式

系统上电后,SD卡处于卡识别模式,主控制器对SD卡进行检测,检测流程如图6所示。

图6 SD卡上电检测流程

在数据传输模式下,SD卡处于待机状态,主控制器向SD卡发送CMD7命令后,SD卡进入数据传输状态,等待主控制器命令,当命令是CMD24或CMD25时,SD卡进入接收数据状态,当数据读取完成或接收命令CMD12时,SD卡进入编程状态;当命令是CMD17或CMD18时,SD卡进入发送数据状态,当数据读取完成或接收命令CMD12时,SD卡进入传输状态;当命令是CMD32和CMD33时或CMD32和ACMD23时,对SD卡进行擦除操作;当命令是CMD15或CMD0,SD卡会重新进入卡识别模式。在数据传输模式下,卡基本功能操作流程如图7所示。

图7 SD卡基本功能操作流程

3.2 FPGA实现SDIO总线控制逻辑的设计

SDIO总线控制逻辑设计依据命令控制与数据操作分为3个单元,分别是指令控制单元、命令发送与命令响应单元、数据收发单元。

3.2.1 指令控制单元

本单元用于复合指令控制,复合指令控制是将多个单条指令组合在一起,协同完成同一操作,本单元将数据块的读、写、擦除和停止等指令进行组合,实现单次控制多条指令顺序操作,如CMD32和ACMD23指令组合在一起,即可完成连续数据块的擦除操作。指令控制单元状态机如图8所示。

图8 指令控制单元状态机

3.2.2 命令发送与响应单元

本单元实现向SD卡发送命令和接收来自SD卡的响应信息功能。本单元由命令控制、命令发送和命令接收组成。在SD卡识别模式和数据传输模式下,命令控制用于控制命令发送和命令接收,命令发送作为SD卡底层命令驱动程序,主要完成向SD卡发送命令的任务;命令接收作为SD卡命令底层驱动程序,主要接收来自SD卡的响应信息。

3.2.3 数据接收发送单元

本单元由数据方向控制、数据发送和数据接收组成。数据方向控制通过判断数据记录操作还是数据下载操作控制SDIO数据传输方向,数据发送用于向SD卡传输存储信息,数据接收用于读取SD卡内存储的数据,指令控制如图7所示。

4 关键技术研究与系统测试

4.1 关键技术研究

为满足超声流量测量仪数据存储速率和数据读取设备快速下载的需求,同时为降低在超声流量测量仪待机功耗,实现在不同应用场景下进行时钟切换且切换过程中不产生毛刺,研究了时钟无缝切换技术。

系统上初始化过程SD卡时钟LCLK(200 kHz),数据存储过程时钟WRCLK(30 MHz),数据下载过程时钟RDCLK(90 MHz),无任何操作时会关闭SD卡时钟线上的时钟,从而降低系统功耗。输入端的时钟源是跨时钟域的时钟,保证了时钟源传输过程中不出现亚稳态的现象,第1级D触发器先进行缓存;为了保证在低电平时进行时钟切换,第2级D触发器在下降沿对相应选择信号(SELECT0~SELECT3)寄存,只有其他的时钟选择信号被完全释放后,新的时钟选择信号才会被选择,保证了3个时钟源在时钟切换过程中在时钟高电处跳变,从而保证了输出的时钟信号SDCLK不会出现截断的现象。另外2个时钟的反馈信号QN与当前时钟选择信号进行相与操作,在新的时钟源输出之前,必须先结束当前的时钟输出选择,保证时钟切换过程中不产生毛刺。最后选择时钟输出,实现时钟无缝切换。时钟切换设计原理如图9所示。

图9 时钟无缝切换设计原理

4.2 系统测试

通过某型号超声流量测量仪对本系统进行测试,将回波信号数据与流量相关数据传输至SD卡进行保存。数据块写入格式帧头0xEB90EB90,数据有效部分依据数据帧结构进行填充,帧尾采用0xAA。通过在数据读取设备端设置SD卡操作地址,对记录数据进行下载。在15 mm管径、5 MHz探头测试条件下,对回波数据进行还原,结果如图10所示。通过WinHex查看SD卡记录结果如图11所示。

图10 回波还原结果

图11 SD卡记录结果

32 GB micro SD卡最大使用空间可达28.8 GB,在大数据容量情况下测试数据存储功能的稳定性,对SD卡最大空间进行存储测试,测试记录如表1所示。

表1 最大存储空间误码率测试记录

数据测试结果表明,本设计在大量数据的情况下能够进行数据存储和数据下载,并且数据稳定可靠,存储误码率和下载误码率均为0,远低于0.05%,本方案能够满足超声波流量测量仪大容量数据存储的需求。

5 结论

本设计针对超声波流量测量仪的存储数据记录容量小,参数记录不完整,数据存储实时性低,数据存储安全性不够高等问题,设计超声波流量测量仪数据存储系统,经过试验测试,在大数据量数据存储情况下,存储数据稳定正常能够满足存储需求,此外,研究了多时钟源无缝切换技术,可以良好应对实际需求。

猜你喜欢
测量仪存储系统命令
只听主人的命令
水平度与垂直度精密测量仪
分布式存储系统在企业档案管理中的应用
基于单片机的便捷式LCF测量仪
天河超算存储系统在美创佳绩
揭秘身高体重测量仪
移防命令下达后
宽电容测量仪的设计
这是人民的命令
华为震撼发布新一代OceanStor 18000 V3系列高端存储系统