基于STM32的波形数据采集系统设计

2013-01-10 03:42吴云轩
通化师范学院学报 2013年12期
关键词:极性幅值波形

吴云轩

(黎明职业大学 信息与电子工程学院,福建 泉州 36200)

波形数据采集系统作为测控系统的重要组成部分,是现代工业中常见的设备,目前的数据采集系统多由单片机、DSP或单片机与FPGA共同构成.普通单片机在数据处理方面能力有限,无法满足高速数据传输的要求.DSP数据处理能力高、速度快,FPGA设计开发的灵活性强,但二者的价格太高,需要专用的开发板,不适合构成低成本的嵌入式数据采集系统.

因此,本文选用ARM Cortex-M3内核的STM32F103VC为主控制芯片,设计了一种低成本的嵌入式波形数据采集系统.ARM Cortex-M3处理器是一款结合了多种创新性突破技术的芯片,内有33000门的M3内核,其性能可达1.25DMIPS/MHZ[1].STM32F103VC芯片内部集成了16通道的12位高精度A/D转换器、16位的定时/计数器(具有PWM输出功能),还集成了DMA控制器,IIC、SPI、USART、CAN和USB等接口,具有睡眠、停机、待机等省电模式[2].同时,STM32系列微控制器给开发者访问这些底层硬件提供了一个API库,大大的提高了应用程序的开发效率.与单片机、DSP和FPGA构成的系统比较,本设计优势在于低功耗、低成本、高性能.

1 系统硬件设计

本系统对信号的幅值和频率进行实时采集并存储波形数据,通过USB接口传输到本地的PC上,由上位机软件进行数据处理、显示.系统主要包含输入波形信号的调理电路模块、STM32F103VC微控制器模块、USB接口电路、LCD显示电路模块和按键电路模块.系统总体设计框图如图1所示.

图1 系统设计框图

本设计的重点是波形信号的处理、频率脉宽测量方式自动切换以及数据存储与传输三个方面,因此只针对这三个模块进行详细说明.

1.1 信号调理电路模块

信号调理电路模块的主要功能是输入隔离、极性转换、波形变换和整形.信号输入端接电压跟随器,实现输入隔离.极性转换电路采用绝对值电路,将双极性信号转换为单极性信号.波形变换和整形采用比较放大电路,系统先采集信号的幅值,再由STM32F103VC输出对应的PWM波形,经二阶低通滤波后,作为比较器的比较电压,将单极性信号处理成为方波信号,提供给定时器作为计数脉冲.

(1)绝对值电路.实际测量的信号可能是单极性信号,也可能是双极性信号.在对双极性信号,如正弦信号的幅值进行测量时,可采用绝对值电路将双极性信号转换为单极性信号,便于计算机采集处理时去掉符合位,提高转精度[3].绝对值电路原理图如图2所示,Vin为待测信号输入,输出端Vout.

图2 绝对值电路原理图

当Vin>0时,D2导通,D1截止;输入信号经U1A反向放大为-2Vin,再与Vin一起送入U1B集成运放中形成反向加法器,Vout=-(-2Vin+Vin)=Vin.

当Vin<0时,D2截止,U1A处于深度负反馈状态,输入信号直接经U1B集成运放反向输出,Vout=-Vin*(R5/R4)=-Vin,输出正向信号,实现双极性信号转换为单极性信号.

为提高输入阻抗,在信号的输入端可增加一电压跟随器电路,因其输出具有低阻抗特性,使得它在电路中可以起到阻抗匹配的作用,能够使得后一级的放大电路更好的工作[4].

图3 波形变换与整形电路原理图

图4 信号变换波形图

(2)波形变换和整形电路.波形变换与整形电路原理图如图3所示.系统开始工作后,先对信号波形进行A/D采样,根据幅值设置相应的PWM值,输出的PWM波形经二阶低通滤波得到比较器反向端的参考电压Vref.待测信号经极性转换后,连接到比较器同向端,与Vref比较转换为方波信号Vout1,作为频率测量的计数脉冲.Vout1经D触发器构成的二分频电路整形后,成为占空比50%的方波,作为测量脉宽的门控.信号变换后的波形图如图4所示.

1.2 通信模块设计

为了更直观的观察波形,将采集到的数据通过串口传输到本地PC,并保存到文件中,这样方便数据的共享和远程访问.STM32F103VC拥有3个串行通信接口,其中USART1的时钟源来自高速外设总线AB2的时钟源,速度可达4.5Mbps,与PC进行数据通信时,需进行电平转换,通信芯片选用Max232.

2 系统软件设计

本系统设计中,数据采集模块部分采用keil uVison4集成开发环境为开发平台,软件设计部分包括主程序设计、频率测量子程序设计、A/D采样及数据的存储与传输子程序设计3个主要部分.PC主机采用VB开发应用软件,主要功能是实现波形数据的接收、处理和显示.

2.1 数据采集模块主程序设计

