论文部分内容阅读
如今嵌入式设备的开发及调试过程中,开发者经常需要对设备内部的关键变量进行实时监控,进而准确分析设备当前的运行状态。传统示波器由于自身结构的限制,已经难以满足用户日益多元化和高效化的检测需求,因此虚拟示波器这一全新的仪器概念进入了开发者的视野。通过模块化采集的硬件设备,配合高性能的平台处理软件,虚拟示波器可以让开发者自由灵活地监控并分析嵌入式设备内部的数据。相对于传统示波器,虚拟示波器的成本更低,适用范围更广,功能扩展性更强。本课题采用数据采集设备,配合平台示波器软件的架构,设计了一套基于Windows平台的虚拟示波器系统,目标是采集并绘制来自以MCU为核心的电控系统的波形数据,监视其内部的关键变量。数据采集硬件设备采用STM32F103系列单片机作为核心控制芯片,平台软件则使用MFC框架,通过Direct2D引擎自绘的方式开发了基于滚动模式的双窗口、八通道的波形显示控件。具体研究内容如下:(1)数据采集模块:负责数据的采集工作。对比研究数据采集设备的硬件方案,并在选定方案的基础上制定采集设备与平台软件之间基于UDP的通讯协议。协议内增加了时间戳和CRC校验机制,保证了数据传输的可靠性。平台软件利用WSAAsyncSelect异步I/O模型接收UDP报文,同时在内部设计了二维环形缓存区用于封装存储数据。(2)波形显示模块:本课题设计的显示窗口控件实现了波形绘制、波形分析以及波形触发功能,并给出了显示窗口的界面设计以及系统关键消息的处理方式。为保证系统的运行效率和绘制精度,本课题以1ms时长的数据报作为绘制的基本单位。采集设备将数据按照1ms的间隔打包,平台软件根据窗口一屏对应的时长来选择需要进行绘制的数据报。论文详细分析了程序在不同时基下对波形数据的抽点处理过程以及坐标计算方法。波形分析功能提供了自动分析和光标分析这两种分析方式,其中自动分析实现了软件对于波形时间类和幅度类参数的计算,光标分析则通过垂直光标和水平光标实现了用户对波形数据的定点观测。对于触发功能,软件设计了上升沿和下降沿这两种单次触发模式并设计了相应的触发判断流程。(3)文件处理模块:制定数据保存的二进制文件格式,并利用Windows操作系统提供的mmap接口实现软件对二进制大文件的I/O操作。本文通过对以上三个模块的研究实现了虚拟示波器系统的设计,整体开发中软件占比较大,因此系统功能丰富,扩展性强。最后经过一系列的测试,验证了系统各个模块可以正常工作,总体上实现了用户需求的功能,完成了预期的目标。