1、倒车雷达的设计1.设计(论文)的原始资料及依据;集成电路应用、单片机应用、显示电路等图书资料及搜集到的有关倒车雷达产品说明书。2.设计(论文)主要内容及要求;(1)2米之内探测到障碍物(2)自动显示距离 (3)倒车语音提示 3.对设计说明书、论文撰写内容、格式、字数的要求; 按沈阳工程学院毕业设计论文格式要求打印 4.对外文翻译的题材、字数、出版期限等的要求:要求翻译一篇与本专业或本课题有关的外文文献,不少于3000汉字。)5.课题完成后应提交成果的种类、数量、质量等方面的要求;应提供开题报告1份,毕业设计论文1份,符合设计要求。6.时间进度安排;顺序阶段日期计 划 完 成 内 容备注14.1
2、24.18查阅收集资料,整理分析24.194.25引言及方案论证部分34.265.02传感器电路设计45.035.09接收电路设计55.105.16控制电路设计65.175.23控制电路设计75.245.30显示电路设计85.316.6显示电路设计96.076.13完成论文106.146.20完成论文116.216.27答辩准备及答辩- 49 -摘 要倒车雷达又称泊车辅助系统,是汽车泊车安全辅助装置,能以声音或者更为直观的显示告知驾驶员周围障碍物的情况,解除了驾驶员泊车和起动车辆时前后左右探视所引起的困扰,并帮助驾驶员扫除了视野死角和视线模糊的缺陷,提高了安全性。一般由超声波传感器(俗称探头)
3、、控制器和显示器等部分组成,现在市场上的倒车雷达大多采用超声波测距原理,驾驶者在倒车时,启动倒车雷达,在控制器的控制下,由装置于车尾保险杠上的探头发送超声波,遇到障碍物,产生回波信号,传感器接收到回波信号后经控制器进行数据处理,判断出障碍物的位置,由显示器显示距离并发出警示信号,得到及时警示,从而使驾驶者倒 车时做到心中有数,使倒车变得更轻松。倒车雷达的提示方式可分为液晶、语言和声音三种;接收方式有无线传输和有线传输等。本方案采用语音提示的方式,本文介绍了以SPCE061A单片机为核心的一种低成本、高精度、微型化,并有数字显示和声光报警功能的倒车雷达系统。利用SPCE061A 单片机所具备的单
4、芯片语音功能,外接三个超声波测距模组,组成一个示例的倒车雷达系统,语音提示报警(2米之内)范围内的障碍物。关键词 倒车雷达 ,超声波, 单片机,SPCE061A AbstractThe radar calls backing parking to assist system, be that the automobile parks safe auxiliary device, can demonstrate the condition informing vicinity obstruction of a pilot in order to shutting out the voice of
5、 or being more penetrating , have relieved a pilot parking and have visited the what be aroused harassment all around when starting a vehicle, and have helped a pilot to have cleared away ken the defect that the dead angle and line of sight mix up, has improved security. Be composed of parts such as
6、 ultrasonic sensor (popular name detector) , controller and display in general, the radar adopt upper marketplace backing now to start backing when backing a vehicle ultrasonic distance measurement principle , the driver mostly, radar, the upper detector of safety bar dispatches ultrasonic , comes a
7、cross obstruction , produces an echo signal under the controller controlling, from the device in trail, the sensor admits to the echo signal queen by that the controller carries out a data handling, location judging out obstructions, the signal demonstrating distance and issuing warning from the dis
8、play, gets timely warning, Achieve when making a driver back a vehicle thereby getting sb.s number , make backing become more relaxed. Radar liquid crystal pointing out that way may be mark , language grow backing with shutting out the voice of three; Receive way having wireless transferring and hav
9、ing the line transmission and so on. And the scheme adopt the way that pronunciation hint , take SPCE061A monolithic machine as one kind of low cost , high-accuracy of core that the main body of a book has been introduced , miniaturization, have digital display and functional backing of acousto-opti
10、c warning radar system. Make use of Shan chip pronunciation function had by SPCE061A monolithic machine , connect with the three ultrasonic distance measurement models group, be composed of a backing giving a demonstration radar system, (0.35 m 1.5 ms) range inner obstruction giving an alarm that pr
11、onunciation is pointed out. Keywords Back a vehicle radar , ultrasonic , monolithic machine , SPCE061A目 录摘要2Abstract31 引言51.1倒车雷达简介51.2系统芯片选用52 系统总体方案62.1系统硬件结构62.2系统实现功能63 核心器件简介83.1 SPCE061芯片83.1.1 SPCE061A简介83.1.2 芯片特性93.2 SPCE061A精简开发板103.3超声波测距模组113.4转接板144 系统硬件设计174.1 SPCE061A174.1.1 SPCE061A1
12、74.1.2 电源模块184.1.3 放音模块184.2超声波测距模组电路原理194.2.1 超声波谐振频率发生电路,调理电路194.2.2 超声波回波接受处理电路194.2.3 超声波测距模组电源接口204.2.4 超声波测距模式选择跳线204.2.5 超声波测距模组接口214.3转接板电路214.4显示电路225 系统软件设计235.1超声波测距原理235.2软件结构245.3各模块程序说明245.3.1 超声波测距程序245.3.2 语音播放程序285.3.3 显示刷新程序305.3.4 主程序316 连接与操作说明34结 论37致谢38参考文献39附 录401 引言1.1倒车雷达简介倒
13、车雷达又称泊车辅助系统,是汽车泊车安全辅助装置,能以声音或者更为直观的显示告知驾驶员周围障碍物的情况,解除了驾驶员泊车和起动车辆时前后左右探视所引起的困扰,并帮助驾驶员扫除了视野死角和视线模糊的缺陷,提高了安全性。 一般由超声波传感器(俗称探头)、控制器和显示器等部分组成,现在市场上的倒车雷达大多采用超声波测距原理,驾驶者在倒车时,启动倒车雷达,在控制器的控制下,由装置于车尾保险杠上的探头发送超声波,遇到障碍物,产生回波信号,传感器接收到回波信号后经控制器进行数据处理,判断出障碍物的位置,由显示器显示距离并发出警示信号,得到及时警示,从而使驾驶者倒 车时做到心中有数,使倒车变得更轻松。倒车雷达
14、的提示方式可分为液晶、语言和声音三种;接收方式有无线传输和有线传输等。本方案采用语音提示的方式,利用SPCE061A 单片机所具备的单芯片语音功能,外接三个超声波测距模组,组成一个示例的倒车雷达系统,语音提示报警(0.35m1.5m)范围内的障碍物。1.2系统芯片选用倒车雷达选用80C51和凌阳16位单片机SPCE061A都能实现,但是再本次设计中我最终选用的是凌阳16位单片机SPCE061A来实现,具体原因是因为凌阳16位单片机SPCE061A在使用上要比80C51系列更强大,也更便于应用,但最为主要的原因是凌阳16位单片机SPCE061A在功能上多了语音播放和语音识别功能这就给本次的倒车雷
15、达系统的设计更完善同时也减少了其他不必要的设计。”2 系统总体方案2.1系统硬件结构本系统以SPCE061A为核心,使用凌阳科技教育推广中心的61板,三个超声波测距模组依次排布,组成线阵的传感器阵列;另外,接有转接板、发光二极管显示模块。系统组成以下图所示:图2.1 系统硬件结构图 SPCE061A单片机作为主控芯片,通过I/O端口来控制CD4052,以选择不同的传感器通道;本方案采用IOB0和IOB1控制CD4052的A0和A1,而IOB2作为检测超声波模组返回的信号,IOB3作为控制超声波模组发射超声波信号的使能控制端口。这样通过CD4052的通道切换,就可以利用较少的端口来完成多个模组的
16、切换使用了。 另外,超声波测距模组采用的是脉冲测量法,其实是测量发射超声波的时刻与接收到反射回波信号的时刻之间的时差,利用超声波在空气中传播速度已知的条件,计算出被测目标与传感器之间的距离。而为了保证测量的可靠,检测回波信号时,采用SPCE061A的外部中断对回波的上升沿进行检测,而且利用定时器B进行计时。在显示控制方面,系统分别利用IOA8、IOA9、IOA10三个端口控制三个发光二极管。 2.2系统实现功能利用SPCE061A单片机、三个超声波测距模组实现超声波倒车雷达,要求具有下述功能: (1)2米之内探测到障碍物(2)自动显示距离 (3)倒车语音提示 本方案要求所有的语音资源、程序代码
17、都存放在一颗SPCE061A片内Flash当中;当语音播报时,如检测到左后方有障碍物,则用语音播放:“左后方”,如右后方有障碍物,则语音播方“右后方”;当检查到中间的传感器探测范围内有障碍特时,语音播放:“后方”。而连续播放提示的间隔,要大于或等于3秒,以免过于频繁的播报语音。3 核心器件简介本系统采用SPCE061A单片机作为主控制器,传感器模块采用凌阳大学计划的“超声波测距模组”。另外,为了使这三个传感器模块能够组合在一起,并且可靠的工作,还需要一个转接板,可以利用4052模拟开关器件制作; 需要外接三个发光二极管。下面分别介绍这些模块的特性。3.1 SPCE061芯片3.1.1 SPCE
18、061A简介SPCE061A是凌阳科技研发生产的性价比很高的一款十六位单片机,具有易学易用、效率较高的一套指令系统和集成开发环境。在此环境中,支持标准C语言,可以实现C语言与凌阳汇编语言的互相调用,并且,提供了语音录放和语音识别的库函数,只要了解库函数的使用,就会很容易完成语音录放,这些都为软件开发提供了方便的条件: SPCE061A片内还集成了一个ICE(在线仿真电路)接口,使得对该芯片的编程、仿真都变得非常方便,而ICE接口不占用芯片上的硬件资源,结合凌阳科技提供的集成开发环境(unSP IDE),用户可以利用它对芯片进行真实的仿真;而程序的下载(烧写)也是通过该接口实现。 下图为SPCE
19、061A单片机的内部结构框图图3.1 SPCE061内部结构图3.1.2 芯片特性 16位nSP微处理器; 工作电压:内核工作电压VDD为3.03.6V(CPU),IO口工作电压VDDH为VDD5.5V(I/O); CPU时钟:0.32MHz49.152MHz; 内置2K字SRAM; 内置32K闪存ROM; 可编程音频处理; 晶体振荡器; 系统处于备用状态下(时钟处于停止状态),耗电小于2A3.6V; 2个16位可编程定时器/计数器(可自动预置初始计数值); 2个10位DAC(数-模转换)输出通道; 32位通用可编程输入/输出端口; 14个中断源可来自定时器A / B,时基,2个外部时钟源输入
20、,键唤醒; 具备触键唤醒的功能; 使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据; 锁相环PLL振荡器提供系统时钟信号; 32768Hz实时时钟; 7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器; 声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能; 具备串行设备接口; 低电压复位(LVR)功和低电压监测(LVD)功能; 内置在线仿真(ICE,In- Circuit Emulator)接口。3.2 SPCE061A精简开发板SPCE061A精简开发板(简称61板),是以凌阳16位单片机SPCE061A为核心的精简开发仿真实验
21、板,大小相当于一张扑克牌,是“凌阳科技大学计划”专为大学生、电子爱好者等进行电子实习、课程设计、毕业设计、电子制作及电子竞赛所设计的,也可作为单片机项目初期研发使用。61板除了具备单片机最小系统电路外,还包括有电源电路、音频电路(含MIC输入部分和DAC音频输出部分)、复位电路等,采用电池供电,方便学生随身携带!使学生在掌握软件的同时,熟悉单片机硬件的设计制作,锻炼学生的动手能力,也为单片机学习者和开发者创造了一个良好的学习条件和开发新产品的机会!61板上有调试器接口(Probe接口)以及下载线(EZ_Probe)接口,分别可接凌阳科技的在线调试器、简易下载线,配合unSP IDE,可方便地在
22、板上实现程序的下载、在线仿真调试。61板上的主要功能模块如下: SPCE061A单片机最小系统外围电路模块; 电源输入模块; 音频电路(包含MIC输入、DAC音频功放输出)模块; 按键模块; I/O端口接口模块; 调试、下载接口模块;下图为61板的实物图图3.2 61板实物图3.3超声波测距模组超声波测距模组是为方便学生进行单片机接口方面的学习专门设计的模块,超声波测距模组可以方便地和61板连接,可应用在小距离测距、机器人检测、障碍物检测等方面,可用于验证方车辆倒车雷达以及家居安防系统等应用方案验证。下图 3.3为超声波测距模组的结构框图:图3.3 超声波测距模组结构图主要功能: 三种测距模式
23、选择跳线J1(短距、中距、可调距): 1. 短距:10cm80cm左右(根据被测物表面材料决定); 2. 中距:80cm400cm左右(根据被测物表面材料决定); 3. 可调:范围由可调节参数确定;使用方法: 一般应用时,只需要用10PIN排线把J8与SPCE061A的IOB低八位接口接起来,同时设置好J7、J1、J2跳线就完成硬件的连接了。不同测距模式的选择只需改变测距模式跳线J1的连接方法即可。提供给模组的电源必须在4.5V以上,而且尽量保持电源电压的稳定。模组工作的性能与被测物表面材料有很大关系,如毛料、布料对超声波的反射率很小,会严重影响测量结果。电源输入:模组提供了两种电源输入方式,
24、一为用61板通过10PIN排线为模组供电(61板上J5选择5V要求最好不要低于4.5V),此时要把J9跳到5V的一端;另一为直接为模组供电,通过模组上的电源输入口J7引入,此时需要把J9跳线跳到IN的一端。外接电源仅是为了给模组提高超声波发射功率、提高后级运放性能用,最高不要超过12V。 模组外接电源接口(J7)以及供电方式选择跳线(J9)如图 3.4所示:图.4 模组外接电源接口及供电方式选择跳线测距模式选择:声波测距时,超存在余波干扰问题,所以针对不同测距范围会有不同的处理方法。模组提供了测距模式选择跳线(J1),可以选择短距测量模式、中距测量模式,或距离可调模式。而针对前两种测量模式,提
25、供了不同参数的范例程序,跳线选择不同的模式时,要选用相对应的程序进行测量;跳线选择LOW时为近距测量模式,选择HIG时为中距测量例程,选择SET时为距离可调模式;凌阳科技大学计划网站上提供了短距测量模式和中距测量模式的完整源程序。 如果用户对超声波测量原理有较深的了解,可以选用距离可调(SET)模式。模组测距模式(测量距离范围)选择跳线J1如图 3.5所示: 图3.5 模组测距模式选择跳线使用方式: 使用时,用户需把前面的电源输入跳线J7、模式选择跳线J1设置好后,还要把跳线J2短接起来,然后利用排线把J8与SPCE061A的IOB口低八位端口相接,即可使用了。使用时J2跳线和J8跳线的连接方
26、法如下图 3.6所示:图3.6 J2跳线和J8接口的位置示意图3.4转接板因为使用多组超声波模组,本方案需要使用一块CD4052模拟开关制作的转接板。本方案设计,会涉及到多路传感器选通控制,所以为了可靠地实现硬件的连接,需要制作一个利用模拟开关设计的转接板。超声波测距模组在使用时,只需要两个端口就可完成测距,一个控制超声波的发射,一个是检测超声波信号的接收信号;而在超声波测距模组中,这两个信号都为数字信号,对模拟开关的要求并不严格,所以选用CD4052作为模拟开关器件。CD4052相当于一个双刀四掷开关,开关接通哪一通道,由输入的2位地址码A0、A1来决定。其真值表见下表。“/E”是禁止端,当
27、“/E”=1时,各通道均不接通。此外,CD4051还设有另一个电源端VEE,以作为电平位移时使用,从而使得通常在单组电源供电条件下工作的CMOS电路所提供的数字信号能直接控制这种多路开关,并使这种多路开关可传输峰峰值达15V的交流信号。例如,若模拟开关的供电电源VDD=5V,VSS=0V,当VEE=5V时,只要对此模拟开关施加05V的数字控制信号,就可控制幅度范围为5V5V的模拟信号。表1 CD4052的真值表INPUTSCHANNELONA1A0LLLLHLLHHXLHLHXY0A-ZA:Y0B-ZBY1A-ZA:Y1B-ZBY2A-ZA:Y2B-ZBY3A-ZA:Y3B-ZBnone图3.
28、7 CD4052的内部结构图图3.8 CD4052的引脚图4 系统硬件设计4.1 SPCE061A4.1.1 SPCE061ASPCE061A最小系统包括SPCE061A芯片及其外围基本模块,外围基本模块有:晶振输入模块(OSC)、锁相环外围电路(PLL)、复位电路(RESET)、指示灯(LED)等,如下图所示。图4.1 SPCEA061A最小系统本系统,有关SPCE061A单片机最小系统的各个模块都做在61板中,读者可以查阅61板的电路原理图。4.1.2 电源模块SPCE061A的内核供电为3.3V,而I/O端口可接3.3V也可以接5V,所以在电源模块(61板上)中有一个端口电平选择跳线,如
29、图中的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。其他
30、特性请参考SPY0030的数据手册。图4.3 放音模块电路图4.2超声波测距模组电路原理4.2.1 超声波谐振频率发生电路,调理电路NE555和电容电阻组成的电路产生40KHz的方波,以使超声波传感器产生谐振;而后面的CD4049则对40KHz频率信号进行调理。PLUS_EN1是超声波信号发射的使能控制端口,当该端口接低电平时,模组将不能发射超声波信号,即40KHz的方波。图4.4 超声波谐振频率发生电路、调理电路4.2.2 超声波回波接受处理电路超声波接收处理部分电路前级采用NE5532构成10000倍放大器,对接收信号进行放大;后级采用LM311比较器对接收信号进行调整,比较电压为LM31
31、1的3管脚处,可由J1跳线选择不同的比较电压以选择不同的测距模式。在放大器与比较器之间用PNP三极管(8550)作为通路选择,本方案需要将此通路选择跳线短接上,即把J2短接,固定使三极管导通即可。图4.5 超声波回波接受处理电路4.2.3 超声波测距模组电源接口J7为超声波测距模组的外部电源接口,最高电压不要超过12V,J9为电源选择跳线,VCC_5即为由61板通过10PIN排线引入模组的电源;VCC即为模组的放大器、调理电路供电电源。当用户使用61板为其供电时,要把VCC与VCC_5V短接(本方案的用法);而使用外部电源时要把VCC与VCC_IN短接。图4.6 外部单独电源输入接口及选择跳线
32、4.2.4 超声波测距模式选择跳线模组提供了测距模式选择跳线J1,可以选择短距测量模式、中距测量模式,或距离可调模式。跳线选择LOW时为近距测量模式,选择HIG时为中距测量模式;选择SET时为距离可调模式。本方案采用可调方式,即选择SET的模式,并将调节模组上的电位器,将比较电压调至3.53.2V(保证模组测距能在0.351.5M的范围都能正常工作即可)。图4.7 测距模式选择跳线4.2.5 超声波测距模组接口本方案采用的三个超声波测距模组都是利用其J8接口,每个模组接出两个控制、检测端口,然后会通过CD4052模拟开关进行选通,所以在实际使用当中,是分时地对每一个模组进行操作。超声波测距模组
33、的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
34、的IOB3。CD4052的另外一端,接出COM_EN1/2/3分别接三个模组的发射使能,另外还用三个10K的电阻下拉到地,以保证没有选通的模组不会发射出超声波信号。J2、J3、J4分别接三个超声波测距模组的J8接口。图4.9 转接板电路原理4.4显示电路本设计采用发光二极管来实现显示功能。发光二极管简称LED,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。 当在发光二极管PN结上加正向电压时,PN结势垒降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式出
35、现,因此而发光。 发光二极管在制作时,使用的材料有所不同,那么就可以发出不同颜色的光。 发光二极管的发光颜色有:红色光、黄色光、绿色光、红外光等。显示电路较为简单,本设计中单片机系统分别利用I/OA8、I/OA9、I/OA10三个端口,三个I/O口通过软件来实现控制三个发光二极管,通过判断二极管的亮灭来实现倒车雷达功能。5 系统软件设计5.1超声波测距原理超声波脉冲法测距原理: 声波在其传播介质中被定义为纵波。当声波受到尺寸大于其波长的目标物体阻挡时就会发生反射;反射波称为回声。假如声波在介质中传播的速度是已知的,而且声波从声源到达目标然后返回声源的时间可以测量得到,那么就可以计算出从声波到目
36、标的距离。这就是本系统的测量原理。这里声波传播的介质为空气,采用不可见的超声波。 假设室温下声波在空气中的传播速度是335.5m/s,测量得到的声波从声源到达目标然后返回声源的时间是t秒,距离d可以由下列公式计算:d=33550(cm/s)t(s) 因为声波经过的距离是声源与目标之间距离的两倍,声源与目标之间的距离应该是d/2。超声波测距模组信号: 图 5.1为超声波模组上三极管Q1的集电极处测量的波形图,此时J2跳线短接,使Q1始终导通;而传感器距目标面的距离为2米。图 5.1超声波信号测量图图中的波形为示波器抓拍图,1通道为Q1集电极测得波形,即上方的波形;通道2为发射端测得波形。 图中可
37、见,接收回路中测得的超声波信号共有两个波束,第一个波束为余波信号,即超声波接收头在发射头发射信号(一组40KHz的脉冲)后,马上就接收到了超声波信号,并持续一段时间。另一个波束为有效信号,即经过被测物表面反射的回波信号。 超声波测距时,需要测的是开始发射到接收到信号的时间差,在上图中就可看出,需要检测的有效信号为反射物反射的回波信号,故要尽量避免检测到余波信号,这也是超声波检测中存在最小测量盲区的主要原因。 软件控制脉冲发射、检测回波信号: 程序设计时需要采用脉冲测量法,由SPCE061A控制模组发生40KHz的脉冲信号,每次测量发射的脉冲数至少要12个完整的40KHz脉冲(程序中为20个左右
38、)。同时发射信号前要打开计数器,进行计时;等计时到达一定值后再开启检测回波信号,以避免余波信号的干扰。 采用外部中断对回波信号进行检测(回波信号送到单片机的为一序列方波脉冲)。接收到回波信号后,马上读取计数器中的数值,此数据即为需要测量的时间差数据。为避免测量数据的误差,程序中对测距数据的处理方法是:每进行一次测距,利用时基中断测量4次,即取得4组数据,经过处理后得到这一次测距值。5.2软件结构本方案的软件系统主要包含下列模块: 超声波测距程序:负责超声波测距的控制、结果计算等,另外有部分代码在中断服务程序中,主要码在UserFunction.c以及IntDocument.c文件。 语音播放程
39、序:语音播放控制,主要代码在Speech.h,而语音中断服务程序在isr.asm文件中,但为了使语音播放程序在初始化时不影响用户的其它中断,在isr.asm中还有一个中断初始化程序。 中断程序:主要指IntDocument.c文件,包括超声波测距的中断服务代码,以及用于显示刷新的IRQ4中断服务程序。 系统程序:主要指system.c文件,包含系统端口初始化、测量结果处理、以及显示刷新程序。 主程序:主控程序负责控制整个系统的工作流程。5.3各模块程序说明5.3.1 超声波测距程序主程序流程图以及相关的程序流程图如图5.2所示 图5.2 主程序流程图测距控制程序Demo程序中,超声波测距的功能
40、函数流程图见图 5.3。用户需要先调用测距初始化函数InitMeasure(),再调用该函数BeginMeasure()即可进行一次测距操作,函数返回值为测量结果。每一次测距要进行四次测量,这四次的测量结果需要经过处理后才可得到最终的测距返回值,而四次测量的控制以及测量结果的处理都是在这个函数中完成的,具体的处理方法:每一次测距中的四次测量的间隔时间用16Hz的时基中断来控制;每一次测量,先发射20个40KHz脉冲(参见16Hz中断),然后使能测量时间基准计数器,当计数到4ms时,打开EXT1外部中断,等待回波反射到接收头。四次测量全部完成后,再对测量的结果进行处理、换算,以及出错处理,用户可
41、以根据不同的应用对数据处理部分的程序作适当的调整。其中等待4ms的原因:压电式的电声传感器存在余波干扰,而有部份声波会沿电路板直接传到接收头,经接收电路的放大后,系统就有可能把它误认为是反射回来的回波信号。超声波测距的功能函数流程图见图 5.3。用户需要先调用测距初始化函InitMeasure(),再调用该函数BeginMeasure()即可进行一次测距操作,函数返回值为测量结果。每一次测距要进行四次测量,这四次的测量结果需要经过处理后才可得到最终的测距返回值,而四次测量的控制以及测量结果的处理都是在这个函数中完成的,具体的处理方法:每一次测距中的四次测量的间隔时间用16Hz的时基中断来控制;
42、每一次测量,先发射20个40KHz脉冲(参见16Hz中断),然后使能测量时间基准计数器(本方案当中使用TimerB),当计数到预设延时后,打开EXT1外部中断,等待回波反射到接收头。四次测量全部完成后,再对测量的结果进行处理、换算,。其中等待预设延时的原因:压电式的电声传感器存在余波干扰,而有部份声波会沿电路板直接传到接收头,经接收电路的放大后,系统就有可能把它误认为是反射回来的回波信号。图5.3 超声波测距子函数流程图16Hz时基中断处理程序16Hz的时基中断处理程序里,主要进行检查上次测量是否超时,若超时便会转到超时处理程序;然后进行下一次的测量启动,即再次发送20个40KHz方波脉冲。1
43、6Hz中断流程图 6.16Hz中断流程图。图5.4 16Hz中断流程图EXT1外部中断程序 当回波触发控制器的外部中断后,程序会转到EXT1外部中断服务子程序中,读取测量结果,并作数据的初步处理。流程图如下:图5.5 EXTI外部中断流程图5.3.2 语音播放程序全方案采用A2000的语音压缩算法,播放A2000格式的语音资源,作为语音提示的功能;为了让系统在语音播放期间,其它的中断能照常工作;因此在每一次语音播放前,进行中断的初始化操作,实际上是利用了SACM语音库当中使用到的一个中断设置变量:R_InterruptStatus。该变量在语音库支持文件:hardware.asm当中定义;每次
44、进行语音播放的初始化操作时,语音库当中会从该变量读取之前用户设置的中断,并以此为基础设置语音库进行语音播放所需要打开的中断。所以,中断的初始化操作,也就是将当前中户的中断设置情况写入变量:R_InterruptStatus当中即可。 另外,为了防止语音播报过于频繁,本方案采用2Hz时基进行计数,每次播放语音提示前,先判断距离上一次语音提示的播放是否超过3秒(即2Hz中断当中计数6次以上)?如超过则可以进行这次的播放,如果不符合要求,则退出。 图5.6为语音播放程序的流程图:图5.6 语音播放程序流程图IRQ5的2Hz中断服务程序当中,对一个用于计数(时)的变量进行累加,以配合语音播放程序当中对两次播放的时间间隔的判断。为了避免出现不断累加,而溢出清零,在中断服务程序当中加入了限制,即当计数的变量计数值大于6(即超过了3秒),则关闭IRQ5的2Hz中断;等待下次播放语音时再打开2Hz中断。2Hz中断服务程序的流程图如图 5.6:另外,语音播放程序还需要在FIQ的TimerA中断当中,调用语音播放的中断服务程