基于STM32的便携式多功能数字示波器设计

基于STM32的便携式多功能数字示波器设计
刘帅;张浩然
【摘 要】本设计是基于STM32平台,移植μC/OS-Ⅱ嵌入式操作系统和μCGUI嵌入式应用图形支持系统,形成一个完善的有人机接口的实时嵌入式系统,在这个平台上设计制作一个便携式多功能数字示波器,采用STM32高性能ARM处理器作为核心控制芯片,显示器选用TFT真彩液晶.实时性高,人机界面友好,具有很好的推广使用价值,可广泛应用于信号采集、工程实践等领域.tc轴承
【期刊名称】有一个t形工件《微型机与应用》
【年(卷),期】2015(034)015
【总页数】4页(P37-39,43)
【关键词】嵌入式系统;数字示波器;μC/OS-Ⅱ;μCGUI;STM32
【作 者】刘帅;张浩然
【作者单位】浙江师范大学数理与信息工程学院,浙江金华321004;浙江师范大学数理与信息工程学院,浙江金华321004
【正文语种】中 文
【中图分类】TH89
目前平台化、集成化成为示波器发展的重要趋势。市场上存在的示波器,一般把目标定位在产品的高性能和强大功能的竞争上,造成市场上的模拟及数字示波器一般价格高昂、体积较大且很多专业功能并不实用。更便宜、更小巧、更方便使用的示波器成为当今市场的主流需求,使用者们需要借助具有各种功能的、方便携带的、小巧灵活的测试工具,来验证和解决越来越多的高复杂性问题。
随着嵌入式处理器的快速发展,STM32系列针对高性能、低成本、低功耗需求的嵌入式应用专门设计的ARM芯片,系统时钟频率高达72 MHz,内部外设丰富,STM32功耗36 mA,是32位市场上功耗最低的产品。基于STM32嵌入式平台设计的便携式多功能数字示波器,移植μC/OS-II实时多任务操作系统[1]和μCGUI图形支持系统,形成一个完善的有
人机接口的实时嵌入式精密测量仪器,通过数字插值算法和快速傅里叶算法处理[2],可以进行频谱分析。通过STM32内部自带高速AD模块,实现高速采样,采样速度可以达到3 MHz。具有边沿触发模式选择、自动捕捉波形、复位、暂停、波形存储、频率和幅值拉伸缩小、波形整体平移、峰-峰值、有效值、频率、周期、占空比显示、频谱分析等功能。由于采用高速集成处理器,外设资源丰富,简化了电路板的设计制作,更加便携,功能多样。
基于STM32的便携式多功能数字示波器的设计原理如图1所示。其中,阻抗匹配电路3采用电压跟随器电路,增大输入阻抗和减小输出阻抗,实现对微弱信号的无衰减的传输;程控放大电路5采用高带宽运放和模拟开关串联实现;数模转换器[3]10采用主控芯片内部集成的高速AD模块,转换速度可达1 MHz,充分利用STM32内部自带的3个AD模块,采用交叉互补采样模式,可以实现3 MHz的采样速率。由于STM32内部自带的AD无法对负电压进行采集,通过设计加法器6将负压抬高到零电平以上,过压保护电路7防止高电压对处理器造成损害。为了使示波器工作在触发模式,系统中需要有个触发电平,这里的触发电平由斯密特触发器电路8产生,同时用来对频率进行计数。波形存储模块11采用通用的SD卡,STM32有专属的SPI和SD接口协议与其通信,SPI串行通信接口读写速度可达18 MHz。液
晶显示模块13采用TFT真彩液晶;触摸屏模块12采用电阻式触摸屏,其抗干扰能力强于电容屏,两个模块都集成在一块屏幕上,采用并行数据总线,读写方便,速度快。
信号调理电路[4]如图 2所示,考虑到对处理器的保护作用,特别在信号的输入端和输出端加上过压保护二极管进行钳压保护,输入钳制在-5.0 V~+5.0 V之间,防止信号调理电路的烧毁,输出钳制在0~3.3 V之间,防止主控芯片因超出额定电源电压而损坏。
运算放大器采用高带宽、共模抑制比大的单片集成双运放的AD827,其原本是为视频电路设计的,增益带宽达50 MHz,SR达到 300 V/μs,是目前市场上电压反馈型双运放的顶级产品,其高频特性非常优越,在±5 V的供电下仍有优异的性能,放大3 MHz的高频信号没有衰减和相位偏移现象出现。所有的集成电路的电源管脚都相应地加上10 μF和0.1 μF去耦滤波电容。荧光寿命测试
模拟开关采用 CD4052,CD4052是一个差分 4通道数字控制模拟开关,有A、B两个二进制控制输入端和INH输入,具有低导通阻抗和很低的截止漏电流。0~5.0 V的数字信号可控制-13.5~+5.0 V的模拟信号,幅值为4.5~20 V的数字信号可控制峰峰值至 20 V的模拟信号。
石墨保护套在整个设计中,核心部分是软件设计,包括 μC/OS多任务操作系统和μCGUI图形界面系统的移植、波形的检测、处理、显示等。
3.1 任务的建立
操作系统μC/OS-II移植好了之后,需要建立四个任务,分别为:
任务一:static void APP_TaskStart(void*pdata),主要作用是建立任务二、三、四并执行它们,运行结束后便将其挂起,挂起函数用 OSTaskSuspend(OS_PRIO_SELF)来实现,之后由int main(void)进行建立和执行。
任务二:static void Task_TouchScreen(void*pdata),主要作用是连续地监视和刷新触摸板,该触摸屏驱动程序通过调用函数GUI_TOUCH_Exec()实现,该函数在它辨认出一个动作已经执行或者情况有所变化时,调用μCGUI提供的触摸屏API函数,大约每秒调用100次。
任务三:static void Task_GUIExce(void*pdata),主要作用是执行回调函数(一般是重绘窗口),通过调用函数GUI_Exec()实现,该函数会自动重复调用 GUI_Exec1()直
到它完成全部工作。通常该函数不需要被用户应用程序调用,它自动地被GUI_Delay()所调用。
任务四:static void Task_MainTask(void*pdata),它是整个应用程序的核心,包括液晶界面的显示、触摸板信号的处理、波形信号的采集、计算、显示等操作。
3.2 图形界面设计
人机界面显示采用 TFT液晶,分辨率为320×240,触摸板采用电阻式的触摸屏。驱动库采用μCGUI,支持液晶和触摸板的应用,并且功能强大。界面采用的是比较绚丽的坐标网格形式,主要调用下列函数。
加热膜(1)void GuiMainTask(void),该函数中调用了三个函数,GUI_CreateDialogBox()创建对话框,内部包含多个按钮控件和滑动条控件,用于实现人机交换。WM_CreateWindow()创建一个窗口函数,用来显示版本的基本信息,包括产品名称、编号。WM_CreateWindow()创建一个窗口函数,用来显示所测波形的频率、周期、占空比、幅值等信息。
(2)void WaveTaskCreat(void),该函数中主要调用GRAPH的一些控件,用来创建一个波形显示的网格窗口,可以实现波形的显示,波形的X、Y轴的拉伸、平移功能。
此外还包括上升沿触发、下降沿触发、单次触发(毛刺触发)、自动、复位的触发响应和后台处理程序。通过事件响应机制以及回调函数 GUI_Exec()进行图像的重画,运行后的显示界面如图3所示。
压花器3.3 波形检测与处理程序设计
波形检测和处理部分[5]采用单片机内部自带的高速A/D和强大的TIM实现。A/D单元的作用是将连续的模拟信号转变为离散的数字序列,然后按照数字序列的先后顺序重建波形。定时器TIM既要为A/D提供可变的采样时基,也要实时捕捉由斯密特触发器整形好的脉冲信号上升沿、下降沿的触发时间,为后期信号的频率、周期、占空比、幅值计算做准备。
3.3.1 波形检测程序
A/D转换:STM32增强型芯片内置3个独立A/D,可以有21个通道,并且3个A/D可以并行地
同步采样,触发方式很灵活,可以通过TIM以及外部电平等方式触发,并行方式下AD3、AD2自动同步于AD1;A/D在最高速采样时需要1.5+12.5个时钟周期,在14 MHz的AC时钟下达到1 MS/s的速度。
采样频率控制:由于STM32内部的4个TIM非常强大,每个TIM又有4个通道,再加上独立的预分配器,实际上可以实现任意分频,因此用TIM2 CC2来产生指定频率的时钟,用来触发A/D连续采样。
采样数据传输及每次采样深度控制:A/D产生的转换数据通过高速DMA通道1、2、3来传输到指定的内部RAM中,并且将DMA中断优先级设置成最高优先级,以保证数据读取准确,用DMA每次传输的个数来控制采样的深度,例如要采集100个,那么就设置DMA传输100次,每次从 16位A/D转换寄存器传输一个16位数据到RAM中,等完成了100次传输后,DMA通道自动停止 (实际上A/D是一直按照要求的采样频率在后台连续采样,只是未去取数据而已),下次采集时只要再设置采样的个数就行了。

本文发布于:2024-09-23 03:20:13,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/154949.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:采用   波形   采样   触发   显示
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议