当前位置: 首页 > news >正文

基于STM32 ARM+FPGA+AD的电能质量分析仪方案设计(一)硬件设计

电能质量分析系统硬件设计
3.1 电能质量分析系统设计要求
本系统实现对电能质量的高精度测量,根据国家相关电能质量分析仪器规定
标准以及对市场电能质量分析仪的分析,指定以下设计目标。
1 )电能质量参数测量精度:
1 )有效值:电压有效值 ±0.2% ,电流有效值 ±0.5%
2 )频率: ±0.01Hz
3 )谐波: 2-50 次,精度: ±3%
4 )频率: ±0.01Hz
5 )三相不平衡度:电压不平衡度 ±0.2% ,电流不平衡度± 1%
2 )实时显示电能质量参数,实现数据共享和良好的人机交互。
3 )电能质量参数数据进行存储。
3.2 电能质量分析系统硬件方案设计
3.2.1 硬件架构设计
电能质量分析系统对采集到的电力信号数据进行处理的过程中涉及到大量
的数据计算和传输,此过程需要消耗芯片内部大量的逻辑单元和储存单元以实现
高效的计算和处理任务。因此,在选择处理器芯片时要综合考虑处理器的性能,
以确保其具有足够的计算能力和运行速度处理复杂的运算,从而保证系统的效率、
可靠性。
常见的单核控制微处理器有 ARM DSP FPGA 等。其中 ARM 具有高性
能、易集成以及较强的事务管理能力,在系统控制时并行独立处理多任务互不干
扰; DSP 擅长数据计算处理,但受硬件结构条件限制,依靠软件指令执行,串行
处理数据的方式在处理大量数据计算任务时仍存在低效能的情况; FPGA 的优势
则是其灵活性、可重构行以及并行处理的能力。单一的控制核心不足以满足复杂
的设计需求,现今主控解决方案采用双核以及三核处理器的方法以达到取长补短
的作用。目前高端的电能质量分析仪的主控架构主要有以下几种: ARM+DSP
DSP+FPGA ARM+FPGA
1 ARM+DSP 架构兼备系统控制以及数据处理功能,其中 ARM 承担任
务分配而 DSP 分担数据计算处理,但该系统扩展能力差,后续如想添加新功能
只能更换芯片较为麻烦。
2 DSP+FPGA 架构中 FPGA 承担数据采集和通信控制的功能, DSP 负责
算法运算。但任务管理能力差,对于功能繁多的任务来说显然是有所欠缺。
3 ARM+FPGA 架构具备系统控制以及数据处理功能,相较于 DSP 串行
处理数据的方式, FPGA 的并行处理在进行数据加速、实时性高的情景下更有优
势。
除上述架构外还有 ARM+DSP+FPGA 架构,该架构优势在于融合多种类型
处理器,提供更完善的功能和更强大的性能,但系统复杂度大幅增加,开发难度
和维护性更高,需要大量人力和物力投入,增加了系统的开发和维护成本。此外,
该架构的优化和调试更具挑战性,需要深入研究不同处理器之间的通信和数据交
换等问题。因此,在选择处理器架构时,需要考虑任务的性质、规模、预算和人
力资源等多方面因素,并在系统性能、复杂度和成本之间进行平衡。所以该架构
不在本次设计考虑范围。
综合考虑各种架构的优缺点以及结合实际开发时的内外在因素,选择基于
FPGA+ARM 架构实现电能质量分析系统设计。 ARM 架构满足三相电力系统电
能质量检测时的任务控制分配,包括三相电压(流)的六通道信号的采集、传输
和处理,并可在后期进行相应的扩展。 FPGA 架构通过对多通道数据并行处理技
术的应用,能够有效降低数据处理时间,实现对实时性要求的满足。
3.2.2 芯片选型
作为整个系统的核心控制组成部分, ARM 主控核心扮演着极其重要的角色。
在当今市场上众多微处理器种类层出不穷的情况下,选型一款合适的主控核心时
应考虑性能、资源以及配套设施是否完善。包括开发工具、学习资源和实施案例
等方面,在保证系统设计的可靠性和稳定性方面具有重要意义。通过对市场主流
控制芯片的对比分析选型为 STM32F407ZGT6 芯片作为 ARM 端的主控核心。
FPGA 芯片选型选择 Xilinx 公司 Spartan-6 系列的 XC6SLX16 芯片作为设
计的目标芯片,并使用 ISE14.7 作为系统工具进行程序设计,采用 Mentor 公司
ModelSim 进行仿真功能验证。
3.2.3 硬件架构系统设计
硬件架构设计图如图 3-1 所示。
本系统由前端信号采集预处理模块、基于 FPGA 的数据处理模块和基于
ARM 的人机交互与显示模块构成。
采集预处理模块将电力信号通过调理后转换成适合 ADC 的采样信号,并滤
除所需频率外的高频信号以及保留被测信号的各种信息,承担系统的核心检测工
作,对电能质量参数检测结果的精准性起到了决定性的作用。
基于 FPGA 的数据处理模块包括全数字锁相环模块、主控制模块, ADC
制以及算法等主要模块。其中,主控制器模块负责各模块参数的配置、数据交换
处理等任务,通过与其他模块的协调工作,保证电能质量分析系统的高效有序运
行。
基于 ARM 的人机交互模块是电能质量分析系统的控制部分,集成了 FSMC
控制器模块、配置控制器模块以及通信和存储模块,在系统中起到 大脑 的作用。
其中 FSMC ARM FPGA 通信总线; ARM 通过配置控制器模块对 FPGA
行相应的初始化配置。
3.3 数据采集预处理电路
电力系统中的电力信号通常是高电压、大电流且存在瞬态事件,因此并不能
直接对其进行数据采集转换,在数据采集时,必须确保仪器具有耐高压的能力,
并在保证使用者自身安全的前提下保证所采集数据的信息完整性。
电力信号的高精度采集依赖于精准可靠的信号采集预处理模块。该模块包括
采集电路、抗混叠滤波电路、同步采样锁相倍频电路、单端转差分电路以及
AD7609 模数转换电路。其中抗混叠滤波电路能有效消除目标信号外的高频干扰
信号,提高采样信号的稳定性和精度;锁相倍频电路可实现信号的精确实时同步,
使得 AD 的采样频率是信号频率的整周期倍,保证采样数据的一致性和准确性;
单端转差分电路可增强信号的抗干扰能力; AD 模数转换电路将采集到的电力信
号转换为离散数字信号。
本设计是对三相电压和三相电流的六通道信号进行检测,因电压电流预处理
步骤相似,本章仅对电压信号采集模块进行介绍。电压信号采集处理模块结构图
如下图 3-2 所示。
电力信号采样方式有以下两种方式:
1 )直流采样:将采集的交流信号不间断的转换成直流信号且与原始信号
保持线性关系,并转换成离散的数字信号。在此过程具有整流和滤波的功能,使
得直流采样具备了很强的抗干扰能力。但实时性不强且对原始信号无法直观观察。
2 )交流采样 [47] :使用互感器对原始交流信号进行采集,并对互感器副边
的交流信号进行采样。优点是采样的信号是与原始信号的频率相同、幅值具有一
定的比例关系的交流信号,具有实时性强且客观的反映出原始信号的波形。
本设计采用的是交流采样的方式对电力信号进行采集,此种方法可以保留原
始信号的波形相位等信息且失真较小。

