基于STM32的简易数字示波器设计
2018-10-25张本俊
张本俊
摘 要:本文利用STM32微处理器为控制核心,结合外部信号处理单元,提出了A/D采样的定时器控制法,利用微处理器定时器的 PWM 输出模式作为系统A/D采样的触发源,并利用 DMA 技术进行采样数据输送,形成了以定时器控制 A/D 采样、DMA 数据输送,最终将在 TFT 上面显示波形信息。与现有数字示波器相比,该数字示波器系统具有性价比高、可操控性好、低功耗、便携方便等
优点。
关键词:数字示波器 STM32 触发 采样速率 定时器控制 直接内存存取
示波器是电子测量行业最常用的测量仪器之一,用来测量并显示被测信号的波形等参数,在很多领域得到广泛的应用。现有示波器模拟带宽频率更高,作为示波器的衡量技术指标,其重要性显而易见;同时为不断满足行业测试标准,特别是电源设计领域,电子设计工程师在技术开发的过程中每天要面临着新技术带来的挑战。
1 系统总体方案设计
示波器接上电池或外接DC电源,打开开关,如果白屏或花屏,按复位键重启;S-和S+为时间轴加减键;V-和V+为电压幅度加减键;在关机状态下按住出厂设置键,不松手,再开机然后松开‘出厂设置键,这样所有的设置回到初始化状态;显示功能菜单键显示与隐藏;AUTO(自动)和HOLD(保持)按键为状态转换,按一下保持波形静止状态,具体性能参数如下:
最高实时取样率:1Msps;精度:12位ADC取样;模拟带宽输入:最大200KHz;输入阻抗:0-2MΩ;最高输入电压:16Vpp(10:1探头和标准探头),150Vpp(100:1探头);信号耦合方式:DC/AC/GND;自带1KHz /3.3V方波測试信号源与LCD背光调节;
2 系统硬件设计
根据系统的功能需求,系统结构主要包括:STM32最小系统模块,电源电路模块设计,信号处理模块,模式选择模块,显示器模块,AD转换模块,按键输入模块等。
2.1电源电路的设计
用LM7805 供电,外侧加5 V电压,经过LM7805 稳压后,ASM1117将5 V的降压到3.3 V,ASM1117 通过输出电压采样,反馈调节并作用输出阻抗上,输出电压的高低与输出级阻抗的压降大小成反比。ASM1117 外围电路简单,几乎是由电容构成进行滤波,使电压纹波达到最小,低频率的纹波采用容值相比高比率的电容对其进行滤波,高频率的纹波采用容值相比低频率的电容对其进行滤波。
2.2 信号处理模块
阻容衰减电路由电阻、电容网络组成,完成对信号的最佳补偿及1倍程衰减、10倍程衰减的选择。程控放大电路采用RC电路,分别外接不同阻值电阻和不同容值电容,选择不同通道上电阻与 TL082 芯片组成反比例放大电路,实现对输入信号的放大。
2.3 显示器模块的设计
采用 TFT 屏作为人机交互界面。移入嵌入式图形界面UCGUI,实现全触摸人机界面、多级菜单设计,省去部分外围硬件电路设计,减小数字示波器体积。同时,运用 PWM 技术,智能调节 TFT 屏幕亮度,自动降低能耗。不同产品使用不同的显示方式。本次设计考虑高效、亮度高真,因此采用3.2寸TFT 显示屏。
2.4 按键输入模块
● 复位电路设计:当reset 被拉低时有效,当reset为高时,不复位。
● 接上电池或外接DC电源开关键;
● 复位键:白屏或花屏情况下按复位键重启;
● S-和S+为时间轴加减键;
● V-和V+为电压幅度加减键;
● 恢复出厂设置键
● 显示功能菜单键:显示与隐藏
3 系统程序设计
配置微处理器的通用定时器为 PWM 输出模式, 作为 ADC 的触发源,通过重装计数器值来调节系统采样速率, 采样值由 DMA 控制器输送后,进行波形重建; 配置微处理器的高级定时器为输入捕获模式,实现对信号频率、周期、占空比等参数测量。
3.1 . A/D 采样数据的 DMA 输送
STM32F103x系列MCU提供了固件库,包括ADC在内的各种功能模块的软件使用接口, ADC的配置代码如下:
1. ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; //独立ADC模式
2. ADC_InitStructure.ADC_ScanConvMode = DISABLE ; //禁止扫描模式
3. ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; //连续转换模式 ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; //不用外部触发
4. ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //采集数据右对齐
5. ADC_InitStructure.ADC_NbrOfChannel = 1; //要转换的通道数目1
6. ADC_Init(ADC1, &ADC;_InitStructure);
3.2. 键盘控制设计
利用4个按键来选择波形的放大和缩小,按键采用外部中断方式。其中K1和K2来调整波形显示的高度比例, K3和K4来改变采样间隔增加或减少一个周期内采样点数,达到控制水平扫描速度,使低频率波形完整显示。当检测到K1时,波形幅度系数置为2,当检测到K2时,波形幅度系数置为1/2,否则波形幅度系数为1,以此控制幅度的放大和缩小。当检测到K3、K4时,采样函数中分别加入不同的延时函数来拉长或缩短波形。
结论
本次设计采用 STM32F103 为主控制器,使用信号调理电路之后通过内部 AD 采样,利用 Cortexm3 内核的独特的 FPU 进行运算,分析、处理数据,存储数据, 最终将在 TFT 上面显示,并通过不同功能按键实现幅值、测量频率等功能。与现有数字示波器相比,该数字示波器系统具有性价比高、可操控性好、低功耗、便携方便等优点。
参考文献:
[1] 姜瑞. 基于STM32F103ZET6数字示波器设计[J]. 北京: 集成电路应用, 2017, 1.
[2] 丁红斌等.基于STM32的虚拟示波器的设计与实现[J]. 电子器件, 2009.12:1007-1010.
[3] 刘帅, 张浩然. 基于STM32的便携式多功能数字示波器设计[M].微型机与应用, 2015.