ZYNQ 平台下的四声道超声流量计设计与实现

0****引言
在现代工业生产中,流体流量的精确测量是确保生产过程高效、安全、可靠的关键环节。无论
是石油化工、天然气输送,还是日常用水管理,都需要高精度、高可靠性的流量测量设备。 超声流
量计凭借其非侵入式测量、高精度、大量程比等优势,在流体流量监测领域得到了广泛应用,并逐
渐取代传统电磁式、压差式和叶轮式流量计,成为国内外流量计研究的重点和热点[1--4]。 然而,传统
的超声流量计系统,如基于单片机的方案或单片机与现场可编程门阵列(field programmable gate array ,
FPGA)结合的方案,在面对日益复杂且实时性要求更高的工业监测需求时,暴露出数据处理能力不
足、实时性受限、电路复杂等局限性,严重限制了流量测量的精度和效率,难以满足现代化工业标
准[5--16]。
为应对上述挑战,本文基于 ZYNQ 平台的嵌入式系统提供了一种全新的解决方案。ZYNQ-7020
芯片集成了 ARM Cortex-A9 双核处理器与 FPGA 可编程逻辑(Programmable logic, PL),构成一个灵
活的异构计算平台。这种架构上的突破,不仅带来了通用的软件编程能力,更赋予了设计者根据超
声流量计的特定需求,对 FPGA 逻辑进行深度定制的能力,实现了传统方案难以企及的专用硬件加
速效果。ZYNQ 的 PL 允许针对关键的如高效滤波和到时测量等算法进行高度优化,同时,ARM 处
理器则可以负责复杂的流量计算、系统控制和用户交互,实现软硬件的无缝协同。这种紧密的集成
和协同,相比于分立的单片机+FPGA 方案,消除了接口延迟,极大地提高了数据传输效率,为实现
更高的测量精度和更快的响应速度奠定了基础。ZYNQ 平台的高集成性还简化了外围电路设计,有
利于系统的集成化和小型化,降低了设计难度和成本。
本文提出并展示了利用 ZYNQ-7020 芯片实现的四声道超声流量计(以下简称 ZYNQ 流量计)设
计方案。该方案的核心创新在于充分利用 ZYNQ 平台的软硬件协同设计优势,构建高效的信号处理
链路,实现了超声信号的精确采集、实时处理和流量计算。首先,介绍了时差法流量测量原理、渡
越时间测量技术以及 Sigma-Delta 调制在信号采集中的应用。其次,重点阐述了 ZYNQ 平台的软硬
件协同设计方法,并详细说明了各模块间的数据交互。然后,给出了基于本设计方案的 ZYNQ 流量
计的实验结果,验证了该流量计在不同压力条件下均能保持高精度和高稳定性,相对误差严格控制
在 0.5%以内。最后,通过逻辑分析仪对 PL 部分的信号处理延迟进行了精确测量,验证了 ZYNQ 平
台的高速处理能力。本研究不仅为工业领域高精度流量测量提供了一种有效的技术方案,也为未来
医疗设备中对高精度流量测量的需求提供了一种潜在的技术方向,并为开发更高性能的智能流量监
测系统奠定了基础。
1 超声流量计工作原理
1.1 时差法流量测量原理
时差法由于其实现简单、测量精度高等优点在超声流量计中被广泛应用。单声道的时差法流量
原理如图 1 所示,将一对超声换能器布置在表体两侧,上下游换能器交替激励和接收超声信号,通
过顺、逆流渡越时间即可计算流体流量。