3.6ARM 控制系统设计

ARM 为本系统的控制核心,负责整个系统的协调工作,完成与 FPGA 的数

据传输以及数据存储等。ARM 模块结构框图如图 3-16 所示。

3.5.1 FSMC 接口模块

FSMC 全称为可变静态存储控制器,是 ARM 内嵌的高性能、可靠性的存储

器控制器。该控制器能够连接多种类型的静态存储器,如 SRAM、NOR Flash、

PSRAM 等,并提供高速数据传输和灵活的访问方式,以满足各种嵌入式系统的

需求。FSMC 支持多种数据总线宽度和存储器大小,同时具有多种访问模式和时

序控制功能,以适应不同类型的存储器和应用场景。相对于 EMI 控制器,FSMC

在连接大容量存储器、支持更多的存储器类型、提供更丰富的控制功能和更高的

性能方面更有优势。与 FMC 相比,FSMC 提供更高的数据传输速度和更灵活的

存储器配置方式,同时还具有更高的可靠性和稳定性[54]。因此,本设计采用 FSMC

总线实现 FPGA 与 ARM 的数据通信与传输。

FSMC 将外部静态存储器划分为四个容量相同为 64M 的存储区域,本设计

使用 Bank1 中的 NOR 控制器管理内存。FSMC 存储区域,如图 3-17 所示。

