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 数字
信号,输出是过零点位置信息和渡越时间信息,这些信息是计算流量的关键数据。

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

相关推荐
依米s2 小时前
2019年人工智能大会核心议题《智联世界无限可能》
人工智能·waic·人工智能大会
IT_陈寒2 小时前
JavaScript开发者必知的7个ES2023新特性,让你的代码效率提升50%
前端·人工智能·后端
咚咚王2 小时前
人工智能之数据分析 Matplotlib:第四章 图形类型
人工智能·数据分析
用户5191495848452 小时前
Ash框架授权绕过漏洞分析:当绕过策略条件评估为真时
人工智能·aigc
用户5191495848452 小时前
Bedrock AgentCore Python SDK:零基础设施部署AI代理的终极方案
人工智能·aigc
行初心2 小时前
uos基础 sys-kernel-debug.mount 查看mount文件
运维
Maynor9962 小时前
全网唯一!独家支持 Grok4 Heavy模型 ,教你在国内使用Heavy模型!
人工智能
Ai173163915792 小时前
2025.11.28国产AI计算卡参数信息汇总
服务器·图像处理·人工智能·神经网络·机器学习·视觉检测·transformer
小坏讲微服务2 小时前
Spring Cloud Alibaba 整合 Scala 教程完整使用
java·开发语言·分布式·spring cloud·sentinel·scala·后端开发
一水鉴天2 小时前
整体设计 定稿 之1 devOps 中台的 结论性表述(豆包助手)
服务器·数据库·人工智能