2 系统设计
2.1 系统整体概述
本文构建了一个基于 ZYNQ-7020 平台的四声道超声流量计系统,该系统充分利用 ZYNQ 芯片
的软硬件协同设计能力,实现对超声信号的高精度采集、实时处理和流量计算。如图 5 所示,系统
整体架构由三个核心部分组成:处理系统(Processing system, PS)、可编程逻辑(Programmable logic, PL
以及外围设备(Peripherals)。系统的工作流程:首先超声换能器接收到的模拟信号进入 PL 部分进行
预处理。在 PL 部分完成信号的数字化、滤波、过零点检测等操作后,将处理得到的渡越时间信息通
过 AXI 总线传输至 PS 部分。随后 PS 部分进行流量计算,并将计算结果通过用户界面展示,同时 PS
还负责向 PL 发送配置指令,实现对整个系统的协调控制。

2.1.1 系统处理:PS部分
PS 部分主要负责高层次的数据处理、系统控制和用户交互。基于运行在 ARM Cortex-A9 双核处
理器上的嵌入式操作系统,PS 可以高效地进行复杂的流量计算,实现多种测量模式的切换。具体来
说,PS 首先根据用户配置或系统需求,生成配置参数,并通过 AXI 总线发送给 PL 部分,如,超声
激励的频率、采样率、增益设置等。PS 作为 AXI 主设备,使用 AXI4-Full 协议将配置信息写入 PL
的 AXI 从设备接口。随后,PS 会持续接收来自 PL 部分处理后的渡越时间数据,并基于这些数据,
计算出瞬时流量和累积流量;同时还会对温度压力传感器的数据进行采集和处理,从而实现对流量
的精确测量。
此外,PS 还提供用户界面(图 6),支持参数配置、实时数据展示、系统状态监控等功能,方便用
户操作和使用。总体上,PS 部分主要负责全局控制、数据计算和人机交互。

2.1.2 可编程逻辑:PL部分
PL 部分是系统的硬件加速引擎,专注于实时、高效的超声信号处理。利用 FPGA 的 PL 资源,
PL 部分实现了多声道超声信号的激励、接收、时序控制和预处理。当 PL 接收到来自 PS 的配置参数
后,会按照指定参数,驱动超声换能器发送超声波,同时接收回波信号。PL 作为 AXI 从设备,通过
AXI4-Full 协议接收来自 PS 的配置参数,并将处理后的渡越时间数据发送回 PS。接收到的模拟信号
经过模数转换后,进入 PL 内的信号处理链路进行预处理。其中,预处理过程包括 Sigma-Delta 解码、
多级平均去噪和多过零点定位等关键步骤,这些步骤都需要实时进行,消耗大量时间,因此,在 FPGA
上进行硬件加速是非常有必要的。最终,PL 部分将计算得到的渡越时间等数据通过 AXI 总线发送给
PS 部分,从而完成一次完整的测量流程。可见,PL 部分主要负责硬件加速、实时信号处理和数据采
集等核心工作。
2.1.3 外围设备
外围设备模块提供了系统与外部器件的接口,包括超声换能器、温度压力传感器以及用户交互显
示屏等。超声换能器负责声波的发射和接收,是流量测量的核心部件;温度压力传感器负责采集环
境温度和压力参数,为流量测量提供补偿数据,提升测量精度;显示屏模块负责实时展示测量结果
和系统状态,方便用户查看和操作。这些外围设备通过标准接口与 PS 和 PL 连接,形成一个完整的
闭环系统,保证数据采集和处理系统的完整性。
2.2 信号处理算法的硬件实现
如 2.1 节所述,超声信号处理的核心环节都由 PL 部分实现。为了充分利用 FPGA 的并行性和可
重构性,构建了一条高度模块化的信号处理流水线,该流水线集成了 Sigma-Delta 解码、平均去噪和
多过零点定位等关键模块,并利用数据流驱动各模块协同工作,从而确保超声信号的实时高效处理
和特征的精确提取。
2.2.1Sigma-Delta解码模块
Sigma-Delta 解码模块是信号处理流水线的第一级,其核心任务是将从 ADC 采样得到的 1 bit
PDM 信号解调为具有物理意义的多比特数字信号,流程如图 7 所示。该模块的设计理念和工作原理
与 1.3 节中介绍的 Sigma-Delta 调制技术相对应,本质上是模拟信号数字化的逆过程。为了保证实时
性和高精度,本模块采用了三级滑动窗口平均滤波器的级联结构进行低通滤波,并利用抽取器进行
降采样。相较于传统的有限脉冲响应或无限脉冲响应低通滤波器,这种基于滑动窗口平均滤波的实
现方式,不仅在硬件资源消耗上更具优势,而且更易于进行深度流水线设计,因而显著提高了处理
速度和效率,满足了实时性要求。此外,滑动窗口的实现方式仅使用了加法器和移位寄存器等简单
电路,降低了硬件设计的复杂度。该模块的输入为 1 bit PDM 信号,输出为 16 bit 的数字信号,为后
续的平均去噪模块提供了高质量的数据输入。
具体来说,Sigma-Delta 解码模块包含以下三类子模块:
(1) 三级滑动窗口平均滤波器:采用三级级联的滑动窗口平均滤波器,对输入的 1 bit PDM 信号
进行逐步平滑处理。每级滤波器都由一个移位寄存器和一个累加器组成,通过累加窗口内的数据,
并对结果进行移位操作,实现对信号的平滑处理。这种级联结构能够逐步抑制高频噪声,确保信号
在低频段的有效性,同时不会损失信号的有用信息。
(2) 无效数据剔除模块:在滑动窗口未完全填满时,滤波器的输出数据是无效的。为了防止这些
无效数据影响后续模块的处理,该模块采用控制信号对滑动窗口的输出进行动态控制,只保留稳定
滤波后的结果,从而确保数据质量和系统可靠性。
(3) 二抽取降采样模块:由于 Sigma-Delta 调制具有过采样的特性,为了减轻后续模块的数据处
理负担,同时提高系统的整体效率,本模块使用抽取器,将高采样率的滤波结果进行降采样。

2.2.2 平均模块
平均模块是对 Sigma-Delta 解码后的数据进行多重累加平均,从而抑制随机噪声,提升信号的稳
定性和可靠性的模块。其流程如图 8 所示,该模块的输入是来自 2.2.1 节 Sigma-Delta 解码模块输出
的 16 bit 数字信号,输出是平均后的 16 bit 数字信号。

为了提高资源利用率和处理效率,本模块采用了以下设计:
FIFO 循环缓冲:使用 FIFO 循环缓冲机制来存储输入数据。这种缓冲机制避免了传统方案中需
要使用大量寄存器或存储器来存储数据的问题,从而降低了硬件资源的消耗。
32 bit 精度累加:输入的 16 bit 数据会被累加到一个 32 bit 的累加器中,从而避免了累加过程中
出现数据溢出的问题,保证了累加的精度和可靠性。
移位运算实现快速除法:为了实现平均操作,系统中使用了移位运算代替除法运算,在保证计
算精度的同时,显著降低了硬件的复杂度和计算时间,从而提高了运算效率。
裁剪与格式化:为了方便与后续模块无缝衔接,本模块对累加结果进行裁剪和格式化操作,将
其从 32 bit 数据转换为 16 bit 数据输出,降低了数据处理的开销,也简化了后续模块的处理逻辑。
该模块的设计重点是高效、稳定地执行平均操作,为后续的过零点定位模块提供高质量的数据
输入。模块内部采用有限状态机进行控制,从而确保数据处理过程的精确性和稳定性。通过平均模
块,信号中的随机噪声得到有效抑制,提高了后续过零点定位的准确性。
2.2.3 多过零点定位模块
多过零点定位模块是信号处理流水线中的关键环节,核心任务是精确定位超声波信号的过零点
从而计算渡越时间,其工作流程如图 9 所示。本模块的设计思想与 1.2 节中介绍的过零检测法相对
应。该模块不再需要像传统的波形检测方法一样存储完整的波形数据,而是采用流式处理的方式,
对来自平均模块的输入数据流进行实时分析。这种设计不仅降低了存储需求,而且提高了处理效率,
为高频率、实时监测的应用场景提供了有力支持。该模块的输入是来自平均模块输出的 16 bit 数字
信号,输出是过零点位置信息和渡越时间信息,这些信息是计算流量的关键数据。

该模块的设计关键在于以下几个方面:
增强过零点捕获:模块能够实时检测和记录当前数据流中的过零点,并且能够维护多个最近的过
零点信息,存储其对应的数值。这有助于在后续处理中,对过零点进行校正和去噪。
波峰与过零点同步:为了更全面地刻画信号波形,多过零点定位模块不仅能够精确地定位波峰,
而且能够记录波峰位置,以及此波峰之前和之后多个过零点的信息。这种设计能够更好地把握波形
的整体趋势,从而实现对信号的精确分析。
工作周期同步:为了防止数据处理的异常,模块内部设计了工作周期同步机制。在每个工作周期
开始时,模块会重置最大值和过零点的记录,确保每次检测都从一个初始的零状态开始,从而避免
了由周期变化导致的数据处理错误。
通过这些设计,该模块能够精确、可靠地从噪声信号中提取出渡越时间信息,为后续的流量计算
提供重要的、可靠的输入。

相关推荐
码猩2 小时前
YOLO通用无人机目标检测框架
人工智能·yolo·目标检测
一百天成为python专家2 小时前
机器学习之逻辑回归(梯度下降,Z标准化,0-1归一化)
人工智能·opencv·机器学习·计算机视觉·数据挖掘·数据分析·逻辑回归
koo3642 小时前
李宏毅机器学习笔记15
人工智能·笔记·机器学习
weixin_429630262 小时前
机器学习-第三章 线性模型
人工智能·算法·机器学习
Blossom.1182 小时前
AI“点亮”萤火虫:边缘机器学习让微光成像走进4K时代
人工智能·pytorch·python·深度学习·数码相机·opencv·机器学习
ShowMaker.wins2 小时前
机器学习总结
人工智能·机器学习
明月照山海-2 小时前
机器学习周报十五
人工智能·机器学习
ASIAZXO2 小时前
机器学习——逻辑回归详解
人工智能·机器学习·逻辑回归