• 2.03 MB
  • 2022-04-22 13:35:17 发布

倒车雷达系统的设计毕业论文.doc

  • 44页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'倒车雷达的设计倒车雷达系统的设计毕业论文目录摘要IAbstractII1引言-4-1.1倒车雷达简介-4-1.2系统芯片选用-4-2系统总体方案-5-2.1系统硬件结构-5-2.2系统实现功能-5-3核心器件简介-7-3.1SPCE061芯片-7-3.1.1SPCE061A简介-7-3.1.2芯片特性-8-3.2SPCE061A精简开发板-9-3.3超声波测距模组-10-3.4转接板-13-4系统硬件设计-16-4.1SPCE061A-16-4.1.1SPCE061A-16-4.1.2电源模块-16-4.1.3放音模块-17-4.2超声波测距模组电路原理-18-4.2.1超声波谐振频率发生电路,调理电路-18-4.2.2超声波回波接受处理电路-18-4.2.3超声波测距模组电源接口-19-4.2.4超声波测距模式选择跳线-19-4.2.5超声波测距模组接口-20-4.3转接板电路-20-4.4显示电路-21-5系统软件设计-22-5.1超声波测距原理-22-5.2软件结构-23-5.3各模块程序说明-23-5.3.1超声波测距程序-23-5.3.2语音播放程序-27-5.3.3显示刷新程序-29-5.3.4主程序-30--43- 倒车雷达的设计6连接与操作说明-33-结论-36-致 谢-37-参考文献-38-附录-39-1引言1.1倒车雷达简介倒车雷达又称泊车辅助系统,是汽车泊车安全辅助装置,能以声音或者更为直观的显示告知驾驶员周围障碍物的情况,解除了驾驶员泊车和起动车辆时前后左右探视所引起的困扰,并帮助驾驶员扫除了视野死角和视线模糊的缺陷,提高了安全性。一般由超声波传感器(俗称探头)、控制器和显示器等部分组成,现在市场上的倒车雷达大多采用超声波测距原理,驾驶者在倒车时,启动倒车雷达,在控制器的控制下,由装置于车尾保险杠上的探头发送超声波,遇到障碍物,产生回波信号,传感器接收到回波信号后经控制器进行数据处理,判断出障碍物的位置,由显示器显示距离并发出警示信号,得到及时警示,从而使驾驶者倒车时做到心中有数,使倒车变得更轻松。倒车雷达的提示方式可分为液晶、语言和声音三种;接收方式有无线传输和有线传输等。本方案采用语音提示的方式,利用SPCE061A单片机所具备的单芯片语音功能,外接三个超声波测距模组,组成一个示例的倒车雷达系统,语音提示报警(0.35m~1.5m)范围内的障碍物。1.2系统芯片选用倒车雷达选用80C51和凌阳16位单片机SPCE061A都能实现,但是再本次设计中我最终选用的是凌阳16位单片机SPCE061A来实现,具体原因是因为凌阳16位单片机SPCE061A在使用上要比80C51系列更强大,也更便于应用,但最为主要的原因是凌阳16位单片机SPCE061A在功能上多了语音播放和语音识别功能这就给本次的倒车雷达系统的设计更完善同时也减少了其他不必要的设计。”-43- 倒车雷达的设计2系统总体方案2.1系统硬件结构本系统以SPCE061A为核心,使用凌阳科技教育推广中心的61板,三个超声波测距模组依次排布,组成线阵的传感器阵列;另外,接有转接板、发光二极管显示模块。系统组成以下图所示:图2.1系统硬件结构图SPCE061A单片机作为主控芯片,通过I/O端口来控制CD4052,以选择不同的传感器通道;本方案采用IOB0和IOB1控制CD4052的A0和A1,而IOB2作为检测超声波模组返回的信号,IOB3作为控制超声波模组发射超声波信号的使能控制端口。这样通过CD4052的通道切换,就可以利用较少的端口来完成多个模组的切换使用了。另外,超声波测距模组采用的是脉冲测量法,其实是测量发射超声波的时刻与接收到反射回波信号的时刻之间的时差,利用超声波在空气中传播速度已知的条件,计算出被测目标与传感器之间的距离。而为了保证测量的可靠,检测回波信号时,采用SPCE061A的外部中断对回波的上升沿进行检测,而且利用定时器B进行计时。在显示控制方面,系统分别利用IOA8、IOA9、IOA10三个端口控制三个发光二极管。2.2系统实现功能利用SPCE061A单片机、三个超声波测距模组实现超声波倒车雷达,要求具有下述功能:-43- 倒车雷达的设计(1)2米之内探测到障碍物(2)自动显示距离(3)倒车语音提示本方案要求所有的语音资源、程序代码都存放在一颗SPCE061A片内Flash当中;当语音播报时,如检测到左后方有障碍物,则用语音播放:“左后方”,如右后方有障碍物,则语音播方“右后方”;当检查到中间的传感器探测范围内有障碍特时,语音播放:“后方”。而连续播放提示的间隔,要大于或等于3秒,以免过于频繁的播报语音。3核心器件简介本系统采用SPCE061A单片机作为主控制器,传感器模块采用凌阳大学计划的“超声波测距模组”。另外,为了使这三个传感器模块能够组合在一起,并且可靠的工作,还需要一个转接板,可以利用4052模拟开关器件制作;需要外接三个发光二极管。下面分别介绍这些模块的特性。3.1SPCE061芯片3.1.1SPCE061A简介SPCE061A是凌阳科技研发生产的性价比很高的一款十六位单片机,具有易学易用、效率较高的一套指令系统和集成开发环境。在此环境中,支持标准C语言,可以实现C语言与凌阳汇编语言的互相调用,并且,提供了语音录放和语音识别的库函数,只要了解库函数的使用,就会很容易完成语音录放,这些都为软件开发提供了方便的条件:SPCE061A片内还集成了一个ICE(在线仿真电路)接口,使得对该芯片的编程、仿真都变得非常方便,而ICE接口不占用芯片上的硬件资源,结合凌阳科技提供的集成开发环境(unSPIDE),用户可以利用它对芯片进行真实的仿真;而程序的下载(烧写)也是通过该接口实现。下图为SPCE061A单片机的内部结构框图-43- 倒车雷达的设计图3.1SPCE061内部结构图3.1.2芯片特性Ø16位μ’nSP微处理器;Ø工作电压:内核工作电压VDD为3.0~3.6V(CPU),IO口工作电压VDDH为VDD~5.5V(I/O);ØCPU时钟:0.32MHz~49.152MHz;Ø内置2K字SRAM;Ø内置32K闪存ROM;Ø可编程音频处理;Ø晶体振荡器;Ø系统处于备用状态下(时钟处于停止状态),耗电小于2μA@3.6V;Ø2个16位可编程定时器/计数器(可自动预置初始计数值);Ø2个10位DAC(数-模转换)输出通道;Ø32位通用可编程输入/输出端口;Ø14个中断源可来自定时器A/B,时基,2个外部时钟源输入,键唤醒;Ø具备触键唤醒的功能;Ø使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据;Ø锁相环PLL振荡器提供系统时钟信号;Ø32768Hz实时时钟;Ø7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器;-43- 倒车雷达的设计Ø声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能;Ø具备串行设备接口;Ø低电压复位(LVR)功和低电压监测(LVD)功能;Ø内置在线仿真(ICE,In-CircuitEmulator)接口。Ø3.2SPCE061A精简开发板SPCE061A精简开发板(简称61板),是以凌阳16位单片机SPCE061A为核心的精简开发-仿真-实验板,大小相当于一张扑克牌,是“凌阳科技大学计划”专为大学生、电子爱好者等进行电子实习、课程设计、毕业设计、电子制作及电子竞赛所设计的,也可作为单片机项目初期研发使用。61板除了具备单片机最小系统电路外,还包括有电源电路、音频电路(含MIC输入部分和DAC音频输出部分)、复位电路等,采用电池供电,方便学生随身携带!!!使学生在掌握软件的同时,熟悉单片机硬件的设计制作,锻炼学生的动手能力,也为单片机学习者和开发者创造了一个良好的学习条件和开发新产品的机会!61板上有调试器接口(Probe接口)以及下载线(EZ_Probe)接口,分别可接凌阳科技的在线调试器、简易下载线,配合unSPIDE,可方便地在板上实现程序的下载、在线仿真调试。61板上的主要功能模块如下:ØSPCE061A单片机最小系统外围电路模块;Ø电源输入模块;Ø音频电路(包含MIC输入、DAC音频功放输出)模块;Ø按键模块;ØI/O端口接口模块;Ø调试、下载接口模块;下图为61板的实物图-43- 倒车雷达的设计图3.261板实物图3.3超声波测距模组超声波测距模组是为方便学生进行单片机接口方面的学习专门设计的模块,超声波测距模组可以方便地和61板连接,可应用在小距离测距、机器人检测、障碍物检测等方面,可用于验证方车辆倒车雷达以及家居安防系统等应用方案验证。下图3.3为超声波测距模组的结构框图:图3.3超声波测距模组结构图-43- 倒车雷达的设计主要功能:三种测距模式选择跳线J1(短距、中距、可调距):1.短距:10cm~80cm左右(根据被测物表面材料决定);2.中距:80cm~400cm左右(根据被测物表面材料决定);3.可调:范围由可调节参数确定;使用方法:一般应用时,只需要用10PIN排线把J8与SPCE061A的IOB低八位接口接起来,同时设置好J7、J1、J2跳线就完成硬件的连接了。不同测距模式的选择只需改变测距模式跳线J1的连接方法即可。提供给模组的电源必须在4.5V以上,而且尽量保持电源电压的稳定。模组工作的性能与被测物表面材料有很大关系,如毛料、布料对超声波的反射率很小,会严重影响测量结果。电源输入:模组提供了两种电源输入方式,一为用61板通过10PIN排线为模组供电(61板上J5选择5V要求最好不要低于4.5V),此时要把J9跳到5V的一端;另一为直接为模组供电,通过模组上的电源输入口J7引入,此时需要把J9跳线跳到IN的一端。外接电源仅是为了给模组提高超声波发射功率、提高后级运放性能用,最高不要超过12V。模组外接电源接口(J7)以及供电方式选择跳线(J9)如图3.4所示:图3.4模组外接电源接口及供电方式选择跳线-43- 倒车雷达的设计测距模式选择:声波测距时,超存在余波干扰问题,所以针对不同测距范围会有不同的处理方法。模组提供了测距模式选择跳线(J1),可以选择短距测量模式、中距测量模式,或距离可调模式。而针对前两种测量模式,提供了不同参数的范例程序,跳线选择不同的模式时,要选用相对应的程序进行测量;跳线选择LOW时为近距测量模式,选择HIG时为中距测量例程,选择SET时为距离可调模式;凌阳科技大学计划网站上提供了短距测量模式和中距测量模式的完整源程序。如果用户对超声波测量原理有较深的了解,可以选用距离可调(SET)模式。模组测距模式(测量距离范围)选择跳线J1如图3.5所示:图3.5模组测距模式选择跳线使用方式:使用时,用户需把前面的电源输入跳线J7、模式选择跳线J1设置好后,还要把跳线J2短接起来,然后利用排线把J8与SPCE061A的IOB口低八位端口相接,即可使用了。使用时J2跳线和J8跳线的连接方法如下图3.6所示:-43- 倒车雷达的设计图3.6J2跳线和J8接口的位置示意图3.4转接板因为使用多组超声波模组,本方案需要使用一块CD4052模拟开关制作的转接板。本方案设计,会涉及到多路传感器选通控制,所以为了可靠地实现硬件的连接,需要制作一个利用模拟开关设计的转接板。超声波测距模组在使用时,只需要两个端口就可完成测距,一个控制超声波的发射,一个是检测超声波信号的接收信号;而在超声波测距模组中,这两个信号都为数字信号,对模拟开关的要求并不严格,所以选用CD4052作为模拟开关器件。CD4052相当于一个双刀四掷开关,开关接通哪一通道,由输入的2位地址码A0、A1来决定。其真值表见下表。“/E”是禁止端,当“/E”=1时,各通道均不接通。此外,CD4051还设有另一个电源端VEE,以作为电平位移时使用,从而使得通常在单组电源供电条件下工作的CMOS电路所提供的数字信号能直接控制这种多路开关,并使这种多路开关可传输峰-峰值达15V的交流信号。例如,若模拟开关的供电电源VDD=+5V,VSS=0V,当VEE=-5V时,只要对此模拟开关施加0~5V的数字控制信号,就可控制幅度范围为-5V~+5V的模拟信号。-43- 倒车雷达的设计表1CD4052的真值表INPUTSCHANNELONA1A0LLLLHLLHHXLHLHXY0A-ZA:Y0B-ZBY1A-ZA:Y1B-ZBY2A-ZA:Y2B-ZBY3A-ZA:Y3B-ZBnone-43- 倒车雷达的设计图3.7CD4052的内部结构图图3.8CD4052的引脚图-43- 倒车雷达的设计4系统硬件设计4.1SPCE061A4.1.1SPCE061ASPCE061A最小系统包括SPCE061A芯片及其外围基本模块,外围基本模块有:晶振输入模块(OSC)、锁相环外围电路(PLL)、复位电路(RESET)、指示灯(LED)等,如下图所示。图4.1SPCEA061A最小系统-43- 倒车雷达的设计本系统,有关SPCE061A单片机最小系统的各个模块都做在61板中,读者可以查阅61板的电路原理图。4.1.2电源模块SPCE061A的内核供电为3.3V,而I/O端口可接3.3V也可以接5V,所以在电源模块(61板上)中有一个端口电平选择跳线,如图中的J5,但是为了本系统可以可靠的工作,需要给61板外接5V的电源,并将61板的端口电平选择为5V,即J5用跳线帽将V5和VDDH短接。下图为61板上的电源模块图。图4.2电源模块由于本系统需要的端口高电平为5V,所以图4.2当中的J5跳线需要跳到1和2上。4.1.3放音模块语音提示。放音利用的是SPCE061A内部的DAC,电路如图4.3所示。图中的SPY0030是凌阳公司的产品。和LM386相比,SPY0030还是比较有优势的,比如LM386工作电压需在4V以上,而SPY0030仅需2.4V(两颗电池)即可工作;LM386输出功率100mW以下,SPY0030约700mW。其他特性请参考SPY0030的数据手册。-43- 倒车雷达的设计图4.3放音模块电路图4.2超声波测距模组电路原理4.2.1超声波谐振频率发生电路,调理电路NE555和电容电阻组成的电路产生40KHz的方波,以使超声波传感器产生谐振;而后面的CD4049则对40KHz频率信号进行调理。PLUS_EN1是超声波信号发射的使能控制端口,当该端口接低电平时,模组将不能发射超声波信号,即40KHz的方波。图4.4超声波谐振频率发生电路、调理电路4.2.2超声波回波接受处理电路超声波接收处理部分电路前级采用NE5532构成10000倍放大器,对接收信号进行放大;后级采用LM311比较器对接收信号进行调整,比较电压为LM311的3管脚处,可由J1跳线选择不同的比较电压以选择不同的测距模式。在放大器与比较器之间用PNP三极管(8550)作为通路选择,本方案需要将此通路选择跳线短接上,即把J2短接,固定使三极管导通即可。-43- 倒车雷达的设计图4.5超声波回波接受处理电路4.2.3超声波测距模组电源接口J7为超声波测距模组的外部电源接口,最高电压不要超过12V,J9为电源选择跳线,VCC_5即为由61板通过10PIN排线引入模组的电源;VCC即为模组的放大器、调理电路供电电源。当用户使用61板为其供电时,要把VCC与VCC_5V短接(本方案的用法);而使用外部电源时要把VCC与VCC_IN短接。图4.6外部单独电源输入接口及选择跳线4.2.4超声波测距模式选择跳线模组提供了测距模式选择跳线J1,可以选择短距测量模式、中距测量模式,或距离可调模式。跳线选择LOW时为近距测量模式,选择HIG时为中距测量模式;选择SET时为距离可调模式。本方案采用可调方式,即选择SET的模式,并将调节模组上的电位器,将比较电压调至3.5~3.2V(保证模组测距能在0.35~1.5M的范围都能正常工作即可)。-43- 倒车雷达的设计图4.7测距模式选择跳线4.2.5超声波测距模组接口本方案采用的三个超声波测距模组都是利用其J8接口,每个模组接出两个控制、检测端口,然后会通过CD4052模拟开关进行选通,所以在实际使用当中,是分时地对每一个模组进行操作。超声波测距模组的J8接口如所图4.8示;图中的VCC_5在本方案当中由61板供电,即5V。图4.8超声波测距模组接口4.3转接板电路前面已简单介绍了转接板的作用,这里介绍一下它的原理图,如图4.9所示。图中J1直接与61板的J6相接,即与61板的IOB口低八位接口相接,可知图中的VDD为61板供电,即5V;而A0和A1分别接SPCE061A的IOB0和IOB1,以控制CD4052的两个地址位,以控制通道的选通。IOB2接PLUS_B,作为回波信号的检测输入,不过经过CD4052的选通,接到哪一个模组,由IOB0和IOB1的输出决定;同样COM_EN为超声波测距模组的信号发射使能控制,接到SPCE061A的IOB3。CD4052的另外一端,接出COM_EN1/2/3分别接三个模组的发射使能,另外还用三个10K的电阻下拉到地,以保证没有选通的模组不会发射出超声波信号。J2、J3、J4分别接三个超声波测距模组的J8接口。-43- 倒车雷达的设计图4.9转接板电路原理4.4显示电路本设计采用发光二极管来实现显示功能。发光二极管简称LED,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。当在发光二极管PN结上加正向电压时,PN结势垒降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式出现,因此而发光。发光二极管在制作时,使用的材料有所不同,那么就可以发出不同颜色的光。发光二极管的发光颜色有:红色光、黄色光、绿色光、红外光等。显示电路较为简单,本设计中单片机系统分别利用I/OA8、I/OA9、I/OA10三个端口,三个I/O口通过软件来实现控制三个发光二极管,通过判断二极管的亮灭来实现倒车雷达功能。-43- 倒车雷达的设计5系统软件设计5.1超声波测距原理超声波脉冲法测距原理:声波在其传播介质中被定义为纵波。当声波受到尺寸大于其波长的目标物体阻挡时就会发生反射;反射波称为回声。假如声波在介质中传播的速度是已知的,而且声波从声源到达目标然后返回声源的时间可以测量得到,那么就可以计算出从声波到目标的距离。这就是本系统的测量原理。这里声波传播的介质为空气,采用不可见的超声波。假设室温下声波在空气中的传播速度是335.5m/s,测量得到的声波从声源到达目标然后返回声源的时间是t秒,距离d可以由下列公式计算:d=33550(cm/s)×t(s)因为声波经过的距离是声源与目标之间距离的两倍,声源与目标之间的距离应该是d/2。超声波测距模组信号:图5.1为超声波模组上三极管Q1的集电极处测量的波形图,此时J2跳线短接,使Q1始终导通;而传感器距目标面的距离为2米。图5.1超声波信号测量图图中的波形为示波器抓拍图,1通道为Q1集电极测得波形,即上方的波形;通道2为发射端测得波形。图中可见,接收回路中测得的超声波信号共有两个波束,第一个波束为余波信号,即超声波接收头在发射头发射信号(一组40KHz的脉冲)后,马上就接收到了超声波信号,并持续一段时间。另一个波束为有效信号,即经过被测物表面反射的回波信号。-43- 倒车雷达的设计超声波测距时,需要测的是开始发射到接收到信号的时间差,在上图中就可看出,需要检测的有效信号为反射物反射的回波信号,故要尽量避免检测到余波信号,这也是超声波检测中存在最小测量盲区的主要原因。软件控制脉冲发射、检测回波信号:程序设计时需要采用脉冲测量法,由SPCE061A控制模组发生40KHz的脉冲信号,每次测量发射的脉冲数至少要12个完整的40KHz脉冲(程序中为20个左右)。同时发射信号前要打开计数器,进行计时;等计时到达一定值后再开启检测回波信号,以避免余波信号的干扰。采用外部中断对回波信号进行检测(回波信号送到单片机的为一序列方波脉冲)。接收到回波信号后,马上读取计数器中的数值,此数据即为需要测量的时间差数据。为避免测量数据的误差,程序中对测距数据的处理方法是:每进行一次测距,利用时基中断测量4次,即取得4组数据,经过处理后得到这一次测距值。5.2软件结构本方案的软件系统主要包含下列模块:超声波测距程序:负责超声波测距的控制、结果计算等,另外有部分代码在中断服务程序中,主要码在UserFunction.c以及IntDocument.c文件。语音播放程序:语音播放控制,主要代码在Speech.h,而语音中断服务程序在isr.asm文件中,但为了使语音播放程序在初始化时不影响用户的其它中断,在isr.asm中还有一个中断初始化程序。中断程序:主要指IntDocument.c文件,包括超声波测距的中断服务代码,以及用于显示刷新的IRQ4中断服务程序。系统程序:主要指system.c文件,包含系统端口初始化、测量结果处理、以及显示刷新程序。主程序:主控程序负责控制整个系统的工作流程。5.3各模块程序说明5.3.1超声波测距程序主程序流程图以及相关的程序流程图如图5.2所示-43- 倒车雷达的设计图5.2主程序流程图测距控制程序Demo程序中,超声波测距的功能函数流程图见图5.3。用户需要先调用测距初始化函数InitMeasure(),再调用该函数BeginMeasure()即可进行一次测距操作,函数返回值为测量结果。每一次测距要进行四次测量,这四次的测量结果需要经过处理后才可得到最终的测距返回值,而四次测量的控制以及测量结果的处理都是在这个函数中完成的,具体的处理方法:每一次测距中的四次测量的间隔时间用16Hz的时基中断来控制;每一次测量,先发射20个40KHz脉冲(参见16Hz中断),然后使能测量时间基准计数器,当计数到4ms时,打开EXT1外部中断,等待回波反射到接收头。四次测量全部完成后,再对测量的结果进行处理、换算,以及出错处理,用户可以根据不同的应用对数据处理部分的程序作适当的调整。其中等待4ms-43- 倒车雷达的设计的原因:压电式的电声传感器存在余波干扰,而有部份声波会沿电路板直接传到接收头,经接收电路的放大后,系统就有可能把它误认为是反射回来的回波信号。超声波测距的功能函数流程图见图5.3。用户需要先调用测距初始化函InitMeasure(),再调用该函数BeginMeasure()即可进行一次测距操作,函数返回值为测量结果。每一次测距要进行四次测量,这四次的测量结果需要经过处理后才可得到最终的测距返回值,而四次测量的控制以及测量结果的处理都是在这个函数中完成的,具体的处理方法:每一次测距中的四次测量的间隔时间用16Hz的时基中断来控制;每一次测量,先发射20个40KHz脉冲(参见16Hz中断),然后使能测量时间基准计数器(本方案当中使用TimerB),当计数到预设延时后,打开EXT1外部中断,等待回波反射到接收头。四次测量全部完成后,再对测量的结果进行处理、换算,。其中等待预设延时的原因:压电式的电声传感器存在余波干扰,而有部份声波会沿电路板直接传到接收头,经接收电路的放大后,系统就有可能把它误认为是反射回来的回波信号。-43- 倒车雷达的设计图5.3超声波测距子函数流程图16Hz时基中断处理程序16Hz的时基中断处理程序里,主要进行检查上次测量是否超时,若超时便会转到超时处理程序;然后进行下一次的测量启动,即再次发送20个40KHz方波脉冲。16Hz中断流程图6.16Hz中断流程图。-43- 倒车雷达的设计图5.416Hz中断流程图EXT1外部中断程序当回波触发控制器的外部中断后,程序会转到EXT1外部中断服务子程序中,读取测量结果,并作数据的初步处理。流程图如下:图5.5EXTI外部中断流程图5.3.2语音播放程序全方案采用A2000的语音压缩算法,播放A2000格式的语音资源,作为语音提示的功能;为了让系统在语音播放期间,其它的中断能照常工作;因此在每一次语音播放前,进行中断的初始化操作,实际上是利用了SACM-43- 倒车雷达的设计语音库当中使用到的一个中断设置变量:R_InterruptStatus。该变量在语音库支持文件:hardware.asm当中定义;每次进行语音播放的初始化操作时,语音库当中会从该变量读取之前用户设置的中断,并以此为基础设置语音库进行语音播放所需要打开的中断。所以,中断的初始化操作,也就是将当前中户的中断设置情况写入变量:R_InterruptStatus当中即可。另外,为了防止语音播报过于频繁,本方案采用2Hz时基进行计数,每次播放语音提示前,先判断距离上一次语音提示的播放是否超过3秒(即2Hz中断当中计数6次以上)?如超过则可以进行这次的播放,如果不符合要求,则退出。图5.6为语音播放程序的流程图:图5.6语音播放程序流程图IRQ5的2Hz中断服务程序当中,对一个用于计数(时)的变量进行累加,以配合语音播放程序当中对两次播放的时间间隔的判断。为了避免出现不断累加,而溢出清零,在中断服务程序当中加入了限制,即当计数的变量计数值大于6(即超过了3秒),则关闭IRQ5的2Hz中断;等待下次播放语音时再打开2Hz中断。2Hz中断服务程序的流程图如图5.6:-43- 倒车雷达的设计另外,语音播放程序还需要在FIQ的TimerA中断当中,调用语音播放的中断服务程序;由于比较简单,这里就不多作介绍,用户可以查看相关的实验指导书,原理上都是一样的。5.3.3显示刷新程序本方案使用IOA8、IOA9、IOA10三个端口控制三个发光二极管(LED)作为显示,每一个LED对应一个超声波测距模组,当探测到0.35m~1.5m的范围内没有障碍物时,对应的LED是常灭的;当探测到0.35m~1.5m的范围内有障碍物时,对应的LED则以一定频率闪烁,而且距离越近则闪烁的频率越高。系统以IRQ4的1KHz中断对显示进行扫描,并设置有三个变量保存对应传感器模组的频率设置数据,即Show_Freq_Set[0]、Show_Freq_Set[1]、Show_Freq_Set[2]。当频率设置数据的值为0时,系统则不对对应的LED进行显示翻转,则对应的LED不会闪烁;此外,系统还定义有三个变量(Show_Counter_1KHz[x],x=0~2)作为1KHz的计数器,对应用个LED,而当频率设置数据不为0时,计数器会不断地计数(以1KHz),当计数器的计数值累加到与频率设置数据一样时,则会使对应的LED显示状态进行输出翻转,并对计数器进行清零,周而复始。由此可知,当频率设置数据非零时,该数据越小,则对应LED的闪烁频率越高。-43- 倒车雷达的设计图5.7显示刷新程序图5.7为在IRQ4的1KHz中断程序当中调用的显示刷新程序流程图。注:图5.7当中仅给出了针对一路传感器模组状态显示的流程图,即Show_Freq_Set[0]的,其它两个LED的显示刷新程序流程图也一样类似,这里就不再给出。5.3.4主程序由于很多处理操作在中断当中完成了,所以本方案的主程序并不复杂,图5.8为本方案的主程序流程图。图中,系统使用的中断主要指IRQ4的1KHz中断,而测量通道选择即通过I/O端口选通CD4052的通道,以决定当前的测量是对哪一个超声波测距模组。-43- 倒车雷达的设计图5.8主程序流程图通过主程序流程图可看出,系统是在不断的对三组超声波测距模组进行测距操作,并将每次测距的结果进行处理,以更新对应的LED显示频率设置,以及在符合要求的条件下进行语音提示播放。在测距结果处理程序当中,系统会针对每一个通道的测距结果进行判断、处理;当某一通道的测距结果大于1.5m时,则让对应的LED保持灭的状态,并将该通道的显示频率设置数据设为0;当测距结果小于1.5m时,则设置对应的显示频率设置数据,数据的大小与测量的结果按一定比例成正比即可。当测距结果处理程序会对当前的三组超声波测距模组所探测到的障碍物的距离进行判断,当有某一组或者一组以上的模组探测到障碍物在0.35m~1.5m的范围内时,会进行语音提示的播放。-43- 倒车雷达的设计图5.9为测距结果处理程序。图中,后方、左后方以及右后方,表示的是三个不同的通道的超声波测距模组所测量的区域。图5.9测距结果处理程序流程图-43- 倒车雷达的设计6连接与操作说明由于本系统对电源有一定的要求,所以在制作时,需要给61板接入5V的电源(并非使用电源盒),并将61板上的端口电平选择跳线J5跳到5V一端,使端口的高电平为5V,并通过61板的I/O接口(J6)给转接板、超声波测距模组进行供电。本方案当中,可将转接板设计如图6.1所示;图中,J1接61板的J6,作为CD4052选通的控制端口,以及超声波测距的接口;J2~J4分别接三组超声波测距模组。图6.1转接板示意图而在使用超声波测距模组时,需要注意要将模组上的J2跳线短接,J1测距模式选择选在SET可调选项,并将模组上电位器调节,将比较电压调节至3.5V~3.2V之间。调节时,可测量J1靠近电位器的引针上的电压。另外,还需要将J9跳线设置在5V一端。整个系统的连线示意图如图6.2所示-43- 倒车雷达的设计图6.2系统连接示意图系统硬件连接好以后,便可以将程序下载到61板当中;针对本方案,凌阳科技教育推广中心提供了参考的程序范例,用户可以直接对程序进行编译、下载。Ø操作说明:按照前面所述制作好转接板、显示板后,再连接好61板和各个模组板,用户还需要为61板连接上电源(外接5V)、喇叭;如果之前没有下载本方案的参考程序,用户还需要将程序下载到61板中,并全速运行,然后才可以看到运行的情况,并对其进行操作。Ø下载参考程序:本方案的源代码提供在资料文件夹当中的“参考源代码”中的“Car_Radar”文件夹当中;直接打开其中的Car_Radar.spj文件,即可打开工程;然后对所打开的工程进行编译。确认编译无误后,然后再确认一下61板的连线是否连接好,以及下载线/调度器等的连接;如果一切有关下载的设置、连接无误,便可以下载运行程序。Ø调试:本系统操作方法比较简单,系统工作后用户无需对61板进行操作;开始测试时将开关至于ON状态,此时控制板上的电源指示灯就会亮起,说明此时控制器进入工作状态。将三个超声波测距模组列开,并用物体挡在超声波测距模组上探头正对的前面,只要距离在0.35m~1.5m之内,就会有间断的语音提示,以示对应的模组前面有障碍物。如果测试时障碍物与探头之间的距离在30cm左右,雷达能够正常工作,而两者之间在1.5m时,雷达不能正常工作,则说明电源的电压有点低;如果测试时障碍物与探头之间的距离在30cm左右,雷达不能够正常工作,则应检查各连线接口连接是否接好,元器件的完好情况,及电压稳定情况等。-43- 倒车雷达的设计按照本方案文档的接法,定义接1号模组的超声波测距模组为左后方探头,2号为正后方探头,3号为右后方探头。当各个位置的模组探头探测到障碍物,会有如下表中所示结果:情况一情况二情况三条件正后方、左后方与右后方有障碍物仅左后方有障碍物仅右后方有障碍物提示语音后方左后方右后方超声波测距模组V2.0版与61板进行中距测距应用接线实物图短/中距测距注意事项及声明:1.测距时保证传感器与被测物间,以及测量轴线上没有障碍物;2.尽量保证传感器轴线与被测物表面垂直;3.实际测距范围与被测物表面材料等因素有关,一般不要测量表面为毛料的物体表面。-43- 倒车雷达的设计结论通过这很长一段时间的毕业设计,又使我明白了很多也掌握了很多平时不会注意的知识点,也通过这次历时最长的设计之中我和同学之间的互动,我再次体会到了团结合作的重要性,一根筷子容易折断,一把筷子折不断的道理,还了解学习和理解了一下凌阳单片机和80C51的功能上的区别,还有其工作原理和各管脚的作用,本次设计是为应用平时所学设计倒车雷达系统,包括功能描述和元件符号。因为设计主要内容及要求有2米之内探测到障碍物,自动显示距离,倒车语音提示,所以,在这一基础上,我又学会了很多相关的重要知识,可以说毕业设计让我受益匪浅,这对于我今后的学习和工作也有相当大的帮助和启发,在不断地上网查资料和查书的过程中也使我对所有相关的课程有了更深的学习和理解,尤其是在敲打程序时,每一次在找错的同时也是一次对程序的了解和对过程的掌握,有错误才能有更好的设计和更多的领悟,也是带着这样的心情,我完成了这次的毕业设计和又一次的学习。-43- 倒车雷达的设计致 谢首先衷心地感谢我的导师李川老师,毕业设计从选择课题到完成论文,从理论原理的讲解到实际问题的解决,饱含着李川老师的心血他严谨细致、一丝不苟的作风一直是我工作、学习中的榜样。同时李川老师的悉心指导和建议也给了我极大的帮助和支持,使我受益匪浅。在论文即将完成之际,我的心情依然无法平静,从开始进入课题到论文的顺利完成,老师、同学、给了我无言的帮助,在这里请接受我诚挚的谢意!-43- 倒车雷达的设计参考文献[1]Shi-WeiLeeCheng-SongWu.DesignofanautomaticmeterreadingelectricityMetering[A],Proceedingofthe1996IEEEIECON22ndInternationalConference,1996.[2]MaruyamaK,KuN.AnOptimizedGatewayControllerForHomeAutomaticenterReadingSystem[A],ConsumerElectronics,1991IEEEInternationalConference,2001.[3]薛栋梁.CS-51单片机原理与运用(二)[M].中国水利出版社,2001.[4]王晓君,安国臣等.CS-51及兼容单片机原理与选型[M].电子工业出版社,2002.[5]张立科.单片机典型模块设计实例导航[M].人民邮电出版社,2006.[6]邻宽明.单片机器件外围适用手册[M].北京航空航天大学出版社,2002.[7]李少军,王厚军.适用接口技术[M].成都电子科技大学出版社,1998.[8]何立民.单片机应用系统抗干扰技术[M].北京航天航空大学出版社,1999.[9]顾永红.综述单片机应用系统的抗干扰技术[J].计算机自动测量与控制,2000NoB:51-53.[10]Fischer.RochelleA,Schulz.Noe1,Anderdon.GordonH,Informationmanagementforanautomatedmeterreadingsystem,ProceedingsoftheAmericanPowerConference,2002,62:150-154.[11]于万民,王合力.PC机与PIC单片机串行通讯的实现,现代电子技术,2003,18:26-28.[12]李学海.PIC单片机实践[M],北京:北京航空航天大学出版社,2004.[13]郝波,秦宏,李川模拟电子技术基础[M],西安电子科技大学出版社,2003[14]来清民.传感器与单片机接口及实例[M],北京航空航天大学出版社,2008[15]崔中勤.中外集成电路速查手册[M],电子工业出版社,1991[16]赵望达,陈建国,.基于MSC1210Y的铁路道口安全防护无线预警系统设计[J].电子质量,2005,(12).[17]王秀琴,赵金宪.单片机在智能报警系统中的应用[J].煤矿机械,2004,(10)[18]康华光.电子技术基础模拟部分(第五版).北京:高等教育出版社,2006[19]康华光.电子技术基础数字部分(第五版).北京:高等教育出版社,2006[20]罗亚非.凌阳16位单片机应用基础[M]北京:北京航空航天大学出版社,2003年12月第1版[21]薛钧义张彦斌虞鹤松樊波.凌阳十六位单片机原理及应用[M]北京:北京航空航天出版社2003年2月第1版[22]沈美明温冬蝉IBM-PC汇编语言程序设计[M]北京:清华大学出版社.2001年8月第二版-43- 倒车雷达的设计附录源程序清单;///////////////////////////////////////////////////////;              USEBY:超声波测距器                ;              IC     :AT89C51                    ;              TEL    :              ;              OSCCAL:XT  (12M)           ;              display:共阳LED显示              ;              Updata:2004/12/12           ;              NAME   :ZHOUSS            ;///////////////////////////////////////////////////////;测距范围7CM-11M,堆栈在4FH以上,20H用于标志;显示缓冲单元在40H-43H,使用内存44H、45H、46H用于计算距离;             VOUT    EQU    P1.0   ;红外脉冲输出端口  speak     equ  p1.1;********************************************;*            中断入口程序                *;********************************************;             ORG0000H                 LJMPSTART             ORG0003H                 LJMPPINT0             ORG000BH                 reti             ORG0013H        RETI        ORG001BH       LJMPINTT1        ORG0023H       RETI        ORG002BH        RETI   ;;********************************************-43- 倒车雷达的设计;*              主程序                  *;********************************************;           START:MOV    SP,#4FH                  MOV    R0,#40H    ;40H-43H为显示数据存放单元(40H为最高位)                  MOV    R7,#0BH      CLEARDISP:MOV    @R0,#00H                  INC    R0                  DJNZ   R7,CLEARDISP                  MOV    20H,#00H                  MOV    TMOD,#11H    ;T1为T0为16位定时器                  MOV    TH0,#00H     ;65毫秒初值                  MOV    TL0,#00H                  MOV    TH1,#00H                     MOV    TL1,#00H                  MOV    P0,#0FFH                  MOV    P1,#0FFH                  MOV    P2,#0FFH                  MOV    P3,#0FFH                  MOV    R4,#04H      ;超声波肪冲个数控制(为赋值的一半)                  SETB   PX0                  SETB   ET1                  SETB   EA                  SETB   TR1          ;开启测距定时器           start1:LCALLDISPLAY                   JNB   00H,START1   ;收到反射信号时标志位为1                   CLR   EA                   LCALLWORK         ;计算距离子程序                   clr   EA                                      MOV   R2,#32h;#64H     ;测量间隔控制(约4*100=400MS)             LOOP:LCALLDISPLAY                   DJNZ  R2,LOOP                                     CLR   00H                   setb       et0                   mov        th0,00h                   mov        tl0,00h                   SETB  TR1         ;重新开启测距定时器                   SETB  EA-43- 倒车雷达的设计                   SJMP  Start1;;****************************************************;*                   中断程序*                    *;****************************************************;T1中断,发超声波用    ;T1中断,65毫秒中断一次INTT1:         CLR    EA               CLR    TR0               clr    ex0               MOV    TH0,#00H               MOV    TL0,#00H               MOV    TH1,#00H               MOV    TL1,#00H               SETB   ET0               SETB   EA               SETB   TR0      ;启动计数器T0,用以计intt11:               CPL    VOUT           ;40KHZ               nop               nop               nop               nop               nop               nop               nop               nop               nop               DJNZ   R4,intt11                                      ;超声波发送完毕,               MOV    R4,#04H               lcall  delay_250      ;延时,避开发射的直达声波信号               SETB   EX0       ;开启接收回波中断               RETIOUT:       RETI;外中断0,收到回波时进入PINT0:         nop               jb    p3.2,pint0_exit-43- 倒车雷达的设计               CLR    TR0       ;关计数器                               CLR    EA        ;               CLR    EX0       ;               MOV    44H,TL0   ;将计数值移入处理单元               MOV    45H,TH0   ;               mov    th0,#00h               mov    tl0,#00h               jnb    p3.2,$               SETB   00H       ;接收成功标志pint0_exit:               RETI;;****************************************************;*                   显示程序                     *;****************************************************;40H为最高位,43H为最低位,先扫描高位         DISPLAY:MOV  R1,#40H;G                  MOV  R5,#7fH;G            PLAY:MOV  A,R5                  MOV  P0,#0FFH                  MOV  P2,A                  MOV  A,@R1                  MOV  DPTR,#TAB                  MOVCA,@A+DPTR                  MOV  P0,A                  LCALLDL1MS                  INC  R1                  MOV  A,R5                  JNB   ACC.4,ENDOUT;G                  RR   A                  MOV  R5,A                  AJMPPLAY          ENDOUT:MOV  P2,#0FFH                  MOV  P0,#0FFH                  RET;           TAB:  DB18h,7Bh,2Ch,29h,4Bh,89h,88h,3Bh,08h,09h,0ffh-43- 倒车雷达的设计;共阳段码表           "0""1""2"  "3""4""5""6""7""8""9""不亮""A""-";;****************************************************;*                   延时程序                     *;****************************************************;            DL1MS:                       push   06h                       push   07h                       MOV   R6,#14H            DL1:  MOV   R7,#19H            DL2:  DJNZ  R7,DL2                   DJNZ  R6,DL1                   pop        07h                   pop        06h                   RET;;****************************************************;*       距离计算程序(=计数值*17/1000cm)         *;****************************************************;work:    PUSHACC         PUSHPSW         PUSHB         MOV  PSW,#18h         MOV  R3,45H         MOV  R2,44H         MOV  R1,#00D         MOV  R0,#17D         LCALLMUL2BY2         MOV  R3,#03H         MOV  R2,#0E8H         LCALLDIV4BY2         LCALLDIV4BY2         MOV  40H,R4         MOV  A,40H-43- 倒车雷达的设计         JNZ  JJ0         MOV  40H,#0AH   ;最高位为零,不点亮JJ0:     MOV  A,R0         MOV  R4,A         MOV  A,R1         MOV  R5,A         MOV  R3,#00D         MOV  R2,#100D         LCALLDIV4BY2         MOV  41H,R4         MOV  A,41H         JNZ  JJ1         MOV  A,40H   ;次高位为0,先看最高位是否为不亮         SUBBA,#0AH         JNZ  JJ1         MOV  41H,#0AH;最高位不亮,次高位也不亮JJ1:     MOV  A,R0         MOV  R4,A         MOV  A,R1         MOV  R5,A         MOV  R3,#00D         MOV  R2,#10D         LCALLDIV4BY2         MOV  42H,R4         MOV  A,42H         JNZ  JJ2         MOV  A,41H   ;次次高位为0,先看次高位是否为不亮         SUBBA,#0AH         JNZ  JJ2         MOV  42H,#0AH;次高位不亮,次次高位也不亮JJ2:     MOV  43H,R0         POP  B         POP  PSW         POP  ACC         RET;;****************************************************;*           两字节无符号数乘法程序               *-43- 倒车雷达的设计;****************************************************;R7R6R5R4<=R3R2*R1R0;MUL2BY2:CLR  A         MOV  R7,A         MOV  R6,A         MOV  R5,A         MOV  R4,A         MOV  46H,#10HMULLOOP1:CLR  C         MOV  A,  R4         RLC  A         MOV  R4,A         MOV  A,  R5         RLC  A         MOV  R5,A         MOV  A,  R6         RLC  A         MOV  R6,A         MOV  A,  R7         RLC  A         MOV  R7,A         MOV  A,  R0         RLC  A         MOV  R0,A         MOV  A,  R1         RLC  A         MOV  R1,A         JNC  MULLOOP2         MOV  A,  R4         ADD  A,  R2         MOV  R4,A         MOV  A,  R5         ADDCA,  R3         MOV  R5,A         MOV  A,  R6         ADDCA,  #00H         MOV  R6,A-43- 倒车雷达的设计         MOV  A,  R7         ADDCA,  #00H         MOV  R7,AMULLOOP2:DJNZ46H,MULLOOP1         RET;;****************************************************;*           四字节/两字节无符号数除法程序        *;****************************************************;R7R6R5R4/R3R2=R7R6R5R4(商)...R1R0(余数);DIV4BY2:MOV  46H,#20H         MOV  R0,#00H         MOV  R1,#00HDIVLOOP1:MOV  A,  R4         RLC  A         MOV  R4,A         MOV  A,  R5         RLC  A         MOV  R5,A         MOV  A,  R6         RLC  A         MOV  R6,A         MOV  A,  R7         RLC  A         MOV  R7,A         MOV  A,  R0         RLC  A         MOV  R0,A         MOV  A,  R1         RLC  A         MOV  R1,A         CLR  C         MOV  A,  R0         SUBBA,  R2         MOV  B,  A         MOV  A,  R1-43- 倒车雷达的设计         SUBBA,  R3         JC   DIVLOOP2         MOV  R0,B         MOV  R1,ADIVLOOP2:CPL  C         DJNZ46H,DIVLOOP1         MOV  A,  R4         RLC  A         MOV  R4,A         MOV  A,  R5         RLC  A         MOV  R5,A         MOV  A,  R6         RLC  A         MOV  R6,A         MOV  A,  R7         RLC  A         MOV  R7,A         RET;delay_250:             push   psw       push   07h       mov    r7,#0ffhdelay_250_1:       nop       nop       nop       nop       djnz   r7,delay_250_1       pop    07h       pop    psw              ret       ;-----------------------         END-43-'