如上图所示,FPGA 与 ARM 通过 FSMC 通信总线连接,通过控制该区域中

FSMC_NE1 的片选信号状态来控制双核的通信以及数据传输;FSMC_NOE 和

FSMC_NEW 是读写控制信号,FSMC_NBL[0:1] 是用于 FPGA 向 STM32 发送

请求中断信号。

3.5.2 数据通信与存储模块

STM32 中 UART 串口仅支持传统的串口通信协议,如 RS-232 或 RS-485 协

议,因此无法直接与上位机进行通信,为实现 STM32 与上位机的通信和控制,需

使用 USB 转串口电路将 UART 串口信号转换为 USB 信号进行传输。USB 转串

口原理图如图 3-19 所示。

相关文章:

基于STM32 ARM+FPGA+AD的电能质量分析仪方案设计(一)硬件设计

电能质量分析系统硬件设计 3.1 电能质量分析系统设计要求 本系统实现对电能质量的高精度测量,根据国家相关电能质量分析仪器规定 标准以及对市场电能质量分析仪的分析,指定以下设计目标。 ( 1 )电能质量参数测量精度&#xf…...

LLM - 配置 ModelScope SWIFT 测试 Qwen2-VL 视频微调(LoRA) 教程(3)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/142882496 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 SWIFT …...

jmeter实现SSL双向验证

前提: 预先了解:SSL单向/双向认证详解握手请求以及tomcat配置https请求的请到以下网址了解Java nginx https 双向认证 der,cer文件一般是二进制格式的,只放证书,不含私钥 crt 文件可能是二进制的,也可能是文本格式的,应该以文本格式居多,功能同der/cer pem文件一般是…...

数据结构 ——— 单链表oj题:相交链表(链表的共节点)

目录 题目要求 手搓两个相交简易链表 代码实现 题目要求 两个单链表的头节点 headA 和 headB ,请找出并返回两个单链表相交的起始节点,如果两个链表不存在相交节点,则返回 NULL 手搓两个相交简易链表 代码演示: struct Lis…...

【WKWebview】WKWebView Cookie 同步

个人实测:js注入的方式更靠谱一点 ⌈iOS⌋WKWebView Cookie 同步的一种方式 屈服于 Apple 的“淫威”,开发者不得不将 App 的网页容器从 UIWebView 迁移到 WKWebView。我们在享受后者带来的性能和功能提升的同时,也被诸如 Cookie 同步、截图…...

vue-router拦截器

在 Vue 项目中,vue-router 的路由拦截器和组件内部的路由拦截器(如 beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave)虽然都能拦截路由,但它们的作用范围和使用场景有所不同。下面是二者的区别总结: 1. 全局路…...

SpringBoot驱动的人事管理系统:高效办公新选择

1系统概述 1.1 研究背景 如今互联网高速发展,网络遍布全球,通过互联网发布的消息能快而方便的传播到世界每个角落,并且互联网上能传播的信息也很广,比如文字、图片、声音、视频等。从而,这种种好处使得互联网成了信息传…...

