您好, 访客   登录/注册

基于STM32的手持示波器设计

来源:用户上传      作者:

  摘 要 随着电子行业飞速发展,电子开发工程师数量急剧上升。在这样一个关键的市场领域中,人们常常将示波器称为电子工程师的“武器”。电子初学者、学生、以及很多电子爱好者而言,示波器也是常用工具,但是示波器的价格却十分昂贵,好的十多万,一般的也要近万元。这让很多电子爱好者望而却步,尤其是学生。基于此,一款低成本高性能的示波器体现出了他独特的优势。传统的虚拟示波器需要高带宽、高采样率的芯片、高速ADC,以及DSP数字信号处理芯片。而本文设计的示波器减少了这些昂贵硬件的使用,通过FPGA可编程逻辑器件和高速代替昂贵的采集硬件,通过高速AD芯片ADS830检测到数据传输到FPGA内部FIFO中,再经过触发条件发送到STM32单片机并将绘制的波形显示在TFT屏幕上。基于STM32的手持示波器储存深度更大,在去掉了传统虚拟示波器中的电子枪、偏转板等器件后,PCB的设计更加小巧紧凑,大大的提升了便携性,并保证了其效果和性能。
  关键词 STM32 FPGA DSP ADS830 数字示波器
  中图分类号:TM935.3 文献标识码:A
  1硬件电路设计STM32主控工作电路
  考虑到本系统设计中对主控处理器的资源、速度、稳定性等有一定的要求,因此选用了内核为ARM CORTEX-M3位内核的STM32F103C8T6芯片作为主控制器芯片。这个主控芯片具有32位的带宽,相比于51单片机其最高处理速度有72MHz。并有48个外部引脚,64kb的存储容量和20kb的数据存储空间。其从资源到性能均可以实现本电路需要实现的功能。
  1.1高速AD采集电路
  由于单片机只能读取数字信号,而不能进行模拟量读取,在本系统中示波器的采集电路需要对电子线路中的信号进行采集,将连续的模拟量转换成离散的0,1数据,这就需要有一个芯片来对模拟量进行采集、量化和编码最终传送给单片机进行读取和处理。根据系统设计的要求,选择了一款TI公司生产的专为数字示波器设计的数模(A/D)转换器ADS830E。其是一款高性能的AD转换芯片,信噪比可以达到49.5db,采样频为60MHz,支持单极性和双极性信号输入,信号输入范围为1.5v-3.5v。为提高信号稳定性,选用双路运算放大器OPA2356和LM358来对采集的信号进行衰减和调理。
  1.2 FPGA核心工作电路
  本系统设计选择了阿尔特拉公司的Cyclone系列EP1C3100核心的FPGA芯片,其拥有高达294912位RAM,支持LVTTL,LVCOMS,SSTL-2,SSTL-3的IO标准。拥有最多八个全局时钟线和六个可用的时钟资源。内核供电电压为1.5v,EP1C3系列芯片只有一个锁相环PLL,用于一个时钟和一个专用收双倍数据速率接口,以满足DRAM和快速周期RAM内存需求。拥有104个用户I/O引脚并支持多种I/O标准。
  FPGA的基本工作电路有主控芯片、下载电路、晶振电路、电源滤波电路组成。由于FPGA芯片特性下载电路采用了AS和JTAG的组合下载电路,通过串行配置器件EPCS与AS连接的组合下载接口,将下载线连接到AS接口来完成对POF文件的下载。由于FPGA芯片中JTAG接口协议的特性,下载测试的配置文件会在主控芯片掉电之后消失,这样就在开发测试阶段通过JTAG接口进行测试。晶振电路在本系统设计中由于对时序要求比较高就选择了50M的有源晶振。由于FPGA芯片本身需要多种电压供电,如PLL供电,I/O口供电,核心供电等都需要不同的电压供电,这样稳定而且较少纹波的供电电压也成了组成整体电路的重要部分。
  1.3屏幕显示电路
  为了节约系统资源,本设计采用I2C协议的串口屏多为0.96小尺寸的OLED屏幕,虽然OLED屏幕由于自发光的特性不需要背光源并且有很高的对比度和很大的可视角度,但是由于屏幕尺寸较小不适合用来显示波形参数等信息。所以综合所有信息,本系统选择了SPI协议的TFT液晶屏。这里选择了以ADS7843为驱动芯片的2.4寸TFT屏幕,分辨率为240*320。既保证了能够清晰显示所需绘制的波形及波形信息,又能兼顾本设计作品的便携性。
  2手持示波器的软件设计
  2.1软件总体设计及流程
  在系统软件设计时,做好规整的系统软件框架可以让自己在完成程序设计后更容易进行调试修改和增加新功能。并且由于软硬件调试时间比较长,在保存和修改时要按照日期和版本规范编写程序名称并在程序中标注好出现的问题,所有的子函数都规范命名,以便自己在之后的调试中能够最快时间看懂程序并上手修改。
  在整个系统流程中,首先被测信号在经过衰减和调整后进入ADS830数模转换器中,之后通过FPGA内部开辟的FIFO进行缓存,将高速AD采集的数据缓存后,根据触发条件发送到STM32单片机内,最后通过TFT屏幕将接收到的数据绘制成波形并显示出来。
  2.2初始化程序流程
  在本系统设计中,需要对STM32引脚配置的初始化,也要对FPGA及高速AD采集、屏幕等外设器件进行初始化。FPGA需要对读取数据端口、读取端口时钟等等进行初始化。屏幕需要将引脚配置、控制命令、屏幕设置、清屏等进行初始化,并且在程序中加入一定的延时使其达到主控的时序,实现TFT显示屏的初始化。
  参考文献
  [1] 卢贶.基于TLC5510的手持示波器设计[J].襄阳职业技术学院学报,2018,17(05):53-56.
  [2] 屈歡.基于Android平台的无线数字示波器设计[D].成都:电子科技大学,2013.
转载注明来源:https://www.xzbu.com/1/view-15037095.htm