基于MSP432的高精度失真度测量仪设计
2023-09-20贾鑫,蒋涛
贾 鑫,蒋 涛
(绍兴文理学院元培学院信息与机电工程分院 浙江 绍兴 312000)
0 引言
传统方法只能通过频谱分析仪或专用仪器来实现对接收到的原始数据进行分析计算,而这些设备往往具有较高的成本,并且还不能根据实际情况及时做出修改,从而导致了失真度检测效率较低并容易受硬件限制。本文基于MSP432处理器内核和现场可编程门阵列(field programmable gate array,FPGA)芯片以及ARM板所组成的混合系统可以有效地实现失真度检测;FPGA芯片主要用于对数据采集和转换以及数字控制过程中所需要执行的计算进行处理;ARM板是作为MSP432运行环境所需要使用的。同时通过Wi-Fi模块和串口屏实现了多样的人机交互。能够比传统的测量仪有着更高的精度和实用性。
1 系统设计分析
1.1 系统整体分析
本设计主要可以分为硬件部分与软件部分,硬件部分用于辅助软件部分完成失真信号的运输与非失真的加工,使信号更加易于单片机的采集与处理;软件部分的主要作用是将采集来的失真信号数据进行处理,通过频域变换来分析与计算失真信号的失真度与相关参数,最后通过显示屏设备和上位机来实现信号相关数据的显示。总体方案整体框架如图1所示。
图1 总体方案整体框架图
本系统采用FPGA信号采集控制器电路、MSP432数据处理器电路、跟随器电路、放大电路、比较器电路、Wi-Fi模块电路组成。该设计的测量核心是信号的失真度大小,信号失真度是指在时域上的波形发生畸变,信号有了新的频域成分。由于本次设计中要求失真信号的频率范围相对较宽,所以通过对信号频率统计反馈实现不同频率采样速率采集来解决。MSP432单片机的片内ADC采样的范围是0~3.3 V,而现实中的信号常常电压幅度变化范围不在此区间之内,所以需要通过硬件电路处理后再采集。显示部分通过异步串口(Uart)与显示器通信可以减少引脚的配置从而降低实现的难度与逻辑的复杂程度,通过Wi-Fi模块与手机相连,制作上位机小程序接受通过Wi-Fi发送的数据信息。
1.2 硬件电路分析
为提高测量精度,选用LMH6643MA作为输入放大器,查LMH6643MA数据手册可知,放大器5倍放大量时带宽远大于1 MHz,满足对100 KHz方波信号的不失真放大需求。由于MSP432单片机片内ADC采样电压为0~3.3 V,需使用电压正向偏置的单电源运放供电电路以确保被采样信号的电压幅值可以被正确采样。电路处理效果如式(1)所示:
(1)
为了适应更宽的幅值范围,将40~600 mV电压范围划分成两个区间放大,较大电压区间的放大倍数为5倍,较小电压区间的放大倍数15倍。为简化计算过程,将偏置电压Vtg设置为3.3 V,正相偏置电压设置为1.65 V左右,以充分利用片内ADC采样范围。将偏置部分参数代入式(1)得式(2):
(2)
解得较大电压幅值部分得Rdian为11k(欧姆),较小电压幅值部分得Rdian为32k(欧姆)。为了降低因为频谱泄露对谐波测量精度的影响,整形模块的采样率应确保是被测信号的整数倍,所以,输入电路要有测量频率功能,电路如图2所示。
图2 硬件电路设计图
该电路包括大信号和小信号放大电路、整形电路。小信号放大电路的比较器前加电压跟随器,隔离了电路的单向放大和比较器部分,提高了系统的稳定性。为提高信号准确性,信号在经过放大后串联一对大小分别为10 uF与100 nF的电容进行滤波,去除高频和低频噪声信号。整形电路将正弦波转为方波,方便频率采集。
放大电路参数计算如式(3)、(4)、(5)、(6)、(7)所示:
(3)
(4)
(5)
(6)
(7)
对于输入信号的幅值在100~300 mV之间的信号,放大倍数为10倍左右,即设置放大电阻(R4)的大小为10k(欧姆);对于输入信号的幅值在15~100 mV之间的信号,放大倍数应该为30倍左右,即设置放大电阻(即R4)的大小为30k(欧姆)。
计算过程推导如式(8)、(9)、(10)、(11)所示
(8)
(9)
当输出电压由低电平变成高电平时
(10)
当输出电压由高电平变成低电平时
(11)
1.3 软件设计
软件部分通过对硬件部分产生的信号进行采样与数据处理,从而得到所需要的基于标准正弦波的失真度值。这一部分总体的流程可分为系统初始化,AD采样,FFT,处理数据计算总谐波失真和串口屏与Wi-Fi模块组成。流程如图3所示。
图3 软件总体流程图
1.4 主要模块程序设计
1.4.1 频率采集与ADC采样率调整
由于FFT需要至少一个完整的信号周期,但是在采集不同频率信号时,如采集低频信号时无法采集一个完整的信号周期;采集高频信号时会重复采集多个信号周期。所以通过先采集失真信号的频率,再根据失真信号的频率针对性地配置片内ADC的采样频率,这样做既能满足采集一个完整周期的信号,同时也能得到较合理的ADC采样点数,以用于FFT分析。
1.4.2 数据采集与存储
当采集完数据时,一般都会将他们用于后续的处理,当数据采集频率较低时,单片机处理数据的时间可以满足小于两次数据采集的时间间隔,但是当数据采集速率较高时,就会出现单片机处理一个数据的时间大于两次数据采集的时间间隔,这时就容易出现数据不能正常处理与数据丢失的问题,为了确保后期数据处理的有效性,采用了先将数据存储起来,再调用内存对采集的数据进行批量处理的方法。
1.4.3 FFT与数据分析
此部分是本设计的核心部分,在信号出现失真现象的时候,它的频谱图上就会出现与基波频率不相同的部分,而FFT恰好具有将周期信号随时间变化的特性转换成频谱图的特性,因此这一部分的操作是通过FFT将时域上的失真信号转换成频域上的频谱图,再通过频谱图来分析失真信号的失真情况。FFT与频谱分析框架如图4所示。
图4 FFT框架示意图
FFT是信号分析和处理的重要工具。离散时间信号变格式,x(n)的连续傅里叶变换定义为式(12)[2]:
(12)
式(12)中,X(ejω)是一个连续函数,不能直接在计算机上做数字运算。为了在计算机上实现频谱分析,必须对x(n)的频谱作离散近似。有限长离散信号x(n),n=0, 1,…,N-1的离散傅里叶变换(DFT)定义为式(13):
(13)
经过分解后可以得到:式(14)为K为偶数,式(15)为K为奇数.
(14)
(15)
经过FFT之后可以将FFT的蝶形图算法通过复数运算进而得到需要的失真信号的频谱图。接下来要进行的是统计与计算,本设计测量的失真信号的成分主要是基波的2~5次谐波,基波与这些谐波分量远远大于其他噪声信号的频谱幅度,通过一个比大小的函数,逐次信号频谱中最大的五个分量与其对应的横坐标值,这五个最大的分量正是失真信号的基波分量与2~5次谐波分量,完成这一步之后需要通过公式计算信号的失真度大小。
计算公式如下:
(16)
1.4.4 显示部分
本设计中显示采用显示器与手机屏幕一起同步显示的方式。显示部分总体框架如图5所示。
图5 显示部分总体框架图
本设计采用了异步串口协议(USART协议)来实现MSP432和串口屏之间的数据传输。手机显示部分也使用异步串口协议(UART协议)连接MSP432和Wi-Fi模块(ESP32)实现数据传输,通过Android Studio编写的App手机端显示输入信号失真度的测量值、频率、一个周期波形、基波与谐波的归一化幅值等。为适配显示器和MSP432单片机间传输信号的协议电压不同,需要添加异步232模块。通过这些措施可以大大提高传输速度和节省MSP432的引脚资源。
手机上制作一个简易的上位机程序来接受并显示这些数据,上位机中将不变的显示部分,如背景等,通过制作界面时直接做上去,然后将Wi-Fi发过来的数据通过显示地址,逐个打印在背景上。
2 测试结果及分析
2.1 实际电路对比分析
(1)测量频率为1 KHz,基波为50 mV,二次谐波为0 mV,三次谐波为10 mV,四次谐波为0 mV,五次谐波为5 mV的正弦波信号。(2)测量频率为100 KHz,基波为440 mV,二次谐波为0 mV,三次谐波为120 mV,四次谐波为0 mV,五次谐波为0 mV的正弦波信号。两者失真信号对比如图6所示。
图6 数据对比图
(1)测量频率为1 KHz,基波为50 mV,二次谐波为0 mV,三次谐波为10 mV,四次谐波为0 mV,五次谐波为5 mV的正弦波信号,测量数据正确,基波与各次谐波分量测量与实际输入相同。据理论计算得失真度为22.36%,测量得失真度大小为22.50%左右,失真度测量的绝对误差为0.14%测量精度符合设计要求。
(2)测量频率为100 KHz,基波为440 mV,二次谐波为0 mV,三次谐波为120 mV四次谐波为0 mV,五次谐波为0 mV的正弦波信号,测量数据正确,基波与各次谐波分量测量分别为1,0.01,0,0.28,0与实际输入相同。根据理论计算得失真度为27.27%,测量得失真度大小为28.10%左右,失真度测量的绝对误差为0.9%测量精度符合设计要求。
两者测试数据对比见表1。
表1 测试数据对比
2.2 测量结果分析
2.2.1 频率测量数据
从信号发生器产生频率在(1~100)KHz的信号,从表中可看出,当测试信号频率在(1~100)KHz时,测得信号频率数据误差在±0.5 Hz,数据结果较为准确。频率测量数据对比见表2。
表2 频率测量数据对比
2.2.2 电压测量数据
经过测试对比可看出,测量数据绝对误差都在±10 mV以内,数据结果较为准确。电压测量数据对比见表3。
表3 电压测量数据对比
2.2.3 失真度测量数据
从信号发生器中产生了正弦波、方波和三角波三种波形的失真度测量值分别是0.014%、39.05%、11.75%,对比下表的测量数据,失真度的测量值与计算值之间的误差为 ±0.05%。不同波形失真度对比见表4。
表4 不同波形失真度对比
通过以上数据表明,该系统虽然存在一定的误差,但其误差范围只在0.05% 左右。这意味着测量系统可以高精度地自动计算任意输出波形的总谐波失真。该系统的操作简单,显示较为清晰,同时误差可控,系统性能指标良好。这种技术可以广泛应用于普通电子产品的信号失真度测量,有较强的实用价值。该系统也可以作为一种测试仪器提供商业应用。
3 结语
本文设计了一个基于MSP432的高精度失真度测量仪,该系统经过测试表明,各项参数测试模块均表现出了优秀的性能。相较于传统的失真度测量仪,该仪器具有更高的精度、更简单的电路结构和更高的可靠性。此外,该系统还能够进行远程数据查看,更好地满足了对信号失真度测量的需求。