ARM的简易示波器的设计 精品.doc_第1页
ARM的简易示波器的设计 精品.doc_第2页
ARM的简易示波器的设计 精品.doc_第3页
ARM的简易示波器的设计 精品.doc_第4页
ARM的简易示波器的设计 精品.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章 选题背景1.1 课题来源传统模拟示波器是基于显像管技术的,通过电子枪将电子打向荧光屏而显示波形。对于周期信号来说,传统示波器可以显示出稳定的波形,但对非周期信号或瞬间信号却无能为力。数字示波器由于采样的原因,把有些毛刺过滤掉了,所以不太真实,但它偏数字化,对逻辑电路的测量很好,很容易存储,在电脑上分析数据,本课题基于ARM的数字存储式示波器可以显示瞬时信号和非周期信号。系统衔接时序采样控制、键盘接口、外扩存储器、LCD显示、系统和计算机的通信等各部分工作,以及产生系统各模块正常工作所需要的控制信号。推进本设计产生。1.2 课题目的本课题的目的是能够显示接收到的波形,并且能够测量出峰峰值。波形失真调节使之能够显示出完整的波形,显示出波形的频率和幅度特性,得到波形的峰值和频率。1.3 课题意义本课题实现了瞬时信号的显示,摆脱了传统示波器只能显示周期信号的弊病。基于STM32系列ARM的简易示波器,实时采样速率最大1M,采用彩色TFT液晶显示,需要设计前端放大电路。以16/ 32 位嵌入式处理器和嵌入式操作系统应用于这个时代,嵌入式系统的小体积、高可靠性能够满足便携式虚拟仪器的要求。构建基于嵌入式系统的虚拟存储示波器变得有意义。1.4 应用分析本设计是应用STM32系列芯片完成采样量化、AD转换、 波形分析、波形显示等多项技术。ARM 是面向低价位市场设计的一种RISC 微处理器,其优势是性价比高,适合嵌入式数字示波器的需求。当前采用ARM芯片设计的嵌入式数字示波器主要基于Cortex-M3内核的微控制器STM32F103VE。采用种结构设计的嵌入式数字示波器,由于时钟频率和并行处理能力较低,因此通常用于通道数较少的设计中,无法满足对系统实时性要求较高的多通道嵌入式数字示波器的设计。ARM 是当今嵌入式时代的主流产品, 随着ARM 技术的发展, 嵌入式示波器将成为一种功能越来越强大, 使用也更方便的检测设备。而虚拟仪器的应用又使得示波器克服了传统示波器在价格、功能、灵活性等方面所受到的限制。本课题所设计的基于ARM的示波器已经具有了数据采集、信号调理、传输、存储、分析处理、显示输出等功能。1.5 本章小结本章主要介绍了选择本课题的背景等,应用ARM设计示波器的优势,设计的宗旨和选择方案的基本描述。第2章 系统总体设计2.1 总体框图输入信号放大电路(模拟通道)采样和量化12位ADC单片机LCDARM键盘图2-1 总体框图2.2 总体设计分析本设计接收选择的是小信号,因为小信号比较稳定,能很好的显示波形。本设计如果选择的是DSP,设计中用到芯片就会增多,而且因为DSP造价高于ARM并且小信号的采集如果应用DSP放大芯片有很多限制,不易选取。而应用ARM则减少了这方面的问题。在嵌入式处理器设计领域,RISC1已经成为处理器结构设计的必然选择。嵌入式微处理器嵌入式系统是以应用为中心,以计算机技术为基础,软硬可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。并且该系统是以提高对象体系智能性、控制力和人机交互能力为目的,通过相互作用和内在指标评定的,嵌入到对象体系中的专用计算机系统。而嵌入式微处理器是嵌入式系统的核心部件,是决定嵌入式系统功能强弱的主要因素,也决定了嵌入式系统的应用范围和开发复杂度。小信号在送入示波器的ADC部分电压稍小,量化选择不好选。故应对小信号进行放大,才能送进AD转换电路。经过AD转换电路之后,就是要数据计算和显示芯片进行使能控制,进入开始界面后才能实现示波器的功能。数据计算部分应用比较器对所设预设值跟AD送出值进行比较,高于预设值的时候则计数显示示波器上,并进行前一个数和后一个数进行比较,算出峰峰值。本设计需要解决的问题包括硬件部分和软件部分。硬件部分的设计主要是芯片选择,控件的选择,放大倍数的控制,衰减倍数的选择。软件部分的设计主要是驱动程序的编译,主函数主要功能的实现,按键控制的选择。2.3 硬件部分分析2.2.1 电源部分(1) 输出功率是否满足要求;(2) 输出电压是否稳定;2.2.2 ADC 部分12位ADC是一种逐次逼近型模拟数字转换器。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。ADC有16个多路通道。可以把转换分成两组:规则的和注入的。在任意多个通道上以任意顺序进行的一系列转换构成成组转换。2.2.3 主控制芯片本设计应用主控制芯片为STM32F103系列,完成采样时钟的控制,判断计数是否完成,完成后送数给LCD显示。本设计应用STM32系列按性能分成两个不同的系列2:STM32F103增强型3系列和STM32F101基本型系列。增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品用户的最佳选择。两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。2.2.4 键盘输入控制本设计应用的是STM32内部的的键盘控制芯片。现在应用键盘的扫描方法主要包括以下几种扫描方式:(1) 逐点扫描法4。逐点扫描的优点是它的编程简单,易于理解,可以作同时按多个键的识别。缺点是它的速度慢,处理程序代码较长。(2) 逐行扫描法。逐行扫描的照逐点扫描要好的多,程序相对简单,速度快,也支持同时多按键处理。一般的扫描键盘多用此法。(3) 全局扫描法。全局扫描只用两次扫描,速度快,易学易用,程序简单,可是它不支持同时多键处理,最佳适用44扫描键盘,可以用在一般的用途。2.2.5 LCD 显示部分LCD驱动程序的安排设置应简单,显示芯片最好相距近些,减少信道噪声引起波形改变。液晶显示屏5的技术参数:(1) 可视面积;液晶显示器所标示的尺寸就是实际可以使用的屏幕范围一致。(2) 可视角度;液晶显示器的可视角度左右对称,而上下则不一定对称。一般来说,上下角度要小于或等于左右角度。(3) 点距;14英寸LCD的可视面积为285.7mm214.3mm,它的最大分辨率为1024768,那么点距就等于:可视宽度/水平像素(或者可视高度/垂直像素),即285.7mm/1024=0.279mm(或者是214.3mm/768=0.279mm)。(4) 色彩度;任何一种色彩都是由红、绿、蓝三种基本色组成的。LCD面板上是由1024768个像素点组成显像的,每个独立的像素色彩是由红、绿、蓝(R、G、B)三种基本色来控制。大部分的液晶显示器,每个基本色(R、G、B)达到6位,即64种表现度,那么每个独立的像素就有646464=262144种色彩。也有FRC(Frame Rate Control)技术以仿真的方式来表现出全彩的画面,也就是每个基本色(R、G、B)能达到8位,即256种表现度,那么每个独立的像素就有高达256256256=16777216种色彩了。(5) 对比值;对比值是定义最大亮度值(全白)除以最小亮度值(全黑)的比值。(6) 亮度值;液晶显示器的最大亮度,通常由冷阴极射线管(背光源)来决定,亮度值一般都在200250 cd/m2间。(7) 响应时间;响应时间是指液晶显示器各像素点对输入信号反应的速度,此值当然是越小越好。响应时间太长,就有可能使液晶显示器在显示动态图像时,有尾影拖曳的感觉。一般的液晶显示器的响应时间在2030ms之间。2.4 软件部分分析软件部分应该解决的问题如流程图所示: 初始化键盘扫描数据采集数据处理波形显示前端通信底层驱动图2-2 软件部分框图被测信号由示波器探头输入进来,由于各种被测信号的幅度等参数有很大差别,所以信号进来后首先进行调理,输入信号经过调理后,进行A/D转换,经转换后的数据存入RAM中,同时ARM从RAM中取出保存的数据,进行数学处理,并将处理后的数据送入LCD进行显示。运行在ARM程序是在ARM公司的开发环境ADS下完成的,主要完成的任务是根据数学算法进行数据处理。应用软件选择了Keil3.5版本,软件能够应用ARM编写程序。Keil软件是目前开发MCS-51系列单片机和STM32系列ARM的软件。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。2.5 本章小结本章主要目的是对设计中用到的部分做了系统的分析,分析了现在ARM的发展前景和本设计应用ARM区别于其他的应用软件所拥有的优势。本章还简单并系统的介绍了硬件部分和软件部分。其中包括硬件部分总体思路的设计,软件部分主函数的设计等。第3章 硬件结构3.1 电源部分设计本设计目的是显示出完整的波形,供应信号转换部分芯片需要稳定的电压。本设计芯片所需的电压5V。转换成5V的稳压电源有很多种形式其中包括MC3406、LM7805等稳定电压的芯片。MC3406是24V转换成5V的,需要得到这样的高压不容易,如果稳压芯片接反会引起瞬时高压,容易击穿芯片。应用7805是12V转换为5V的芯片,5V电压对接下来芯片不会造成伤害。本设计应用的芯片是7805。三端稳压集成电路7805的内部电路如图6所示:图3-1 7805内部电路图7805也有其缺点,在实际应用中,应在三端集成稳压电路上安装足够大的散热器(当然小功率的条件下不用)。当稳压管温度过高时,稳压性能将变差,甚至损坏。当制作中需要一个能输出1.5A以上电流的稳压电源,通常采用几块三端稳压电路并联起来,使其最大输出电流为N个1.5A,在输出电流上留有一定的余量,以避免个别集成稳压电路失效时导致其他电路的连锁烧毁。78*系列的稳压集成块的极限输入电压是36V,最低输入电压为输出电压的3-4V以上。 7805是一款低成本的稳压芯片。它能满足在设计中的要求。比如它能做到热过度保护,短路保护,输出晶体管安全工作区保护,提供稳定的5V电压。它的的参数足够应用了。应用一个稳压源,加上电解电容稳压作用。电路能输出稳定的5V电压。本设计的电路电源的应用如下图:图3-2 电源部分设计电路图本设计应用电解电容调节平衡点,使之能够输出稳定的5V电压。获得稳定电压后送到放大电路部分,继电器控制部分,芯片控制使能部分。为芯片运行提供电压支持。7805各个部分的电路:(1) 启动电路(2) 基准电压电路(3) 取样比较放大电路和调整电路3.2 放大部分设计本设计为小信号波形的显示电路,数据采集前进行模数转换部分,STM32系列芯片存在内部AD转换模块,该模块的输入电压为3.3V,我们所接收到的信号只有10mV至100mV,需要对信号进行放大。由此可判断放大倍数约为100倍左右,两级放大能够达到预期的效果。在电压放大之前对接收到的信号电压稳定工作点,设计一个电压跟随电路。LM324是包含四个放大器的芯片,满足设计中所用的两级放大以及一级电压跟随。LM324系列器件是带有真差动放大输入的四运放放大器。与单电源应用场合的标准运算放大器相比它有一些显著优点: 短路保护输出,真差动输入级,可单电源工作:3V-32V,低偏置电流:最大100nA,每封装含四个运算放大器,具有内部补偿的功能,共模范围扩展到负电源,行业标准的引脚排列,输入端具有静电保护功能。LM324的管脚连接图如下图:图3-3 管脚连接图其管脚设置4管脚为输入电压,11管脚为接地部分。其他部分为各个放大器。LM324系列采用两个内部补偿,二级运算放大器。每个运放的第一级由带输入缓冲的晶体管,以及差动到单端转换器的晶体管、第一级不仅完成第一级增益功能,而且要完成电平移动和减小跨导的功能,由于跨导减小,仅需使用一个较小的跨导电容,从而就能减小芯片尺寸。第二级含标准电流源负载放大器级。因为能够满足设计要求,本设计采用此电路。本设计应用三个放大器,一级放大和二级放大电路以下电路为二级放大部分。放大器不能显示负值,设计一个基准电压,在波形显示部分,低于正向输入端的电压值,设置为基准之下。图3-2 二级放大电路图3.3 控制部分设计控制部分主要继电器的控制,前端选压电路使波形完整。选压的目的是能够完整的显示出波形,并且能够显示出当前所选电压的值,反映到显示部分,显示出当时的电压。并且获得当时的峰峰值和频率。在本设计中要获得稳定的波形,电压部分就要稳定。在选址的时候就能够达到稳定的波形。 本设计应用的继电器为HRS2,其参数设置为两组常开,两组常闭,两组转换。能够满足要求设置。完成触点平移时电压的变动。HRS2触点在阻性负载时交流120V承受最大1A的电流,直流24V时承受最大1A的电流。触点的阻性越大时,对大电流的负载越不利,有些应用对压降很敏感,阻性大的继电器触点势必会影响这部分应用的正常工作。最大切换电压是指由于触点尖隙等物理因素形成的可安全切断的电压,如果触点间距不足,会导致电压直接电离空气直接在触点间跳火而无法断开。最大切换电流是指触点在接触时能承受的最大电流,它与电流密度有关,当电流密度超过允许的极限时,也就是触点的表面积小于通过电流应有的截面积时,产生的热量可能过高,使触点熔化而导致粘连。设继电器的的断开状态为触点0,接通状态为1由芯片控制它的开合,它的开合决定了电压的放大倍数和采样衰减倍数。衰减倍数如表3-1所示:表3-1 衰减倍数表程序控制一号继电器衰减倍数00.51005放大倍数如表3-2所示:表3-2 放大倍数表程序控制继电器放大倍数0010110101001110003.4 键盘功能在这个系统中设置了5个按钮分别为:运行与停止,放大倍数增大,放大倍数减小,触发电平上移,触发电平下移。运行与停止键:是通过开启和关闭ATmega16 ADC转换完毕中断的方式来实现的。放大倍数的增大与减小:是通过ATmega16控制模拟开关来实现放大倍数的数字化控制。CD4051为8通道的模拟开关,所以程控放大器可以有8档。触发电平的上移与下移:是通过对采样来的数据进行数字触发时,当数据的二进制值在增加的过程中某个数据的大小刚好与数字触发的二进制数值一样,在此以后的波形数据才存入显示RAM中。当这5个按键中的某一个被触发,都会置位相应的标志位,以便刷新LCD液晶屏上相应的显示信息。3.5 芯片采集及显示部分设计本设计经过键控和放大使电压值满足3.3V的要求,能够实现采集和显示波形,数据分析芯片和LCD使能芯片控制波形显示部分。本设计应用STM32F103VE实现电路功能。本设计应用STM32F103VE完成使能单片机芯片,模数转换芯片,还能达到数值运算,计数显示等功能。要比DSP利用多个芯片完成简洁的多。而且芯片自带通道的去噪效果要比多个芯片搭接去噪效果好得多。信息采集部分首先要做的就是要把模拟电路转换为数字电路,A/D转换部分之后,就是数据计算以及显示部分。STM32F103VET6基于Cortex-M3的MCU,一片总线扩展的SRAM(128KB),一片总线扩展的NOR Flash(512KB),一片总线扩展的NAND Flash,一片M25PE80 SPI Flash,两个RS232连接插座(DB9),通过跳线选择连接两个UART,一个B型USB插座,通过跳线连接USB,一个CAN连接插座(DB9),通过跳线连接CAN,一个SD卡座(标准SDIO方式),通过跳线连接SD卡座,主时钟振荡器8MHz用户可更换振荡器(416MHz)和32KHz振荡器。本设计应用的STM32F103系列的优点包括7:(1) 从仅需少量的存储空间和管脚应用到需要更多的存储空间和管脚的应用。(2) 从苛求性能的应用到电池供电的应用。(3) 从简单而成本敏感的应用到高端应用。(4) 全系列脚对脚、外设及软件的高度兼容性,全方位的灵活性。(5) 在不必修改您原始框架及软件的条件下,将应用升级到更多存储空间。(6) 在不必修改您原始框架及软件的条件下,精简到使用更少存储空间或用不同的封装规格。本设计应用STM32F103系列的以上优点,完成了电路的设置。借助STM32F103系列芯片速度达20 MIPS的高性能内核,抗干扰能力强的优势本设计完成采集。该芯片拥有领先的130纳米制造工艺,优异的性价比。程序空间从4K到128K,芯片选择从20脚到80脚,宽范围寻址,提供足够的空间。系统成本低,内嵌EEPROM和高精度RC振荡器。开发容易,拥有本地工具支持。STM32F103系列包含7个定时器8:(1) 3个16位定时器,每个定时器有多达4个用于输入捕获/输出比较/PWM或脉冲计数的通道和增量编码器输入。(2) 1个16位带死区控制和紧急刹车,用于电机控制的PWM高级控制定时器。(3) 2个看门狗定时器(独立的和窗口型的)。(4) 系统时间定时器:24位自减型计数器。STM32F103系列包含9个通信接口:多达2个I2C接口(支持SMBus/PMBus)多达3个USART接口(支持ISO7816接口,LIN,IrDA接口和调制解调控制)多达2个SPI接口(18M位/秒)CAN接口(2.0B 主动)USB 2.0全速接口3.5.1 采集部分信号采集最先做的就是就是A/D转换。若选用芯片AD603,虽然能够达到要求但是它的工作温度比较小,完成这部分还要完成新片所需的温度补偿。而在STM32系列内部的12位ADC所用的温度跟数据分析部分的温度是一样的。减少了这部分操作。ADC使用DMA操作。模拟看门狗功能允许非常精准地监视一路、多路或所有选中的通道,当被监视的信号超出预置的阀值时,将产生中断。由标准定时器(TIMx)和高级控制定时器(TIM1)产生的事件,可以分别内部级联到ADC的开始触发和注入触发,应用程序能使AD转换与时钟同步。STM32F103系列芯片的ADC部分是12位ADC是一种逐次逼近型模拟数字转换器。它有18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。STM32F103系列芯片的ADC9有以下特点:(1) 12-位分辨率(2) 转换结束,注入转换结束和发生模拟看门狗事件时产生中断(3) 单次和连续转换模式(4) 从通道0到通道n的自动扫描模式(5) 自校准(6) 带内嵌数据一致的数据对齐(7) 通道之间采样间隔可编程(8) 规则转换和注入转换均有外部触发选项(9) 间断模式(10) 双重模式(带2个ADC的器件)(11) ADC转换速率1MHz(12) ADC供电要求:2.4V到3.6V(13) ADC输入范围:VREF- VIN VREF+(14) 规则通道转换期间有DMA请求产生。3.5.2 显示部分显示部分所应用的是的320240的LCD屏幕,应用软件对LCD使能使其开启开始画面。用LCD的优势是它显示的波形稳定能够完整显示。与传统的CRT相比,LCD不但体积小,厚度薄(目前14.1英寸的整机厚度可做到只有5厘米),重量轻、耗能少(1到10 微瓦/平方厘米)、工作电压低(1.5到6V)且无辐射,无闪烁并能直接与CMOS集成电路匹配。所需为320640的液晶显示屏,经过连接能够达到波形的显示功能,并能满足完整的波形的显示,峰峰值的计算等。各个类型的LCD10工作原理: (1)被动矩阵式LCD工作原理TN-LCD、STN-LCD和DSTN-LCD之间的显示原理基本相同,不同之处是液晶分子的扭曲角度有些差别。下面以典型的TN-LCD为例,向大家介绍其结构及工作原理。在厚度不到1厘米的TN-LCD液晶显示屏面板中,彩色滤光片是由红、绿、蓝三种颜色构成的滤片,有规律地制作在一块大玻璃基板上。每一个像素是由三种颜色的单元(或称为子像素)所组成。假如有一块面板的分辨率为12801024,则它实际拥有38401024个晶体管及子像素。每个子像素的左上角(灰色矩形)为不透光的薄膜晶体管,彩色滤光片能产生RGB三原色。每个夹层都包含电极和配向膜上形成的沟槽,上下夹层中填充了多层液晶分子(液晶空间不到510-6m)。在同一层内,液晶分子的位置虽不规则,但长轴取向都是平行于偏光板的。另一方面,在不同层之间,液晶分子的长轴沿偏光板平行平面连续扭转90度。其中,邻接偏光板的两层液晶分子长轴的取向,与所邻接的偏光板的偏振光方向一致。在接近上部夹层的液晶分子按照上部沟槽的方向来排列,而下部夹层的液晶分子按照下部沟槽的方向排列。最后再封装成一个液晶盒,并与驱动IC、控制IC与印刷电路板相连接。在正常情况下光线从上向下照射时,通常只有一个角度的光线能够穿透下来,通过上偏光板导入上部夹层的沟槽中,再通过液晶分子扭转排列的通路从下偏光板穿出,形成一个完整的光线穿透途径。而液晶显示器的夹层贴附了两块偏光板,这两块偏光板的排列和透光角度与上下夹层的沟槽排列相同。当液晶层施加某一电压时,由于受到外界电压的影响,液晶会改变它的初始状态,不再按照正常的方式排列,而变成竖立的状态。因此经过液晶的光会被第二层偏光板吸收而整个结构呈现不透光的状态,结果在显示屏上出现黑色。当液晶层不施任何电压时,液晶是在它的初始状态,会把入射光的方向扭转90度,因此让背光源的入射光能够通过整个结构,结果在显示屏上出现白色。为了达到在面板上的每一个独立像素都能产生你想要的色彩,多个冷阴极灯管必须被使用来当作显示器的背光源。(2)主动矩阵式LCD工作原理TFT-LCD液晶显示器的结构与TN-LCD液晶显示器基本相同,只不过将TN-LCD上夹层的电极改为FET晶体管,而下夹层改为共通电极。 TFT-LCD液晶显示器的工作原理与TN-LCD却有许多不同之处。TFT-LCD液晶显示器的显像原理是采用“背透式11”照射方式。当光源照射时,先通过下偏光板向上透出,借助液晶分子来传导光线。由于上下夹层的电极改成FET电极和共通电极,在FET电极导通时,液晶分子的排列状态同样会发生改变,也通过遮光和透光来达到显示的目的。但不同的是,由于FET晶体管具有电容效应,能够保持电位状态,先前透光的液晶分子会一直保持这种状态,直到FET电极下一次再加电改变其排列方式为止。3.5.3 数值计算部分波形显示完成,要计算峰值,首先应用到串行口,控制传输使能。应用通用复用硬件完成寄存器计数功能。串行外设接口12(SPI)允许芯片与外部设备以半/全双工、同步、串行方式通信。此接口可以被配置成主模式,这种工作模式下,它要为外部从设备提供通信时钟(SCK)。接口还能以多主配置方式工作。它可用于多种用途,包括可选第三根双向数据线的双线单工同步传输,或使用CRC校验的可靠通信。通用和复用部分应用寄存器计数。GPIO端口的每个位可以由软件分别配置成多种模式。每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR,GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。GPI/O端口每个I/O端口位可以自由编程,然而I/O端口寄存器必须按32位字被访问(不允许半字或字节访问)。GPIOx_BSRR和GPIOx_BRR寄存器允许对任何GPIO寄存器的读/更改的独立访问;这样,在读和更改访问之间产生IRQ时不会发生危险。3.6 本章小结本章是对硬件部分进行了细致的解释,包括了电源部分,放大部分,控制部分,键盘部分,芯片采集及显示部分。硬件部分芯片采集部分是重点,包括采样部分,数据计算和显示部分的使能。就STM32系列芯片的功能进行应用分析。第4章 软件分析4.1 软件框图分析YNNYYN测量信号的频率电压确定采样时钟发采样时钟和程控放大器控制字FIFO数据是否已满读FIFO数据数据处理得到信号的各种参数重新计算最佳控制字控制字是否与上一次相同ARM将数据处理送显示频率是否大于6.25MHz等效采样实时采样图4-1 软件流程图4.2 应用软件本设计采用C语言编译方式,C语言和汇编语言转换软件应用为Keil。输入源程序,建立工程、对工程进行详细的设置,以及如何将源程序变为目标代码。Keil 提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。4.2.1 工程文件的建立4.2.1.1 源文件的建立使用菜单“FileNew”或者点击工具栏的新建文件按钮。源文件就是一般的文本文件,不一定使用Keil 软件编写,可以使用任意文本编缉器编写。4.2.1.2 建立工程文件点击“ProjectNew Project ”菜单,出现一个对话框,要求给将要建立的工程起一个名字,你可以在编缉框中输入一个名字,不需要扩展名。4.2.2 工程的详细设置首先点击左边 Project 窗口的Target 1,然后使用菜单“ProjectOption for target target1”即出现对工程设置的对话框。4.2.3 编译、连接在设置好工程后,即可进行编译、连接。选择菜单 ProjectBuild target,对当前工程进行连接,如果当前文件已修改,软件会先对该文件进行编译,然后再连接已产生的目标代码。4.3 AD转换部分信号采集部分在AD转换部分首先要设置按键的状态,由两个按键控制实现三个状态,帮助页面、采集状态、暂停状态。三个状态能完善AD转换的设置,开始状态为暂停界面,全速采集信号多层显示。单次转换模式里,ADC只执行一次转换。这个模式既可通过设置ADC_CR2寄存器的ADON位(只适用于规则通道)启动也可通过外部触发启动(适用于规则通道或注入通道),这时CONT位为0。enumS_HELP= 0,/* 帮助页面 */S_RUN= 1,/* 采集状态 */S_HOLD= 2,/* 暂停状态 */;while (1)switch (MainStatus)case S_HELP:DsoHelp(&MainStatus);/* 显示帮助 */break;case S_RUN:DsoRun(&MainStatus);/* 全速采集,实时显示 */break;default:break;用一个while循环体选择索要进行的操作,控制部分由按键部分控制。采集部分调用函数不成立时跳出完成程序。4.4 调用的按键设计按键的控制包括上键、下键、左键、右键、复位键等。void GPIO_Configuration(void)GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC| RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOG;ENABLE);以上部分是先对控制部分进行判断,判断其是否成立,若成立则对各个按键先进行浮点模式的设置,为下一步按键是按下还是弹起做准备状态。控制波形移动方位,使之能够更清晰的显示出来。以下程序是对各个按键的控制的调用。GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;GPIO_Init(GPIOG, &GPIO_InitStructure);/* PG7,8,13,14,15 */对四个LED调用部分是为了显示各个通道的接通情况。调用函数控制显示。GPIO_SetBits(GPIOF, GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;以下函数是为了显示编辑者姓名,编辑日期部分调用的函数为下面的函数。static void DispLogo(void)PrintfLogo(EXAMPLE_NAME, EXAMPLE_DATE);EXAMPLE_NAME命名部分在前面定义便于修改和更正。4.5 显示部分设计以下函数定义LCD驱动器的访问地址,32位寻址方式。#define LCD_BASE (uint32_t)(0x60000000 | 0x0C000000)#define LCD (LCD_TypeDef *) LCD_BASE)设置LCD的物理坐标void LCD_SetCursor(uint16_t Xpos, uint16_t Ypos)LCD_WriteReg(0x0200, Ypos); /* px */LCD_WriteReg(0x0201, 399 - Xpos);/* py */设置LCD水平和垂直方向的起始地址和结束地址。共80个设置格。void LCD_SetDisplayWindow(uint16_t Xpos, uint16_t Ypos, uint16_t Height, uint16_t Width)if (Xpos = Height)LCD_WriteReg(R80, (Xpos - Height + 1);elseLCD_WriteReg(R80, 0);LCD_WriteReg(R81, Xpos);if (Ypos = Width)LCD_WriteReg(R82, (Ypos - Width + 1);elseLCD_WriteReg(R82, 0);LCD_WriteReg(R83, Ypos);LCD_SetCursor(Xpos, Ypos);4.6 定时器设计本函数是定时器变量指针,每隔1ms减1。static void SoftTimerDec(SOFT_TMR *_tmr)if (_tmr-count 0)if (-_tmr-count = 0)_tmr-flag = 1;延时函数,延迟长度,单位1 ms。延迟精度为正负1ms。void DelayMS(uint32_t n)g_Tmr0.count = n;g_Tmr0.flag = 0;while (1)CPU_IDLE();if (g_Tmr0.flag1)break; 4.7 本章小结本章主要是对软件部分进行了细致的分析。包括AD转换的调用,按键控制分析,LCD分析设置等。本章函数应用调用的库多是STM32系列的函数库。第5章 系统测试与结果5.1 测试的理论基础5.1.1 设计方案选择本设计输入信号,在示波器上显示。电压不能出现负值,故需要设计一个输入基准电压。并且电压变动范围应在A/D转换电压范围内。要保证输入电压为正,需要对电压预处理,抬高基准电压位置。方案一:利用集成运放,外接直流电压,进行加法、除法处理信号电压。用运放完成加法运算。改变了各点的电压值,不改变A/D转换范围。方案二:电阻串联,抬高电压。要精确抬高就要精确计算阻值,对结果输出有影响。综上所述,选择集成运放抬高电压。5.1.2 信号采样采样速率又成为数字化速率。是指单位时间内对模拟输入信号的采样次数,常以MSS(多少兆个采样点每秒)表示。采样速率是数字示波器的一项重要性能指标。如果采样速率不够,容易出现混迭现象造成读数误差其现象是在测试过程中显示的信号频率远远小于输入信号的频率。造成这种现象的原因是因为示波器的采样速率太慢。产生了混迭现象。方案一:外接模数转换电路。应用芯片AD603,虽然转换速度可以达到2M/S,但是其精度不高。方案二:应用ARM自带12位ADC。1us转换时间(多达16个输入通道),转换范围为0至3.6V,具有双采样和保持功能。综上所述,选择ARM自带AD转换模块。5.2 系统测试及分析5.2.1 测试仪器直流稳压电源,信号发生器,万能表5.2.2 测量步骤(1) 信号发生器输入10mV正弦信号,送入电路,判断是否需要衰减电路。(2) 测量衰减电路输出电压,判断是否对电压原样输出。(3) 功率测量。外接标准的正弦信号,调节信号的频率与幅值,根据 (U为信号的峰值),分别测量各信号的功率。(4)经压值处理电路,知电压UO(02.5V),在系统的处理电压(03.3V)范围内。设定的单片机采样率为6.25KHz,能完成题目要求分析的信号范围。5s刷新一次,实时显示信号总功率和前两个频率分量都可在LCD上观察。5.2.3软件调试通过波形判断是否失真,应用程序控制衰减开关开合。程序调试判断放大倍数的确定。5.3 测试结果分析小信号经过放大,送入AD转换。获得数字量经过ARM处理,送入LCD显示。基本完成任务要求。大信号经过衰减送入AD中,波形显示略有失真。完成要求但需改进有缺陷。5.4 本章小结本章主要是对设计的硬件、软件进行测试,硬件分析衰减电路是否完成,放大部分能够完成所需放大。软件部分实现编译能够控制继电器开合,控制ARM芯片的计算,分析。结 论本设计实现了以下功能和技术:波形的显示:能够完成周期信号在屏幕显示大于一个周期的波形,非周期信号实时采样,实现周期波形的左右平移。波形峰值的实时采集:实现对计数器所记值进行比较,获得峰值。波形频率的测量:实现了当峰值出现时开始时间寄存器计数、计时,峰值出现时停止计数。本设计应用STM32其特有的优势:(1)应用STM32自带的AD转换模块,节省了通道的时间和空间设置。(2)应用STM32的电压检测软件,达到了峰峰值的测量并减少硬件设备搭建时容易出错的弊病。设计有很多不足之处需要改进,还有许多功能需要丰富。键盘控制部分可以选择程序控制和手动控制两种方式,这样能够时刻采集到即时信号。附 录附录一 原理图:图附录-1 前端放大部分图附录-2 ARM控制部分附录二 程序代码:(1)主程序#include stm32f10x.h#include #include usart_printf.h#include systick.h#include button.h#include BackLight.h#include tft_lcd.h#include dso.h#include bmp.h#include wave.h#define EXAMPLE_NAMETFT DSO Demo#define EXAMPLE_DATE20XX-03-16#defineDEMO_COUNT89static void InitBoard(void);static void DispLogo(void);int main(void)InitBoard();DispLogo();DsoMain();void GPIO_Configuration(void)GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC| RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOG,ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;GPIO_Init(GPIOC, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;GPIO_Init(GPIOD, &GPIO_InitSt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论