基于STM32的数字示波器设计.docx
- 文档编号:11931178
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:15
- 大小:2.32MB
基于STM32的数字示波器设计.docx
《基于STM32的数字示波器设计.docx》由会员分享,可在线阅读,更多相关《基于STM32的数字示波器设计.docx(15页珍藏版)》请在冰点文库上搜索。
基于STM32的数字示波器设计
科技大学
电子技术综合实践报告
设计题目:
基于STM32的简易数字示波器
专业:
电子信息科学与技术
班级学号:
电科10-11001050903
学生:
指导教师:
设计时间:
2013.6.18
摘要
本设计是基于ARM(AdvanceRISCMachine)以STM32为控制核心简易示波器的设计。
包括前级电路处理,AD转换,LCD显示灯模块。
前级电路处理由程控放大衰减器,极性转换电路组成,AD的转换速率最高为500KSPS,采用实时采样方式,设计中采用模块设计方法。
可测量输入频率围为1HZ—50KHZ的波形,测量幅度围为-3.3V—+3.3V,实时显示输入信号波形,同时测量波形输入信号的峰峰值。
总体来看,本文所设计的示波器,体积小,价格低廉,低功耗,方便携带,适用围广泛,根本上满足了某些场合的需要,同时克制了传统示波器体积庞大的缺点,减小本钱,完全可以把本设计当做手持数字示波器。
关键词:
AD,STM32,实时采样,数字示波器
前 言
由于传统示波器虽然功能齐全但是体积旁大,不方便携带,本设计针对这种缺点设计一种体积小、本钱低、功耗小、便携数字示波器,同时到达学以致用,理论和实践相结合,进一步学习课外知识,培养综合应用知识,锻炼动手和实际工作的能力。
示波器实现输入频率围为1HZ—50KHZ,幅度围为-3.3V—+3.3V,实现波形实时显示以及幅度测量。
示波器在电子、电气、控制等领域应用十分广泛,随着计算机的开展,示波器已经实现了和计算机互联,共享数据,但现有示波器有诸多缺乏,体积庞大,价格昂贵,功能齐全的示波器在某些场合并不能得到充分的应用。
本课题所研究的示波器定位于抵挡型,即在性能上满足大多场合的需要,努力实现小型化,价格低廉,携带方便,这样在财力有限的小用户能够普及,并和功能齐全高档示波器配合使用,取长补短。
本设计对信号的采样,使用实时采样方式,这种方法的优点是,设计相对简单,能实时显示所测信号的波形。
缺点是,由于受AD转换速率的限制不能测量频率很高的信号。
另外,AD只能测量围很小的电压信号,单输入信号可能更小,或者更大,所以要对信号进展程控放大和衰减。
由于本设计使用的AD只能测量正极性的电压信号,而外界输入的信号有正有负,因此在输入AD前要把所有信号转换成正极性的,再做测量。
第1章绪论
1.1课题背景
在电子测量技术的开展史上,示波器的出现给测量技术带来了翻天覆地的变化,可以说的上是一场革命,从布劳恩的第一台示波器问世以来,示波器的功能越来越丰富,性能也与日俱增。
从70年代开场人们的注意力主要转向自动化、实用化和提高准确度。
微型计算机和仪器通用接口的出现,给示波器的自动化开展推到了一个崭新的水平。
微机的引入使示波器在设计、性能、功能、实用以及操作和故障诊断等方面都产生了巨大变化,随着工业开展对示波器的设计和测量的需要,示波器的功能已从时域分析扩展到了数据域分析。
当前,高精度、功能多样、使用灵活、操作方便、性能可靠,已成为示波器生产厂家追求的主要目标。
1.2课题研究的目的和意义
随着电子工业的开展,电子技术已经渗透到过敏经济个领域中利用电子技术进展的测量即电子测量技术开展很快,已经成为一门学科,并在一定程度上反映了一个国家科学技术水平。
在电子测量仪器中,示波器所占的地位越来越重要,对电量和许多非电量的测试来说是一种主要的、通用的测量工具。
其实用之广泛和开展速度之快都远远超过其他测量仪器,已经广泛应用于国防、科研、学校以及工农商业等各个领域和部门。
数字示波器是随着数字电路的开展而开展起来的一种新型示波器。
它是采用数字电路,把输入信号经过AD转换,把模拟波形变换成数字信息,并存储在存储器中,待需要读出时,在通过DA转换,能捕捉触发前的信号,可通过接口与计算机相连接等特点,与计算机连成系统。
传统模拟的示波器也有其优点,即具有迅速的响应特性、面板直接控制操作、可直接观测输入信号、价格低廉等。
目前数字示波器已经完全能够做到,特别是在捕获非重复信号、防止信号虚化和闪烁等方面,数字示波器显示出了模拟示波器无可比较的优势。
因此,数字示波器由于其性能优越,和良好的性价比,现在已成为示波器的主流产品。
通过本设计,可以到达学以致用,把理论与实践相结合,学会处理设计过程中出现的一些问题,掌握设计的技巧,为以后工作打下根底,并完成一个能满足根本需要的手持示波器。
1.3课题的主要研究工作
数字示波器利用AD把被测量的模拟信号转换成数字信号,并在液晶上显示波形。
在这里,主要对按键的控制和波形的液晶显示模块进展分析和探究。
和传统模拟示波器相比,屏幕更新速率是数字示波器另一个限制因素,它不像模拟示波器那样实时显示波形的变化,波形在采样转换显示的过程中被延迟了,被测信号总要经过一段时间才能在屏幕上显示出来。
为了使测量的波形更便于观测,需要对波形的幅度和周期进展放大和缩小。
幅度的改变可通过对按键的检测来适当调整波形显示的系数比例;周期的放大和缩小可以通过调整采样间隔来在LCD上显示出适当大小的波形。
第2章系统整体设计方案
示波器的设计分为硬件设计和软件设计两局部。
示波器的控制核心采用ARM9,由于STM32芯片里有自带的AD,采样速率最高为500KSPS,分辨率为10位,供电电压为3.3V,根本上能满足本设计要求,显示局部用3.2寸TFTLCD〔分辨率:
320*240〕模块。
软件局部采用C语言进展设计,设计环境为Keil。
2.1硬件总体构造
该设计采用模块化的设计方法,根据系统功能把整个系统分成不同的具有特定功能的模块,硬件整体框图如下列图所示。
图2-1系统整体框图
该示波器由4局部电路构成,分别是:
(1)输入程控放大衰减电路;
(2)极性转换电路;
(3)AD转换电路;
(4)显示控制电路;
(5)按键控制电路;
整体设计思路是:
信号从探头输入,进入程控放大衰减电路进展放大衰减,程控放大器对电压大的信号进展衰减,对电压小信号进展放大以符合AD的测量围,经过处理后信号进入极性转换电路进展电平调整成0—3.3V电压,因为被测信号可能是交流信号,而AD只能测量正极性电信号,经调整后送入AD转换电器对信号进展采样,采样所得数据送入LCD显示,这样实现了波形的显示。
按键控制可以通过不同的按键来控制波形的放大和缩小,同时也可以改变采样间隔,以测量更大频率围的信号。
2.2系统实现的原理介绍
2.2.1STM32处理器介绍
STM32系列基于专为要求高性能、低本钱、低功耗的嵌入式应用专门设计的ARMCortex-M3核。
按性能分成两个不同的系列:
STM32F103“增强型〞系列和STM32F101“根本型〞系列。
增强型系列时钟频率到达72MHz,是同类产品中性能最高的产品;根本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品用户的最正确选择。
两个系列都置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。
时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品。
本设计所用的STM32F103VCT6集成的片上功能如下:
(1)1.2v核供电,1.8V/2.5V/3.3/V存储器供电,3.3V外部I/O供电
(2)外部存储控制器
(3)LCD控制器
(4)4通道DNA并有外部请求引脚
(5)3通道UART
(6)2通道SPI
(7)1通道IIC总线接口1通道IIS总线接口
(8)AC’97编解码器接口
(9)兼容SD主接口协议1.0版和MMC卡协议2.11兼容版
(10)2通道USB主机1通道USB设备
(11)4通道PWM定时器和1通道部定时器/看门狗定时器
(12)8通道10位ADC和触摸屏接口
(13)80个通用I/O和24通道外部中断源
2.2.2LCD显示介绍
LCD液晶显示器是LiquidCrystalDisplay的简称,LCD的构造是在两片平行的玻璃当中放置液态晶体,两片玻璃中间有许多垂直和水平的细小电线,通过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。
LCD的主要技术参数有:
1.比照度
LCD制造时选用的控制IC、滤光片和定向膜等配件,与面板的比照度有关,对于一般用户而言,比照度能够到达350:
1就足够了,但在专业领域这样的比照度还不能满足用户的要求。
比照值定义是最大亮度值(全白)除以最小亮度值(全黑)的比值
2.亮度
LCD是一种介于固态与液态之间的物质,本身是不能发光的,需要借助于额外的光源才行。
因此,灯管数目关系着液晶显示器亮度。
液晶显示器的最大亮度,通常由冷阴极涉嫌管来决定,亮度值一般都在200~250cd/m2间。
3.可视面积
液晶显示器所表示的尺寸就是与实际可以使用的屏幕围一致。
4.可视角度
当背光源通过偏极片、液晶和去向层之后,输出的光线变具有了方向性。
也就是说大多说光都是从屏幕中垂直射出来的,所以从某一个较大的角度观看液晶显示时,便不能看到原来的颜色,甚至是只能看到全白或者全黑。
为了解决这个问题,制造商们也着手开发广角技术,到目前为止有三种比较流行的技术,分别是:
TN+FILM、IPS和MVA。
5.色彩度
任何一种色彩都是由红、绿、蓝三种根本色组成的。
LCD面板上是由480×272个像素点组成现象的,每个独立的像素色彩是由红、绿、蓝(R、G、B)三种根本色来控制。
2.3软件整体设计
整体设计思路是:
信号从探头输入,进入程控放大衰减电路进展放大衰减,程控放大器对电压大的信号进展衰减,对电压小信号进展放大以符合AD的测量围,经过处理后信号进入极性转换电路进展电平调整成0—3.3V电压,因为被测信号可能是交流信号,而AD只能测量正极性电信号,经调整后送入AD转换电器对信号进展采样,采样所得数据送入LCD显示,实现波形的显示按键控制可以通过不同的按键来控制波形的放大和缩小,同时也可以控制程控放大器,选择放大和衰减的倍数。
该示波器软件开发环境为Keil4,代码采用C语言编写。
ARM中软件完成的功能:
(1)输入波形显示和峰峰值测量。
(2)LCD的初始化和显示控制。
(3)按键的检测和控制。
2.4数字手持示波器技术参数
(1)水平扫描速度可调
(2)垂直电压灵敏度可调
(3)被测信号的电压峰峰值在屏幕上显示。
(4)能测量输入频率为1HZ~50KHZ的信号
(5)测量幅度围为-3.3V~3.3V
第3章软件编程与调试
整体设计思路是:
经过程控放大衰减和极性转换后的电压作为AD转换的输入电压,然后通过不同的按键来控制波形的放大和缩小,最后在LCD屏上显示出大小适中的波形。
同时测出电压峰峰值,并显示。
以下是根据整个系统进展的软件设计。
3.1软件设计总体框图
系统总体框图如图3-1所示:
图3-1系统总体框图
3.2键盘控制程序
利用4个按键K1,K2,K3,K4来选择波形的放大和缩小,按键采用外部中断方式。
其过K1和K2来调整波形显示的高度比例,通过K3和K4来改变采样间隔增加或减少一个周期采样点数,到达控制水平扫描速度,使低频率波形能完整显示。
当检测到K1时,波形幅度系数置为2,当检测到K2时,波形幅度系数置为1/2,否那么波形幅度系数为1,以此控制幅度的放大和缩小。
当检测到K3、K4时,采样函数中分别参加不同的延时函数来拉长或缩短波形。
按键中断程序流程图如下列图所示。
图3-2按键中断流程图
3.3峰峰值测量程序设计
通过遍历AD转换结果,取出最大值和最小值求差,结果即为电压峰峰值。
测量函数:
high_vpp=low_vpp=Buff[0];
for(i=0;i<200;i=i+1)
{
if(Buff[i]>high_vpp)
{
high_vpp=Buff[i];//最大值
}
if(Buff[i] { low_vpp=Buff[i];//最小值 } } vpp=(float)(high_vpp-low_vpp)*(6.6/4096); 3.4LCD显示程序设计 本设计所使用的是3.2寸320×240图形点阵LCD,该局部程序主要有LCD初始化,AD转换过来的数据转换成显示数据。 用数组连续存储AD转换结果,存满后依次在LCD上显示,依次循环。 显示过程中由于STM32处理器频率较低,导致显示一屏的时间较长,从而使刷屏速度较慢,效果不好。 这里采用每次刷一列的的算法,即每次显示下一列点之前将此列初始化为屏幕底色,从而改善视觉效果。 LCD显示主要程序为: intmain() { Stm32_Clock_Init(9);//系统时钟设置 delay_init(72);//延时初始化 LCD_Init();//初始化液晶 KEY_Init();//按键初始化 Adc_init();//ADC初始化 LCD_Clear(BLACK);//清屏 POINT_COLOR=RED;//点颜色 BACK_COLOR=BLACK;//背风光 while (1) { key=KEY_Scan();//获取按键返回值 high_vpp=low_vpp=Buff[0];for(i=0;i<200;i=i+1) { Buff[i]=Get_Adc(0); Choose_Delay();//改变采样间隔 } for(i=0;i<200;i=i+1) { Clear_Line(i);//清列 first_point=next_point; temp=Buff[i]; Vpp_Change();//调整电压显示幅度 next_point=100+temp*100/4096;//得到点坐标 Draw_net();//画网格 LCD_DrawLine(first_point,i,next_point,i+1);//通过连线画波形 } LCD_ShowChar(80,220,'V',18,0); vpp=(float)(high_vpp-low_vpp)*(6.6/4096);//求得峰峰值 temp=vpp; LCD_ShowChar(97,202,'o',18,0); LCD_ShowChar(50,220,'.',18,0); LCD_ShowNum(40,220,temp,1,18,0);//显示峰峰值整数位 vpp-=temp; temp=vpp*100; LCD_ShowNum(58,220,temp,2,18,0);//显示峰峰值小数位 } } 第四章性能测试与分析 在最初的安装调试中,由于没有使用过函数发生器导致一些问题,波形始终不能正常显示,在教师的指导下最终正确显示。 但硬件的缺陷与软件的实现仍然有些小弊端。 1、当采样间隔与波形频率不太匹配时并不能很好显示出波形。 但适当调整采样时间仍可准确测量1HZ~60KHZ的信号,并显示电压峰峰值。 2、当信号频率大于60KHZ时正弦波波形不能很好分辨出来,当信号频率大于500KHZ时波形失真,发生重叠。 3、使用刷屏显示时会出现闪屏,这里采用刷列显示。 但当信号频率较低时,由于处理器的速度较慢,使得刷列显示出的波形连续性不好,目前没找到更好的解决方法。 总体来讲,所有预期技术参数都能正确实现。 仿真波形如下: 图4-1正弦波 图4-2方波 图4-3三角波 第五章总结 本设计是基于ARM开发板设计的,利用了其部自带的AD,和LCD控制器来控制外围的LCD,这局部用实物实现,并调试成功,能显示和控制波形,并能测量显示被测信号的峰峰值。 在本次设计中遇见很多问题,采取了各种解决方法,例如,设计中采用读取一个转换值就立即显示的方法,仿真后才发现由于速度太慢以致测试信号频率太低。 因此采取了存满一屏再显示,到达测量高频率波形的效果。 尽管如此由于知识和时间有限,有不少地方需要改良,例如在按键控制模块,虽然可以通过按键改变波形显示幅度和周期,但改变有限,不具有连续性,仍不能很好地显示出理想波形。 这也是遗留的一个问题,以后会学习并寻找更好的解决方法。 通过本次设计,学习并掌握了ARM的硬件构造,编程方式和技巧,为以后使用打下了坚实的根底,同时也体会到了学以致用的意义,对嵌入式产生了更加浓厚的兴趣。 同时也体会到,合理的设计方案,正确的设计方法和良好的思维习惯对设计的帮助和益处,平时积累和对根底知识掌握和应用的重要性。 对网路资源的充分利用,和合理筛选也让我受益匪浅。 网络中有个种详尽的资料对论文的设计帮助不小,但是也正是因为资料各种各样,需要仔细查找自己需要的反而不容易。 同时要吸收掌握巧妙的设计技巧。 这次设计也得到了教师的很大帮助,在这里表示衷心的感。 第六章参考文献 【1】祥.基于ARM9的数字存储示波器—数字采集系统的研究与开发.: 江南大学,2008 【2】圣一.ARM原理与嵌入式系统实战.: 机械工业,2007 【3】徐宝文.C程序设计语言.: 机械工业,2000 【4】振兴,宗福.ARM嵌入式技术实践教程.: 航空航天大学,2005 【5】周立功,ARM嵌入式系统软件开发实例〔一〕.: 航空航天大学,2004. 【6】周立功.ARM嵌入式系统根底教程.: 航空航天大学,2005 【7】严吉国.基于嵌入式Linux的200MHZ数字存储示波器的设计与实现.: 东南大学,2009 【8】MiniGUI用户手册,飞漫软件技术,2006 【9】王志达等.嵌入式系统根底设计实验与实践教程.: 清华大学,2008
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STM32 数字 示波器 设计