本帖最后由 席萌0209 于 2018-6-21 18:59 编辑
2.5 示波器功能介绍
二代示波器采用STM32F429BIT6自带的12bit ADC进行数据采集,当前二代示波器依然没有外接示波器模拟前端,全部采用F429内部资源以及软件功能实现,相比一代示波器,程序设计要更复杂些。
三款主流RTOS版本: (1)基于uCOS-III+STemWin+FatFS+ARM_DSP_Lib版本。 (2)基于FreeRTOS+STemWin+FatFS+ARM_DSP_Lib版本。 (3)基于RTX+emWin+RL-FlashFS+ARM_DSP_Lib版本。
F429内部资源利用以及RAM空间分配: (1)外部32位带宽SDRAM用于emWin的动态内存和LCD显存,刷新波形的性能强劲。 (2)F429内部192KB RAM用于ADC数据存储和部分全局变量。 (3)F429内部64KB CCM RAM用于RTOS的任务栈空间,FFT计数,FIR计算等需要频繁操作的变量。 (4)F429内设使用情况如下,这些内设从开机起一直都在工作,进行大量数据的实时采集以及DAC的波形输出: (a)ADC1,ADC2,ADC3。 (b)DAC1。 (c)TIM1的OC1和OC3,TIM6,TIM8。 (d)DMA2 Stream1, DMA2 Stream0和DMA1_Stream5
支持双通道ADC数据的实时采集 ADC1和ADC3都采用DMA方式进行数据传输,数据一直实时采集,只有改变采样率时才做暂停和重新启动处理。每个ADC分配1024*20 字节进行DMA数据传输。
支持自动触发: 采用软件方式实现,可以在范围0V-3.3V内调节触发值,可在波形刷新和波形暂停状态下浏览1024*2个ADC数据。
支持普通触发: 采用STM32F429的模拟看门狗实现上升沿实时检测,可以在范围0V-3.3V内调节触发值,触发后记录触发值前后1024个ADC数据,即1024*2个。可在波形刷新和波形暂停状态下浏览1024*2个ADC数据。
支持自动触发和普通触发下,触发位置指示: 每个ADC通道实际采集的是1024*10个数据,实际处理的是1024*2个数据,通过如下方式指示当前显示波形在是1024*2个ADC数据中的起始位置,这种方式也方便采集数据的浏览指示: 横线中间的红点用来指示普通触发时触发值在1024*2个ADC数据中的位置,这个位置是固定的。
支持30种测量值的动态添加: 当前实现平均值,最大值,最小值,峰峰值,RMS和频率估计。
支持水平游标尺度和垂直游标尺度: 水平游标尺度测量幅度,垂直游标尺度测量时间,且移动单位可调。
支持波形的运行和暂停: 暂停模式下依然支持波形的拉伸和放缩,水平测量,垂直测量和FFT幅频显示。
支持波形显示参考位置调节: 采用软件方式实现。
支持滑动浏览波形和滑动调节波形参考位置: 通过Settings对话框切换水平滑动和垂直滑动。
支持2048点浮点FFT计算的幅频显示: 自动触发模式支持FFT幅频显示,普通触发方式不支持,由于要采集2048点才可以实现一次FFT运算,限制Scale窗口显示范围2.8Msps 357ns ----- 2Ksps 500us,后面的低频采样暂不做支持。
下面通过以下10点对示波器的功能进行一个全面的介绍: (1)采集正弦波,方波和三角波效果展示。 (2)2048点浮点FFT计算的幅频显示。 (3)水平和垂直测量功能。 (4)普通触发以及采集波形的浏览功能。 (5)80阶Fir低通滤波设计。 (6)波形参考位置调节。 (7)FFT幅频显示和测量值窗口的隐藏。 (8)幅值调节。 (9)低频采样率采集高频信号的显示效果。 (10)对话框功能介绍(在本章2.4小节已经做介绍)。
注意:测试波形全部由Agilent 33220A任意波形发生器生成。
|