已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于ARM、FPGA的数字示波器设计大连理工大学本科毕业设计(论文)基于ARM、FPGA的数字示波器设计Design of Digital Oscilloscope Based On ARM and FPGA学 院(系): 控制科学与工程 专 业: 自动化 学 生 姓 名: 王若頔 学 号: 201181333 指 导 教 师: 吴振宇 副教授 评 阅 教 师: 完 成 日 期: 大连理工大学Dalian University of Technology基于ARM、FPGA的数字示波器设计摘 要随着电子测试技术的不断发展,测试技术亦在不断提高,向着自动化、智能化、数字化的方向发展,以满足测试需求。数字示波器因具有自动刻度、波形数据存储分析、程序控制和自动测量等功能,正迅速全面替代模拟示波器,得到越来越广泛的应用。由于台式示波器体积大、成本高、不宜携带等缺点,在现场测试使用方面存在局限性,因此手持示波器逐渐走入人们的视野。本设计采用stm32芯片作为主控单元,通过FSMC总线协调控制FPGA、CPLD,进行信号检测、测量及液晶屏显示控制。对于不同输入信号,可以对采样率及衰减(放大)倍数进行调整,并将采集数据在液晶屏上显示。本文设计由以下4个方面组成:(1) 以stm32为核心设计数字示波器硬件平台及程序设计,完成了硬件设计及程序调试。使用FSMC总线协调控制FPGA,CPLD完成数据传输,结合按键进行相应功能选择。(2) 利用FPGA高速并行处理的特点,结合高速A/D转换芯片,完成信号采样、FIFO及触发功能,同时FPGA为CPLD提供时钟。使用EPCS16存储FPGA程序及配置,外接SDRAM存储AD采集数据。(3) 针对不同的信号幅值使用不同的衰减(放大)倍数,使信号幅值在ADC采样输入范围内,便于AD采样。针对不同频率信号使用不同的采样率,FPGA为高速AD芯片提供合适的时钟,合理利用资源。(4) TFT液晶屏作为用户端输出设备,使用GUI界面显示波形。由stm32控制CPLD读取高速静态RAM数据,进行刷屏操作,不占用单片机资源。关键词:数字示波器;FPGA;高速采样;信号测量- I -基于ARM、FPGA的数字示波器设计 Design of Digital Oscilloscope Based On ARM and FPGAAbstract Along with the development of electronic testing technology, the technology of testing has been improved and developed toward automation, intelligence and digitalization, in order to meet the testing needs. Digital oscilloscope is completely replacing analog oscilloscope rapidly and being widely used because of its automatic calibration, waveform storage, program control, automatic measurement and other functions. Due to the limitations of field test for desktop oscilloscope, handheld oscilloscope comes into our vision.In this paper, ARM series stm32 chip is used as main control unit to control FPGA、CPLD to do signal detection, measurement and display LCD through FSMC bus. For different signals, sampling rate and attenuation (amplification) can be adjusted to match different waveforms.This paper can be summarized as the following 4 aspects:(1) ARM microcontroller is used as core processor to build the hardware platform and programming of digital oscilloscope and complete hardware design and debugging. FSMC bus is used to coordinate control FPGA and CPLD to complete data transmission, choosing corresponding functions with keys.(2) Based on the features of FPGA high speed parallel processing and combined with high speed AD conversion chip, signal sampling, FIFO and trigger function are completed and the clock to CPLD is provided by FPGA. EPCS16 is used to save the code and settings of FPGA, and external SDRAM interface achieves access for large number of data.(3) Different attenuation (amplification) multiples is used for different signal amplitudes so that the signal reach the same amplitude range, making it easy for AD sampling. For different frequency signals, different sampling rate is used, FPGA provide the appropriate clock for high-speed AD chip and reasonable utilization of resources.(4) As user output device, TFT LCD screen uses GUI interface to display waveform. Stm32 control CPLD to get data from the high speed static RAM, then LCD is displayed by CPLD, instead of taking up resource of mcu.Key Words:Digital oscilloscope; FPGA; high-speed sampling; signal measurement目 录摘 要IAbstractII引 言11 概述31.1 数字示波器31.2 相关问题的研究现状31.2.1 国外研究概况31.2.2 国内研究概况42 数字示波器原理52.1 模数转换器52.2 工作原理53 系统硬件方案设计73.1 电源设计83.2 单片机最小系统板93.3 信号调制电路113.3.1 AC/DC耦合电路113.3.2 衰减电路113.3.3 可变增益放大电路123.3.4 直流偏置调节143.4 触发电路143.5 AD转换153.6 FPGA系统电路163.6 人机交互173.6.1 TFT显示电路173.6.2 按键和LED174 系统软件方案设计184.1 软件设计模块及流程184.1.1 单片机主控程序194.1.2 系统控制模块204.1.3 数据通讯模块204.2 FPGA开发214.2.1 时钟驱动模块214.2.2 高速FIFO模块224.2.3 频率计算模块234.3 信号数据处理234.3.1 档位调整244.3.2 控制量调整244.3.3 电压参数计算254.4 TFT驱动264.4.1 显示缓存设计264.4.2 波形显示265 系统测试275.1 测试方案275.2 测试结果285.2.1 垂直灵敏度测试285.2.2 扫描速度测试285.2.3 波形对比测试285.2.4 系统测量误差测试29结 论30参 考 文 献31致 谢32- IV -引 言示波器是一种用途十分广泛的电子测量仪器。它能把肉眼看不见的电信号变换成看得见的图像,便于人们研究各种电现象的变化过程。通过波形能够说明信号的许多特性:信号的幅值、频率、周期等。通过对于信号波形的观测与比较,我们可以判断电路是否存在故障部件,使信号产生失真、引入较大噪声等现象。正是这些功能存在,使其成为电子工程师设计时必不可少的工具1。数字示波器在1972年第一次出现在人们的视野之中。随着数字集成电路技术的发展,数字示波器的功能逐步完善,出现了采用模/数(A/D)转换和数字存储技术的新型智能化、数字化示波器,具有程序控制、自动测量和波形存储等先进功能,正迅速全面替代模拟示波器,成为电子工程师的有力助手2。结合当前应用,示波器的发展有如下五个趋势3:(1) 串行测量替代并行测量。目前的系统电路一般采用串行体系结构设计,即通过连续发送的方式来传输总线数据,其所需空间较小、成本低廉,并对系统的时钟和功率要求也相应降低;(2) 功能完善的定制型便携式示波器。性能和便携性对于目前的示波器是一组矛盾关系,满足高性能的同时,其便携性却无法满足应用要求,使得使用者只能兼顾其一;(3) 混合信号示波器(MSO)。它是一个综合测量仪,带有示波器、逻辑分析仪的测量能力,以及一些串行协议分析功能;(4) 更高性能的显示设备;(5) 示波器趋于更自动化测试工具,而不是调试工具。在论文基于NIOS II的数字示波器设计4中描述了一种基于NIOS II软核的嵌入式数字示波器,利用高精度ADC芯片ADS1211将模拟信号转换为并行数字信号传递给MCU,MCU根据UART命令对数据进行处理,并写入显存RAM,VGA控制器把显存中的内容显示在显示器上。在论文基于DSP+FPGA结构的嵌入式便携数字存储示波表5中提出了一种基于DSP和FPGA的嵌入式数字示波器的设计方法。FPGA与DSP通过总线交换数据及控制指令,该示波器硬件上结合高速A/D采集芯片、FPGA内部FIFO结构,实现了数据采集及显示,软件上则采用嵌入式实时操作系统完成了多任务运行及实时处理。数字示波器设计将待测信号经过采样、量化、存储,数据处理然后取出存储器中的量化值,并在屏幕上显示。其信号处理流程为衰减网络、放大网络、A/D高速采集转换、信号存储、数字信号处理(如:数字滤波,幅频特性、相频特性等)、处理器调用处理。对于一般实验室测试所用数字示波器,其带宽一般为60MHz或100MHz,速率为1GS/s,模/数转换(A/D)精度为8位,具备测量频率、周期、平均值、峰峰值、均方根值、最小值、最大值、上升时间、下降时间、正频宽、负频宽等信号特征值功能。以上功能可分为两类:时间参数、电压参数。在时间参数中,后两者针对周期性信号提出,均可由频率测量得到。在电压参数中,峰峰值可由最大、最小值得到,均方根值的测量亦可通过计算得到。故在整体参数测量处理中,需要主要处理两点:频率,峰峰值。本文采用ARM、FPGA和高速A/D芯片组合进行采样及处理。待测信号经过交、直流耦合、衰减、可编程放大电路进入A/D高速采集部分,将模拟信号转化为8位并行数字信号输入FPGA内部FIFO模块,由FPGA对信号进行一定处理。FPGA根据测量信号频率,设定A/D芯片采样率。ARM内核stm32单片机通过FSMC总线与FPGA进行数据传递。进行信号测量值运算,将数据写入显存RAM中,再通过控制字传递,使CPLD将RAM中的内容显示在显示屏上。在整体处理过程中,其性能带宽和精度几乎取决于对信号量化的模/数(A/D)转换器,从示波器的主要功能考虑,“示波”功能高于测量功能,通常数字示波器为8位AD采样,并未使用更高精度的采集芯片。而在显示这一环节中,对于不同频率、幅值的波形,需要采用不同的V/div,sec/div设置以达到最佳的显示效果。1 概述1.1 数字示波器示波器在电子测量领域中是一种常见的仪器,被用于波形观测,可以让人们更直观的观察被测信号的信息,并可以测量不同波形参数,如电压幅值、频率等。电子示波器兴起于二十世纪四十年代6,初期主要是模拟示波器,美国Tektronix公司成功研制了带宽为10MHz的同步示波器,这是近代示波器的基础。二十世纪七十年代,模拟示波器发展达到巅峰,行谱系列非常完整,带宽1GHz的多功能插件式示波器标志着当时科学技术的高水平,而后示波器重心逐渐转到数字示波器阶段。数字示波器在二十世纪七十年代初出现。不同于模拟示波器,数字示波器是数据采集,模/数(A/D)转换,软件编程等一系列技术制造出的高性能示波器。由于其引入了数字化技术和微处理器,又被叫做数字存储示波器(Digital Storage Oscilloscope,简称DSO)。它能实现对信号的存储,并能利用微处理器对信号做进一步处理,进行参数测量。与传统模拟示波器比较,数字示波器具有较多优点7,主要表现在:(1) 信号捕捉。数字示波器能够完成单次信号和瞬态信号的捕捉测量,方便分析研究瞬态信号,而模拟示波器无法准确捕捉瞬时信号。(2) 信号观测。对于触发信号以前的信号,数字示波器可以很好的观察,而模拟示波器无法观察。(3) 信号测量。数字示波器可以完成参数的自动测量,而模拟示波器只能通过人为观测的方式进行测量。在信号测量上,数字示波器有效的减小了人为因素的误差。提高了测量精度。(4) 信号存储。与模拟示波器相比数字存储示波器易于进行波形存储,方便实现信号处理和转移。1.2 相关问题的研究现状1.2.1 国外研究概况随着科技不断发展,人们对现场测试的需求逐步增加,基于嵌入式平台的数字示波器作为数字存储示波器的一个分支,也逐步得到人们的重视。目前,高性能便携式示波器是美国Tektronix公司和FLUKE公司在技术上领先8,Tektronix公司的TDS6000系列的TDS6604具有高达6GHz的带宽,单通道或双通道可达29GS/s数字采样率、存储深度可达32MB9。1.2.2 国内研究概况国内DSO的研制工作起步较晚,第一台DSO于1993年在电子部41研究所研制成功,但起步水平较高,最先推出的是采样率为40MS/s,带宽分别为750MHz和500MHz的两个型号产品。在1996年把带宽提高到了1GHz,在1998年把采样率提高到了1GS/s。在手持式数字存储示波器方面,国内总体水平还比较落后,至今未见到国产手持式示波器产品的报道,关于便携式数字存储示波器的研究,主要集中于高校实验室等科研单位10。2 数字示波器原理2.1 模数转换器模拟信号只有通过A/D转化为数字信号后才能用软件进行处理,这一切都是通过A/D转换器(ADC)来实现的。与模数转换相对应的是数模转换,数模转换是模数转换的逆过程。模数转换器即A/D转换器,或简称ADC,通常是指将模拟信号转变为数字信号的电子元件。单独存在的数字信号不具有任何实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个电压参考作为转换的标准,此时输出的数字量表示输入信号相对于参考信号的大小。对于采样率低于2MS/s的转换器,其转换结果的准确度取决于热噪声的大小11。对于采样率在2MS/s4GS/s之间的转换器,其转换结果精度随着每次采样率的加倍而减小一位。2.2 工作原理数字存储示波器(DSO)是由数据采集、模/数转换(A/D)、软件编程等一系列模块组成。根据采样定理的原则,迅速捕捉瞬时信号并保存、重现信号12。区别于模拟示波器将波形存储在示波管内的存储栅网上,数字存储示波器将其存在存储器中,因而存储时间可以很长。对于一个待测信号,数字存储示波器首先对该模拟信号进行高速采样,将其转化为数字信号,并将相应的采样数据存储下来,传送到微处理器,利用数字信号处理技术对所得数字信号进行相关的处理和运算,从而得到所需要的数据参数。利用获得的信号参数重建信号波形,将其在显示屏上显示13。图2.1 数字示波器内部结构图如图2.1所示,示波器内部结构主要包括以下几部分:(1) 信号调理部分,主要由衰减器和放大器组成。调节衰减器可以测试较大幅值的信号,而放大器的存在可以测试较小幅度的信号。通过信号调理电路使得信号能在较理想的幅值范围内进行A/D转换。(2) 采集和存储部分,主要由模/数转化器ADC,内存控制器和存储器组成。由于ADC的采样率较高,信号经过ADC后,所得数据首先存储在存储器中;当存储器存满后,再将数据传送到微控制器。(3) 触发部分,主要由触发电路组成。(4) 软件处理部分,由微控制器控制。数字存储示波器对模拟量进行实时取样,即对一个周期内信号的不同点取样。N个取样点所得到的数字量分别存储于地址为00H-0NH的N个RAM存储单元中,这样采样点所存储的地址信息即表示了采样点的时间信息。在显示时,依序取出采样离散化数据,点的垂直位置参数由其所对应存储单元中的数据给出,点的水平位置参数由其对应存储单元的二进制地址给出14。3 系统硬件方案设计系统硬件采用模块化和集成化方式设计,将各部分功能模块分开设计、布线,又将所有功能模块全部设计制作在一块电路板上,使电路板成为一个功能完整的整体,避免了外部连线造成的不可靠。硬件电路主要包括单片机最小系统、FPGA、电源设计、信号调制电路、A/D采集电路、触发电路、TFT显示屏和外设等。电路采用Altium Designer设计,工艺为双面覆铜。器件以贴片器件为主,减小了PCB面积。硬件平台留有电源和无线通信接口,保证了平台的可移动性。硬件结构框图如图3.1和图3.2所示,硬件PCB及实物照片如图3.3所示。图3.1 硬件结构框图(一)图3.2 硬件结构框图(二)图3.3 PCB效果及实物图3.1 电源设计电源模块为整个硬件系统供电,因此电源电路的稳定性对整个系统起着至关重要的作用。系统采用12V电源适配器供电,便于携带。硬件平台中各主控芯片、TFT显示屏以及其他外设需要3.3V电压供电,FPGA一些端口需要使用2.5V、1.2V供电,运算放大器需要5V电源供电。所需电压为5V、3.3V、2.5V、1.2V、-5V,所以需要进行电压转换。电压转换一般用两种方式:开关电源和线性稳压。开关电源称为DC/DC变换器(直流/直流变换器),其工作原理是用BJT和MOSFET作为开关管15,通过控制开关管开通和关断的时间比,来完成电压转换、维持稳定输出的一种电路。由于其调整管工作在开通和关断状态,所以开关电源的优点是功率损耗小、转换效率高、发热小,缺点是电路较为复杂、所需外部器件较多、电源存在较为严重的开关噪声和干扰。线性稳压电源是指调整管工作在线性放大区的直流稳压电源,其工作原理是通过一个电压负反馈来调整调整管上的压降来维持电压恒定。由于没有开通和关断的转换,所以线性稳压最大的优点在于电源稳定度高、输出电压纹波小,但是由于调整管上压降大,所以线性稳压的缺点在于功率损耗严重,转换效率低。硬件平台中,运算放大器工作速率很高,微小的电源纹波都可能造成很大的干扰,所以5V电源使用线性稳压,为了兼顾效率与稳定性,将输入电压转换为9V后再使用线性稳压得到5V。对于其他电压转换均使用开关电源和线性稳压的组合。在芯片选型上还需要考虑该芯片的最大输出电流值,由于显示屏电流较大,故在3.3V电源中使用最大电流为3A的UTC1085,而不是800mA的AMS1117,在其他部分电路中工作电流一般不会太大,使用基本的线性电源可以满足需求。具体电路如图3.4、图3.5所示。图3.4 3.3V/2.5V/1.2V电源电路图图3.5 5V电源电路图3.2 单片机最小系统板硬件平台的主处理器采用意法半导体公司生产的32位单片机STM32F103VBT6。单片机采用高性能、低成本、低功耗ARM Cortex-M3内核,内核运行频率为72MHz。片内具有丰富的系统外设资源和各种外部接口,其中包括32位中央处理器、128KB FLASH、20KB SRAM、2个同步外设接口SPI、3个16位定时器、80个可用IO口等,能够满足硬件平台主要需要及通信需求。单片机内部带有单周期硬件乘法器,系统主频为72MHz,能够满足波形幅值、有效值的计算16。设计中将单片机直接焊接在板上,省去了最小系统板模块,减小了平台体积。单片机最小系统电路如图3.6所示。单片机最小系统电路主要包括以下几部分:(1) 单片机芯片:采用贴片100脚LQFP封装STM32F103VBT6芯片。(2) 复位电路:由电容、电阻和按键构成。上电时电容充电,自动复位。端口设置上拉电阻,使常态为高电平。按键按下时低电平复位。(3) 晶振电路:采用8M无源晶振,通过片内PLL完成倍频。(4) 下载调试电路:通过拉低BOOT0设置单片机从程序闪存启动。采用SWD接口下载程序和调试。(5) 电源滤波电路:通过并联多个0.1uF电容滤除数字电路中的高频噪声。(6) 电压基准电路:使用可调电压基准TL431为单片机提供A/D转换基准电压。(7) 串口电路:单片机的PA9、PA10管脚与8051单片机相连,用于相关外设检测通信;PC10、PC11管脚作为TTL电平的串口数据通信发送引脚和接收引脚。图3.6 单片机最小系统电路3.3 信号调制电路对于不同幅度的输入信号,为了配合ADC采样范围。输入信号需经过交、直流耦合电路、衰减电路、可变增益放大电路、直流偏置调节电路等部分调制电路,确保ADC采样的输入信号处于合适的电平范围。3.3.1 AC/DC耦合电路对于所需测试参数的不同,需要采用不用的耦合方式,即交流耦合和直流耦合(AC/DC耦合)。测试电源纹波时需采用交流耦合,避免纹波被直流电平淹没,无法表现出来;测试电源电平时需采用直流耦合,否则会滤去直流电平。电路如图3.7所示,DSO_ACDC为AC/DC控制管脚,由stm32输出,利用三极管的开关作用,控制继电器1、3脚导通或断开,使耦合电容C3短路或接入。当DSO_ACDC输出为高时,三极管Q1导通,继电器1、3脚断开,耦合电容C3接入回路,输入信号为交流耦合;当DSO_ACDC输出为低时,三极管Q1关断,继电器1、3脚闭合,耦合电容C3被短接,输入信号为直流耦合。图3.7 AC/DC耦合电路3.3.2 衰减电路为了达到较好的测试效果,示波器均有不同的量程,即根据输入信号幅值的大小,对其进行衰减或放大操作,以达到合适的AD转换输入范围。电路如图3.8所示,经过AC/DC耦合后,信号进入衰减电路(ATT),根据信号幅度的不同,进行衰减倍率选择,本部分电路主要针对幅值较大的信号进行操作。DSO_ATT为衰减倍率控制管脚,由stm32输出,利用三极管的开关作用,通过继电器K1进行不同衰减倍率的切换。当DSO_ATT输出为高时,三极管Q2导通,继电器3、6脚吸和,衰减比为1:2;当DSO_ATT输出为低时,三极管Q2关断,继电器1、3脚吸和,衰减比为1:20。该衰减电路的阻抗为100K,也是示波器的输入阻抗。图3.8 衰减电路3.3.3 可变增益放大电路对于幅值较小的信号需要增加可控增益的环节将其调整到后级AD采集的合适范围。有两种方案猜想17,使用D/A转换器或使用可编程增益放大器VGA。方案一:使用D/A转换器,如MAXIM公司的12位D/A转换器MAX502。该方案中无需任何外围元件,并具有单片机编程接口。图3.9 D/A转换器电路MAX502 D/A转换器利用R-2R梯形解码网络实现数字量到模拟量的变换,输入不同的数字量D,就可以在14096间设定放大器的电压增益。如图3.9所示。其电压增益与数字控制量的关系如下:AVCL=RDR=4096D (3.1)公式3.1中D为输出数字控制量。在本方案优点是控制简单,缺点是对DAC采样速率有较高要求,且其输出控制量与电压增益为非线性关系,易造成增益调节不均匀,导致调节精度下降,且其增益动态范围有限。方案二:使用可编程增益放大器VGA,其控制电压和增益的关系为Gain=40VG+GO (3.2)其中,Gain是AD603的基本增益,单位是dB;VG=VGPOS-VGNEG是差分输入电压,单位为V;GO为三种模式的增益常量。由公式3.2中可看出控制电压与增益(dB)成线性关系,只要单片机进行简单的线性计算就可以控制对数增益,增益步进可以很准确地实现,更易于调节。使用单片机控制差分信号输入,同时差分信号输入可以减少噪声和干扰。综合考虑后,选择方案二,可变增益放大器AD603进行增益控制。AD603的增益可设置为三种模式18,本文选择模式一,即将Vout与FDBK短路,进入宽频带模式(90MHz宽频带),其增益设置为-11.07dB31.07dB。该模式下,公式3.2中的GO=10dB。电路如图3.10所示。使用跟随器来做输入阻抗匹配,增加驱动能力,在跟随器选型中需要注意两个方面:(1) 输入阻抗足够大,使其对输入信号的电流吸收小,即输入信号电压衰减的少,减小对输入信号的影响。(2) 带宽足够宽。AD603使用两个直流电平控制增益,DSO_VGAP、DSO_VGAN为两路差分信号,控制AD603的输出增益大小,二者之差即为公式3.2中的VG。图3.10 VGA电路3.3.4 直流偏置调节对于示波器输入信号的显示过程中,波形的零点是可调的,即为这一部分电路实现的功能。信号经过可变增益放大器后进入DC调节环节,电路图如图3.11所示。图3.11 DC调节电路使用同向放大器对信号进行放大,同时通过DSO_OFFSET进行偏置电平叠加,输出电压为Vout=2V+-Voffset (3.3)这里,V+表示放大器同相端输入电压,即可变增益放大器的输出电压,Voffset为叠加直流电平,即为图3.11中DSO_OFFSE,Voffset是双极性的,可正可负,由stm32提供。3.4 触发电路数字示波器的显示过程一般是触发、采样、显示,这样周而复始运行。在触发环节中使用高速比较器,电路如图3.12所示。图3.12 触发电路输入信号进过前几级调整后,通过电压跟随器,做缓冲以及隔离级。比较器的两个输入端分别是示波器波形和直流电平(即图3.12中的TRIG_DC)。示波器触发电平的调节通过该电路实现,在实际示波器的使用中,如果触发电平偏离了波形,则波形不稳定。在电路中使用正反馈来达到迟滞的效果,在比较电平中实现了一个迟滞电压。实际测试中发现,如果没有该电路,在低频信号测量时会有触发抖动。3.5 AD转换示波器的核心部分是A/D采样转换,输入信号经过一系列调制电路后成为直流偏置可调、触发电平可调、幅值在一定范围内的信号,经过ADC采样后可更稳定的将模拟信号转换为数字信号。本文使用高速A/D采样芯片AD9280。AD9280是单芯片、8位、32MSPS模数转换器,内部集成了采样保持放大器和电源基准源,使用多级差分流水线架构保证了32MSPS数据转换率下全温度范围内无失码。可以根据用户使用需求选择多种输入范围和补偿,本文使用2V内部电压基准源,使用Top/Bottom模式,设定输入电压峰峰值在2V内。电路如图3.13所示,图中BAT54S为保护作用。BAT54S为肖特基二极管,正向导通压降约为0.3V,对输入待采样模拟信号有电压钳位作用,使其电压值在-0.3V3.6V之间,对采样端起一定保护作用。图3.13 AD采样电路3.6 FPGA系统电路信号采集部分主要采用Altera公司的Cyclone IV代EP4CE6E22C8进行处理。EP4CE6E22C8内具有丰富的硬件资源,其中包括6272个逻辑单元(LE)、270Kb嵌入式存储器、15个18*18乘法器、2个通用PLL、10个全局时钟网络、8个用户I/O块、最大用户I/O可达91个。设计中将芯片直接焊接在板上,节省板上空间,具体电路如图3.14所示。FPGA采用标准JTAG下载口,使用1.2V为内核供电、3.3V为I/O口电压、1.2V为数字PLL供电、2.5V为模拟PLL供电。系统电路主要包括以下几部分:(1) FPGA芯片:采用贴片144脚LQFP封装EP4CE6E22C8芯片。(2) 晶振电路:采用25M有源晶振,通过片内PLL完成倍频。(3) 电源滤波电路:通过并联多个0.1uF电容滤除数字电路中的高频噪声。(4) SDRAM电路:在FPGA进行数据处理时常常需要用到大容量、高速度的存储器,SDRAM即可实现此类功能。(5) FLASH电路:存储FPGA程序,使其从FLASH芯片启动,读取程序。图3.14 FPGA系统电路3.6 人机交互3.6.1 TFT显示电路使用CPLD控制4.3寸TFT显示屏进行波形显示,芯片IS61LV25616AL作为显存使用,每次从显存中读取数据进行显示,防止图像出现视觉抖动。显示屏内部含有8个高亮LED作为背光使用,通过恒流源RT9293对LED进行驱动。图3.15 TFT电路3.6.2 按键和LED按键和LED是最简单的输入输出设备。LED用来指示程序运行状态,作为程序判断标志都是必不可少的。LED采用上拉输入,灌电流的方式,负载能力更强。按键采用电阻上拉,保证了输入信号的稳定性,使用中断的方式处理矩阵按键,节约I/O资源。图3.16 按键和LED电路4 系统软件方案设计4.1 软件设计模块及流程系统软件设计采用模块化的思想,将其划分为若干功能的模块,每一模块自成体系并对外提供完善的接口。单片机具有丰富的外设和一定的运算能力,在底层数据采集、外设驱动、总线通信、数据融合方面有很大的优势。系统总体使用stm32单片机协调处理各部分主控芯片的数据通信,并进行主要数据计算;使用FPGA进行信号采集、转换、频率测量等工作;使用CPLD进行液晶屏驱动操作。在系统软件设计中,采用先分后主的设计思想,逐一完成各外设的驱动,后完成整体主程序的组合。本文设计的数字示波器的功能模块具体划分如图4.1。图4.1 数字示波器模块图4.1.1 单片机主控程序单片机编程语言一般使用汇编或者C语言。汇编语言使用助记符代替机器码,是一种底层的语言,所以汇编语言效率高,但是带来的更大的缺点是语言晦涩、结构繁琐对于复杂的系统软件编写十分困难。C语言是一种比汇编语言高级的面向过程的语言。它同时兼具高级语言的特点,又有驱动底层的能力,还具备很强的数据处理能力。C语言编写嵌入式程序流程清晰、逻辑分明、结构简单,已经是目前嵌入式系统中应用最广泛的语言。同时意法半导体公司提供了非常全面的stm32的C语言库函数,极大简化了底层开发。主控程序模块主要功能是初始化系统,使各控制器位于准备工作状态,并检测设备的各外设是否正常。该控制器等待按键输入指令,如果接收按键键值改变,主程序根据具体的键值决定控制具体子程序调用。单片机主控程序的功能主要包括以下几方面:(1) 底层外设驱动:驱动LED、按键、显示屏。(2) 算法实现:计算FPGA传递数据,得到测试信号峰值、有效值等。(3) FLASH存储:通过USB端口对M25P16进行写操作,并读取。(4) 串口通信:通过串口与电脑上位机进行通信、与51单片机进行指令交换。(5) 总线通信:使用FSMC总线通信方式,使用16位数据线、3位地址线,配合片选端,与FPGA进行数据传递或控制CPLD进行刷屏操作。主控程序简要流程图如图4.2所示。图4.2 主程序流程图4.1.2 系统控制模块该模块包含系统初始化模块及系统复位模块。系统初始化模块主要功能是完成系统时钟初始化,内部PLL倍频,将总线时钟提升为72MHz;中断初始化,将内核时钟中断设置为1ms;FSMC总线初始化,准备好接收数据信号;TFT液晶屏初始化以及各外设端口初始化等。系统复位模块有以下几种复位方式:上电复位、手动复位(主动复位)以及看门狗复位,其目的是将系统设置到初始状态系统。4.1.3 数据通讯模块该模块包含单片机与各控制器的数据通讯。与FPGA、CPLD的通讯通过FSMC总线进行;与8051通过串口通讯完成键值的传递。1、FSMC总线FSMC(Flexible Static Memory Controller,可变静态存储控制器)是stm32系列采用一种新型的存储器扩展技术。在外部存储器扩展方面具有独特的优势,可根据系统的应用需要,方便地进行不同类型大容量静态存储器的扩展。对于不同的外部存储器类型,FSMC能够根据控制、地址、数据信号类型,匹配输出信号的速率,从而使得stm32微控制器适用于各种不同速度以及不同类型的外部静态存储器,并在不增加其他外设的情况下,同时扩展多种不同类型的静态存储器,以满足系统设计对存储容量、产品体积以及成本的综合要求19。图4.3 FSMC片选电路图stm32内部有1GB的存储映射空间,分为4个容量为256MB的bank,本设计使用bank1存储空间,其物理寻址空间为0x6000 0000到0x6FFF FFFF本设计使用16位数据线DB15:0,3位地址线AB18:16,并使用2选1解码器SN74LVC1G19配合片选端CS,与FPGA和CPLD进行通讯。对于16位宽度的外部存储器,FSMC将在内部使用HADDR25:1产生外部存储器的地址FSMC_A24:0,故以显示屏参数为例,其对应地址为:#define LCD_DATA *(volatile unsigned short int *)(0x60100000) /1 000#define LCD_ADDX *(volatile unsigned short int *)(0x60120000) /1 001#define LCD_ADDY *(volatile unsigned short int *)(0x60140000) /1 010#define LCD_CTL *(volatile unsigned short int *)(0x60160000) /1 0112、串口通讯出于对stm32资源节省以及I/O口限制的考虑,使用51单片机设计按键扫描电路,检测到键值变化后,通过串口通讯的方式将键值发送给stm32,由stm32进行相应操作。与上位机进行通信,接收外部指令,对系统模式及参数进行修改。4.2 FPGA开发4.2.1 时钟驱动模块FPGA使用25MHz有源晶振作为时钟输入,使用内部PLL功能扩展5路时钟,分别为40MHz、100MHz、50MHz、100MHz、100MHZ(相位-73度),用作CPLD时钟、频率计数时钟、AD分频时钟、FPGA内核工作时钟、SDRAM时钟。如图4.4所示。图4.4 PLL时钟模块其中AD分频时钟即为高速AD芯片提供的采样时钟,初始为50MHz,根据stm32传递的信号数据,调整采样率,共有16种采样率可供调整,原理图如图4.5所示。图4.5 AD采样时钟模块图中dso_clock功能块,根据输入信号CTL21.18将原始时钟信号D_CLK进行相应分频操作,输出DSO_CLK即为为高速AD芯片提供的采样时钟信号。该模块接口参数如下:module dso_clock(input reset,input clock,input3:0 sel,output reg clkout);针对不同输入信号频率,使用不同的分频因子,使用计数器的方式来控制脉冲输出周期,达到改变采样时钟的效果。4.2.2 高速FIFO模块stm32的工作主频最高为72MHz,考虑AD采样率及单片机处理速度,使用FPGA内部FIFO作为数据缓冲及转化。图4.6 高速FIFO模块本文使用FPGA内部异步FIFO21,读、写功能使用不同时钟执行,图4.6中,写时钟(wrclk)由采样时钟提供;data7.0为AD转换所得8位并行数据;写满信号(wrfull)在FPGA读取状态下输出到数据线第16位(DB15)。在stm32控制端,检测DB15标志位,若未置位,则继续保持读状态;若置位,则代表FIFO以存储满,需将内部数据读出,进入到读FIFO状态。读使能端(rdreq)使用控制字CTL17控制,此时将CTL17置位,通过FSMC总线读取FIFO内信息,根据设定FIFO容量,数据以512为一组进行读取,读取完成后将FIFO清零端(aclr)置位,进行清零操作。与同步FIFO的读写同一时钟相比,异步FIFO的读写时钟分离,不要求同步,有更大灵活性。在本设计中,对于数据的写入时钟会有明确信号确定,而读时钟完全由写满信号确定,故选择异步FIFO进行数据缓冲转换。4.2.3 频率计算模块本设计中,对于信号的测量功能包括对频率、峰峰值、有效值的测量,因为FPGA属于硬件逻辑器件,对于乘法的计算所耗资源较多,后两者由stm32完成,而对于频率的测量由FPGA完成。原理图如图4.7所示。图中ARB_CLK为FPGA内部PLL所得100MHz时钟信号;TRIGIN为触发信号,由高速比较器输出;CTL25为复位控制端,由stm32输出控制字提供。这里应用的是脉冲计数原理,所提供时钟ARB_CLK高于采样时钟,即必定远高于触发频率,利用这一关系,在触发频率内对100MHz的时钟信号进行计数。以此作为频率计算的依据,计数结果以32位数据返回。图4.7 频率计数模块图4.8 MREQ模块展开4.3 信号数据处理硬件平台中的信号数据处理主要集中在stm32中进行,单片机接收到FPGA传递的信号采集数据,依次进行处理。4.3.1 档位调整对于不同幅度、频率的波形,需要采用不同的显示档位(V/div,sec/div)设置以达到最佳的显示效果。表4.1、表4.2列出了垂直、水平显示档位设置,可通过按键进行选择,单片机读取键值后更改y_scale、x_scale参数值,并通过对应数组的读取,对控制量进行相应调整。表4.1 垂直档位设定V/div倍率继电器状态VGA倍数VGA(dB)5V0.051:100.5-6.02062V0.1251:101.251.93821V0.251:102.57.9588500mV0.51:10.5-6.0206200mV1.251:11.251.9382100mV2.51:12.57.958850mV51:1513.979420mV12.51:112.521.938210mV251:12527.9588表4.2 水平档位设定sec/div采样率sec/div采样率1us25MHz500us50KHz2us12.5MHz1ms25KHz5us5MHz2ms12.5KHz10us2.5MHz5ms5KHz20us1.25MHz10ms2.5KHz50us500KHz20ms1.25KHz100us250KHz50ms500Hz200us125KHz100ms250Hz4.3.2 控制量调整主程序使用单片机内核时钟实现了时间轴,初始化配置完成之后,将内核时钟中断频率设置为1ms,系统周期性运行信号输出函数,对相应功能进行改变。对于信号调制电路中各模拟量(dso_vgap,trig_dc,edaca,dso_offset,dso_vgan)的控制,均由单片机运算,并由内部DAC将数字控制量转换为模拟量,不丢失精度的同时,也不失灵活性。通过模拟选择器74HC4051
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 部编版七年级语文:《论语》选读单元教学策略分享
- 《跨境电子商务基础(AI+微课版)》 课件 项目5、6-产品发布、店铺信息优化与跨境电商数据分析
- 学校食堂公开制度
- 学校教研活动开展异常处理办法
- 悬挑式卸料平台安装规范
- 物业小区消防水箱管理制度
- 教师守摊问题清单及整改措施
- 暑假攻克易错点|小学语文词语运用高频丢分题型专项复习
- 消防排烟全真模拟冲刺题库卷含完整答案
- 特困人员救助标准化模拟题库卷含完整答案
- 屋面排水管施工要点方案
- 地下室工程有限空间作业专项施工方案
- 2026年完整三支一扶考试真题解析试卷及答案
- 2026教案自查报告(2篇)
- 免疫检查点抑制剂特殊人群应用专家共识
- 低压电工资格证考试题库(2026年版适配应急管理部考核标准)
- 2026年湖南湘江新区发展集团有限公司校园招聘笔试模拟试题及答案解析
- DB31∕T 1662-2025 养老机构消毒卫生要求
- 违禁物品X射线图像与识别课件
- 2025-2030中国电容式液位变送器行业市场现状供需分析及投资评估规划分析研究报告
- 《塑料材质食品相关产品质量安全风险管控清单》
评论
0/150
提交评论