大数据干了什么?

1.大数据技术主要解决的问题是海量数据的 存储 和 查询...

android studio可用下载地址

AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载 在此记录一下...

HTTP 协议详解

HTTP 协议是 Web 的基石,它定义了客户端和服务器之间的通信规则。本文将深入地探讨 HTTP 的核心概念,包括工作原理、请求方法、状态码以及不同 HTTP 版本的演进。 一、HTTP 的工作原理 HTTP 协议基于客户端-服务器模型,遵循请求-响应的循环&…...

【力扣 | SQL题 | 每日四题】力扣534, 574, 2314, 2298

今天的每日四题比较简单,主要其中两题可以用窗口函数轻松解决。 1. 力扣534:游戏玩法分析3 1.1 题目: 表:Activity ----------------------- | Column Name | Type | ----------------------- | player_id | int | …...

Gitxray:一款基于GitHub REST API的网络安全工具

关于Gitxray Gitxray是一款基于GitHub REST API的网络安全工具,支持利用公共 GitHub REST API 进行OSINT、信息安全取证和安全检测等任务。 Gitxray(Git X-Ray 的缩写)是一款多功能安全工具,专为 GitHub 存储库而设计。它可以用于…...

Chrome(谷歌)浏览器 数据JSON格式美化 2024显示插件安装和使用

文章目录 目录 文章目录 安装流程 小结 概要安装流程技术细节小结 概要 没有美化的格式浏览器展示 美化之后效果图 安装流程 下载地址 https://github.com/gildas-lormeau/JSONVue 点击下载 下载成功,如图所示 解压文件 添加成功,如图所示 通过浏览器…...

关于相机的一些零碎知识点

热成像,英文为Thermal Imaging,例如型号500T,其实指的就是热成像500分辨率。 相机的CMOS,英文为Complementary Metal Oxide Semiconductor,是数码相机的核心成像部件,是一种互补金属氧化物导体器件。 DPI…...

看不懂来打我!让性能提升56%的Vue3.5响应式重构

前言 在Vue3.5版本中最大的改动就是响应式重构,重构后性能竟然炸裂的提升了56%。之所以重构后的响应式性能提升幅度有这么大,主要还是归功于:双向链表和版本计数。这篇文章我们来讲讲使用双向链表后,Vue内部是如何实现依赖收集和…...

Halcon 极坐标变换

(1)极坐标的展开:polar_trans_image_ext(Image : PolarTransImage : Row, Column, AngleStart, AngleEnd, RadiusStart, RadiusEnd, Width, Height, Interpolation : ) (2)极坐标的逆变换:polar_trans_ima…...

JavaScript进阶--深入面向对象

深入面向对象 编程思想 面向过程:多个步骤> 解决问题 性能较高,适合跟硬件联系很紧密的东西,如单片机 但代码维护成本高,扩展性差 面向对象:问题所需功能分解为一个一个的对象(分工合作)>…...

Python列表专题:list与in

Python是一种强大的编程语言,其中列表(list)是最常用的数据结构之一。列表允许我们存储多个元素,并且可以方便地进行各种操作。在Python中,in运算符被广泛用于检测元素是否存在于列表中。本文将深入探讨Python列表及其与in运算符的结合使用。 1. Python列表的基础 1.1 什…...

利用Microsoft Entra Application Proxy在无公网IP条件下安全访问内网计算机

