周期信号波形识别及参数测量装置的设计与实现
2022-07-06李小琴
摘 要:文章所设计测量装置采用的控制系统是STM32F103C8T6 32位单片机,各种波形经过零比较和放大电路处理后,由控制系统的ADC模块采集波形数据,通过各种算法的运算,用OLED屏将波形显示出来。该测量装置能够识别出给定信号的波形类型(包括正弦波、三角波、矩形波),能够测量信号的参数(包括峰峰值、频率、周期、占空比等),还能够识别50 mV~10 V电压以及1 Hz~50 kHz频率范围内的正弦波、三角波和矩形波。
关键词:STM32F103C8T6;放大电路处理;过零比较
中图分类号:TP368.1 文献标识码:A文章编号:2096-4706(2022)03-0039-06
Design and Implementation of Periodic Signal Waveform Recognition and Parameter Measurement Device
LI Xiaoqin
(Intelligent Electronics Development and Technology Service Center, Ningbo Polytechnic, Ningbo 315800, China)
Abstract: The control system of the measuring device designed in this paper is STM32F103C8T6 32-bit single-chip microcomputer. After various waveforms are processed by zero crossing comparison and amplification circuit, the ADC module of the control system collects waveform data, and displays the waveform with OLED screen through the operation of various algorithms. The measuring device can identify the waveform type of a given signal (including sine wave, triangular wave and rectangular wave), measure the parameters of the signal (including peak-to-peak value, frequency, period, duty ratio, etc.), and can also identify sine wave, triangular wave and rectangular wave in the voltage range of 50 MV~10 V and in the frequency range of 1 Hz~50 kHz.
Keywords: STM32F103C8T6; amplification circuit processing; zero crossing comparison
0 引 言
2021年全国大学生电子设计竞赛J题要求设计一台周期信号波形识别装置,能够识别出给定信号的波形类型以及测量信号的参数。题目分为基本要求和发挥拓展两个部分,基本要求为:(1)能够识别1 V≤VPP≤5 V、100 Hz≤f≤10 kHz范围内的正弦波、三角波和矩形波信号并显示类型。(2)能够测量并显示信号的频率f,相对误差的绝对值不大于1%。(3)能够测量并显示信号的峰峰值VPP,相对误差的绝对值不大于1%。(4)能够测量并显示矩形波信号的占空比D,D的范围为20%~80%,绝对误差的绝对值不大于2%。发挥拓展部分对这四点提出了更高的要求,测量波形的峰峰值和频率范围更大,反应速度要更快,测量的波形和参数的种类增加。
1 系統方案选择
方案1:采用FPGA和单片机作为整个系统的核心控制部分,运用硬件描述语言Verilog HDL对FPGA进行程序设计。将信号直接输入FPGA主控板进行A/D转化得到数字信号,将所得到的数字信号输入单片机进行数据分析,最后将经过分析的波形和数据显示到液晶屏上。该方案处理速度快,测量精度高,但总体成本偏高,设计难度偏大。
方案2:选用高速单片机和高速A/D转换电路进行波形分析。先用单片机控制高速A/D转换电路对信号进行数字化处理,然后由单片机对信号进行分析,选择合适的放大倍数放大信号,使其到达最佳测量幅值范围以获得最佳测量精度,该方案成本低,测量精度也可达到设计要求,在图形显示及人机交互方面更加灵活。
综合考虑,本项目设计方案采用方案2。
2 总体设计方案
本系统以STM32嵌入式系统为核心,电源板将AC220V转换成DC±7 V和DC3.3 V,分别为过零比较电路、信号处理器和STM32系统板供电。MCU采集信号发生器输入的信号时,在测量范围内可以直接通过OLED显示各测量参数,在测量范围外则需要通过过零比较电路和信号处理电路,将信号调整到测量范围内,在MCU程序的控制下,在OLED显示屏上显示出各种波形类型以及波形的参数(包括峰峰值、频率、占空比等参数),总体架构如图1所示。
3 理论分析与计算
为准确测量输入的波形和各参数,需要对波形的识别原理和各参数的测量进行理论分析和计算。6AA563F2-6AFC-4CE1-B8DC-5DA37F64F04B
3.1 波形识别原理
如何识别各种波形类型,本系统通过程序编程的方法区分波形类型,如图2所示。通过采集一个周期内9个点的相位幅值来判断是什么波形,即测量(0、To、To、To、To、To、To、To、To)。
下面列出四种波形的识别条件:
(1)方波的识别条件。一个周期内幅值只有两个值,前半个周期采集的幅值为Ua,后半个周期采集的幅值为-Ua。
(2)三角波的识别条件。一个周期内,相位为0、?To、To的幅值为0,To、To的幅值为? Ua,?To的幅值为Ua,?To的幅值为-Ua,To、To的幅值为-? Ua。
(3)正弦波的识别条件。一个周期内,相位为0、?To、To的幅值为0,To、To的幅值为0.707 Ua,?To的幅值为0,To、To的幅值为0.707 Ua,?To的幅值为Ua,?To的幅值为-Ua,To、To的幅值为Ua,?To的幅值为-Ua,To、To的幅值为-0.707 Ua。
(4)锯齿波的识别条件。一个周期内,相位为0、To的幅值为0,?To的幅值是Ua或-Ua。
3.2 波形识别原理
根据周期信号波形的特点,一定时间内其波形是重复的,因此可以通过测量N个周期的时间T来求出一个周期。即。
频率是周期的倒数,即。
3.3 峰峰值的测量
峰峰值是最大值减去最小值的差,所测量的信号过小时,MCU很难准确测量出其峰峰值,因此需要对信号进行放大处理,再经过电平调整电路,将波形调整到正值,这样才能使MCU准确测量出峰峰值。
如图3所示,小信号的幅值为Ua,峰峰值为2Ua,小信号经过放大后的幅值则为Au · Ua,峰峰值为2Au · Ua,经过电平转换后的峰峰值为Ub。处理后的幅值与输入波形之间的关系为:Ub=2Au · Ua。
输入波形的峰峰值与处理后的峰峰值之间的关系为:2Ua=Ub÷Au。
3.4 峰峰值的测量
根据占空比的算法,占空比,只要测出高电平脉宽T1和周期T,就可以求出占空比,如图3所示。
4 硬件电路设计
4.1 总体设计电路图
根据设计框图,设计了如图4所示的电路图,分别是信号处理电路、过零比较电路、电源供给电路、MCU核心电路。
4.2 过零比较电路
过零比较器采用一般比较器电路,将信号与零电位进行比较,找出边沿值,测量出每一个周期值,如图5所示。
4.3 信号处理电路
如图6所示,信号处理电路由CD4051单8通道数字控制模拟电子开关和TL072运算放大电路组成,通过程序对CD4051不同通道的控制,从而可以输出不同放大倍数的电压。根据同相比例运算放大电路的公式可以得到:
输入电压较小时,通过通道选择TL072反向输入端2号脚输入的电阻RW越小,放大倍数越大。
输入电压较大时,通过通道选择TL072反向输入端2号脚输入的电阻RW越大,放大倍数越小。通过信号处理电路使得所有测量值都在信号处理的范围内,便于信号提取和参数测量。
5 程序设计
软件包括主函数和若干个中断函数,其中主函数完成STM32内部功能单元的初始化(ADC、OLED、定時器等),中断函数实现外部初始化。
程序首先检测波形,如果有波形输入,经过边沿处理和放大电路处理后,用程序捕获它的上升沿。如果捕获到上升沿,则开启AD采集器对波形进行采集,根据各种算法的运算,判断波形以及测量波形的参数,如图7所示。
6 功能测试
6.1 测试结果
在信号处理电路中可以看出,我们在CD4051中接了8个电位器,其实就是将输入进去的电压010 V分成了8段,每一段都可以设值一个合适的放大倍数。如表1所示,我们把电压以1.25的倍数分成8段计算,在每段中输入每段范围的电压就可以让Uo输出0~3.3 V的电压,这样就可以让输入进去的电压都能给单片机提供信号,通过单片机控制CD4051的地址端,用它来自动检测输入的电压,最后在对应的范围内输出Uo,测试数据如表2所示。
6.2 测试结果分析
由测试表可知,每种波形都能够准确地判断出来,周期、频率以及占空比还是比较准确的,其测试值和输入值没有任何误差,幅值和峰峰值的测试值与输入值之间存在一定的误差,但能达到竞赛题目的基本要求。尤其是在测试小信号时,测出的峰峰值不是很精确,误差比较大,分析原因是在设计信号处理电路中放大倍数调得不太好,导致测出的数据不准确,后期我们会设计高频信号电路,可通过多周期检测来提高峰峰值的测量精度。
7 结 论
本设计的周期信号波形识别及参数测量电路,经过电路调试和测试,能实现正弦波、三角波、方波以及各种信号参数的数据获取与显示,能达到竞赛的基本要求,对于小信号波形的峰峰值测量,还需要不断地完善和优化,力求设计出性能更加优良的电路以实现精准测量。
参考文献:
[1] 姚静.嵌入式控制系统的实时性数据采集研究 [J].自动化技术与应用,2020,39(9):61-63+91.
[2] 全国大学生电子设计竞赛组委会.第九届全国大学生电子设计竞赛获奖作品选编[M].北京:北京理工大学出版社,2010.
[3] 高吉祥.模拟电子线路与电源设计 [M].电子工业出版社,2019.
[4] 沈健良,贾玉坤,周芬芬,等.STM32F10X系列ARM微控制器入门与提高 [M].北京:北京航空航天大学出版社,2013.
[5] 姜玉泉,李学平.波形信号识别与频率测量技术研究 [J].单片机与嵌入系统应用,2020,20(1):42-44.
作者简介:李小琴(1983—),女,汉族,浙江温岭人,副教授,本科,研究方向:智能电子产品的设计与制作。6AA563F2-6AFC-4CE1-B8DC-5DA37F64F04B