《毕业设计(论文)-基于单片机的超声波倒车雷达系统的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于单片机的超声波倒车雷达系统的设计.doc(50页珍藏版)》请在三一文库上搜索。
1、 超声波倒车雷达系统的设计工 学 部 工学一部专 业自动化班 级学 号姓 名指导教师负责教师沈阳航空工业学院北方科技学院2009年7月沈阳航空工业学院北方科技学院毕业设计(论文)摘 要倒车雷达是针对日益拥挤的道路交通状况、以及在停车场、车库、街道等比较狭窄区域,避免车与车,车与人以及车与墙壁等障碍物发生碰撞,摩擦而出现的一种着眼于倒车防护的汽车防撞系统。随着越来越多的高科技产品逐渐融入了日常生活中,倒车雷达系统发生了巨大的变化。仿生学、声学等前沿学科的技术的日趋成熟与实用化,赋予了倒车雷达系统新的的研究方向与意义。本文描述了一个由三个超声波测距模块构成的,提供语音报警功能的超声波倒车雷达系统。
2、该系统采用凌阳16位单片机SPCE061A为核心,分别控制三个超声波模块,每一个超声波测距模块都被设定面向不同方向,以探测不同方向的障碍物。本系统采用单片机控制时间计数和超声波的发射和接收,利用超声波回波的间隔时间,得出实测距离。结果表明该系统具有结构简单、工作可靠、精度高等特点。关键词:SPCE061A单片机;超声波测距;语音提示;LCD显示AbstractThe back-draft radar is aims at day by day the crowded road traffic condition, as well as in the parking lot, the garag
3、e, the street and so on the quite narrow region, avoids automobile and automobile, obstacle and so on Automobile and person as well as vehicle and wall has the collision, one kind which the friction appears focuses to the back-draft protection automobile collision avoidance system.As well as the hig
4、h-tech products gradually integrated into the daily life, the Parking Distance Control system has undergone tremendous changes. The Parking Distance Control system has been given the new direction of the research and significance by the developed of the Bionics, Acoustic, etc. This article describes
5、 a Parking Distance Control system which contains three ultrasonic ranging modules and the results can be pronounced in real-time. The three ultrasonic ranging modules are set to three different directions to detect the roadblock .This three modules are control by the system which is based on sunplu
6、s SPCE061A microprocessor. The time counting and both the transmitting and receiving of the ultrasonic wave are controlled by the microprocessor. The measured distance can be calculated and displayed by the echo time by the code. The features of the simple hardware, stable operation and high precisi
7、on are incarnated in the proposed system.Keywords: SPCE061A microprocessor; ultrasonic ranging; voice prompts; LCD display目 录1 绪 论11.1 课题背景11.1.1 倒车雷达的发展历史11.1.2 倒车雷达的发展方向与展望31.2 课题任务及要求31.3 课题的主要内容及目的42 超声波倒车雷达系统的总体方案论证52.1 超声波测距PWM信号方案论证52.1.1 超声波测距PWM信号硬件实施方案52.1.2 超声波测距PWM信号软件实施方案62.1.3 超声波测距PWM
8、信号实施方案比较62.2 超声波倒车雷达系统硬件方案论证72.3 超声波倒车雷达系统软件方案论证93 超声波倒车雷达系统的硬件设计103.1 SPCE061A精简开发板电路原理103.1.1 SPCE061A简介103.1.3 电源模块103.1.4 放音模块113.2 超声波测距模块电路的设计113.2.1 超声波谐振频率调理电路的设计113.2.2 超声波回波信号处理电路的设计123.2.3 超声波测距模式选择电路的设计133.3 转接板电路的设计143.4 显示电路的设计153.4.1 二极管闪烁报警电路的设计153.4.2 LCD显示报警电路的设计153.5 各模块接口分配164 超声
9、波倒车雷达系统的软件设计174.1 超声波测距原理174.2 nSP IDE的项目文件管理的组织结构174.3 软件架构184.4 各模块程序的设计194.4.1 主程序的设计194.4.2 超声波测距程序的设计204.4.3 语音播放程序的设计224.4.4 二极管闪烁程序的设计234.4.5 LCD初始化及驱动程序的设计245 超声波倒车雷达系统的整体调试255.1 故障调试及解决方式255.2 联调结果27结 论29社会经济效益分析30致 谢31参考文献32附录 程序清单33附录 元器件清单45451 绪 论超声波雷达又称泊车辅助系统,是一种利用超声波原理,由装置于车尾保险杠上的探头发送
10、超声波撞击障碍物后,反射此声波探头,从而计算出车体与障碍物之间的距离。一般由超声波传感器、控制器、显示器等部分组成。它能以声音或者更为直观的显示告知驾驶员周围障碍物的情况,解除了驾驶员泊车、倒车和启动车辆时前后左右探视所引起的困扰,并帮助驾驶员扫除了视野死角和视线模糊的缺陷。现在市场上的倒车雷达大多采用超声波测距原理,驾驶者在倒车时,启动倒车雷达,在控制器的控制下,由装置于车尾保险杠上的探头发送超声波,遇到障碍物。产生回波信号,传感器接收到回波信号后经控制器进行数据处理,判断出障碍物的位置,由显示器显示距离并发出警示信号,得到及时的警示。给汽车安装超声波雷达大大提高了行车的安全性。从而使驾驶者
11、倒车时做到心中有数,使倒车变得更轻松。1.1 课题背景随着生活质量的提高,工作的需要,科技的发展,人们将越来越多的在生活中和工作中将汽车作为其日常的生活工具。当汽车进入百姓家庭,倒车雷达自然而然的走进了人们的视野中,保障行车安全的各个细节,越来越受到车主的重视;虽然每辆车都有后视镜,但不可避免地都存在一个后视盲区。同样随着经济技术的不断进步,倒车雷达无论是在外型还是在功能上都发生了巨大的变化。从记忆中的“倒车请注意”到现在可以在一块LCD屏幕上显示障碍物的各种信息,每一次的变革都让人耳目一新。1.1.1 倒车雷达的发展历史在几年的时间里,随着技术发展和用户需求的变化,倒车雷达经过了大致六代的技
12、术改良和发展。不管从结构外观上,还是从性能价格上,这六代产品都各有特点,使用较多的是数码显示、荧屏显示和魔幻镜倒车雷达这三种。第一代倒车喇叭提醒“倒车请注意”想必不少人还记得这种声音,这就是倒车雷达的第一代产品,现在只有小部分商用车还在使用。只要司机挂上倒档,它就会响起,提醒周围的人注意。从某种意义上说,它对司机并没有直接的帮助,不是真正的倒车雷达。价格便宜,基本属于淘汰产品。第二代蜂鸣器提示这是倒车雷达系统的真正开始。倒车时,如果车后1.8米1.5米处有障碍物,蜂鸣器就会开始工作。蜂鸣声越急,表示车辆离障碍物越近。这种倒车雷达没有语音提示,也没有距离显示,虽然司机知道有障碍物,但不能确定障碍
13、物离车有多远,对驾驶员帮助不大。第三代数码波段显示比第二代先进很多,可以显示车后障碍物离车体的距离。如果是物体,在1.8米开始显示;如果是人,在0.9米左右的距离开始显示。这一代产品有两种显示方式,数码显示产品显示距离数字,而波段显示产品由三种颜色来区别:绿色代表安全距离,表示障碍物离车体距离有0.8米以上;黄色代表警告距离,表示离障碍物的距离只有0.30.8米;红色代表危险距离,表示离障碍物只有不到0.30.1米的距离。在安全区,你可正常倒泊,在警告区,你要减速倒泊,在危险区,你则要停止倒泊。第三代产品把数码和波段组合在一起,但比较实用,但安装在车内不太美观。第四代液晶荧屏动态显示这一代产品
14、有一个质的飞跃,特别是荧屏显示开始出现动态显示系统。不用挂倒档,只要发动汽车,显示器上就会出现汽车图案以及车辆周围障碍物的距离。LCD动态显示,色彩清晰漂亮,外表美观,可以直接粘贴在仪表盘上,安装很方便。不过液晶显示器外观虽精巧,但灵敏度较高,抗干扰能力不强,所以误报也较多。第五代魔幻镜倒车雷达结合了前几代产品的优点,采用了最新仿生超声雷达技术,配以高速电脑控制,可全天候准确地测知2米以内的障碍物,并以不同等级的声音提示和直观的显示提醒驾驶员。魔幻镜倒车雷达把后视镜、倒车雷达、免提电话、温度显示和车内空气污染显示等多项功能整合在一起,并设计了语音功能。因为其外形就是一块倒车镜,所以可以不占用车
15、内空间,直接安装在车内后视镜的位置。而且颜色款式多样,可以按照个人需求和车内装饰选配。第六代:整合影音系统它在第五代产品的基础上新增了很多功能,属于第六代产品,是专门为高档轿车生产的。从外观上来看,这套系统比第五代产品更为精致典雅;从功能上来看,它除了具备第五代产品的所有功能之外,还整合了高档轿车具备的影音系统,可以在显示器上观看DVD影像,是目前市面上最先进的倒车雷达系统。1.1.2 倒车雷达的发展方向与展望经过多年的研究与生产实践,倒车雷达逐渐摆脱了以往功能单一,报警不准确的问题。目前倒车雷达主要有两个方向发展。一、与其他车内娱乐设备的集成;二、提高报警的准确性。越来越多的倒车雷达已经不再
16、仅限于提供倒车报警的单一功能,集成多种报警娱乐等功能的倒车雷达已经成为一种现实。军用技术的民用化,使的倒车雷达预警范围,报警精度都有极大的提高。仿生学、声学、电磁学等科学技术的进步,都将会倒车雷达推向一个新的阶段。随着卫星定位技术的成熟,以车载卫星定位系统(GPS)作为倒车雷达,也离实用化越来越近。1.2 课题任务及要求本次设计的超声波倒车雷达系统是以SPCE061A单片机为控制器,搭配3个超声波测距模块及LCD、二极管、语音3部分组成的报警模块所构成。其测量结果应符合以下标准:1) 语音提示可指明哪一个方向(或区域)在范围内(0.35m1.5m)有障碍物在探测范围内。2) 利用三个LED发光
17、二极管表示三个传感器探测范围内是否有障碍物,当在探测范围内有障碍物时,发光二极管以一定频率闪烁,闪烁的频率以距离定,距离越近频率越。3) 利用LCD显示距离等信息。1.3 课题的主要内容及目的本文对超声波倒车雷达系统的设计进行了详细的介绍,共分五章。第1章简要介绍了整个课题的研究背景、目的、意义及整个任务的要求安排;第2章是针对此次课题的任务进行方案论证,尤其重要的对SPCE061A单片机其16位的处理能力及内嵌的语音对本设计的影响进行详细的阐述;第3章具体介绍了超声波倒车雷达系统的硬件设计,包括超声波测距模块电路,转接板电路,显示电路的设计;第4章阐述了超声波倒车雷达的软件设计,包括超声波测
18、距子程序,数据处理子程序,显示子程序,语音子程序的设计。第5章是针对硬件调试、软件调试和整机连调的结果进行了具体的分析和说明。目的是研究一个超声波倒车雷达,要求在倒车时,启动倒车雷达,在控制器的控制下,由传感器发送超声波,遇到障碍物,产生回波信号,传感器接收到回波信号后经控制器进行数据处理,判断出障碍物的位置,由显示器显示距离并发出警示信号,来提示司机车后有障碍物,得以使泊车和倒车更加方便个安全。本设计的核心是测距。测距的方法有很多种,我采用的是脉冲测量法,其实质就是测量发射超声波的时刻与接收到反射回波信号的时刻之间的时差,利用超声波在空气中传播速度已知的条件,计算出被测目标与传感器之间的距离
19、。2 超声波倒车雷达系统的总体方案论证超声波倒车雷达系统的整个设计中最重要的部分是超声波测距质量的处理,虽然超声波测距很早就开始研究应用,但如何实现测量的快速性和准确性至今仍是生产和科研的课题。随着微电子技术的发展及普及,更多高性能的单片机应用使得超声波测距的快速性和准确性都有了极大的提高。超声波测距的关键在于发射信号的脉冲时长,接收信号的数据处理,及消除其本身的余波干扰。本设计使用凌阳16位单片机SPCE061A(后文简称为SPCE061A)为超声波测距的控制器,其较高的数据处理能力和丰富的指令系统,从硬件和软件两部分来改善系统性能,使研制成的超声波倒车雷达系统具有很好的快速性和准确性,且具
20、有较高的抗干扰能力,很符合要求。2.1 超声波测距PWM信号方案论证2.1.1 超声波测距PWM信号硬件实施方案为了符合探测障碍物所需要的测量精度的设计要求,超声波发射探头需要一个稳定的PWM信号,驱动发射脉冲信号。此PWM信号可由集成芯片NE555搭配合适的外围电路构成。其电路如下图2.1所示:图2.1 NE555构成的PWM信号提供电路此硬件实施方案具有如下特点: (1)NE555外围电路容易搭建,驱动电压与SPCE061A一致,无需另接电源;(2) 硬件电路输出稳定,不易受干扰。上图显示的是由NE555构成的40KHz PWM驱动信号电路,该电路最大特点是与SPCE061A具有较好的兼容
21、性及较高抗干扰性,且软件编写较为便利,符合整个设计对测量精度的要求。2.1.2 超声波测距PWM信号软件实施方案除了直接用硬件来提供超声波测距所需要的PWM信号以外,也可以用SPCE061A提供的PWM脉宽调制输出功能,用软件进行处理。用软件进行处理的优势在于,发射超声波所需要的PWM信号和其反射信号的计算都是由同一个单片机完成,可以利用程序编写的灵活性,极大的削弱发射与接收之间的余波干扰,使测距更加精确。它与.硬件实现电路相比有以下几个优点:1) PWM信号是用程序实现的,减少了整个设计的成本;2) SPCE061A具有16位的处理能力,其输出的PWM信号无论是在频率的精度,或是持续输出的稳
22、定性上,都具有极佳的表现;由SPCE061A同时控制PWM信号输出和反射信号的计算,具有更好的灵活性,容易实现高精度的测量。2.1.3 超声波测距PWM信号实施方案比较综合比较软件和硬件方案的优劣,选择软件提供超声波测距所需要的PWM信号,主要原因有如下几点:1) 超声波测距的精度与给予的PWM信号质量有很大的关联,使用软件提供PWM信号除了能提供更高品质的信号外,又没有增加设计的成本,很适合毕业设计的要求。2) 使用软件提供PWM信号虽然会增加代码编写的工作量,但从整个系统的角度来看,超声波信号的发射与接收都使用软件实现,会更易于综合调试,整个测距过程也更易于控制2.2 超声波倒车雷达系统硬
23、件方案论证倒车雷达实现的功能就是探测可能存在的障碍物,通过数据处理将障碍物的位置信息显示出来。要实现这一功能,就必须把障碍物相对测量系统的位置量转换成单片机所能识别的电量。当超声波测距模块探测到障碍物的存在时,会接收到若干脉冲数目的反射信号,信号脉冲个数即反映了障碍物与测试系统的位置关系。返回的信号经过SPCE061A进行相应的数据运算,便可将障碍物的位置信息通过语音、二极管、LCD的方式显示出来,其硬件总体方案设计框图如图2.2所示:SPCE061A转接板传感器传感器传感器LCD显示语音报警LED报警图2.2 超声波倒车雷达系统的结构框图1. 超声波测距模块传感器就是超声波测距模块,它是整个
24、倒车雷达系统的核心。本设计方案拟使用3个相同的超声波测距模块依次排布,组成一个传感器阵,来检测车后的障碍物位于车的左后,右后还是正后边。图2.3 超声波测距原理超声波距离的原理是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。单片机SPCE061A的定时器B产生40KHz的的信号为超声波测距模组的提供超声波信号,当信号发出遇到障碍物后,信号将按原路返回,这时在车尾的传感器将检测出返回来的超声波信号。用发射超声波的时刻与接收到反射回波信号的时刻之间的时差与超声波在空气中的传播速度相乘就可得出障碍物跟车尾的距离。2
25、. 转接板由于使用3个超声波测距模块,而SPCE061A的I/O口数目不满足3个测距模块同时直接相接,故使用集成芯片CD4052实现软件对不同传感器的选通与屏蔽。这样只需要两个端口就可完成测距,一个控制超声波的发射,一个是检测超声波信号的接收信号。3. SPCE061A凌阳16位单片机SPCE061A是本倒车雷达系统的控制器,也是数据处理的中心。它直接控制超声波测距模块进行测距、处理模块返回值并控制实现对外的报警功能4. 语音报警SPCE061A作为16位单片机,其具有较强的运算能力,可以通过其内置的DAC及自动增益控制(AGC)功能,实现对外的语音报警。该部分电路已集成于SPCE061A精简
26、开发板上。它所具备的单芯片语音功能采用语音提示的方式来指明在探测范围内哪一个方向有障碍物. 只要距离在0.351.5m之内,就会有语音提示。超声波测距模组分别在左后方,右后方和正后方,当超声波测距模组的探头探测出有障碍物时,就会有以下语音提示:表2.3 语音报警表情况一情况二情况三条件正后方和左后方与右后方同时有障碍物左后方有障碍物右后方有障碍物语音提示后方左后方右后方5. LCD显示电路使用LCM1602A液晶显示模块实现LCD显示。由于LCM1062A仅能显示2行共32个字符,故实际显示为3个超声波测距模块中,测得距离最近的那个值。6. 发光二极管(LED)闪烁报警电路三个发光二极管分别对
27、应三个超声波测距模块。当对应的超声波测距模块探测到障碍物存在时,障碍物距离测距模块越近,发光二极管闪烁的频率就会越高。2.3 超声波倒车雷达系统软件方案论证软件设计是超声波倒车雷达系统设计中最关键的部分。由于本系统使用凌阳SPCE061A单片机,故整个软件架构需要遵循凌阳 nSP IDE 2.0.0编译环境和对应的单片机指令。软件设计分为超声波测距程序、语音播报程序、中断程序、系统程序、LCD驱动程序、主程序六部分。各个部分函数都可相互调用又相对独立可调,保证调试的便利与程序的可读性。整个超声波倒车雷达系统软件流程图如图2.3所示:开始初始化超声波测距子程序数据处理子程序显示及报警子程序结束图
28、2.4 软件原理流程框图3 超声波倒车雷达系统的硬件设计硬件设计是本设计的的一个重要部分。本章将详细叙述超声波倒车雷达系统各部分硬件设计内容、元器件选择及所设计的硬件电路实现的各项功能。3.1 SPCE061A精简开发板电路原理3.1.1 SPCE061A简介随着单片机功能集成化的发展,其应用领域也逐渐地由传统的控制,扩展为控制处理、数据处理以及数字信号处理(DSP,Digital Signal Processing)等领域。凌阳的16位单片机就是为适应这种发展而设计的。它的CPU内核采用凌阳最新推出的mnSP(Microcontroller and Signal Processor)16位微
29、处理器芯片(以下简称mnSP)。围绕mnSP所形成的16位mnSP系列单片机(以下简称mnSP家族)采用的是模块式集成结构,它以mnSP内核为中心集成不同规模的ROM、RAM和功能丰富的各种外设接口部件。特点:1) 体积小、集成度高、可靠性好且易于扩展2) 具有较强的中断处理能力3) 高性能价格比4) 功能强、效率高的指令系统5) 低功耗、低电压3.1.3 电源模块SPCE061A的内核供电电压为3.3V,而I/O端口可接3.3V也可接5V,考虑到超声波测距模块需要供电电压在4.5V以上时才能正常工作,故使用精简开发板上提供的5V电源。电源模块的电路原理图见图3.2所示:图3.1 电源模块的电
30、路原理图3.1.4 放音模块由于本倒车雷达需要实现语音提示障碍物的方向,故放音模块便不可缺少。在SPCE061A精简开发板上便集成了以下放音模块。图3.2 放音模块的电路原理图本设计的放音是利用SPCE061A内部的DAC,图中的SPY0030是凌阳公司的产品。与LM386相比,SPY0030有明显的优势。如LM386的工作电压在4V以上,输出功率低于100mW,而SPY0030的工作电压仅需2.4V,且输出功率能达到700mW左右,较低的工作电压,又能有很好的输出效果,这使得本系统即使脱离固定电源,仅使用电池供电,也能完全正常工作。3.2 超声波测距模块电路的设计3.2.1 超声波谐振频率调
31、理电路的设计超声波谐振频率调理电路原理图如图3.4所示:图3.3 超声波谐振频率调理电路原理图由SPCE061A提供本电路工作所需要的40KHz方波,该信号经CD4049进行频率调理,以使超声波传感器发生谐振。从电路图可以看出CD4049是由6个非门构成的六反相缓冲器/变换器,其引脚图如图3.5所示。由于超声波的传播距离与它的振幅成正比,使用CD4049能使由SPCE061A发出的振荡信号的幅度增大一倍使超声波传播距离明显的增长,测距的范围得到扩大。图3.4 CD4049引脚图为了防止绝缘电阻下降而导致超声波转换性能的下降,在超声波传感器与信号调理电路之间需要串如一个耦合电容。通过它可以将直流
32、电压转换为等幅的交变电压,保证了超声波发射电路能够长时间稳定可靠的工作。3.2.2 超声波回波信号处理电路的设计超声波回波信号处理电路原理图如图3.6所示:图3.5 超声波回波信号处理电路原理图由于超声波在空气中传播时,其能量的衰减程度与传播距离成正比,其接收到的回波信号的幅值的单位通常在毫伏级甚至更小,所以超声波回波信号处理电路的前级就需要提供很高的放大信号,使单片机能够正常工作。本体统采用NE5532搭配外围电路构成10000倍放大器来对接收到的信号进行放大处理。经过处理的信号输入至LM311的正端与3脚提供的基准电压相比较然后输出,若输出为低电平,则说明无回波信号或信号太小,若输出为高电
33、平,则会被SPCE061A所接收然后做数据处理。3.2.3 超声波测距模式选择电路的设计超声波测距模式选择电路的作用是为回波信号处理电路中LM331提供电压比较的基准电压,其电路原理图如图3.7所示。由电路图可知,该电路可为LM331提供3组不同的电压,分别对应短距离测距,中距离测距和可调测距三种不同的测距模式。虽然本系统只需工作在短距离测试模式即可满足设计的性能指标,但为了软件标定的便利,及其他场合的应用,该模块依旧保留其他两种模式测距的选择跳线。图3.6 超声波测距模式选择电路原理图3.3 转接板电路的设计文前已说明转接板是在SPCE061A I/O数目不足,传感器数量较多的情况下,针对超
34、声波测距模块的输入输出信号都是数字信号这一特点,没有选择扩展SPCE061A的口线,而是使用CD4052模拟开关来控制三个传感器的选通与否。该部分电路图见图3.8所示。图3.7 转接板电路原理图CD4052相当于一个双刀四掷开关,开关接通哪一通道,由输入的2位地址码A0、A1来决定。 “/E”是禁止端,当“/E”=1时,各通道均不接通。此外,CD4052还设有另外一个电源端VEE,以作为电平位移时使用,从而使得通常在单组电源供电条件下工作的CMOS电路所提供的数字信号能直接控制这种多路开关,并使这种多路开关可传输峰峰值达15V的交流信号。例如,若模拟开关的供电电源VDD=5V,VSS=0V,当
35、VEE=5V时,只要对此模拟开关施加05V的数字控制信号,就可控制幅度范围为5V5V的模拟信号。CD4052芯片引脚图如图3.9所示。图3.8 CD4052引脚图3.4 显示电路的设计3.4.1 二极管闪烁报警电路的设计二极管闪烁报警电路结构比较简单,二极管直接与SPCE061A的I/O口相连,串联一个限流电阻即可完成设计要求,该部分电路见图3.10。图3.9 二极管闪烁报警电路原理图3.4.2 LCD显示报警电路的设计由于使用的LCM1602A液晶模块已经模块化,外围电路较为简单,不再给出。LCM1602A各引脚定义见表3.1所示。表3.8 LCM1602A引脚定义表3.5 各模块接口分配本
36、系统是以SPCE061A为控制器,故以其为中心进行接口分配。SPCE061A共有两个I/O口,共32位。其中IOB8,IOB9两口具有PWM脉宽调制输出的特殊功能,IOB2,IOB3具有外部中断源输入的特殊功能,故设计B口的IOB2,IOB9作为超声波测距模块外部中断输入和PWM信号输出接口。同时IOB11,IOB12,IOB13分别与LCD显示模块的三根控制线R/S,R/W,E连接。IOB0,IOB1两口与转接板CD4052的A0,A1相连,用于传感器测量通道的选通。A口的低8位作为LCD显示模块的数据口,IOA12,IOA13,IOA14三口与二极管闪烁报警模块的接口相连。4 超声波倒车雷
37、达系统的软件设计4.1 超声波测距原理本设计使用超声波脉冲法测距。声波在其传播介质中被定义为纵波。当声波受到尺寸大于其波长的目标物体阻挡时就会发生反射。超声波发射器发射信号后,计数器开始计数,当获得反射信号时,停止计数,并查看计数值N,通过计数值N得到超声波信号的传播时间t,则距离S可由如下公式获得:(4.1)其中速度V即超声波的传播速度可用下列式计算:(4.2)T环境温度()因为本次设计的超声波倒车雷达对环境温度的要求不高,故在本系统中无须添加温度补偿单元。假设室温下声波在空气中的传播速度是335.5m/s,测量得到的声波从声源到达目标然后返回声源的时间是t秒,则距离d可以由下列公式计算:(
38、4.3)由于声波经过的距离是声源与目标之间的两倍,声源与目标之间的距离应该是d/2。4.2 nSP IDE的项目文件管理的组织结构本设计使用的凌阳16位SPCE061A单片机,故软件的设计及调试都需要在SUNPLUS nSP IDE软件环境里实现。了解nSP IDE的项目文件管理的组织结构,无论是编写还是阅读代码,都会更为便利。如图4.1所示,IDE项目文件可分为源文件、头文件和外部支持文件。一般代码编写工作是在汇编源文件或C语言源文件进行的。当需要编写某写硬件驱动时,可能会需要编写C语言头文件,而其他文件一般不需要作变动。IDE项目文件管理组织结构源文件头文件外部支持文件*.asm*.cRe
39、source.asm*.rcr*.incin*.hhResource.inc*.txt*.binbimakefile图4.1 nSP IDE的项目文件管理的组织结构图4.3 软件架构本系统的软件部分拟包含以下几个模块来实现设计所需要的功能。主程序:主程序主要负责控制整个系统的工作流程,完成各函数的正常调用。功能上,该部分仅有超声波传感器通道选通功能,这样主程序较为简洁,便于阅读与调试。系统程序:主要包括system.c文件。其完成的功能有:系统端口初始化、测量结果处理、二极管闪烁刷新及LCD输出显示。超声波测距程序:该部分程序主要包括ultrsonic_App.c和IRQ.c的部分文件。该部分
40、主要完成超声波测距的控制,输出结果处理等功能。中断程序:主要包括IRQ.c和isr.asm文件,前者包括超声波测距所需要的外部中断服务代码,显示刷新服务代码等。后者包括语音播放程序中断服务代码。语音播放程序:主要包括Speech.c文件。该部分主要用于实现对外的语音播放功能。LCD初始化及驱动程序:主要包括1062LCD.asm和LCD1602_User.h文件。该部分实现LCD初始化和LCD读写命令等功能。4.4 各模块程序的设计4.4.1 主程序的设计系统初始化通道选择(ch)完成一次测距测距数据处理延时20msch2?通道清零(ch=0)NY开始图4.2 主程序流程图如图4.2所示为主程
41、序流程图。由于系统的各功能基本由各模块完成,所以主程序的流程并不复杂。图中,延时部分由系统提供的IRQ4的1KHz中断来提供,通道选择即由IOB1,IOB2两个I/O端口的输出状态选通CD4052的通道,以决定当前将进行哪个模块的测距工作,三个超声波测距模块将不断地交替探测障碍物的存在与否。4.4.2 超声波测距程序的设计超声波测距程序的设计,是整个系统最为重要的部分。考虑到三个超声波测距模块的选通工作已由主程序完成,故这部分主要叙述一个超声波测距模块测距程序的设计。为了保证超声波测距结果的准确性,每一个由回波信号获得的测量值将经过两次参数不同的测距得到,而对同一个障碍物将六次进行测距,获得的
42、六个测量值中非零值的平均数才会最终返回到单片机供输出部分调用。该部分的流程图见图4.3所示。当调用测距函数进行测距时,IOB9口将输出由TimerB产生的40KHz的PWM信号,对于短距离测距,该信号将持续0.5毫秒左右,发出20个以上40KHz的脉冲信号。此时关闭系统中断,将TimerB设置为计数模式,用于计量超声波信号从发射到接收的间隔时间;将TimerA设置为计时模式,提供避开余波开扰的延时,该部分的延时时间将由测试距离和PWM信号发射信号的持续时间来决定,对与短距离测距,本系统的延时时间在0.3毫秒左右。经过延时,打开EXT1外部中断,TimerB开始对回波信号的脉冲数进行计数。当EX
43、T1检测到回波信号的脉冲时,会在中断服务程序中读取TimerB的计数值。该计数值经过处理换算即可得到相对于障碍物距离。若EXT1没有接收到回波信号会重新设置参数,再进行一次较远距离的测试,其工作流程与短距离测距完全一致。若两次测试EXT1都没有接收到回波信号则表明系统工作范围内无障碍物。测距参数设定TimerB产生PWM波延时设置TimerB用计时延时开EXT1外部中断测距是否完成?Exit_flag=1?是否接收到回波信号?Exit_IRQ_flag=1?测距是否超时?开始测距结果处理Exit_flag=0进行一次远距离测距Exit_flag=0结束YNNYYN图4.3 超声波测距程序流程图
44、4.4.3 语音播放程序的设计语音播放程序采用凌阳A2000语音压缩算法来满足设计要求。A2000语音压缩算法具有高质量、高码率等特点,适用于播放高保真语音/音乐。本系统所需要播放的语音资料总容量不大,可直接保存来SPCE061A的内部FLASH上,无须外接存储芯片,使用A2000语音算法非常合适。由于语音部分已由凌阳公司提供相应的语音库函数,播放语音时直接调用对应的接口函数(API)即可实现该部分的功能。该部分的程序流程图见图4.4所示。开始是否超过3秒开语音中断中断初始化语音播放初始化停止播放播放服务程序结束当前播放结束?NNYY图4.4 语音播放程序流程图从流程图上可以看出,为了避免多次
45、语音播放重复和播放过于频繁,在语音播放之间添加了基于IRQ5的2Hz中断来进行延时。只有当距离上次语音播放的时间间隔超过3秒时,下一次的语音播放才会被系统允许。4.4.4 二极管闪烁程序的设计二极管闪烁报警模块的三个发光二极管是直接与SPCE061A的IOA12、IOA13、IOA14三个口相连的。为了实现设计所要求的当探测到障碍物时,二极管以一定频率闪烁,且距离越近闪烁频率越高的这一功能,该部分设置了用于保存对应超声波测距模块频率设置初值的三个变量及三个用于控制输出反转的计数器。当输入的频率初值不为零时,该计数器就会不断地计数,当计数器中的计数值溢出时,对输出的状态取反,重新送初值,如此周而
46、复始即可满足该部分的设计要求。该部分的程序流程图见图4.5所示。开始初值是否为0?计数器开始计数输出状态取反结束是否溢出?YYNN图4.5 二极管闪烁程序流程图4.4.5 LCD初始化及驱动程序的设计LCM1602A液晶显示模块共有3根控制线,LCD初始化及驱动程序的设计便是在参考该部分时序图的基础上,对这3根控制线进行操作来完成的。LCD初始化流程图见图4.6所示,LCDM1602A的读写时序见图4.7所示。开始显示模式选择延时1.53ms结束延时显示开刷屏延时延时图4.6 LCD初始化及驱动程序流程图5 超声波倒车雷达系统的整体调试5.1 故障调试及解决方式一、SPCE061A接收不到超声波回波信号。首先检查超声波模块上使用的各电容电阻值是否符合设计要求,若部分没有问题,则问题可能出之以下几点:1超声波发射头与接收头安装位置不合适。安装位置不合适也存在两种不同的情况,如图5.1所示。即发射头与接收头没有安装在同一个平面,发射头与接收头之间的间距不合适。与一般的声波信号不同,超声波具有束射特性,其发出的声波具有较强的方向性,若发射头与接收头安装位置不合理,很容易发生无法接收到回波信号的问题。发射头接收头发射头接收头障碍物障碍物错误错误正确正确