1、- i -本科毕业论文(20 届)基于 ARM 的超声波测距计数仪所在学院专业班级 电子信息科学与技术学生姓名指导教师完成日期- ii -基于 ARM 的超声波测距计数仪目 录前言 .3第 1 章 超声波测距原理 .4第 1.1 节 超声波的介绍 .4第 1.2 节 超声波测距的方法 .4第 1.3 节 超声波计数的方法 .5第 2 章 系统的总体设计 .6第 2.1 节 测距方案的选择 .6第 2.2 节 微处理器的选择 .6第 2.3 节 编程语言的选择 .7第 3 章 系统硬件设计 .8第 3.1 节 超声波发射与接收电路 .8第 3.2 节 Open103Z 的电路 .8第 3.3 节
2、 Open103Z 开发板接口与超声波的接口电路 .9第 4 章 系统软件设计 .11第 4.1 节 主程序设计总体思路 .11第 4.2 节 超声波测距算法设计 .11第 4.3 节 超声波计数算法设计 .12第 4.4 节 系统的中断处理 .12第 5 章 系统测试 .15第 5.1 节 测试任务与目标 .15第 5.2 节 测试方案 .15第 5.3 节 测试结果 .15结论 .16参考文献 .17致谢 .17附录 .18附录 1:实物照片说明 .18附录 2:部分源程序 .18第 1 页基于 ARM 的超声波测距计数仪【摘要】:超声波测距计数仪是用来统计景区的进出人数。论文介绍了基于
3、ARM 控制的超声测距计数的原理:由 Open103ZE 控制定时器产生超声波脉冲并计时,计算超声波自发射至接收的往返时间,从而得到实测距离。根据检测到的距离来判断是否有人经过超声波,开始计数。同时根据返回来的数据用 LCD 显示屏将测得的距离与计数显示出来。根据要实现的功能设计了系统的总体方案,整个硬件电路由超声波发射电路、超声波接收电路、电源电路、显示电路等模块组成。各探头的信号经 ARM 综合分析处理,实现超声波测距仪的各种功能。最后通过硬件和软件实现了各个功能模块。相关部分附有硬件电路图、程序流程图,给出了系统构成、电路原理及程序设计。此系统具有易控制、工作可靠、测距准确度高、可读性强
4、和流程清晰等优点。实现后的作品可用于需要测量距离参数的各种应用场合。【关键词】:ARM;超声波;测距计数;第 2 页Abstract: Ranging counting system is designed to statistics of the number of people entering the scenic design. The principle of ultrasonic distance measurement based on ARM controlled counting: Ultrasonic pulse generated by the Open103ZE con
5、trol timer and timer, calculated from the ultrasonic transmitter to the receiver of the round-trip time, resulting in the measured distance. According to the detected distance to determine whether someone is subjected to ultrasonic starts counting. According to the data returned while the measured d
6、istance and count displayed by the LCD display. The hardware circuit by the ultrasonic transmitter, ultrasonic receiver circuit, a power supply circuit, display circuit module. Each probe signal by the microcontroller comprehensive analysis process, Ultrasonic range finder to achieve a variety of fu
7、nctions. On this basis, the overall design schemes of the system, finally, the hardware and software implementation of the various functional modules. Accompanied by the relevant part of the hardware circuit, program flow, given the system configuration, the circuit schematic and program design. Thi
8、s system is easy to control, reliable, ranging accuracy, readability and flow clear advantages. Work can be used to realize the need to measure the distance parameter for various applications.Key words: ARM; ultrasound; ranging counts;第 3 页前言随着科学技术的发展,超声波在各个领域的发展越来越广泛。这是一个正在蓬勃发展而又无线前景的技术产业。展望未来,超声波测
9、距仪作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求,超声波现在应用在各个行业,其中电子行业是超声波清洗应用最早,最为普及的行业。如电子零件的清洗,电子元器件的基本清洗,PCB 板的清洗等等,这都用到了超声波。另外,超声波在测距领域应用的越来越多,这预示着超声波将在测距领域发挥更大的作用。 由于我们科技的不断发展,人们不单单只追求温饱问题,更多的是对精神提升享受的追求。在节假日里会选择到一些景点去看看。目前景区大多采用的摄像头计数,观察拥堵情况,这种方法受亮度、光照条件变化、人流量密集程度的影响较大,而且得到的结果也不是
10、很准确。由于这种特殊的环境要求,在景区为了统计游客流量,以及了解出入口是否会出现拥挤,采用了超声测距的测量方法 ,不易受外界电磁场光强被测物色彩等因素的影响,且系统检测易维护,测量精度较高,成本也比较低。我们可以根据超声波反馈回来的情况,可以进行计数,对人流量进行统计。从而将景区游客的情况准确、清晰的统计出来。同时,它能做到实时控制和检测可靠优势而使其具有很高的使用用价值。本设计主要是使用 Open103Z 的开发板和 4 个超声波做一个基于 ARM 的超声波测距计数仪。希望未来可以应用在各个景区。该设计由 Open103ZE 控制定时器产生超声波脉冲并计时,计算超声波自发射至接收的往返时间,
11、从而得到实测距。通过超声波感应到有人通过时,即发出的脉冲有反馈回来,根据时间与脉冲的传播速度,立即计算人与超声波的距离,实现一个测距的功能。至于计数,就要根据人通过超声波的测距来记录人是否进入或出来。当测到距离的时候就证明有人人通过。也就是说有两个超声波,当人通过超声波 A 并且通过超声波 B 是才记录进入一人,当人通过超声波 B 并且通过超声波A 是才记录出去一人。如果只单单通过超声波 A 或者超声波 B 时,不计数。从而实现精确地统计进出景区人数与景区是否拥挤的情况。由于原本的统计经期人数的方法受到很多客观条件的影响,该设计受影响的因素很少,那么就具有了很强的可实施性,给人们提供了很大的方
12、便。不仅能准确的统计出荆楚景区的人数,同时也能让游客观察到哪里比较拥堵,可以避免进入拥堵区,从而错开观赏的时间,能更好的享受在外游玩的美好时光。因此,设计好的超声波测距计数仪就显得非常重要了,这就是我研究设计超声波测距计数仪的意义。第 4 页第 1 章 超声波测距原理第 1.1 节 超声波的介绍1.1.1. 超声波定义科学家们将每秒钟振动的次数称为声音的频率,它的单位是赫兹(Hz)。我们人类耳朵能听到的声波频率为 20Hz20000Hz 。当声波的振动频率小于 20Hz 或大于 20KHz 时,我们便听不见了。因此,我们把频率高于 20000 赫兹的声波称为“超声波” 11。1.1.2. 超声
13、波的产生声波是物体机械振动状态(或能量)的传播形式。所谓振动是指物质的质点在其平衡位置附近进行的往返运动形式。譬如,鼓面经敲击后,它就上下振动,这种振动状态通过空气媒质向四面八方传播,这便是声波。超声波是指振动频率大于 20000Hz 以上的,其每秒的振动次数(频率)甚高,超出了人耳听觉的一般上限(20000Hz) ,人们将这种听不见的声波叫做超声波。超声和可闻声本质上是一致的,它们的共同点都是一种机械振动模式,通常以纵波的方式在弹性介质内会传播,是一种能量的传播形式,其不同点是超声波频率高,波长短,在一定距离内沿直线传播具有良好的束射性和方向性 11。1.1.3. 超声波的优点由于超声波指向
14、性强,能量消耗缓慢,在介质中传播距离远,因而超声波可以用于距离测量。利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到要求。同时可用于测距,测速,清洗,焊接,碎石等。在医学,军事,工业,农业上有明显的作用。第 1.2 节 超声波测距的方法1.2.1. 超声波测距分析实用的超声测距方法有两种,一种是在被测距离的两端,一端用来发射,另一端来接收的直接波方式,这种方法适用于身高计;一种是发射波被物体反射回来后接收的反射波的方式,这种方法适用于测距仪。所以此次设计采用反射波的方式。超声波是利用反射的原理测量距离的,被测距离一端为超声波传感器,另一端必须有能反射超声波的物体。
15、测量距离时,将超声波传感器对准反射物发射超声波,并开始计时,超声波在空气中传播到达障碍物后被反射回来,传感器接收到反射脉冲后立即停止计时,假如声波在介质中传播的速度是已知的, 而且声波从声源到达目标,而返回声源的时间可以测量得到, 那么就可以计算出从声波到目标的距离。超声测距仪是根据超声波遇到障碍物反射回来的特性进行测量的, 即测量距离 为:D第 5 页vtD21式子中, 为超声波的传播速度; 为超声波发射到接收所需时间的一半,也就是vt单程传播时间。超声波测距系统主要包括 ARM 系统、超声波发射电路、超声波接受电路、移动板、显示电路等。系统结构图如图所示 4:障碍物 超声波模块显示模块AR
16、M 系统图 1-1 超声波系统结构图1.2.2. 超声波测距原理框图ARM 发出的信号,经放大后通过超声波发射器输出;超声波接收器将接收到的超声波信号经放大器放大,用锁相环电路进行检波处理后,启动 ARM 中断程序,测得时间为,再由软件进行判别、计算,得出距离数并送 LED 显示。原理框图见下图 4:t超声波接收器放大电路锁相环检波电路ARM控制器定时器显示器放大电路超声波发射器图 1-2 超声波测距原理框图第 1.3 节 超声波计数的方法根据超声波测得的距离,感应到的物体的次数来实现计数的功能。由于这是给景区统计进出人数设计的,所以要同时考虑到进和出两种情况,那么就得分先后,所以一个门我使用
17、两个超声波。一共先设计两个门的,假如 4 个超声波分别为 A、B 、C、D 。当有人先通过 A 后通过 B 时,记为门一进的人数,当有人先通过 B 后通过 A 时,记为门一出的人数;当有人先通过 D 后通过 C 时,记为门二进的人数,当有人先通过 C 后通过 D时,记为门二出的人数。最终在 LED 显示屏上将结果清晰准确的显示出来。第 6 页第 2 章 系统的总体设计第 2.1 节 测距方案的选择测量距离,通常是测量两点间连线的距离,测量距离的方法有很多种,例如量尺量距、视距测量、视差法测距和电磁波测距等,可根据测量的性质、精度要求和其他条件选择。2.1.1. 视距测量用有视距装置的测量仪器,
18、按光学和三角学原理测定两点间距离的方法。常用经纬仪、平板仪、水准仪和有刻划的标尺施测。通过望远镜的两条视距丝,观测其在垂直竖立的标尺上的位置,视距丝在标尺上的间隔称为尺间隔或视距读数,仪器到标尺间的距离是尺间隔的函数,对于大多数仪器来说 , 在设计时使距离和尺间隔之比为 100。视距测量的精度可达 1/3001/400 12。2.1.2. 视差法测距用经纬仪测量定长基线横尺所对的水平角,利用三角公式计算仪器至基线间的水平距离。此水平角称视差角。基线横尺两端固定标志间的距离一般为 2 米。尺上装有水准器和瞄准器,以便将横尺安置水平并使尺面与测线垂直。 视差法测距的精度较低 12。2.1.3. 超
19、声波测距用超声波测量距离,先由超声波测距仪向前方发射超声波,超声波在空气中直线传播。当前方有障碍物时,超声波发生反射并被接收端接收。这样通过比较反射回来的超声波与发射超声波的时间差,就可以计算出测距仪到阻碍物之间的距离。反射超声波与发射超声波的时间差比较容易获取,且计算只与超声波在空气中的传播速度有关,因此,这种方法将得到普遍应用 2。通过对以上方法的对比,由于景区环境的特殊要求,选择超声波测距的方式。第 2.2 节 微处理器的选择2.2.1. ARM 微处理器ARM 一般来说接口资源较单片机要丰富得多 RM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大
20、量高性能、廉价、耗能低的 RISC 处理器、相关技术及软 件。 ARM 架构是面向低预算市场设计的第一款 RISC 微处理器,基本是 32 位单片机的行业标准,它提供一系列内核、体系扩展、微处理器和系统芯片方案,四 个功能模块可供生产厂商根据不同用户的要求来配置生产。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行。目前 ARM 在手持设备 市场占有 90 以上的份额,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。ARM 具有比第 7 页较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面。2.2.2. MCS - 51 单片机现在常用的
21、 AT89C2051 单片机的主要性能:AT89C2051 指令与 MCS - 51 100 %兼容;内带 2K 字节可编程闪速存储器可重复擦写 1000 次 ;数据保留时间:10 年; 工作电压范围: 2.7 6V ;工作频率 :0 24MHz ;两级程序加密锁定 ;128 字节内部 RAM;15 条可编程双向 I /O 口线;两个 16 位定时器/计数器:5 个中断源;可编程串行 URAT 通道; 输出口能直接驱动LED;片内有模拟比较器;低功耗的闲置和掉电模式 ;标准的 DIP20 封装,外形较小。其引脚性能和 80C31 的几乎是一样的,只是 p1.0 和 p1.1 没有上拉电阻,为片
22、内模拟比较器的两个输入端。在掉电模式下,振荡器停止工作,生成掉电状态的指令是最后执行的一条指令。片内 RAM 和特殊功能寄存器保持其值不变直到掉电模式终止 3。MCS - 51 是基础,电路简单,编程也比较容易,资料众多,芯片很便宜,也很容易买到,适合入门级,但一旦数据量很大,涉及复杂运动控制,视频等内容时,MCS - 51 就力不从心了.运算的速度和效率低也是 MCS - 51 的一个缺点。本设计对安全性要求很高,功能要求强大,ARM 是 32 位处理器,频率可达百兆赫兹,速度和处理能力远远优于 MCS - 51。性能更优,因此选择 ARM 微处理器。第 2.3 节 编程语言的选择2.3.1
23、. 汇编语言汇编语言是面向机器的程序设计语言。汇编语言易于读写、易于调试和修改,同时也具有执行速度快,占内存空间少等优点,但在编写复杂程序时具有明显的局限性,汇编语言依赖于具体的机型,不能通用,也不能在不同机型之间移植。总的来说,汇编语言执行效率高,对硬件的可操控性强,体积小,但是汇编语言编写的程序不容易看懂,可维护性不好,可移植性很差。2.3.2. C 语言C 语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的 D.M.Ritchie 于 1972 年推出, 1978 年后,C 语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它是世界上最流行、使用最广泛的高级程序设计语言之一。具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到 C 语言,具体应用比如单片机以及嵌入式系统开发 13。C 是高级语言中最接近低级的语言,单片机种类繁多,各自的汇编语法大都不一样,C 语言可读性好,代码便于维护,便于开发;效率比较低,硬件可操控性比较差,目标代码体积大,但容易维护,可移植性很好。第 8 页结合众多因素,通过上述比较,最终选择 C 语言作为本设计的编程语言。