首页 基于超声波测距的倒车雷达设计

基于超声波测距的倒车雷达设计

举报
开通vip

基于超声波测距的倒车雷达设计基于超声波测距的倒车雷达设计 摘要 超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在测距仪器的研制上也得到了广泛的应用。NRF24L01是由Nordic公司出品的单芯片无线收发芯片,工作于2.4GHz~2.5GHz的全球免申请(ISM)频率。芯片包括一个完全集成的频率合成器,功率放大器,晶体振荡器和调制器。发射功率和工作频率等...

基于超声波测距的倒车雷达设计
基于超声波测距的倒车雷达设计 摘要 超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在测距仪器的研制上也得到了广泛的应用。NRF24L01是由Nordic公司出品的单芯片无线收发芯片,工作于2.4GHz~2.5GHz的全球免申请(ISM)频率。芯片包括一个完全集成的频率合成器,功率放大器,晶体振荡器和调制器。发射功率和工作频率等工作参数可以很容易的通过3线SPI端口完成。极低的电流消耗,在-5dBm的输出功率时仅为10.5mA,在接收模式时仅为18mA。掉电模式可以很容易的实现低功耗需求。本文提出一种采用单片机STC89C52控制NRF2401实现的无线距离测量系统。通过简单的无线通信 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 ,实现可靠性与功耗平衡,该系统能实现对距离的检测。结构简单,可靠,低功耗、实时性的无线距离检测是该设计的最大特点。 关键字:单片机 STC89C52 无线传输 NRF24L01 超声波 Abstract Ultrasonic point to strong, slow energy consumption, distance travel through a medium, and are often used for distance measurement by ultrasonic, such as rangefinder and level measuring instrument can be achieved by ultrasound.Using ultrasonic testing tends to be more quickly, easily, to calculate simple, easy to do real-time control, and in terms of accuracy to meet the practical requirements of industry, and in distance measuring equipment research is also widely used.nrf24l01 is a nordic company production of single-chip wireless transceiver chip, to 2.4ghz~2.5ghz the world of work from the application ( ISM ) frequency.The chip includes a fully integrated frequency synthesizer, power amplifiers, crystal oscillator, and modulator. The transmitter power and frequency parameters can be easily done via the 3 - wire SPI port.Extremely low current consumption, when -5dbm output power is 10.5ma, for 18ma in receive mode only. Power off mode can easily achieve low power consumption requirements.This article presents a wireless using controlled by Single Chip Microcomputer stc89c52 nrf2401 distance measurement system. Through a simple wireless communication protocol, implementing reliability and power balance, the system can achieve the detection of distance.Simple structure, reliable, low - power wireless distance, real-time detection is the biggest feature of this design. Keywords : SCM,stc89c52, wireless transmission, nrf24l01, ultrasonic 目录 I 摘要 II Abstract III 目录 前言 1 2 1 系统 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 分析 2 1.1 系统方案设计 2 1.1.1 主控方案 2 1.1.2 通信方案 2 1.1.3 测距方案 2 1.1.4 显示方案 3 1.2 系统最终方案 4 2 系统原理分析 4 2.1 超声波的定义 4 2.2 超声波测距原理 5 2.3 超声波测距 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 的选择 5 2.3.1 超声波发生器 6 2.3.2 压电式超声波发生器原理 6 2.3.3 单片机超声波测距系统构成 8 3 主要芯片介绍和系统模块 8 3.1 STC89C52 9 3.1.1 主要功能特性 10 3.1.2 STC89C52单片机引脚介绍 11 3.1.3 单片机控制模块 12 3.2 单片2.4GHz NRF24L01无线模块 12 3.2.1 NRF24L01芯片概述 13 3.2.2 引脚功能及描述 13 3.2.3 工作模式 14 3.2.4 工作原理 15 3.2.5 配置字 16 3.2.6 NRF24L01模块原理图 16 3.3 US-100超声波测距模块 17 3.3.1 US-100超声波测距模块概述 17 3.3.2 接线方式 18 3.3.3 模块工作原理 19 3.3.4 工作模式 21 3.4 LED数码管 21 3.4 .1 LED数码管概述 22 3.4 .1 LED数码管显示 23 4 系统程序设计 23 4.1 系统程序设计思想 23 4.2 主程序流程设计 24 4.3 超声波发生与接收子程序 25 4.4 NRF24L01发生与接收子程序 25 4.5 显示子程序 27 5 硬件电路板设计 27 5.1 系统硬件原理图 27 5.1.1 复位电路原理图 27 5.1.2 时钟电路原理图 28 5.1.3 NRF24L01模块电源原理图 28 5.2 硬件制作 30 6 调试说明 30 6.1 软件调试 31 6.2 硬件调试 32 总结 33 致谢 34 参考文献 35 附件 部分C语言程序 前言 随着社会的进步和生产的需要,利用无线通信进行温度数据采集的方式应用已经渗透到生活各个方面。 在工业现场,由于生产环境恶劣,工作人员不能长时间停留在现场观察设备是否运行正常,就需要采集数据并传输数据到一个环境相对好的操控室内,这样就会产生数据传输问题。由于厂房大、需要传输数据多,使用传统的有线数据传输方式就需要铺设很多很长的通讯线,浪费资源,占用空间,可操作性差,出现错误换线困难。而且,当数据采集点处于运动状态、所处的环境不允许或无法铺设电缆时,数据甚至无法传输,此时便需要利用无线传输的方式进行数据采集。 无线数据采集系统已经被成功应用于工农业、环境监测、军事国防、机器人控制等许多重要领域。凡是布线繁杂或不允许布线的场合都希望能通过无线方案来解决。为此,需要设计相应的接口系统,控制这些射频芯片工作,完成可靠稳定的无线数据通信,这样的研究也变得更加有意义了。 本系统的设计采用了Nordic公司新推出的工作于2.4GHz频段NRF24L01射频芯片,由STC89C52单片机控制实现短距离无线数据通信。该接口设计具有成本低、传输速率高、软件设计简单以及通信稳定可靠等特点。整个系统有发送和接收二部分,通过NRF24L01无线数据通信收发模块来实现无线数据传输。 1 系统方案分析 1.1 系统方案设计 1.1.1 主控方案 方案一:采用传统的AT89S52单片机作为主控芯片。此芯片价格便宜、操作简便,低功耗。 方案二:采用TI公司生产的MSP430F149系列单片机作为主控芯片。此单片机是一款高性能的低功耗的16位单片机,具有非常强大的功能,且内置高速12位ADC。但其是TPFQ贴片封装,不利于焊接,需要PCB制板,大大增加了成本和开发周期。 方案三:采用宏晶科技有限公司的STC89C52RC单片机作为主控芯片。 1.1.2 通信方案 方案一:采用GSM模块进行通信,GSM模块需要借助移动卫星或者手机卡,虽说能够远距离传输,但是其成本较大、且需要内置SIM卡,通信过程中需要收费,后期成本较高。 方案二:采用TI公司CC2430无线通信模块,此模块采用Zigbee总线模式,传输速率可达250kbps,且内部集成高性能8051内核。但是此模块价格较贵,且Zigbee协议相对较为复杂。 方案二:采用NRF24L01无线射频模块进行通信,NRF24L01是一款高速低功耗的无线通信模块。他能传输上千米的距离(加PA),采用SPI总线通信模式电路简单,操作方便。 1.1.3 测距方案 方案一:采用US-100超声波测距模块,模块本身已经带温度补偿。具有电平触发和串口触发两种工作方式,且工作稳定可靠。 方案二:采用HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能。 1.1.4 显示方案 方案一:采用主控为ST7920的带字库的LCD12864来显示信息。12864是一款通用的液晶显示屏,能够显示多数常用的汉字及ASCII码,而且能够绘制图片,描点画线,设计成比较理想的结果。 方案二:采用字符液晶LCD1602显示信息,1602是一款比较通用的字符液晶模块,能显示字符和数字等信息,且价格便宜,容易控制。 方案三:采用LED 7段数码显示管显示,其成本低,容易显示控制,但不能显示字符。 1.2 系统最终方案 发送端: 发送端由超声波传感器,STC89C52单片机,NRF24L01无线射频模块,组成。 SHAPE \* MERGEFORMAT 图1.1 发送端 接收端: 接收端由STC89C52单片机,NRF24L01无线射频模块,数码管显示模块组成。 SHAPE \* MERGEFORMAT 图1.2 接收端 2系统原理分析 2.1 超声波的定义   波是由某一点开始的扰动所引起的,并按预定的方式传播或传输到其他点上。声波是一种弹性机械波。人们所感觉到的声音是机械波传到人耳引起耳膜振动的反应,能引起人们听觉的机械波频率在20Hz~20kHz,超声波是频率大于20kHz的机械波。 在超声波测距系统中,用脉冲激励超声波探头的压电晶片,使其产生机械振动,这种振动在与其接触的介质中传播,便形成了超声波。 2.2 超声波测距原理 最常用的超声测距的方法是回声探测法,超声波发射器向某一方向发射超声波,在发射时刻的同时计数器开始计时,超声波在空气中传播,途中碰到障碍物面阻挡就立即反射回来,超声波接收器收到反射回的超声波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 的时间t,就可以计算出发射点距障碍物面的距离s,即:s=340t/2。 由于超声波也是一种声波,其声速V与温度有关。在使用时,如果传播介质温度变化不大,则可近似认为超声波速度在传播的过程中是基本不变的。如果对测距精度要求很高,则应通过温度补偿的方法对测量结果加以数值校正。声速确定后,只要测得超声波往返的时间,即可求得距离。这就是超声波测距仪的基本原理。如图所示。 图2.1 超声波原理 H=S*cos(θ) (2-1) θ=arctan(L/H) (2-2) 式中:L---两探头之间中心距离的一半。 又知道超声波传播的距离为: 2S=VT ( 2-3) 式中:V—超声波在介质中的传播速度。 T--超声波从发射到接收所需要的时间。 将(2—2)、(2—3)代入(2-1)中得: H=0.5*VT*cos[arctan(L/H)] ( 2-4) 其中,超声波的传播速度V在一定的温度下是一个常数(例如在温度T=30度时,V=349m/s):当需要测量的距离H远远大于L时,则(2-4)变为: H=0.5*VT ( 2-5) 所以,只要需要测量出超声波传播的时间t,就可以得出测量的距离H。 如果测距精度要求很高,则应该通过温度补偿的方法加以校正。 表2.1 超声波波速与温度的关系表 温度(℃) -30 -20 -10 0 10 20 30 40 声速(m/s) 313 319 325 323 338 344 349 386 2.3 超声波测距方法的选择 超声波测距的原理一般采用渡越时间法。首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离。 测量距离的方法有很多种,短距离的可以用尺,远距离的有激光测距等,超声波测距适用于高精度的中长距离测量。因为超声波在 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 空气中的传播速度为331.45m/s,由单片机负责计时,单片机使用12.0MHz晶振,所以此系统的测量精度理论上可以达到毫米级。 2.3.1 超声波发生器 为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。总体上讲,超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。目前较为常用的是压电式超声波发生器。 2.3.2 压电式超声波发生器原理 压电型超声波传感器的工作原理:它是利用压电效应的原理,压电效应有逆效应和顺效应,超声波传感器是可逆元件,超声波发送器就是利用压电逆效应的原理。所谓压电逆效应如图2.2所示,是在压电元件上施加电压,元件就变形,即称应变。若在图a所示的已极化的压电陶瓷上施加如图b所示极性的电压,外部正电荷与压电陶瓷的极化正电荷相斥,同时,外部负电荷与极化负电荷相斥。由于相斥的作用,压电陶瓷在厚度方向上缩短,在长度方向上伸长。若外部施加的极性变反,如图c所示那样,压电陶瓷在厚度方向上伸长,在长度方向上缩短。 图2.2 压电逆效应图 2.3.3 单片机超声波测距系统构成 单片机AT89S52发出短暂的12kHz信号,经放大后通过超声波换能器输出;反射后的超声波经超声波换能器作为系统的输入,锁相环对此信号锁定,产生锁定信号启动单片机中断程序,读出时间t,再由系统软件对其进行计算、判别后,相应的计算结果被送至LCD显示模块进行显示。 限制超声波系统的最大可测距离存在四个因素:超声波的幅度、反射物的质地、温度的高低以及接收换能器的灵敏度。接收换能器对声波脉冲的直接接收能力将决定最小可测距离。 SHAPE \* MERGEFORMAT 图2.3 测距原理 3主要芯片介绍和系统模块 3.1 STC89C52 单片机是一种集成的电路芯块采用了超大规模技术把具有运算能力(如算术运算、逻辑运算、数据传送、中断处理)的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),可能还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PWM),模拟多路转换及A/D转换器等电路集成到一块单片机上,构成一个最小然而很完善的计算机系统。这些电路能在软件的控制下准确快速的完成程序设计者事先规定的任务。总的而言单片机的特点可以归纳为以下几个方面:集成度高、存储容量大、外部扩展能力强、控制功能强、低电压、低功耗、性能价格比高、可靠性高这几个方面。 单片机有着微处理器所不具备的功能,它可以独立地完成现代工业控制所要求的智能化控制功能这就是单片机的最大特点。然而单片机又不同于单板机,芯片在没有开发前,它只是具备功能极强的超大规模集成电路,如果赋予它特定的程序,它便是一个最小的、完整的微机控制系统。它与单板机或个人电脑有着本质的区别,单片机属于芯片级应用,需要用户了解单片机芯片的结构和指令系统以及其它集成电路应用技术和系统设计所需要的理论和技术,用这样特定的芯片设计应用程序,从而使芯片具备特定的智能 STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。 图3.1 单片机管脚图 3.1.1 主要功能特性 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051. 工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机) 工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz 用户应用程序空间为8K字节 片上集成512字节RAM 通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。 ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片 具有EEPROM功能 具有看门狗功能 共3个16位定时器/计数器。即定时器T0、T1、T2 外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒 通用异步串行口(UART),还可用定时器软件实现多个UART 工作温度范围:-40~+85℃(工业级)/0~75℃(商业级) 3.1.2 STC89C52单片机引脚介绍 VCC:STC89C52 电源正端输入,接+5V。 VSS:电源地端。 XTAL1:单芯片系统时钟的反向放大器输入端。 XTAL2:系统时钟的反向放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统皆可以工作了,此外可以在两个引脚与地之间加入一20PF的小电容,可以使系统更稳定,避免噪声干扰而死机。 RESET:STC89C52的重置引脚,高电平工作,当要对晶片重置时,只要对此引脚点评提升至高电平并保持两个机器周期以上的时间,STC89C52便能完成系统重置的各项动作,使得内部特殊功能寄存器内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。 PORT0( P0.0―P0.7 ):端口0是一个8位宽的开路电极(Open Drain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0―A7)及数据总线(D0―D7)。设计者必须外加一个锁存器将端口0送出的地址锁住成为A0―A7,再配合端口2所送出的A8―A15合成一个完整的16位地址总线,而定位地址到64K的外部存储器空间。 PORT1(P1.0―P1.7):端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS TTL负载,若将端口1的输出设为高电平,使是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当作定时器2的外部缓冲输入脚,而P。1可以有T2EX功能,可以做外部中断输入的触发引脚。 PORT2(P2.0―P2.7):端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,同样地,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I/O端口使用外,若是在AT89S51扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8―A15,这个时候P2便不能当做I/O来使用了。 PORT3(P3.0―P3.7):端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。 其引脚分配如下: P3.0:RXD,串行通信输入。 P3.1:TXD,串行通信输出。 P3.2:INT0,外部中断0输入。 P3.3:INT1,外部中断1输入。 P3.4:T0,计时计数器0输入。 P3.5:T1,计时计数器1输入。 P3.6:WR,外部数据存储器的写入信号。 P3.7:RD,外部数据存储器的读取信号。 3.1.3 单片机控制模块 单片机控制模块由STC89C52最小系统组成,其中包括单片机,晶振电路和复位电路。 (1)、晶振电路 晶振电路由两个30pF电容和一个12MHz晶体振荡器构成,接入单片机的X1、X2引脚。 (2)、复位电路 单片复位端低电平有效。 图3.2 单片机最小系统 3.2 单片2.4GHz NRF24L01无线模块 3.2.1 NRF24L01芯片概述 NRF24L01是一款新型单片射频收发器件,工作于2.4 GHz~2.5 GHz ISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。NRF24L01功耗低,在以-6 dBm的功率发射时,工作电流也只有9 mA;接收时,工作电流只有12.3 mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。 NRF24L01主要特性如下: 1.GFSK调制; 2.硬件集成OSI链路层; 3.具有自动应答和自动再发射功能; 4.片内自动生成报头和CRC校验码; 5.数据传输率为l Mb/s或2Mb/s; 6.SPI速率为0 Mb/s~10 Mb/s; 7.125个频道; 8.与其他nRF24系列射频器件相兼容; 9.QFN20引脚4 mm×4 mm封装; 10.供电电压为1.9 V~3.6 V。 3.2.2 引脚功能及描述 NRF24L01的封装及引脚排列如图所示。各引脚功能如下: 图3.2 NRF24L01封装图 CE:使能发射或接收; CSN,SCK,MOSI,MISO:SPI引脚端,微处理器可通过此引脚配置NRF24L01: IRQ:中断标志位; VDD:电源输入端; VSS:电源地; XC2,XC1:晶体振荡器引脚; VDD_PA:为功率放大器供电,输出为1.8 V; ANT1,ANT2:天线接口; IREF:参考电流输入。 3.2.3 工作模式 通过配置寄存器可将nRF241L01配置为发射、接收、空闲及掉电四种工作模式,如表所示。 待机模式1主要用于降低电流损耗,在该模式下晶体振荡器仍然是工作的; 待机模式2则是在当FIFO寄存器为空且CE=1时进入此模式; 待机模式下,所有配置字仍然保留。 在掉电模式下电流损耗最小,同时NRF24L01也不工作,但其所有配置寄存器的值仍然保留。 表3.1 NRF24L01四种工作模式 模式 PWR_UP PRIM_RX CE FIFO寄存器状态 接收模式 1 1 1 - 发射模式 1 0 1 数据在TX FIFO 寄存器中 发射模式 1 0 1→0 停留在发送模式,直至数据发送完 待机模式2 1 0 1 TX FIFO 为空 待机模式1 1 - 0 无数据传输 掉电 0 - - - 3.2.4 工作原理 发射数据时,首先将NRF24L01配置为发射模式:接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入NRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10μs,延迟130μs后发射数据;若自动应答开启,那么NRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TX FIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TX FIFO中数据保留以便在次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。最后发射成功时,若CE为低则NRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。 接收数据时,首先将NRF24L01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在RX FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则NRF24L01进入空闲模式1。 在写寄存器之前一定要进入待机模式或掉电模式。如下图,给出SPI操作及时序图: 图3.3 SPI读操作 图3.4 SPI 写操作 3.2.5 配置字 SPI口为同步串行通信接口,最大传输速率为10 Mb/s,传输时先传送低位字节,再传送高位字节。但针对单个字节而言,要先送高位再送低位。与SPI相关的指令共有8个,使用时这些控制指令由NRF24L01的MOSI输入。相应的状态和数据信息是从MISO输出给MCU。 nRF24L0l所有的配置字都由配置寄存器定义,这些配置寄存器可通过SPI口访问。NRF24L01 的配置寄存器共有25个,常用的配置寄存器如表所示。 表3.2 常用配置寄存器 地址(H) 寄存器名称 功能 00 CONFIG 设置24L01工作模式 01 EN_AA 设置接收通道及自动应答 02 EN_RXADDR 使能接收通道地址 03 SETUP_AW 设置地址宽度 04 SETUP_RETR 设置自动重发数据时间和次数 07 STATUS 状态寄存器,用来判定工作状态 0A~0F RX_ADDR_P0~P5 设置接收通道地址 10 TX_ADDR 设置接收接点地址 11~16 RX_PW_P0~P5 设置接收通道的有效数据宽度 3.2.6 NRF24L01模块原理图 NRF24L01单端匹配网络:晶振,偏置电阻,去耦电容。 图3.5 NRF24L01原理图 3.3 US-100超声波测距模块 3.3.1 US-100超声波测距模块概述 US-100超声波测距模块可实现2cm~4.5m的非接触测距功能,拥有2.4~5.5V的宽电压输入范围,静态功耗低于2mA,自带温度传感器对测距结果进行校正,同时具有GPIO,串口等多种通信方式,内带看门狗,工作稳定可靠。 主要技术参数 工作电压: DC 2.4V -- 5.5V 静态电流:小于2mA 工作温度:-20 -- +70度 输出方式:电平或UART(跳线帽选择) 感应角度:不大于15度 探测距离:2cm-450cm 探测精度:0.3cm+1% h.UART模式下串口配置:波特率9600,起始位1位,停止位1位,数据位8位,无奇偶校验,无流控制。 图3.6 超声波模块 3.3.2 接线方式 图3.7 超声波模块接线端 Pin接口 从左到右依次编号 VCC、trig(控制端)、echo(接收端)、 GND 从左到右依次编号1,2,3,4,5。它们的定义如下: 1号Pin:接VCC电源(供电范围2.4V~5.5V)。 2号Pin:当为UART模式时,接外部电路UART的TX端;当为电平触发模式时,接外部电路的Trig端。 3号Pin:当为UART模式时,接外部电路UART的RX端;当为电平触发模式时,接外部电路的Echo端。 4号Pin:接外部电路的地。 5号Pin:接外部电路的地。 3.3.3 模块工作原理 (1)采用IO触发测距,给至少10us的高电平信号; (2)模块自动发送8个40khz的方波,自动检测是否有信号返回; (3)有信号返回,通过IO输出一高电平,高电平持续的时间就是超声波从发射到返回的时间.测 试距离=(高电平时间*声速(340M/S))/2; 3.3.4 工作模式 工作模式选择跳线接口如图所示。模式选择跳线的间距为2.54mm,当插上跳线帽时为UART(串口)模式,拔掉时为电平触发模式。 图3.8 工作模式选择跳线接口 (1)电平触发测距工作模式 在模块上电前,首先去掉模式选择跳线上的跳线帽,使模块处于电平触发模式。 图3.9 电平触发测距的时序如图 只需要在Trig/TX管脚输入一个10US以上的高电平,系统便可发出8个40KHZ的超声波脉冲,然后检测回波信号。当检测到回波信号后,模块还要进行温度值的测量,然后根据当前温度对测距结果进行校正,将校正后的结果通过Echo/RX管脚输出。 在此模式下,模块将距离值转化为340m/s时的时间值的2倍,通过Echo端输出一高电平,可根据此高电平的持续时间来计算距离值。即距离值为:(高电平时间*340m/s)/2。 注:因为距离值已经经过温度校正,此时无需再根据环境温度对超声波声速进行校正,即不管温度多少,声速选择340m/s即可。 (2)串口触发测距工作模式 在模块上电前,首先插上模式选择跳线上的跳线帽,使模块处于串口触发模式。 图3.10 串口触发测距时序图 在此模式下只需要在Trig/TX管脚输入0X55(波特率9600),系统便可发出8个40KHZ的超声波脉冲,然后检测回波信号。当检测到回波信号后,模块还要进行温度值的测量,然后根据当前温度对测距结果进行校正,将校正后的结果通过Echo/RX管脚输出。 输出的距离值共两个字节,第一个字节是距离的高8位(HDate),第二个字节为距离的低8位(LData),单位为毫米。即距离值为 (HData*256 +LData)mm。 3.4 LED数码管 3.4 .1 LED数码管概述 Led数码管晶、集LED数码管、数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。如:显示一个“2”字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LED数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。而共阳极就是将八个LED的阳极连在一起。其原理图如下。 图3.11 数码管原理 其中引脚图的两个COM端连在一起,是公共端,共阴数码管要将其接地,共阳数码管将其接正5伏电源。一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。 3.4.2 LED数码管显示 LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。 (1) 静态显示驱动: 静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O埠进行驱动,或者使用如BCD码二-十进位器进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O埠多,如驱动5个数码管静态显示则需要5×8=40根I/O口来驱动,要知道一个89C51单片机可用的I/O口才32个呢。故实际应用时必须增加驱动器进行驱动,增加了硬体电路的复杂性。 (2) 动态显示驱动: 数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp "的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。 透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O口,而且功耗更低。 4 系统程序设计 4.1 系统程序设计思想 一个系统的生命在于其内部程序的控制,在小型嵌入式系统的程序编写中应用较多的是汇编语言和C语言。汇编语言虽然在对硬件的控制能力上占着一定的优势,但是C语言在功能上、结构性、可读性、可维护性上有明显的优势,并且易学易用。因此本系统程序选用C语言编写,采用美国Keil Software公司出品的51系列兼容单片机C语言软件开发平台Keil C51作为开发环境。 本系统根据超声波测距原理用stc89c52单片机开发,整个软件采用模块化设计,主要由主程序、超声波发射/接收子程序、显示子程序、数据发送/接收子程序等功能模块子程序组成。 SHAPE \* MERGEFORMAT 图4.1 发送端 SHAPE \* MERGEFORMAT 图4.2 接收端 4.2 主程序流程设计 主程序的流程图如下图所示,主要完成系统的初始化,控制I/O端口连续产生40KHz的脉冲信号,控制定时器的启动和停止,检测超声波回波信号并计算,对显示、报警子程序进行调用。 SHAPE \* MERGEFORMAT 图4.3 程序流程 4.3 超声波发生与接收子程序 void Ccout(void) { TR0=1; Csout=1 while(--100); Csout=0; } void TimeOut(void) interrupt 1 { TR0=0; ET0=0; ReceiveOK=0; Tout=1; } void Receive(void) interrupt 0 { TR=0; EX0=0; ReceiveOK=1; Tout=0; } 4.4 NRF24L01发生与接收子程序 unsigned char NRF24L01_RxPacket(unsigned char* rx_buf) { unsigned char revale=0; sta=SPI_Read(STATUS); if(RX_DR) { CE = 0; SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);revale =1; } SPI_RW_Reg(WRITE_REG+STATUS,sta); return revale; } 4.5 显示子程序 void DataPrecess(void) { ulong time=0; TIME=TH0; TIME=(TIME<<8)|TL0; TIME*=v/2; TIME=TIME/1000; disnum[0]=(uchar)TIME%10; disnum[4]=TIME/10; disnum[1]=(uchar)disnum[4]%10; disnum[4]=TIME/10; disnum[2]=(uchar)disnum[4]%10; disnum[4]=TIME/10; disnum[3]=(uchar)disnum[4]%10; } void lcd Display(void) { lcd_home(); lcd_writ(discod[disnum[3]],discod[disnum[2]],discod[disnum[1]],discod[disnum[0]]); } void ErrorDisplay(void) { lcd_home(); lcd_writ(error); } void ReadyDispaly(void) { lcd_home(); lcd_writ(run); } 5 硬件电路板设计 5.1 系统硬件原理图 5.1.1 复位电路原理图 在系统上电的瞬间,RST与电源电压同电位,随着电容的电压逐渐上升,RST电位下降,于是在RST形成一个正脉冲。只要该脉冲足够宽就可以实现复位,当人按下按钮S1时,使电容C1通过R1迅速放电,待S1弹起后,C再次充电,实现手动复位。R1一般取1k。 图5.1 复位电路原理 5.1.2 时钟电路原理图 当使用单片机的内部时钟电路时,单片机的XATL1和XATL2用来接石英晶体和微调电容,如图所示,晶体一般可以选择3M~24M,电容选择30pF左右。我们选择晶振为12MHz,电容30pF。 图5.2 时钟电路原理 5.1.3 NRF24L01模块电源原理图 本系统无线模块需要+3.3V电源,采用电源电路如图所示。该电路把先前转换得到的+5V电源经过低压差电压调节器lm1117转换为+3.3V电源。 图5.3 模块电源原理 5.2 硬件制作 硬件的制作有印制电路板,打孔和焊接原件组成。 印制电路板用热传印纸打印电路图,经过热传印机把纸上的电路图转印到电路铜板上,之后进行腐蚀铜板处理,把不需要的铜去掉,得到所要电路。 在没通电之前,先用万用表检查线路的正确性,并核对元器件的型号、规格是否符合要求。特别注意电源的正负极以及电源之间是否有短路,并重点检查地址总线、数据总线、控制总线是否存在相互间的短路或其他信号线的短路。晶体振荡器和电容应尽可能靠近单片机芯片安装,以减少寄生电容,更好是保证振荡器稳定和可靠地工作。在本系统中我们都进行了仔细的检杏,所以此步骤不会发生故障,这一步如果检查不细通电后可能会造成不可想象的后果,所以这一步也至关重要。 通电后检查各器件引脚的电位,仔细测量各点电位是否正常,尤其应注意单片机的插座上的各点电位,若有高压,将有可能损坏单片机仿真器。同样,如果电压过低就没有能力驱动其负载。 在断电的情况下,除单片机以外,用仿真插头将所连接电路与单片机仿真器的仿真接口相连,为软件调试做好准备。 其中遇到的问题很多,如印制电路线不合格,中间有些许断路,造成调试的失败。还有USB电源供电电压不足的问题,电源电压经过供电给负载,电压下降0.5V,致使单片机不工作的问题。 6 调试说明 6.1 软件调试 系统软件设计、调试的过程如图所示 其过程分为以下几个步骤: SHAPE \* MERGEFORMAT 图6.1 调试流程图 第一步,建立源程序。通过计算机开发系统的编辑软件,按照所要求的格式、语法规定、源程序输入到开发系统中,并存在磁盘上。 第二步,在计算机上,利用KILE软件对第一步输入的源程序进行编译,变为可执行的目标代码。如果源程序有语法错误,则其错误将显示出来,然后返回到第一步进行修改,再进行编译,直到语法错误全部纠正为止。 第三步,动态在线调试。对于与系统、硬件无联系的程序,可以借助动态在线调试手段,如单步运行、设置断点等,发现逻辑错误,然后返回到第一步修改,直到逻辑错误纠正为止。对于与系统硬件紧密相关的程序,则需软件,硬件同时进行调试,将程序烧入CPU,然后将CPU插入系统,发现硬件故障排除故障,发现逻辑错误,修改程序,消除逻辑错误。 6.2 硬件调试 硬件调试分两步: 第一步:系统上电之前,先用万用表等工具,根据硬件逻辑设计图,仔细检查线路是否连接正确,并核对元器件的型号、规格和安装是否符合要求,应特别注意电源系统的检查,以防止电源的短路和极性错误,并重点检查系统总线是否存在相互之间短路或与其它信号线的短路。 第二步:第一步的调试,只是对系统进行初步调试,可以排除一些明显的故障,而硬件故障(如各个部件内部存在的故障和部件之间连接的逻辑错误)主要是靠软件和硬件联调来排除。 硬件调试和软件调试是不能完全分开的,许多硬件错误是在软件调试中发现和被纠正的。 总结 本课题介绍了一种基于单片机的超声波测距系统的原理和设计。给出了硬件和软件的设计方案。本论文详细地介绍了超声波传感器的原理、结构、检测方式以及它的一些特性和NRF2401芯片使用方法。只有深入地了解超声波传感器的工作原理以及NRF2401的工作原理,才能更好的设计测距电路并实现数据的无线传输。 本设计内容重点: · NRF24L01无线传输模块的操作。 · US-100超声波模块的使用。 · 单片机数码管显示。 本设计内容难点: · NRF2401无线传输模块C程序的设计。 最后敬请各位专家、老师和同学对论文和今后的研究工作提出宝贵的指导意见和建议。 致谢 参考文献 [1] C程序设计教程[M]. 四川出版集团,四川科学技术出版社,2009. [2] 童诗白, 华成英, 清华大学电子学教研组. 模拟电子技术基础[M]. 高等教育出版社,2009. [3] 阎石, 清华大学电子学教研组.数字电子技术基础[M]. 高等教育出版,2009. [4] 沈红卫. 单片机应用系统设计实例与分析[M]. [5] 沈红卫. 基于单片机的智能系统设计与实现[M]. 电子工业出版社,2005 [6] 冯育长.单片机系统设计与实例分析[R]. 西安电子科技大学出版社,2007 [7] 单片机原理及应用[M]. 电子工业出版社,2010. 附件 部分C语言程序 延时函数 void inerDelay_us(unsigned char n) { for(;n>0;n--) _nop_(); } NRF24L01初始化 void init_NRF24L01(void) { inerDelay_us(100); CE=0; // chip enable CSN=1; // Spi disable SCK=0; // Spi clock line init high SPI_Write_Buf(WRITE_REG+TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); SPI_Write_Buf(WRITE_REG+RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); SPI_RW_Reg(WRITE_REG+EN_AA,0x01); SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); SPI_RW_Reg(WRITE_REG+RF_CH,0); SPI_RW_Reg(WRITE_REG+RX_PW_P0, RX_PLOAD_WIDTH); SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f); } NRF24L01的SPI写时序 uint SPI_RW(uint uchar) { uint bit_ctr; for(bit_ctr=0;bit_ctr<8;bit_ctr++) { MOSI = (uchar & 0x80); uchar = (uchar << 1); SCK = 1; uchar |= MISO; SCK = 0; } return(uchar); } NRF24L01的SPI时序 uchar SPI_Read(uchar reg) { uchar reg_val; CSN = 0; SPI_RW(reg); reg_val = SPI_RW(0); CSN = 1; return(reg_val); } NRF24L01读写寄存器函数 uint SPI_RW_Reg(uchar reg, uchar value) { uint status; CSN = 0; status = SPI_RW(reg); SPI_RW(value); . CSN = 1; return(status); } 用于读数据,reg:为寄存器地址,pBuf:为待读出数据地址,uchars:读出数据的个数 uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars) { uint status,uchar_ctr; CSN = 0; status = SPI_RW(reg); for(uchar_ctr=0;uchar_ctr
本文档为【基于超声波测距的倒车雷达设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_235881
暂无简介~
格式:doc
大小:711KB
软件:Word
页数:43
分类:工学
上传时间:2013-07-10
浏览量:33