主程序主要负责对于系统时钟、GPIO口、定时器、中断、ADC、DMA和串行通讯模块的初始化,之后程序进入频率测量和A/D采集的循环中,当A/D采集存储到数据缓冲区满后产生DMA中断,通过DMA方式传送给PC主机.主程序流程图如图5所示.

图5 主程序流程图

2.2 频率测量子程序设计

在测量信号频率时,根据频率测量精度和测量反应时间的要求,将测量方法分为测频率和测脉宽两种方法,具体的流程图如图6.

当待测信号的频率大于100Hz时,定时/计数器设置为计数器,由软件产生1S的计数闸门,待测信号经整形后作为计数脉冲输入,这时频率测量结果为3位以上有效数字.但当待测信号的频率小于100Hz时,采用这种方法测量结果就无法满足3位有效数字.这时将定时/计数器设置为定时器,待测信号经信号调理电路后,被整成占空比为50%的方波,方波脉度等于待测信号的周期.将该方波输入作为计数门控,以机器周期信号为计数脉冲测量方波的脉宽,求倒数后可得到待测信号的频率,这样就能使测量结果为3位以上有效数字.

图6 频率测量子程序流程图

系统先以测频率的方法测量信号的频率,若得到的结果小于100Hz,自动切换到测脉宽的方法,因此在信号调理电路的输出端有两路信号输出,一路用于测频率,另一路用于测脉宽.

2.3 A/D采样及数据的存储与传输子程序设计

利用STM32F103VC内置的A/D转换器、DMA控制器和USART接口,可以方便的进行波形数据的采集、存储和传输.为提高数据传输的效率,采用双缓存技术,分时将采集到的数据存储在RAM中的两个数据缓冲区buf1[256]和buf2[256],大小为256个字节.将A/D设置为连续采样模式,待A/D转换结束后,会自动触发DMA读数据,由DMA将数据写入数据缓冲的数组buf1;写满256个字节后,产生DMA中断,此时修改DMA存储的入口地址,指向另一个数据缓冲数组buf2,标记buf1缓冲区数据已准备好,然后将USART数据源指向buf1,通过DMA方式发给PC.在buf2写满后,进入DMA中断,修改DMA存储的入口地址,指向另一个数据缓冲数组buf1,标记buf2缓冲区数据已准备好,然后将USART数据源指向buf2,通过DMA方式发给PC.这样就可以从2个缓冲区交替传输数据到PC上.

2.4 PC主机程序设计

PC上的程序设计采用VB实现,系统启动后首先对硬件进行检测,连接成功后开始接收来自串口的数据,在虚拟的波形面板上描绘波形曲线,并将波形数据以文件的形式保存到硬盘,以供后续分析与处理,软件用户界面如图7.

图7 软件用户界面

3 实验结果和分析

本系统采样频率最高可达500kb/s,A/D采样位数12b,输入信号0~3.6V.在示波器上显示频率为1000Hz、幅值2499mv的正弦波形,经过实测频率为1002Hz、幅值2465mv,频率测量误差为0.2%,幅值误差1.4%,满足系统要求.频率测量误差表达式为df/f=|dN/N|+|dt/t|,误差来源主要有闸门和计数误差两部分.dt/t取决于晶振频率的稳定性,当仅显示3位有效数字时,可以忽略该项误差.对于dN/N部分,不管闸门时间长短,计数总存在1个单位的量化误差.可以通过增加显示的有效数字位数来降低该项误差的影响[5].

4 结论

本文采用基于ARM Cortex-M3的STM32F103VC为主控制芯片,构建了一个嵌入式的数据采集系统,并利用上位机的VB界面实时显示波形数据,采集的波形数据可以文件的形式保存在硬盘上,实现数据的共享和远程访问.该系统成本低,实用性强,可应用于电力数据采集等工业测控领域.

参考文献:

[1]彭刚,秦志强.基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践[M].北京:电子工业出版社,2011.

[2]MCU技术支持.STM32 Reference Manual[Z].意法半导体(中国)投资有限公司,2010-1-10.

[3]刘泊,等.光栅传感器信号细分中绝对值电路的设计[J].电子设计工程,2011,19(11):87-89.

[4]童诗白,华成英.模拟电子技术基础[M].北京:高等教育出版社,2001.

[5]郝建国,等.基于单片机的频率计设计[J].西安邮电学院学报,2003,8(3):32-34.

猜你喜欢
极性幅值波形
室温下7050铝合金循环变形研究
多尺度串联非线性能量阱的减振效能及阻尼连接方式研究
基于Halbach阵列磁钢的PMSM气隙磁密波形优化
跟踪导练(四)
用于SAR与通信一体化系统的滤波器组多载波波形
红葱不同极性提取物抑菌活性研究
基于S变换的交流电网幅值检测系统计算机仿真研究
Prevention of aspiration of gastric contents during attempt in tracheal intubation in the semi-lateral and lateral positions
香椿子不同极性部位对糖尿病周围神经病变的保护作用
基于ARM的任意波形电源设计