基于stm32的红外测距系统设计大学学位论文.docx
- 文档编号:23779883
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:54
- 大小:1.01MB
基于stm32的红外测距系统设计大学学位论文.docx
《基于stm32的红外测距系统设计大学学位论文.docx》由会员分享,可在线阅读,更多相关《基于stm32的红外测距系统设计大学学位论文.docx(54页珍藏版)》请在冰豆网上搜索。
基于stm32的红外测距系统设计大学学位论文
基于STM32的红外测距系统设计
摘要
随着现代科学技术的发展,出现了很多新的领域,为了实现对物体近距离、高精度的无线测量,本论文对红外测距领域进行了研究。
本论文采用单片机作为处理器,编写A/D转换程序及LCD显示程序,红外传感器作为工作模块,完成一套高精度显示、实时测量的红外测距系统。
本系统结构简单、体积小、测量精度高、成本低、方便使用。
本论文所介绍的是一种基于STM32单片机并运用日本夏普公司型号为GP2Y0A21的红外传感器所设计的红外测距系统。
首先,介绍红外线及红外传感器的分类及应用、STM32单片机的简介与功能;其次,阐述红外测距系统工作原理及基本结构并对单片机、红外传感器、LCD液晶显示屏的工作电路做了介绍;再次,对系统进行了整体设计构想,先后对系统硬件及软件进行设计,并对整个系统的功能进行了调试。
最后对整个设计进行总结,说明红外测距系统实现的可行性。
关键词 红外测距;单片机;A/D转换;LCD
STM32-basedinfraredrangingsystemdesign
Abstract
Withthedevelopmentofmodernscienceandtechnology,therearemanynewareas,inordertoachievetheobjectcloserange,high-precisionwirelessmeasurement,thistopicofinfraredrangingisstudied.ThistopicusingSCMastheprocessor,towriteA/DconverterandLCDdisplayprogram,aninfraredsensorasaworkingmodule,completesetofprecisiondisplay,real-timemeasurementofinfraredrangingsystem.Thissystemhastheadvantagesofsimplestructure,smallsizeandhighaccuracy,lowcostandconvenientuse.
ThispaperintroducedisbasedSTM32microcontrolleranduseofJapan'sSharpCorporationmodelGP2Y0A21infraredsensordesignedinfraredrangingsystem.Firstly,introducetheclassificationandapplicationofinfrareddistancemeasurement,italsointroducesthefunctionofSTM32microcontroller.ThenillustratetheworktheoryandbasicstructureofitandintroducetheLCDscreenandworkcircuit.Again,thesystemhascarriedontheoveralldesignidea,successivelyonthesystemhardwareandsoftwaredesign,andprobesintothefunctionofthewholesystemdebugging.Finally,summarizetheentiredesigntoillustratethefeasibilityofinfrareddistancemeasurement.
Keywords Infraredrange,SCM,A/Dconverter,LCD
摘要
Abstract
第1章绪论
1.1课题研究背景及意义
随着科学技术的不断发展,在测距领域也先后出现了激光测距、微波雷达测距、超声波测距及红外线测距等方式。
激光测距是以激光为传输信号对目标物体进行精确的测量。
激光测距在工作开始瞬间向物体发射出一束很细的激光,并由接受端接收物体反射回来的激光束,同时计时器通过测定激光束从发射到接收的时间进而计算出从测量者到物体的距离。
该方法对使用环境要求较高,应用范围较少。
微波雷达测距是军事和工业上开发采用的技术,其技术要求严格和设备价格非常之高,在民用市场上几乎得不到应用。
超声波测距原理与激光测距原理相似,只不过是以声音为传输介质,但是此方法灵活性差、组件造价相对昂贵,在市场开拓空间并不大。
作为一种应用广泛、测量精度高的测量方式,红外测距利用红外线传播时不扩散、折射率小的特性,根据红外线从发射模块发出到被物体反射回来被接受模块接受所需要的时间,采用相应的测距公式来实现对物体距离的测量。
红外测距最早出现于上世纪60年代,是一种以红外线作为传输介质的测量方法。
红外测距的研究有着非比寻常的意义,其本身具有其他测距方式没有的特点,技术难度相对不大,系统构成成本较低、性能良好、使用方便、简单,对各行各业均有着不可或缺的贡献,因而其市场需求量更大,发展空间更广。
红外测距仪是指用调制的红外光进行精密的距离测量,测量范围一般为1-5公里,在100米以内的范围内则超声波测距更有优势,但是超声波测距无法检测到1米以内的区域距离,而红外测距可以精准的测出这一段距离,本论文研究的就是这一种情况的红外线测距。
1.2本论文主要研究内容
红外线别名红外光或者热辐射线,是一种波长比红色可见光(约
㎜)较长、比微波(约
㎜)较短的电磁波。
以波长长度为基准,红外线可分为三部分,即近红外线是波长为
㎜之间;中红外线是波长为
㎜之间;远红外线是波长为
㎜之间。
物质本身温度在不低于绝对零度(-273.15℃)的情况下均可以产生红外线。
它不能引起人的视觉反应,有显著的热效应(易被物体吸收而转化为内能)。
能产生反射、折射、干涉、衍射等光学现象。
不易被云雾等悬浮微粒散射而具有较强的穿透力。
凭借着诸多优点,红外线在军事、人造卫星以及工业、卫生、科研等工作领域方面的应用日益广泛,有着不可替代的作用及研究价值。
红外测距传感器是以红外线为传输介质的精确测量系统,主要应用于现代科学技术、国防军队建设、工业和农业等领域。
按照其功能可以分为五种类型:
(1)辐射计,又称“发射计”,是一种用于电磁辐射和光谱测量的装置。
(2)搜寻和锁定系统,具有寻找和锁定红外目标的功能,确定其空间位置并对它的运动进行追踪。
(3)热成像系统,通过辐射的分布图像。
(4)红外测距系统。
(5)综合系统,是集于两个或者多个的系统功能的组合系统。
本论文选用的红外测距传感器GP2Y0A21是由日本夏普公司推出的一款性价比高、最常用的红外测距传感器,与其前身GP2D12相比,测量射程相同,但探测面积略有增加,可用来对物体的距离进行测量。
具有体积小、功耗低、价格便宜等优点,而且测量效果好适合在小范围内高精度测量物体的实时距离。
红外传感器GP2Y0A21技术规格如表1所示。
表1红外传感器GP2Y0A21技术规格
测量射程范围
10-80cm
最大允许角度
>40°
电源电压
4.5-5.5V
平均功耗
33-40mA
峰值功耗
200mA
更新频率/周期
25Hz/40ms
模拟输出噪声
<200mV
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。
本论文选用的单片机型号为STM32F103RBT6,其中STM32代表ARMCortex-M内核32位微控制器;F代表芯片子系列;103代表增强型系列;R表示芯片有64个引脚;B代表内嵌Flash容量为128K字节;T代表芯片封装为LQFP封装;6代表工作温度范围为-40—85℃。
第2章红外测距系统硬件设计
2.1红外测距系统的工作原理
2.1.1时间差法测距原理
时间差法测距原理是将红外测距传感器的红外发射端发送信号与接收端接受信号的时间差t写入单片机中,通过光传播距离公式来计算出传播距离L,见公式(2-1)。
(2-1)
式中c是光的传播速度为
。
2.1.2反射能量法测距原理
反射能量法是由发射控制电路控制发光元件发出信号(通常为红外线)射向目标物体,经物体反射后传回系统的接收端,通过光电转换器接收的光能量大小进而计算出目标物体的距离L,见公式(2-2)。
(2-2)
式中P为接收端接收到的能量,
K为常数,其大小由发射系统输出功率、转换效率决定,
d为被测目标漫反射率。
2.1.3相位法测距原理
相位测距法是利用无线电波段的频率,对红外激光束进行幅度调制并测定调制光往返一次所产生的相位延迟
,再根据调制光的波长,换算出此相位延迟所代表的距离D,此方式测量精度非常之高,相对误差可以保持在百分之一以内,但要求被测目标必须能主动发出无线电波产生相应的相位值。
见公式(2-3)。
(2-3)
式中c是光的传播速度为
,
是调制信号的角频率。
2.1.4三角法测距原理
三角法测距原理是由一个红外发射管和一个PSD(PositionSensingDevice位置敏感检测装置)以及相应的计算电路来实现的。
而夏普公司的PSD具有更优良的性能,它可以检测到光点落在它上面微小的位移,分辨率达微米,红外传感器GP2Y0A21正是利用了这个特性来实现对目标物体距离的精确测量。
如图1所示。
图1三角法测距原理
红外测距传感器首先通过红外发射管发出红外线,遇到障碍物反射回来落在PSD上形成了一个等腰三角形。
而两个底角是固定的,由发射管来确定,且红外发射管到PSD的距离为已知,此时便可运用三角函数来推算出高,即我们要测量的距离。
本论文就是采用此原理来实现对物体距离的测量。
2.2红外测距系统的基本结构
红外测距系统主要有红外传感器模块(包括红外发射端和红外接收端两部分)、单片机处理模块、LCD显示模块三大部分组成。
如图2所示。
图2红外测距系统基本结构
图3为红外测距系统整体硬件原理图,对应系统组成的三大部分,由图可知,系统工作核心为单片机,红外传感器及LCD液晶显示屏分别接收单片机发出的指令来实现各自的功能,最后结合各个部分的功能来实现整个红外测距系统的运作。
对于单片机、红外传感器、LCD液晶显示屏的工作原理及实现功能在下文会一一对其进行介绍。
图3红外测距系统硬件工作原理图
2.2.1红外传感器模块
本模块选用的是由日本夏普公司研发的型号为GP2Y0A21的红外传感器。
引脚图如图4所示。
此红外传感器一共有三个引脚,其中VCC(电源电压)为信号接入,接入电源电压为4.5-5.5V,单片机5V工作电压即可;GND为接地引脚,连接地线即可;Vout为模拟电压输出引脚,此引脚输出的模拟电压值为0.4-2.4V,相对应的距离范围是80-10㎝。
此引脚需要接入单片机处理模块中的多路A/D转换通道上的任意一路上。
即STM32单片机内部A/D转换通道的PA7引脚上。
图4GP2Y0A21引脚图
根据红外传感器的电压和相对应的距离测量值可知,夏普GP2Y0A21系列的红外传感器输出曲线是非线性的,且每个型号的红外传感器输出曲线都不相同。
所以对所使用红外传感器的矫正是必须要做的,创建出一张实测输出曲线图,以便在实际测量的过程中获得真实准确的测量数据。
图5为本论文使用的红外传感器GP2Y0A21实测输出曲线。
图5夏普GP2Y0A21输出曲线
2.2.2单片机处理模块
STM32单片机是ST(意法半导体)公司基于ARM最新Cortex-M架构内核的32位处理器产品,内置128KB的Flash、20K的RAM、12位A/D转换、4个16位定时器和3路USART通讯口等多种功能资源,时钟频率最高可达到72MHz。
图6STM32单片机引脚图
图6为STM32单片机的引脚图,由图可见此系列单片机功能之全、用法之便、外设之多,一个共有64个扩展I/O口,方便外接工作模块,这里就不一一介绍了。
本论文所研究的红外测距系统应用到以下引脚,如表2所示,除了表2所示之外,还有一些电源引脚和接地引脚,在图上没有一一列出,在这里需要说明一下的是,单片机外加电源为+5.0V,内部工作电源为+3.3V,红外传感器的工作电压为4.5-5.5V,直接接到单片机+5.0V上即可,液晶显示屏LCD1602的电源电压为+5.0V。
对于红外传感器来说,工作电压的要求相对严格,过高容易烧坏传感器内部结构,过低达不到指定的测量范围,所以条件允许的情况下应该为其单独准备一个+5.0V的电源。
表2红外测距系统各引脚功能
符号
引脚名称
连接对象及功能
23
PA7
连接红外传感器Vout引脚,作为单片机的模拟电压输入。
14
PA0
连接LCD1602的R/S引脚,作为LCD的输入引脚,接收判断来自单片机的高低电平,然后选择输入指令或者数据。
15
PA1
连接LCD1602的R/W引脚,作为LCD的输入引脚,接收判断来自单片机的高低电平,然后选择写入指令/数据或者读取信息。
16
PA2
连接LCD1602的E引脚,作为LCD的输入引脚,接收判断来自单片机的高低电平对LCD进行使能。
8
PC0
连接LCD1602的DB0引脚,作为LCD的输入/输出引脚,并在单片机与LCD之间传输数据。
9
PC1
连接LCD1602的DB1引脚,作为LCD的输入/输出引脚,并在单片机与LCD之间传输数据。
10
PC2
连接LCD1602的DB2引脚,作为LCD的输入/输出引脚,并在单片机与LCD之间传输数据。
11
PC3
连接LCD1602的DB3引脚,作为LCD的输入/输出引脚,并在单片机与LCD之间传输数据。
24
PC4
连接LCD1602的DB4引脚,作为LCD的输入/输出引脚,并在单片机与LCD之间传输数据。
25
PC5
连接LCD1602的DB5引脚,作为LCD的输入/输出引脚,并在单片机与LCD之间传输数据。
37
PC6
连接LCD1602的DB6引脚,作为LCD的输入/输出引脚,并在单片机与LCD之间传输数据。
38
PC7
连接LCD1602的DB7引脚,作为LCD的输入/输出引脚,并在单片机与LCD之间传输数据。
STM32单片机的最小工作系统,顾名思义就是可以使单片机工作起来同时由最少的器件构成的系统。
最小工作系统虽然结构简单,但却是大多数单片机控制系统不可缺少的重要部分,所以要熟练运用单片机的各种各样的功能就必须要熟悉掌握并了解最小工作系统的组成。
STM32单片机最小工作系统包括以下四部分:
1、电源系统
图7电源系统工作原理图
如图7所示,STM32单片机的供电系统设计还是比较简单、易懂、方便使用理解的。
从电脑USB端口或者其它的供电设备接入+5V的电源,当选择U8这个USB座时,此时的功能是通过USB座给单片机开发板下载程序和供电;当选择U4这个USB座时,此时的功能是通过USB座与外界进行通信或者给单片机开发板进行供电;随后经过P2(P2是一个500mA的自恢复保险丝,作用是防止单片机工作过程中短路现象的发生,当电源瞬间短路时,会产生强大的电流,这时会把与单片机相连设备的主板给烧坏,同时对开发板自己也是一种保护)到达开关S1和S2,若要给单片机开发板通电需要接通开关S1和S2,若要切断单片机开发板电源,还需要再一次按下开关S1和S2。
当单片机开发板得到+5V的电源后,一路经电解电容C12滤波以后会更加稳定的从C12正极输出,供给单片机开发板所需要的地方;另一路直接接入U7(U7是一个型号为AMS1117的稳压芯片,作用就是把+5V的电压稳压成+3.3V的电压)的3引脚上,经过U7稳压以后由2引脚直接输出+3.3V电源,一路经电容C11滤波以后,作为单片机开发板的电源使用或者作为开发板其它器件的+3.3V电源使用;另一路经过电容C13滤波以后,作为单片机开发板A/D转换模块供电电压。
2、复位系统
图8复位系统原理图
单片机复位系统就是让程序计数器回到0000h这个地址,程序重头开始执行,将一些寄存器、存储单元都置为初始设定值,单片机复位的形式有很多种,比如上电复位、看门狗复位、手动复位等等。
本开发板运用的是外接电路来手动复位,如图8所示,STM32单片机采用低电平复位,使复位开关RESET按下单片机接入低电平即完成复位操作。
3、时钟系统
时钟系统相当于单片机的脉搏,好比人得心跳,其重要性不言而喻。
STM32单片机的时钟系统比较复杂,由于单片机本身结构复杂,外设模块又非常多,而需要很高的系统时钟的模块又在少数,同时为了降低时钟功耗减少电磁干扰,单片机一般都采取多种时钟控制方法。
本论文主要应用的是SYSCLK(系统时钟)的配置,驱动系统时钟可由3种不同的时钟源:
(1)STM32单片机内部有一个8MHzRC高速振荡器,它产生的的时钟信号会兵分2路,一路直接加到时钟选择器开关(SW),这个开关是由STM32单片机的时钟配置寄存器的第0位和第1位来控制,如若时钟配置寄存器的第0位和第1位分别写入0,0的话,内部的8MHzRC高速振荡器产生的8MHz的时钟信号就可以轻松通过SW开关,此时单片机就产生了8MHz的系统时钟。
(2)内部的8MHzRC高速振荡器产生的8MHz的时钟信号另一路经过一个1/2分频器变成了4MHz的时钟信号加到了PLLSRC(PLLSRC是由STM32单片机的时钟配置寄存器的第16位来控制的)这个选择开关上,如果时钟配置寄存器的第16位写入一个0的话,内部的8MHzRC高速振荡器产生的8MHz的时钟信号经过1/2分频器变成4MHz的时钟信号,就会成功的通过开关PLLSRC,然后到达STM32单片机的锁相环PLL倍频器(倍频器就是起到一个倍频的作用,通过对时钟配置寄存器的第18-21位来配置),如果对时钟配置寄存器第21-18位写入0110,则就是8倍频输出,之前PLL输入的为4MHz时钟信号,经8倍频以后就输出32MHz的时钟信号了。
这时SW第0位和第1位都写入0,则单片机系统时钟为32MHz。
(3)在外部8MHz的晶振下和内部的振荡电路的结合下会产生相对稳定的8MHz的系统时钟。
其中一路直接通过SW开关设置为01,正好选择了这路产生的8MHz系统时钟信号。
另一路是首先通过一个选择开关PLLXTPRE(PLLXTPRE是由时钟配置寄存器的第17位来控制的),如若PLLXTPRE被写入0,这时8MHz的时钟信号就会通过此开关到达开关PLLSRC;如若PLLXTPRE被写入1,这时8MHz的时钟信号就会通过对PLLSRC的设置然后通过锁相环PLL倍频器的扩展加到SW上,通过SW后形成相应系统时钟信号。
最后一路是首先遇到了一个1/2分频器,变成4MHz时钟信号后,又到达了PLLXTPRE这个开关然后,随后的设置与上一路时钟信号一样,也可得到相应的系统时钟信号。
从以上的介绍可以看出STM32单片机的系统时钟是很复杂的,需要很多寄存器的配置,而每个寄存器又有很多位的配置等等要求,但是时钟系统却又是单片机工作起来必不可少的部分,所以更详细的学习应该对我们来说是非常必要的。
图9为STM32单片机的晶振电路与时钟振荡电路。
图9晶振电路(左)时钟晶振电路(右)
4、程序下载电路
在某些定义中,程序下载电路不被定义为单片机的最小工作系统,而本论文所运用到的下载电路是USB下载电路。
从图8可知,STM32单片机下载电路支持JATG/SWD下载,同时还支持串口下载通信。
由于本论文研究的红外测距系统重点应用USB下载电路,相对于JTAG/SWD下载的原理这里就不详细介绍,其工作原理图如图10所示。
图10JTAG/SWD下载电路
本论文主要运用到的是STM32单片机的电源电路、复位电路、USB下载电路、A/D转换等功能,前两者在单片机最小工作系统里已经介绍过,下面介绍一下USB下载电路和A/D转换。
STM32单片机主要是采用串口通信的工作原理,串行通信就是指数据一位一位地按顺序传输的通信方式,最简单的串口通信电路只需要2根信号线和一根地线皆可以完成,大幅度地降低了使用成本且能实现远距离传输。
在本开发板上,运用了PL2303(用于实现USB座和标准RS-232串行端口之间的转换)的芯片功能来实现直接运用电脑USB口下载程序的功能。
由图11可以看出,从PL2303输出的信号直接连接到单片机的USART1这个串口模块上,实现了USB转串行通信的连接。
图11USB下载电路
STM32单片机内置3个12位模拟/数字转换模块(ADC),转换时间最快为
。
ADC模块是一种逐次逼近型模拟数字转换器,具有18个通道(16个外部信号源和2个内部信号源),也具有自校验功能,在任何条件下都能保证较高的转换精度。
A/D转换器的主要技术指标有三点:
(1)转换时间,从发出启动命令后到转换结束获得完整的数字信号为止所需的时间。
(2)分辨率,是指数字量最低位代表的模拟量数值大小。
比如5.0V的电压,系统使用10位的ADC进行测量,就相当于把5.0V分成1024份,那么分辨率为5.0/1024=0.005V。
(3)转换精度,是指转换结束后所得的结果相对于实际值的准确度,可用满量程的百分数来表示。
本论文所设计的红外测距系统只需要一个ADC即可完成。
以ADC1为基础来实现A/D转换功能,首先需要对ADC模块的输入通道进行了解,STM32单片机的A/D转换通道很多,共有18路,本论文应用的是通道7(PA7)来实现对Vout的模拟/数字转换。
其次就是ADC模块的工作电压,在这18路通道中只能实现0-3.6V之间的转换,也就是说不支持负电压和大于3.6V电压的工作转换。
再者就是以什么样方式来启动A/D转换,如单片机的定时捕获、EXTI线中断等等。
然后就是ADC转换器的分组,STM32单片机ADC转换器分为2个通道组:
规则通道组(最多包含16个转换通道)和注入通道组(最多包含4个转换通道),两个组别只能一组一组进行转换,当一组进行转换时另一组可视为中断,可打断当前执行也可等到执行完毕随后执行。
最后就是把通过A/D转换得到的数据存入相应的数据寄存器,等待下一次转换或者结束。
对于A/D转换电路来说,如果单片机处理模块是整个红外测距系统的重点研究模块,那么A/D转换电路就是重中之中。
从红外测距系统启动开始,到单片机初始化,再到测量距离的实施,最后到LCD的显示,如果A/D转换功能瘫痪,就意味着单片机与红外传感器的沟通桥梁断掉,也就是说大脑与肢体的分离,是不能让整个系统运转起来的。
对于此次所采用的STM32单片机的开发板,还有很多功能,比如测温功能、键盘功能、数码管显示功能等等,由于对于红外测距系统的设计没有直接的关系,就不一一进行详细介绍,各部分的工作原理图见附录B里。
2.2.3LCD显示模块
本论文所设计的红外测距系统最终是要求显示出测量物体的距离,所应用的液晶显示屏型号为LCD1602。
图12为LCD
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 stm32 红外 测距 系统 设计 大学 学位 论文