在现代混合办公环境中,如何让员工能够从任何地方安全访问公司内部资源成为了企业的重要挑战。传统的VPN解决方案虽然可以满足需求,但有时配置复杂,并可能涉及公网IP的问题。为了解决这个问题,Microsoft Entra(原Azure …...

【IEEE独立出版 | 厦门大学主办】第四届人工智能、机器人和通信国际会议(ICAIRC 2024)

【IEEE独立出版 | 厦门大学主办】 第四届人工智能、机器人和通信国际会议(ICAIRC 2024) 2024 4th International Conference on Artificial Intelligence, Robotics, and Communication 2024年12月27-29日 | 中国厦门 >>往届均已成功见刊检索…...

C++ 内存布局 - Part5: 继承关系中 构造析构与vptr的调整

这里以单继承为例&#xff0c;汇编采用AT&T格式&#xff0c;先看示例代码&#xff1a; #include <iostream>class Base { public:Base() {std::cout << "Base Constructor, this ptr: " << this << std::endl;printVptr();}virtual ~Ba…...

BUG-AttributeError: ‘EnforcedForest‘ object has no attribute ‘node‘

File “/home/adt/miniconda3/envs/bevdet/lib/python3.7/site-packages/trimesh/scene/transforms.py”, line 224, in nodes_geometry ‘geometry’ in self.transforms.node[n]): AttributeError: ‘EnforcedForest’ object has no attribute ‘node’ networkx 2.6.3 pyp…...

Spring Boot 3 配置 Redis 兼容单例和集群

配置项 Spring Boot 3.x 的 redis 配置和 Spring Boot 2.x 是不一样的, 路径多了一个data spring:...data:redis:host: redis.hostport: redis.portpassword: redis.passworddatabase: redis.database兼容单例和集群的配置 开发时一般用一个Redis单例就足够, 测试和生产环境…...

unsat钱包签名算法解析

unsat钱包签名算法解析 在数字货币领域&#xff0c;安全性是至关重要的&#xff0c;而签名算法则是确保交易和信息不可伪造的基础。本文将深入解析 unsat 钱包中使用的签名算法&#xff0c;重点关注如何生成和验证消息签名。 1. 签名算法概述 unsat 钱包使用 ECDSA&#xff…...

mysql删除唯一索引

推荐学习文档 golang应用级os框架&#xff0c;欢迎stargolang应用级os框架使用案例&#xff0c;欢迎star案例&#xff1a;基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识&#xff0c;这里有免费的golang学习笔…...

学习之面试题:偏函数

偏函数&#xff08;Partial Function&#xff09;是 Python 中的一个实用工具&#xff0c;通常用于函数式编程中&#xff0c;可以固定一个函数的部分参数&#xff0c;从而生成一个新的函数。偏函数在 Python 中通常通过 functools.partial 实现。在面试中&#xff0c;考察偏函数…...

面试技术点

Java 一、jvm模块 jvm是什么? 是一用用于计算设备的规范,虚构出来的计算机,在计算机上仿真模拟各种计算机功能来实现 jvm 作用是什么? java中所有类必须装载jvm中才能运行,这个装载工作有jvm装载器完成,.class类型文件能在jvm虚拟器中运行,但不能直接在系统中运行,需要…...

基础sql

在执行删除操作之前&#xff0c;建议先运行一个 SELECT 查询来确认你要删除的记录。这可以帮助你避免误删数据。 删除字段id默认值为空字符串的所有数据 delete from users where id ; 删除字段id默认值为null的所有数据 delete from users where id is null; 删除字段upd…...

Jenkins整合Docker实现CICD自动化部署(若依项目)

前期准备 提前准备好jenkins环境 并且jenkins能使用docker命令&#xff0c;并且已经配置好了jdk、node、maven环境&#xff0c;我之前写了安装jenkins的博客&#xff0c;里面讲得比较详细&#xff0c;推荐用我这种方式安装 docker安装jenkins&#xff0c;并配置jdk、node和m…...

kali chrome 安装 hackbar

HackBar 是一个用于在 Kali Linux 中快速测试 SQL 注入和 XSS 漏洞的 Chrome 扩展程序。以下是如何在 Kali Linux 上安装 HackBar 的步骤&#xff1a; 首先&#xff0c;你需要确保你的系统已经安装了 Google Chrome 或 Chromium。如果没有安装&#xff0c;你可以使用以下命令安…...