多功能便携示波器的研制
2014-12-01王秦君李永涛张绪德
王秦君,李永涛,张绪德
(南京邮电大学 理学院,江苏 南京210046)
1 系统概述
目前市场上的示波器价格普遍较高,同时较为笨重,不便于携带.基于低成本、低功耗、便携的理念,制作了这样一个系统.系统核心是STM32F407VGT6,该 MCU采用ARM Cortex-M4作为内核,主频高达168MHZ,具有196kB的RAM,片内有3个12位速度高达2.4MSPS的ADC.这样可以仅用片内AD来进行采样[1],以此可以最大限度的简化外围电路,同时降低成本.系统主要包括信号输入和衰减电路,触发电路、MCU模块和液晶模块.对于输入模块,采用电阻和电容分压的方式对输入信号进行衰减,然后通过电压跟随器和加法器最终输出0~3V的信号到MCU的AD输入端,本系统的成品,如图1所示.
图1 示波器实物图
2 系统硬件设计
2.1 信号输入
2.1.1 信号衰减
衰减部分电路如图2所示[2].可以看到,输入电路把输入信号电压幅度降到了原来的1/4,因为MCU的AD输入电压范围是0~3V,所以输入信号的幅度可以为-6~6V.该电路中的电容是为了满足对高频信号良好的分压性能.
图2 信号衰减电路
2.1.2 阻抗变换和加法器
图3是电压跟随器,其作用是把衰减之后的信号送入加法器,同时减小其输出电阻.
图4所示的是加法器,将信号加上1.5V,使-1.5~1.5V 的信号源范围转换到0~3V,供MCU进行采样.
图3 电压跟随器
图4 加法器
2.2 触发电路
触发电路(图5)的作用为了给MCU触发脉冲以此来稳定波形的显示.
利用LM339作为电压比较器,将输入信号转化为周期性的方波,用户可以选择采用关闭触发、上升沿触发和下降沿触发3种触发方式.程序会依据用户的选择,在触发信号到来时,进行相应地操作.
图5 电压比较器(用于产生触发脉冲)
2.3 信号采集和处理
该系统通过MCU的ADC1和ADC2两个通道进行采样.为了达到最大的响应速度,信号采集时采用了DMA传输的方式[4].直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输.无须CPU干预,数据可以通过DMA快速地移动,这节省了CPU的资源来做其他操作.
表1是STM32F4数据手册中的DMA2每通道对应的外设,可以看到,ADC1对应了Stream0的Channel0和Stream4的Channel0,ADC2对应了Stream2的Channel1和Stream3的Channel1.在本系统中,ADC1采用了DMA2的Stream0的Channel0,ADC2采用了DMA2的Stream2的Channel1.
表1 STM32F4的DMA2中各通道的请求
内存中有3个1 024×2byte的buffer,其中2个用来存储ADC1和ADC2采样值,另外一个用来存储采样完成后对波形进行数学运算的虚拟波形的AD值.当用户选择的时间步进小于20μs时,DMA会把采集到的数据放入buffer.大于或等于50μs时,MCU通过时间步进计算延时时间,每隔1个延时采1次数据,以此来实现时间挡位可调节的功能[5].
数据采集完成后,通过用户选择,还会对波形进行相应处理,比如绘制李萨如图形或者进行快速傅里叶变换(FFT).其中FFT采用了ST官方提供的DSP库来实现,1 024点FFT只需要几ms,转换速度非常快.
2.4 液晶显示
显示部分采用了400×240分辨率的TFT屏.STM32则用FSMC驱动液晶.灵活的静态存储器控制器(FSMC)能够与同步或异步存储器和16位PC存储器卡接口.只要进行适当的配置,也能实现液晶的8086时序.使用FSMC后,对液晶写数据就像写内存一样方便且快速,刷新1次屏幕小于5ms,可以轻松地显示波形.
3 系统软件设计
软件通过图形用户界面(GUI)实现人机交互,GUI控制按钮和菜单的显示,AD每转换1次后会检测触摸屏是否被按下,如果被按下会执行相应的操作,其流程如图6所示.
图6 流程图
程序中最主要的全局变量:State,这是结构体变量,结构体如下:
因为buffer能存储1 024个AD值,但是屏幕水平分辩率只有400,所以设置了 H_OffsetCHx和V_OffsetCHx这样的变量,其作用是在采样完成以后,在屏幕上绘制的波形的起始数据地址是buffer的基地址加上H_OffsetCHx之后的地址,这样可以通过修改OffsetCHx和V_OffsetCHx的值,显示波形全部1 024个点,反应到TFT上的现象为:当ControlCH的值为对应的通道时,只要手指在触摸屏上滑动,就能任意拖动波形,使操作更加形象,观察起来也更加方便.
4 结束语
多功能便携示波器系统省去了FPGA和片外AD,仅仅1块MCU就完成了主要任务,使得设计成本大大降低,同时外围元件的用量也大大减少,体积缩小到手机般大小.FFT也充分运用了STM32F4内FPU的性能,加上采样时间也能以30fps以上的速率显示频谱.
[1]Phil Stearns.采样率对示波器带宽的影响 [J].今日电子,2007(8):41-42.
[2]李扬,郑莹娜,朱铮涛,等.高性能虚拟示波器的研究 [J].工业仪表与自动化装置,1999(2):3-6.
[3]刘军.例说STM32[M].北京:北京航空航天大学出版社,2011:207-215.
[4]张滔.基于STM32单片机DMA机制的多通道数据采集[J].黑龙江科技信息,2013(30):27.
[5]胡斌强,苏绍璟,王跃科.手持宽带数字存储示波器的设计与实现 [J].计算机测量与控制,2006,14(10):1423-1425.