北方工业大学电子信息工程学院通信工程系 代 勇
基于单片机的多功能测量仪的设计
北方工业大学电子信息工程学院通信工程系 代 勇
单片机作为检测仪器在嵌入式中应用十分广泛。随着时代的发展,单片机的功能越来越强大。基于stm32系列开发板的丰富的外围设备,使我们对于各种系统的仿真模拟也越来越广泛。本系统则是利用stm32作为控制核心,利用其自带的外围设备进行模拟多功能测量仪的实现。在误差允许的前提下可以进行幅度,频率,以及占空比等测量,在检测pwm波时还可以进行倍频输出的功能。
嵌入式;倍频输出;频率测量,幅度测量
目前利用单片机进行测量各种模拟信号的数字特性已不再稀奇,毕竟目前嵌入式和最小系统甚是流行且发展极快。体积小,性能强,功耗低已经是嵌入式器件的代名词。嵌入式系统将先进的半导体技术,计算机技术和电子技术,以及各个行业结合,是一个技术精密,学科交叉和不断创新的知识集成系统。本系统具有更高的集成度,更加方面快捷,足以满足我们日常的生活需求。
2.1 系统结构
本系统主要由以下模块组成,采集信号模块,通信模块,定时器模块,人机交互模块等,由图1所示。本系统的工作的原理大致为:首先几路信号经过调理电路调理后进入模拟通道1和2等。然后在测量电压时,经过模数转化器转化为数字信号。在一定时间内比较出最大值,即为信号幅值。在测量频率时,利用定时器中断测量频率,即上升沿和下降沿的时间来计算出信号的频率与占空比。再利用通用定时器发出双倍频的信号。开关输入的变量是通过后I/O输入,stm通过中断的方式读取。数据处理后可由LCD屏幕直接显示。为了是数据显示更加直观,通过USB转串口与上位机相连。
图1 系统原理
图2 MCU主控模块的管脚原理图
2.2 STM32的片上资源
本设计的微控制器采用STM32单片机。STM32系列单片机是基于ARM公司Cortex-M3内核设计的是专门设计于满足集高性能 、低功耗、实时应用、具有竞争性价格于一体的嵌入式领域的要求。本次系统采用的是32F103RBT6主控模块(如图2所示),其中芯片具备有内置的128KB的Flash2X12位的ADC、4X16位TIMER以及2XSPI(18Mbit/s),3XUART,通讯接口等多种资源。另外其A DC 为逐次逼近型模数转换器 , 各通道的转换可以单次 、连续 、扫描或间断模式执行 ,转换结果以左对齐或右对齐方式存储在 16 位数据寄存器中。通用定时器是一个通过可编程预分频器驱动的16位自动装载计数器构成,每个定时器都是完全独立的,没有互相共享任何资源。它们可以一起同步操作。并且通用定时器可以设置为向上、向下、向上/向下自动装载计数。模拟输入管道的。
2.3 频率(PWM)采集模块
本次实验使用了通用定时器TIM2和TIM3,他们捕获通道都是围绕着一个捕获寄存器,包括捕获的输入部分(数字滤波、多路复用和预分频器),和输出部分(比较器和输出控制)。在这里只展示了通道一的输入部分。下面几张图是一个捕获通道概览。当前工作在输入捕获模式下,输入的部分对TL1信号进行采样,TL1F则表示滤波后的信号。利用边缘检测器产生一个TL1FP1的信号,利用此信号,从模式控制器可以产生输入触发或作为捕获控制。当通道检测到ICx信号上相应的上升或下降沿后,计数器的当前计数值被锁存到捕获寄存器TIM2_ CCRX中,当连接TL1上时写入寄存器TIM2_CCR1中,连接TL2时写入寄存器CCR2中。倍频输出则是采用的脉冲宽度调制模式,在此模式下可以产生一个可以确定的频率和占空比的信号。
图3 MCU通道1的输入部分
2.4 交流(余弦波)信号的频率检测
由于交流信号没有有效的上升沿和下降沿,所以应该在进入检测模块之前经过过零检测电路。如图4所示,利用LM358N构成检零器,当输入信号大于0V时,输出高电平,当输入信号小于0V时,输出低电平。这样就可以利用MCU进行频率检测。
图4
图5
软件部分,则利用本系统的STM32本身的库函数方式编写,简洁直观相对于寄存器便携较为简单,但是不灵活。不过针对本系统已经向足够,而且库函数据有快速开发便于阅读的特点。利用定时器捕获进行频率测量,利用ADC进行频率测量。而且对于常见的pwm和交流信号都适合。
利用Keil4编写STM32程序,并通过J-Link进行下载和调试,调试完成后程序可以达到预期的功能。如图6所示:
图6
由以上结果可以看出,本次的系统可以正常工作,可以测量某些波形的频率和幅度,并且能在误差允许的范围内得到正确的结果.随着测量技术的发展,对于数据采样精度的发展越来越高,我们可以在此基础上进一步改进系统,可以对输入信号进行傅里叶变换,更加精确地分析其谐波的特征。
[1]曹圆圆.基于STM32 STM32的温度测量系统[J].仪器仪表与分析检测,2010(01):16-18.
[2]洪俊峰,卜文强,张榕鑫,程恩,袁飞.基于STM32PWM的正弦信号发生器设计[J].合肥工业大学学报(自然科学版),2014(02):189-190.
[3]张哲,陈天鹰,陈光达.基于STM32微控制器的自动发药机发药装置的控制与实现[J].科技风,2017(02):3-4.
[4]郭书军,王玉花.ARM Cortex-M3系统设计与实现[M].北京:电子工业出版社,2013:82-83.
[5]陈志旺.STM32嵌入式微控制器快速上手[M].北京:电子工业出版社,2014:207-209.
[6]张旭,亓学广,李世光,芮昱,邱彪.基于STM32 电力数据采集系统的设计[J].电子测量技术,2010,33(11):90-92.
代勇(1994—),河南商丘人,大学本科,现就读于北方工业大学。