DZ142多传感器障碍物检测系统的软件设计
DZ142多传感器障碍物检测系统的软件设计,dz142,传感器,障碍物,检测,系统,软件设计
西南科技大学本科生毕业论文 I西南科技大学毕业设计(论文)题目名称:多传感器障碍物检测系统的软件设计年 级:2003 级 本科 专科学生学号:20035039学生姓名:杨金荣 指导教师:胡莉 曾毅学生单位:信息工程学院 技术职称:副教授 讲师学生专业:电子信息工程 教师单位:信息工程学院西 南 科 技 大 学 教 务 处 制西南科技大学本科生毕业论文 II多传感器障碍物检测系统的软件设计摘要:本设计较详细地介绍了一种多传感器障碍物检测系统的软件设计。该系统以单片机为核心,通过检测微波雷达探测器的信号来适时地启动温度传感器、速度传感器、超声波传感器等。对这些传感器输出值的检测量化,得到距离、速度、温度等值。通过合理的计算,把这些变量因素组合在一起,对各种数据进行修正补偿,得出比较精确的结果。论文描述了系统研制的理论基础,多个传感器功能结构,以及使用性能优良的 AVR 单片机 ATmega8L 对系统所起的积极作用。论文概述了几种检测技术的发展现状及基本原理,介绍了 ATmega8L 单片机及其各主要寄存器的功能特点。针对检测系统的测距、测温、测速、显示、报警、补偿修正等部分的软件设计方案进行了论证与设计。关键词:雷达探测;温度检测;速度检测;超声波检测;ATmega8L西南科技大学本科生毕业论文 IIIThe software design of Multisensor obstacle detected systemAbstract: the software design about the system of a multi-sensor obstacle detecting has been introduced detailly in this design. the system is cored of SCM, and initiates the temperature sensor, speed sensor and ultrasonic sensors at the appropriate time by detecting the signal of microwave radar detector. Having gotten the distance, speed, temperature by checking and measuring the output of these sensors. And have the accurate results by calculating reasonably, compounding these variables together, and amending and compensating the various data that. The paper has described the theoretical basis of the developed system, the function structure of several sensors, and the active role played by the use of the excellent performance of the AVR ATmega8L. The paper has outlined the development and the basic principles of several the detected technology, and introduced the ATmega8L microcontroller and the function features of its register. the verification and design have been made according to the software design scheme about detecting the location, temperature, speed, display, alarm, compensation and amendment of the system.Key words: Radar Detection, Temperature Detection, Speed detection, Ultrasonic detection, ATmega8L 西南科技大学本科生毕业论文 IV目录第 1章 绪论 .11.1 前言 .11.2 国外汽车防撞技术 .1第 2章 障碍物检测系统的基本原理及设计方案 .32.1 微波雷达探测器 .32.2 超声波换能器 .42.3 速度传感器 .72.4 温度传感器 .72.5 系统的总体设计概述 .8第 3章 系统软件设计 .93.1 微波雷达探测 .123.2 超声波检测 .123.2.1 超声波发射 .133.2.2 超声波接收 .193.3 速度检测 .233.3.1 速度补偿原理与算法 .233.3.2 ADC 功能特点及其寄存器配置 .243.4 温度检测 .283.4.1 补偿原理与算法 .283.4.2 服务程序及其寄存器配置 .283.5 LED 动态扫描显示 .303.6 声音报警 .31第 4章 系统调试分析及结果 .334.1 本系统开发调试环境 .334.1.1 IMAGECRAFT ICC AVR 编译器 .334.1.2 PONYPROG2000 串行器件编程器 .35西南科技大学本科生毕业论文 V4.1.3 程序的下载调试 .364.2 程序调试过程 .374.2.1 动态显示 .384.2.2 超声波信号产生 .384.2.3 输入捕捉 .394.2.4 超声检测联机调试 .40结论 .41参考文献 .42附录 系统程序 .43致谢 .49西南科技大学本科生毕业论文1第 1章绪论1.1前言汽车业在经济发达国家已经成为一个发展国民经济的支柱性产业。如美国每年汽车,轿车和卡车的年产量平均为1400万辆,我国1998年为160万辆 。车多路少已成为交通状况日益严重的问题之一。以相对的观点看,道路交通是最危险的运输方式之一。事故统计表明:所有碰撞有一半以上(65%)是由追尾碰撞引起的。据统计,早在70年代初时由于汽车碰撞全世界每年造成的经济损失为100亿美元,平均每辆车每年的经济损失为100美元。现在是21世纪初,汽车产量估计翻了三番,所造成的经济损失也就至少翻了三倍。据统计,2001年我国道路交通事故造成的直接经济损失为30亿元,105 930人死亡546 485人受伤。可以说,道路交通事故每天在全国各地均频频发生,给人民造成了巨大的生命财产损失。为此,一些发达国家早在70年代就开始研制汽车防撞系统。据美国的最新统计表明,因各种原因造成的车辆碰撞追尾事故占公路交通事故总量的90%左右。因此,要降低公路交通事故,必须大力降低车辆碰撞事故,而汽车碰撞技术的发展及应用有助于减少汽车碰撞事故的发生。1.2国外汽车防撞技术从70年代起,美国、英国、法国、德国、意大利、日本和原苏联均意识到了研制汽车防撞系统的重要性并着手投入了大量的人力和物力进行研制。从目前掌握的技术来讲,汽车防撞系统均可用超声波、红外、激光和微波技术实现。1、超声波防撞雷达运用超声波技术制成的汽车防撞雷达的工作原理是:由脉冲信号发生器产生的脉冲信号一路送单片机控制器,另一路用以调制超声波。经脉冲调制后的超声波放大后经送波器(超声喇叭)向外辐射。当已调超声波在前向(或后向)碰到其它汽车而反射回来之超声波由受波器(超声拾音器)接收并经放大、检波、再放大后送到单片机控制器进行数据处理。在单片机控制器中首先对接收到的回波信号与脉冲信号发生器送入的参考信号进行比较,从而计算出延时和与之相应的两车间距离,当计算出的距离达到预置的减速距离时,控制器输出减速信号自动控制汽车减速;西南科技大学本科生毕业论文2当距离达到预置的刹车距离时,控制器则及时输出刹车信号立即刹车以防撞车。控制器输出的车距同时送到距离显示器。这样,司机可根据显示距离自行处理。2、红外防撞雷达红外防撞雷达是采用砷化镓半导体发光二极管作红外线辐射器,以硅光二极管作红外接收器。用石英振荡器输出信号经放大及波形变换后变为脉冲信号,通过门电路分为两路,一路直接送调制发光二极管,使之发出调制光波;另一路送至逻辑混频器与石英振荡器送来的脉冲信号进行逻辑混频产生出低频脉冲信号,作为数字相位测量的参考信号。当发出的已调红外光信号碰到其它汽车而反射回来为硅光电二极管所接收,转变为电信号,放大与石英晶体振荡器输出的本振信号进行模拟混频,再经低放和波形变换变为测距信号。单片机控制器对输入的测距信号和参考信号进行比相,算出它们的相位差,以及与之相应的距离数据,控制器就会及时输出减速信号或刹车信号,汽车减速或刹车,从而避免撞车。3、激光防撞雷达激光雷达是靠激光波束照射在前车上的反射镜(装在汽车后部)反射回来的激光波束深测两车距离。由于天气因素(如雨、雪、雾)和反射镜本身因素(如安装位置、表面污染、磨损或老化等)的影响,使反射激光束散射损失增加,从而影响到探测的准确性,并使在一定功率下探测距离比可能探测的最大距离减少1/21/3。试验表明:限于目前的技术水平,激光雷达在与前车距离不超过30米时才能探测到前方车辆。4、微波防撞雷达微波雷达通常由传感器、信号处理器和控制器三部分组成。工作原理是:首先由传感器通过天线发射出微波探测信号,并由天线接收经障碍物反射回来的微波信号,送到信号处理器作分析处理,得出障碍物的相对距离、速度等数据,并把该数据输送给处理中心,处理中心再与由本车传感器输入的本车有关信号(如车速、制动气压等)综合,发出两种指令:一种指令给本车操作系统,如自动减速、换档、制动等;另一种指令则是给驾驶员的警示信号,如减速、制动、转向、停车等,从而起到操作汽车防止与障碍物相撞之目的。西南科技大学本科生毕业论文3第 2章障碍物检测系统的基本原理及设计方案本系统通过多个传感器检测出汽车在行驶过程中的多个参数,通过一定的函数计算得到相应的安全数据。中央处理器通过这些数据做出相应的报警动作,让司机能随时了解汽车当前的安全状态,做出相应的操作。本系统需要检测汽车以下几个状态的数据:首先,物汽车在驶过程中要随时检测前方有无障碍物,系统采用微波雷达防盗报警器检测汽车前方 5m 处有无障碍。微波雷达不受雨、雪、雾、阳光等天气因素的影响和杂音、污染等环境因素的影响,提高了系统的可靠性。其次,当汽车前方出现障碍时,需要对汽车当前与障碍物的距离进行精确的测量。超声波检测系统结构简单、测量精度高,对处理器要求低,降低了成本,很利于系统的普及。但传感器灵敏度不够,功率较低,没法完成长距离的测距工作。不过当系统只需用其检测前方 5m 距离内的数据,超声波检测完全能满足需求。再次,影响汽车行驶安全的又一大因素是车速,所以系统还需加入汽车速度的测量。把汽车的车速值也作为一函数变量来计算出当前汽车的安全值。最后,超声波在空气中传播,受到温度的影响很大。所以用超声波进行测距,需要对当前空气的温度进行检测。根据当前的温度对测量结果进行一定的补偿,提高测距的精确度。2.1微波雷达探测器微波是指频率在 300MHz-300GHz 范围内的高频电磁波,其波长范围从 1m 到1mm。微波具有直线(视距)传播,不受其他电磁波干扰,频带宽,系统体积小等特点,首先在通信领域得到广泛应用。微波技术另一最重要应用当属雷达,使用微波雷达对远距离飞行目标测速,测距,测方位早在第二次世界大战中就已成功应用。随着微波半导体技术的规模化应用,微波技术的物理实现不仅十分简单、廉价,而且体积甚小,各种物体探测装置中都可以放进火柴盒大小的微波传感器,成为目标探测装置中常见的组件。微波探测技术自上世纪 40 年代以来特别是近期向民品的转化后,从应用场合,产品价位等,越来越多在社会各个应用方面得以普及,从防盗安防产品到工业物位、西南科技大学本科生毕业论文4料位检测,对射/反射产量计数,水位检测,交通流量,汽车车长测量,高速公路汽车防追尾预警,雾天车辆防撞,人体移动、机场空中飞鸟探测驱赶,智能化控制、医疗,水文流速/水位、生命特征探测、自动门控制器,长检测距离控制,灯光控制开关、粮食水分仪传感器、混凝土湿度测量传感器、治安探测器(用于探测生物特性)等。雷达式是一种将微波收、发设备合置的探测器,工作原理基于多普勒效应。微波的波长很短,在 1mm1000mm 之间,因此很容易被物体反射。微波信号遇到移动物体反射后会产生多普勒效应,即经反射后的微波信号与发射波信号的频率会产生微小的偏移。雷达式微波探测器的发射能图与所采用的天线结构有关,采用全向天线(如 1/4波长的单极天线)可产生近乎圆球形或椭圆形的发射范围,这种能场适合保护大面积的房间或仓库等处。而采用定向天线(如喇叭天线)可以产生宽泪滴形或又窄又长的泪滴形能图,适合保护狭长的地点,如走廊或通道等。即使和频率为 30GHz 以下的电磁波相比,也因微波频率更高、波长更短而具有以下优点:能使从天线发射出的电磁波的射束幅度减小,从而减少了不必要的反射波造成的错觉,抗干扰性能较强;有较好的相对速度感应,探测精度高;天线和高频器件体积小,易于安装。2.2超声波换能器超声波是一种频率超过 20kHz 的机械波。超声波作为一种特殊的声波,同样具有声波传输的基本物理特性反射、折射、干涉、衍射、散射。超声波具有方向性集中、振幅小、加速度大等特点,可产生较大力量,并且在不同的媒质介面,超声波的大部分能量会反射。同时,由于超声波对人体和环境是无害的,所以超声检测可以广泛应用到各个部门。利用超声波检测往往比较迅速,方便,易于做到实时控制,并且在测量精度方面能达到工业实用的要求,主要应用于倒车雷达、建筑施工工地以及一些工业现场, 超声波测量在国防、航空航天、电力、石化、机械、材料等众多领域具有广泛的作用,它不但可以保证产品质量、保障安全,还可起到节约能源、降低成本的作用。超声波与光波、电磁波、射线等检测相比,其最大特点是穿透力强,几乎可以在任何物体中传播,了解被测物体内部情况。超声检测设备还具有结构简单,成本低廉的优点,有利于工程实际使用。近十几年来,由于微机技术、现代电子技术、西南科技大学本科生毕业论文5信号处理技术以及超声波产生和接收新技术的发展,突破了常规超声检测的限制,进一步开拓了其适用范围图 2-1超声波检测原理图超声波检测通常采用渡越时间法,即利用 计算被测物体的距离。式中 s/2svt为收发头与被测物体之间的距离, v 为超声波在介质中的传播速度( /2vt),t 为超声波的往返时间间隔。超声波检测原理是通过超声31.4/273vTms波发射传感器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就停止计时。由其往返时间 t 算出被测物体的距离。T 为环境温度,在测量精度要求高的场合必须考虑此影响,但在一般情况下,可舍去此法,由软件进行调整补偿。在超声波测量系统中,频率取得太低,外界的杂音干扰较多;频率取得太高,在传播的过程中衰减较大。故在超声波测量中,常使用 40KHz 的超声波。目前超声波测量的距离一般为几米到几十米,是一种适合室内测量的方式。由于超声波发射与接收器件具有固有的频率特性,具有很高的抗干扰性能。应用超声波进行检测,首要问题就是如何发射和接收超声波。目前通用的方法是使用超声波换能器来产生超声波。超声换能器是使其他形式的能量转换成超声能量(为发射换能器)或是超声能量转换成其他易于检测的能量(为接收换能器)。应用最多的是声电和电声转换,也就是通常所说的超声探头,当一个电脉冲加到探头上时,探头就发射出超声脉冲,反之,当一个超声脉冲加到探头上时,探头就输出一个电脉冲。)频率选择频率在很大程度上决定了超声检测的能力,频率高时,波长短,声束窄,扩散角小,能量集中,发现缺陷能力强,分辨率好,缺陷定位准确。但扫描空间小,在材料中的衰减大,穿透能力差。频率低时,波长长,声束宽,扩散角大,能量不集中,发现缺陷能力差,分辨率差。但扫描空间大,在材料中的衰减小,穿透能力强。探头 障碍物s西南科技大学本科生毕业论文6在一般的接触法探伤中,对于晶粒细小的材料,一般采用 2.55 兆赫的频率比较合适,能够发现的最小缺陷在 /2 左右。对于晶粒粗大、对超声散射较强烈的材料,高频率的超声会出现晶界引起的林状回波,致使无法判伤,对这种材料则应选用0.51 兆赫的超声波。对于其他一些声衰减强烈的材料如铸铁、非金属等,则采用更低的频率。在超声测距中,由于声波传播的介质为空气,其对超声衰减很大,所以应选取较低频率的超声,但太低的频率又使得测量结果不够准确,所以一般超声测距选用的频率为几十千赫。)探头的选择探头的选择主要是对频率、晶片尺寸和角度等几方面的选择。探头晶片尺寸大时,发射能量大,扩散角小,扫描空间大,近场长度长,发现远距离小缺陷的能力高。而小直径晶片的探头在近场范围内声束窄,有利于缺陷定位,适宜较小厚度的工件探伤。对于缺陷的定位和定量,选择探头的原则是声束应尽可能的狭窄,声束相对缺陷要垂直入射,在某些情况下需要使能量更加集中,可采用线聚焦或点聚焦探头。同时,探伤灵敏度与近场长度有关,近场长度确定了灵敏度随缺陷至探头距离增大而下降的快慢,近场愈长,灵敏度下降愈慢,因此选择探头时,要尽可能使近场长度不小于缺陷最大深度的 1/3。图 2-2超声波传感器结构图探头型式的选择也要视具体情况而定,选择直探头或斜探头取决于欲发现缺陷的部位及方向,对于探测锻件,一般选用直探头,检查焊缝时,则更多使用斜探头。一些特殊位置和形状的缺陷则需要双探头或双晶片探头,使能量集中和减少杂波。在超声测距中,一般使用双探头,以减少发射信号对接收探头的影响。双压电晶片振子屏蔽减震环外壳锥形谐振板支点西南科技大学本科生毕业论文7超声波传感器是超声波检测电路中的重要元件,其性能优劣直接影响到测距准确度和可靠性。根据雷达在实际工作时所处的恶劣环境的要求,本系统所选用的超声波传感器为 TR40-16B,其中心频率为 40kHz。2.3速度传感器利用霍尔效应(Hall Effect )制成的各种传感器广泛用于磁场强度、运动及各种特殊位置的检测。如转速测量、汽车中的风门位置、踏板位置、悬挂位置、阀门位置和工业监控系统中的绝对位置及接近行为的检测。霍尔效应传感器是一种非接触式传感器。其输出电压和磁场强度成比例,而与磁场变化率无关。电感式传感器与磁场变化率相关,接触式传感器常常产生凸出轮磨损、接触弧或发生恶臭味。所以霍尔效应传感器是一种比电感式和接触式传感器更可靠、更便捷的低速传感器。制作霍尔效应传感器可以选用几种材料,通常选用硅。因为传感器与其信号调节电路低于在同一芯片上集成。但硅的掺杂浓度和散射作用对温度的低速性很强,所以如何对这种传感器进行温度补偿是提高测量精度的关键。在集成霍尔效应传感器中,根据信号调节电路的结构不同,可分为开关和纯属输出两种传感器。例如美国模拟器件公司(ADI)以前推出的 AD22150 便于工作属于开关式输出磁场传感器,和合用于转速测量。ADI 公司最近推出的 AD22151 是一种纯属输出磁场传感器,适合用于检测磁场强度和各种特殊位置检测。AD2251 输出电压与施加在垂直器件封装顶面的磁场强度成正比。它的主要特点是将大量的霍尔元件阵列集成技术与内部温度补偿及信号调节电路结合起来,实现单片集成。这样不仅减小温漂、提高精度,而且减小体积,仅使用最少量的外接元件便可满足各种应用要求。2.4温度传感器一种物质材料制作成的电阻,它会随温度的上升而改变电阻值,如果它随温度的上升而电阻值也跟显著上升就称为正电阻系数,如果它随温度的上升而电阻值反而下降就称为负电阻系数。大部分电阻式温度检测器是以金属制作成的,其中以白金(Pt)制作成的电阻式温度检测器,最为稳定:耐酸碱、不会变质、相当线性等,最受工业界采用。西南科技大学本科生毕业论文8PT100 温度感测器是一种以白金(Pt)制作成的电阻式温度检测器,属于正电阻系数,其电阻和温度变化的关系式如下: 0(1)RT其中 =0.00392, 为 100(在 0的电阻值),T 为摄氏温度。因此白金制作成的0R电阻式温度检测器,又称为 PT100。铂电阻温度传感器,因其测量范围大,复现性好,稳定性强等特点而被广泛使用。在精密测量系统中,铂电阻信号通常通过桥式电路转换为电压信号,再经过放大及 A/D 转换后送微处理器进行处理。2.5系统的总体设计概述针对本设计,如果采用微波雷达来完成测距功能,由于测距过程中数据计算的复杂性,对系统速度和精度的要求高,超出了一般单片机的处理能力,需要加入DSP 或 FPGA 芯片才能完成,而设计的主要目标是使成本低廉而易于普及,所以应有一个更合适的测距方案用于本汽车安全报警系统,本系统选用了超声波检测。利用一个雷达防盗式探测器充当本系统中的雷达探测器,探测 5 米范围内有无障碍物并适时启动超声波检测系统。而在单片机方面,根据系统对资源的实际要求,在能完成工作任务的基础上不造成资源的浪费,同时考虑到了市场的实际情况。在设计初就放弃了其它的一系列的单片机,选用了 ATmega8L 这款。ATmega8是基于增强的 AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega8的数据吞吐率高达1 MIPS/MHz。 AVR内核具有丰富的指令集和 32个通用工作寄存器。所有的寄存器都直接与算术逻辑单元(ALU) 相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率。ATmega8有8K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512 字节EEPROM ,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,三个具有比较模式的灵活的定时器/ 计数器(T/C), 片内/外中断,10位6路ADC 等。系统资源丰富,恰好满足本系统对处理器的要求,且不会造成多余的浪费。是现在市场上的主流产品,价格适中。西南科技大学本科生毕业论文9第 3章系统软件设计本系统软件部分可以分为:主程序、中断服务程序和功能函数。主程序完成系统初始化然后调用各个功能函数完成数据的测量,对安全值进行报警显示。功能函数主要有:端口控制函数、40KHz 信号产生函数、度越时间测量函数、温度测量函数、车速测量函数、距离计算函数、LED 显示函数、声音报警函数。完成各种开关控制信号的产生以及测距基本功能的实现。系统总框图如图 3-1 所示:图3-1 系统总框图本系统在设计之初就充分的考虑到了性价比等各种因素,采用 AVR 单片机ATmega8L。系统在设计过程中就基本上用完了该芯片的所有 I/O 口,充分的利用了系统资源,不会造成资源的浪费。系统对其 I/O 端口的分配情况如表 3-1 所示。超声波传感器微波雷达传感器单片机系统ATmega8L温度传感器LED 显示声音提示车速传感器 时钟电路复位电路西南科技大学本科生毕业论文10表3-1 系统I/O端口使用情况I/O 端口 使用情况PORTD LED 数据接口PC5, PC4, PC3 LED 公共端使能接口PC6 复位PB6, PB7 XTAL1, XTAL2 接外部 8M 晶振PB0 ICP1 接输入捕捉输入端口PC2 声音报警信号输出PC0 车速模拟量输入端口PB3 OC2 40kHz 信号输出端口PB4 超声波发射使能端口PB5 超声波接收使能端口PB1 微波雷达探测器信号输入接口PC1 温度模拟量输入端口系统主程序流程图如图 3-2 所示:图3-2 主程序流程图开始端口初始化T/C0 初始化T/C1 初始化T/C2 初始化A/D 初始化开全局中断使能计算并处理声音报警、LED 显示读取 T/C1、A/D值有微波雷达探测信号?YN西南科技大学本科生毕业论文11本系统软件的设计思路主要是把系统的每一部分分别用一个函数子程序来完成,所以主程序就显得很简单:首先调用端口初始化函数,对端口进行初始化操作。然后系统将一直检测微波雷达探测器信号输入端口,如果没有反馈信号(为高电平)则一直继续检测。一直到有反馈信号(为低电平)后,开始调用T/C0初始化子程序,对T/C0进行初始化操作。接下来分别调用T/C1, T/C2,ADC初始化子程序,对其进行初始化操作。由于系统好几个模块都采用的是中断方式(ATmega8的主要中断向量见表3-2) ,所以当系统初始化完成后就必须打开全局中断使能。只有打开发全局中断使能,当中断源发生中断事件时系统才能受理。进入中断服务程序。接下来要调用子程序,读取T/C1、A/D的值。因为 T/C1、A/D 为16位的值,而系统为8位总线,不能直接读取。再接下来要对这两个值进行一定的计算处理,设定一定的危险等级。最后根据计算出来的结果,进行相应的声光报警。这是本系统主程序的一个工作流程。表3-2 ATmega8 的中断向量向量号 程序 地址 中断源中断定义1 0x000 REST外部2 0x001 IN0外部中断请求03 0x002 1外部中断请求14 0x003 TIMER2 COMP 定时器/计数器2比较匹配5 0x004 TIMER2 OVF 定时器/计数器2溢出6 0x005 TIMER1 CAPT 定时器/计数器1捕捉事件7 0x006 TIMER1 COMPA 定时器/计数器1比较匹配A8 0x007 TIMER1 COMPB 定时器/计数器1比较匹配B9 0x008 TIMER1 OVF 定时器/计数器1溢出10 0x009 TIMER0 OVF 定时器/计数器0溢出11 0x00A SPI, STC SPI串行传输结束15 0x00E ADC ADC转换结束西南科技大学本科生毕业论文123.1微波雷达探测汽车在行驶过程中,随时需要实时的检测汽车前方是否有障碍物。当汽车在高速行驶时,需要检测的距离将会非常远。几十米至上百米的距离时就需要一个安全可靠的探测器还完成,微波雷达是一个不错的选择。采用微波雷达来完成测距功能,由于测距过程中数据计算的复杂性,对系统速度和精度的要求高,超出了一般单片机的处理能力,需要加入DSP或FPGA芯片才能完成,不利于普及。所以本系统采用雷达式防盗探测器来检测汽车前方是否有障碍物。当前方没有障碍物时,系统实时显示汽车当前速度值;当前方5m处出现障碍物时,发出电平信号给中央处理器进行处理。单片机收到这一电平信号后,开启超声波检测电路,用超声波进行精确距离测量,并做出相应的报警动作。流程图如图3-3所示。图3-3 微波雷达探测流程3.2超声波检测系统使用超声波进行精确测距,主要分为发射与接收两部分。在发射单元中,利用定时器计数器来产生发射信号。系统在中断的过程中,需要做现场保护等操作。而且还有可能产生中断嵌套等情况,使得系统的可靠性会受到一定的影响。为了减少频繁的使用中断,系统使用8位有PWM与异步操作的定时器/ 计数器2的CTC方来产生40KHz信号。这一方式在系统执行期间将不必产生中断,不影响其它程序的执行的情况下可靠的产生信号。这是产生频率信号的最佳途径。而为了能正确的完成设计,需要对该定时器/计数器作一个深入的了解认识。有微波探测信号?启动速度检测显示速度值启动超声波检测显示距离,声音报警YN西南科技大学本科生毕业论文13而在接收单元中,需要对超声波的度越时间进行精确的计时。本系统所使用的单片机ATmega8L有一个16位的定时器计数器,系统使用它来完成距离测量过程中的精确计时功能。当接收到回波信号后,通过对定时器计数器值作相应的计算处理就可以得到一个准确的距离数值。3.2.1超声波发射1、40kHz 信号的产生(1)T/C2 相关知识T/C2 是一个通用单通道 8 位定时/计数器,其主要特点如下: 单通道计数器 比较匹配时清零定时器(自动重载) 无干扰脉冲 ,相位正确的脉宽调制器 (PWM) 频率发生器 10 位时钟预分频器 溢出与比较匹配中断源(TOV2 与 OCF2) 允许使用外部的 32kHz 手表晶振作为独立的 I/O 时钟源双缓冲的输出比较寄存器 OCR2 一直与 TCNT2 的数值进行比较。波形发生器利用比较结果产生 PWM 波形或在比较输出引脚 OC2 输出可变频率的信号。比较匹配结果还会置位比较匹配标志 OCF2,用来产生输出比较中断请求。根据不同的工作模式,计数器针对每一个 clkT2 实现清零、加一或减一操作。clkT2 可以由内部时钟源或外部时钟源产生,具体由时钟选择位 CS22:0 确定。没有选择时钟源时(CS22:0=0)定时器停止。但是不管有没有 clkT2,CPU 都可以访问TCNT2。CPU 写操作比计数器其他操作 (清零、加减操作 )的优先级高。计数序列由 T/C 控制寄存器(TCCR2)的 WGM21 和 WGM20 决定。计数器计数行为与输出比较 OC2 的波形有紧密的关系。T/C 溢出中断标志 TOV2 根据 WGM21:0 设定的工作模式来设置。TOV2 以用于产生 CPU中断 8 位比较器持续对 TCNT2 和输出比较匹配寄存器 OCR2 进行比较。一旦 TCNT2 等于OCR2,比较器就给出匹配信号。在匹配发生的下一个定时器时钟周期里输出比较标志 OCF2 置位。若 OCIE2=1 还将引发输出比较中断。执行中断服务程序时 OCF2 将自动清零,也可以通过软件写”1”的方式进行清零。根据 WGM21:0 和 COM21:0 设定的不同工作模式,波形发生器可以利用匹配信号产生不同的波形西南科技大学本科生毕业论文14(2)定时器工作模式的选择本系统设计中使用 CTC(比较匹配时清除定时器)模式。在 CTC 模式(WGM21:0=2)里 OCR2 寄存器用于调节计数器的分辨率。当计数器的数值 TCNT2等于 OCR2 时计数器清零。OCR2 定义了计数器的 TOP 值,亦即计数器的分辨率。这个模式使得用户可以很容易地控制比较匹配输出的频率,也简化了外部事件计数的操作。CTC 模式的时序图为图 3-4。计数器数值 TCNT2 一直累加到 TCNT2 与 OCR2匹配,然后 TCNT2 清零。图 3-4CTC 模式的时序图利用OCF2标志可以在计数器数值达到TOP 即产生中断。在中断服务程序里可以更新TOP 的数值。由于CTC模式没有双缓冲功能,在计数器以无预分频器或很低的预分频器工作的时候将TOP更改为接近BOTTOM的数值时要小心。如果写入OCR2的数值小于当前TCNT2的数值,计数器将丢失一次比较匹配。在下一次比较匹配发生之前,计数器不得不先计数到最大值0xFF ,然后再从 0x00开始计数到OCR2。为了在CTC 模式下得到波形输出,可以设置OC2在每次比较匹配发生时改变逻辑电平。这可以通过设置COM21:0=1 来完成。在期望获得 OC2输出之前,首先要将其端口设置为输出。波形发生器能够产生的最大频率为fOC2=fclk_I/O/2(OCR2=0x00)。频率由如下公式确定: _/2(1)clkIOOCnffNRnA变量N代表预分频因子(1、8、32、64、128、256或1024)。而在本系统中,系统时钟为8MHz,要产生的波形为40KHz ,代入上式,选N 为西南科技大学本科生毕业论文151,所以得出OCR2=99。模式下OCF2置位和TCNT2 清除的情况如图3-5所示:图3-5T/C 时序图,CTC 模式,预分频器为fclkI/O/8(3)T/C2 寄存器的配置 Bit 7 FOC2: 强制输出比较表3-3 T/C 控制寄存器TCCR2Bit 7 6 5 4 3 2 1 0TCCR2 FOC2 WGM20 COM21 COM20 WGM21 CS22 CS21 CS20读写 R R/W R/W R/W R/W R/W R/W R/W初值 0 0 0 0 0 0 0 0FOC2仅在WGM 指明非PWM模式时才有效。但是,为了保证与未来器件的兼容性,使用PWM时,写TCCR2要对其清零。写1后,波形发生器将立即进行比较操作。比较匹配输出引脚OC2将按照COM21:0的设置输出相应的电平。要注意FOC2类似一个锁存信号,真正对强制输出比较起作用的是COM21:0的设置。FOC2不会引发任何中断,也不会在使用OCR2作为TOP的CTC 模式下对定时器进行清零。读FOC2的返回值永远为0。 Bit 6,3 WGM21:0: 波形产生模式这几位控制计数器的计数序列,计数器最大值TOP的来源,以及产生何种波形。西南科技大学本科生毕业论文16表3-4 波形产生模式的位定义模式 WGM21(CTC2)WGM20(PWM2)T/C 的工作模式 TOP OCR2 的更新时间TOV2 的置位时刻0 0 0 普通 0xFF 立即更新 MAX1 0 1 相位修正 PWM 0xFF TOP BOTTOM2 1 0 CTC OCR2 立即更新 MAX3 1 1 快速 PWM 0xFF TOP MAX Bit 5:4 COM21:0: 比较匹配输出模式这些位决定了比较匹配发生时输出引脚 OC2 的电平。如果 COM21:0 中的一位或全部都置位,OC2 以比较匹配输出的方式进行工作。同时其方向控制位要设置为 1 以使能输出驱动。当 OC2 连接到物理引脚上时,COM21:0 的功能依赖于 WGM21:0 的设置。表 3-4 给出了当 WGM21:0 设置为普通模式或 CTC 模式时 COM21:0 的功能。表3-5比较输出模式,非PWM模式COM21 COM20 说明0 0 正常的端口操作,OC2 未连接0 1 比较匹配发生时 OC2 取反1 0 比较匹配发生时 OC2 清零1 1 比较匹配发生时 OC2 置位 Bit 2:0 CS22:0: 时钟选择这三位时钟选择位用于选择T/C的时钟源,见表3-6。表3-6 时钟选择位说明CS22 CS21 CS20 说明0 0 0 无时钟,T/C 不工作0 0 1 clkT2S/(没有预分频 )0 1 0 clkT2S/8(来自预分频器 )0 1 1 clkT2S/32(来自预分频器 )1 0 0 clkT2S/64(来自预分频器 )西南科技大学本科生毕业论文171 0 1 clkT2S/128(来自预分频器 )1 1 0 clkT2S/256(来自预分频器 )1 1 1 clkT2S/1024(来自预分频器 )在本系统中,要产生的是40KHz的波形,所以对寄存器的设定为:工作在 CTC 模式,所以 WGM21=1,WGM20=0。输出时 OC2 取反,所以 COM21=0,COM20=1。时钟选择为没有预分频的状态,所以CS22=0 CS21=0 CS20=1所以,TCCR2=0b11010001图3-6T/C2工作流程图注意:通过T/C寄存器可以直接对计数器的8位数据进行读写访问。对TCNT2寄存器的写访问将在下一个时钟阻止比较匹配。在计数器运行的过程中修改TCNT2 的数值有可能丢失一次TCNT2和OCR2的比较匹配。输出比较寄存器包含一个8位的数据,不间断地与计数器数值TCNT2 进行比较。匹配事件用来在OC2引脚上产生波形。2、超声波检测周期初始化TCNT2+1NYOC2 取反输出开始TCNT2OCR2?西南科技大学本科生毕业论文18系统在进行超声波检测的时候,有一个测距周期(即完成一次测距工作的时间)30ms。这个周期由以下几个时间段组成:发送 6 个 40KHz 的波形脉冲,占用 150us; 1等待 300us 后开启输入捕捉使能(盲区隔离) ; 2等待回波信号 3而这个工作周期用单片机上所剩的 T/C0 来完成。T/C0是一个通用的单通道8位定时器/计数器模块。T/C可以通过预分频器由内部时钟源驱动,计数方向始终向上(增加),且没有计数器清除操作。当计数器值超过最大8位值(MAX=0xFF)时,重新由 0x00开始计数。在正常工作时,当TCNT0 变为“0”时,T/C溢出标志(TOV0) 置位。当中断使能时,将开始执行中断服务程序。在应用T/C0时,得先给TCNT0赋初值。初始化超声波发射盲区隔离开启 T/C1 输入捕捉使能T/C1 输入捕捉执行中断服务程序T/C1 开始计数有回波?T/C1 溢出?YYNN西南科技大学本科生毕业论文19图3-7T/C0的中断服务程序流程图在本系统中,使用T/C0最为简单定时功能。当T/C中断屏蔽寄存器TIMSK中的TOIE0和状态寄存器的全局中断使能位 I都为“0”时,T/C0的溢出中断使能。当T/C0发生溢出,即TIFR中的TOV0位置位时,中断服务程序得以执行(如图 3-7所示) 。当计数器T/C溢出而执行中断服务程序后,可以重新给这个TCNT0赋初值。3.2.2超声波接收本系统所使用的单片机ATmega8L有一个16位的定时器计数器。系统使用它来完成距离测量过程中的精确计时功能。当接收到回波信号后,通过对定时器计数器值作相应的计算处理就可以得到一个准确的距离数值。1、T/C1相关知识16位的T/C可以实现精确的程序定时(事件管理) 、波形产生和信号测量。其主要特点如下: 真正的16位设计(即允许16位的PWM) 2个独立的输出比较单元 双缓冲的输出比较寄存器 一个输入捕捉单元 输入捕捉噪声抑制器 比较匹配发生时清除寄存器(自动重载) 无干扰脉冲,相位正确的PWM 可变的PWM周期 频率发生器 外部事件计数器 4个独立的中断源( TOV1、OCF1A、OCF1B 与ICF1)定时器/计数器TCNT1、输出比较寄存器OCR1A/B与输入捕捉寄存器ICR1均为16位寄存器。16位计数器映射到两个8位I/O存储器位置:TCNT1H为高8位,TCNT1L为低 8位。CPU 只能间接访问TCNT1H寄存器。CPU访问TCNT1H时,实际访问的是临时寄存器(TEMP) 。读取TCNT1L时,临时寄存器的内容更新为TCNT1H的数值;而对TCNT1L执行写操作时,TCNT1H被临时寄存器的内容所更新。显示报错字符西南科技大学本科生毕业论文20访问16位寄存器必须通过特殊的步骤:TCNT1、OCR1A/B与ICR1 是AVR CPU通过8位数据总线可以访问的 16位寄存器。读写16位寄存器需要两次操作。每个16位计时器都有一个8位临时寄存器用来存放其高8位数据。每个16位定时器所属的16位寄存器共用相同的临时寄存器。访问低字节会触发16位读或写操作。当CPU写入数据到16位寄存器的低字节时,写入的8位数据与存放在临时寄存器中的高8位数据组成一个16位数据,同步写入到16位寄存器中。当CPU 读取16位寄存器的低字节时,高字节内容在读低字节操作的同时被放置于临时辅助寄存器中。并非所有的16位访问都涉及临时寄存器。对OCR1A/B寄存器的读操作就不涉及临时寄存器。写16位寄存器时,应先写入该寄存器的高位字节。而读16位寄存器时应先读取该寄存器的低位字节。在对16位寄存器操作时,最好首先屏蔽中断响应,防止在主程序读写16位寄存器的两条指令之间发生这样的中断:它也访问同样的寄存器或其他的16位寄存器,从而更改了临时寄存器。如果这种情况发生,那么中断返回后临时寄存器中的内容已经改变,造成主程序对16位寄存器的读写错误。下面是读取ICR1寄存器的函
收藏