毕业设计超声波测距扩展卡的设计.doc

上传人:文库蛋蛋多 文档编号:4153384 上传时间:2023-04-07 格式:DOC 页数:40 大小:1.80MB
返回 下载 相关 举报
毕业设计超声波测距扩展卡的设计.doc_第1页
第1页 / 共40页
毕业设计超声波测距扩展卡的设计.doc_第2页
第2页 / 共40页
毕业设计超声波测距扩展卡的设计.doc_第3页
第3页 / 共40页
毕业设计超声波测距扩展卡的设计.doc_第4页
第4页 / 共40页
毕业设计超声波测距扩展卡的设计.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《毕业设计超声波测距扩展卡的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计超声波测距扩展卡的设计.doc(40页珍藏版)》请在三一办公上搜索。

1、目录目录1第1章 绪论21.1机器人研究的意义21.2目前国内外机器人发展趋势31.3能力风暴机器人的概述31.3.1 开设能力风暴机器人教育的意义31.3.2能力风暴机器人的外形与结构41.3.3 能力风暴机器人的计算机硬件81.3.4能力风暴机器人的开发能力9第2章 超声波测距扩展卡的设计102.1 超声波测距原理102.1.1超声波发生器102.1.2压电式超声波发生器原理102.1.3 超声波测距原理112.2课题设计的任务要求122.2.1设计的任务122.2.2设计的要求122.3方案设计比较122.3.1方案设计一122.3.2方案设计二162.3.3 方案比较的结论192.4

2、系统硬件结构设计192.4.1超声波测距的框图192.4.2 51单片机的结构功能特点192.4.3硬件扩展总线ASBUS222.5 绘制原理图和印刷电路板23第3章 超声波测距卡的软件调试253.1 VJC简介253.2 JC语言253.2.1 JC语言253.2.2 用JC代码编写超声波数据接收程序263.3 单片机汇编语言调试263.3.1 采用汇编语言的优点263.3.2 程序流程图273.3.3 所用的单片机程序29第4章 结论30谢辞32参考文献33第1章 绪论1.1机器人研究的意义机器人(Robot)是自动执行工作的机器装置。它既可以接受人类指挥,又可以运行预先编排的程序,也可以

3、根据以人工智能技术制定的原则纲领行动。它的任务是协助或取代人类工作的工作,例如生产业、建筑业,或是危险的工作。科学的进步与技术的创新,为机器人的研究与应用开辟了广阔的思路与空间。自从二十世纪六十年代初人类创造了第一台机器人以后,机器人就显示出它极大的生命力,在短短不到五十年的时间中,机器人的技术得到迅速的发展。“机器人产业在二十一世纪将成为和汽车、电脑并驾齐驱的主干产业。”从庞大的工业机器人到微观的纳米机器人,从代表尖端技术的仿人型机器人到孩子们喜爱的宠物机器人,机器人正在日益走近我们的生活,成为人类最亲密的伙伴。机器人技术和产业化在中国具有一定的现实基础和广阔的市场前景。开展机器人研究活动,

4、对加强思想道德教育,提高科学素养,发展自身潜能,引导更多学生关注科技、热爱科技、走进科技具有重大意义。同时有利于积极推进基础教育和高等教育改革,渗透科学技术教育,培养学生的实践能力和创新精神。“能力风暴”(Ability Storms)机器人由上海广茂达电子信息有限公司开发,呈单片机结构,外形酷似宇UFO,是专为个人机器人的需求设计的,专门面向教育的机器人。它是专门为大学进行课程教学、工程训练、机器人竞赛、科技创新以及研究服务开发的新型移动智能机器人。能力风暴个人机器人配有5种十几个传感器,另外还可以根据需要扩展其他传感器,对环境的感知能力很强。感知环境的能力是产生智能行为的前提,因此能力风暴

5、能产生许多智能性行为。能力风暴机器人可用于参加机器人足球比赛,在机器人足球、擂台赛等对抗激烈的比赛中,机器人只知道对手在附近而无法确定距离远近的问题。为此,可设计超声测距卡能发射超声波并检测被障碍物反射回来的声波,测量出两者的时间差,然后根据声音在空气中传播的速度,计算出障碍物与机器人之间的距离。在机器人比赛中可对周围环境进行探测,确定对手所在的方位。1.2目前国内外机器人发展趋势机器人技术是涉及机械学、传感器技术、驱动技术、控制技术、通信技术和计算机技术的一门综合性高新技术,既是光机电软一体化的重要基础,又是光机电软一体化技术的典型代表。其产品主要有两大类,即以日本和瑞典为代表的一系列特定应

6、用的机器人,如弧焊、点焊、喷漆装备、刷胶和建筑等,并形成了庞大的机器人产业。另一类是以美国、英国为代表的智能机器人开发,由于人工智能和其它智能技术的发展远落后于人们对它的期望,目前绝大部分研究成果未能走出实验室。机器人系统集成技术也是由几个主要发达国家所垄断。近年来,机器人技术并未出现突破性进展,各国的机器人技术研究机构和制造厂商都继续在技术深化、引进新技术和扩大应用领域等方面进行探索。1.3能力风暴机器人的概述1.3.1 开设能力风暴机器人教育的意义自从20世纪60年代初世界第一台机器人诞生以后,机器人技术得到了迅速地发展.在21世纪,机器人技术的进步将会对科学与技术的发展产生重要影响。高技

7、术研究发展计划(863计划)是我国关于高技术的中长期研究发展计划,智能机器人是自动化领域的主题之一。863计划开始实施以来,在特种机器人,机器人应用工程,机器人基础技术等方面取得了很大成绩,组织和培养了一支数量可观的研究开发队伍,建立了一批各具特色的研究开发环境,863计划已成为我国发展智能机器人技术的最重要的阵地。我们非常庆幸有这样一个平台能使学生比较全面综合地了解现代工业设计,机械,电子,传感器,计算机软件,硬件,人机交互,人工智能等诸多领域的先进技术,并亲身接触和体验现代高新技术,在学生获得科技知识和实践能力的同时,激发了他们的创新意识和创造发明的潜能,这个平台就是-智能机器人。能力风暴

8、机器人就是一种非常典型的智能机器人。能力风暴机器人AS-U(以下简称:AS-U)是上海广茂达公司生产的专门面向教育的机器人。它融合了现代工业设计、机械、电子、传感器、计算机和人工智能等诸多领域的先进技术,学生可以通过使用能力风暴个人机器人接触到多方面的知识和技术。它提供了一个接口平台,可供用户进行扩展,实现二次开发,在软件,机械,电子等方面均有较强的延拓能力。它采用图形化交互C语言(简称VJC)完成AS-U的软件开发,具有基于流程图的编程语言和交互式C语言(简称JC),便于用户自由发挥。开展能力风暴机器人研究活动,旨在进一步加强未成年人思想道德教育,提高广大青少年的科学素养,发展自身潜能,引导

9、更多的大中小学生关注科技、热爱科技、走进科技,涌现出更多的未来科学家和未来工程师。在积极推进基础教育和高等教育改革的过程中,渗透科学技术教育,努力培养大中小学学生的实践能力和创新精神。1.3.2能力风暴机器人的外形与结构(1)能力风暴机器人的外形能力风暴机器人外形酷似UFO,图1.1是能力风暴机器人的外观俯视图。图1.1 能力风暴机器人的外观俯视图(2) 能力风暴机器人的结构AS-UII 是面向教育的新一代智能移动机器人。AS-UII结构参见图1.2图1.2 AS-UII的内部结构图AS-UII有一个功能强大的微处理系统和传感器系统,而且它还能扩展听觉、视觉、和触觉,成为真正意义上的智能机器人

10、。AS-UII的身体结构主要由控制部分、传感器部分和执行部分三大部分组成。每一部分介绍如下:(A)控制部分控制部分是AS-UII机器人的核心组成部分,见图1.3。图1.3 AS-UII的控制部分从图中我们可以清楚的看到AS-UII控制部分的主要由以下两个部分组成:(a)主板位于AS-UII“心脏”部位的控制部件是AS-UII的大脑主板,它由很多电子元器件组成,跟人的大脑一样,主要完成接收信息、处理信息、发出指令等一系列过程。AS-UII的大脑有记忆功能,这主要由主板上的内存来实现,至于“大脑”的分析、判断、决断功能则由主板上的众多芯片共同完成。(b)控制按键位于AS-UII背部的控制面板,是A

11、S-UII机器人运行控制部件,具体按键分布如下图所示:图1.4 控制按键部分开关按钮控制AS-UII电源开关的按钮,按此按钮可以打开或关闭机器人电源。“电源”指示灯按下AS-UII的开关后,这个灯会发绿光,这时就可以与机器人进行交流。“充电”指示灯当你给机器人充电时,“充电”指示灯发红光。“充电口”将充电器的相应端插入此口,再将另一端插到电源上即可对机器人充电。“下载口”“充电口”旁边的“下载口”用于下载程序到机器人主板上,使用时只需将串口连接线的相应端插入下载口,另一端与计算机连接好,这样机器人与计算机就连接起来了。“复位/ASOS”按钮这是个复合按钮,用于下载操作系统和复位。当串口通信线接

12、插在下载口上时,按击此按钮,机器人系统默认为此操作为下载操作系统;如果你想使用其复位功能则需要将通信线拔下,按击此按钮,机器人系统认为此操作为系统复位。“运行”键打开电源后,按击“运行”键,机器人就可以运行内部已存储的程序,按照“指令”行动。“通信”指示灯“通信”指示灯位于机器人主板的前方,在给AS-UII下载程序时,这个黄灯会闪烁,这样就表明下载正常,程序正在进入机器人的“大脑”即CPU。(B)传感器部分AS-UII机器人的传感器,如图1.5所示。主要有以下五种传感器:碰撞传感器,红外传感器,光敏传感器,话筒,光电编码器。(C)执行部分AS-UII机器人的执行部分是指机器人执行具体功能时所要

13、用到的部件,如图1.6AS-UII执行部分所示。主要有:扬声器,LCD,主动轮及其驱动机构,从动轮,直流电机。图1.5 AS-UII传感器部分图1.6 LCD和AS-UII执行部分(D)AS-UII的能源将AS-UII机器人头朝下翻过来,就能够看到它的底盘下安装有一个盒体,这就是电池。见图1.7 AS-UII的电池。智能机器人的能量就来自于这个电池。图1.7 AS-UII的电池1.3.3 能力风暴机器人的计算机硬件人对周围环境的反应过程主要是感觉大脑思考作出反映,机器人的信息处理流程也是如此。能力风暴通过微控制器(microcontroller)来思维。我们采用的是Motorola公司8位单片

14、机中功能最强、集成功能最全的高档机种。它的可靠性很高,有程序自下载功能。能力风暴连上串口线就可自动下载程序。计算机硬件决定了机器的极限潜能,去开发这种潜能是软件的工作。我们为用户提供了交互式图形化编程C语言VJC,它使开发能力风暴的高层行为充满了乐趣。有的低层的驱动软件与硬件相关太紧密或实时要求很高,需要用汇编语言来处理。能力风暴机器人的系统结构如图1.8所示。图1.8 能力风暴机器人的系统结构能力风暴计算机硬件的设计策略是尽量选择功能齐全、可靠、周边设备集成度高的微控制器,价格也需控制,能让中国的学生以可以承受的价格获得世界上先进的智能机器人计算平台。Motorola生产的68HC11,使我

15、们以极少的周边芯片获得了齐全的功能,8个模拟口,5个输入捕捉,3个PWM输出,16位地址,8位数据总线,串口,以及4个通用I/O。1.3.4能力风暴机器人的开发能力(1)软件开发能力标准语言子集,简洁的专业程序员语言支持浮点运算、指针、多维数组;先进的多任务操作系统;便于学习的图形化交互式语言;众多的驱动程序和应用程序代码,在高手的基础上学习编程。能力风暴机器人AS- U它采用图形化交互C 语言( 简称VJC)完成AS- U的软件开发, 具有基于流程图的编程语言和交互式C 语言(简称JC),便于用户自由发挥。(2)机械扩展能力至个直流电机;至个步进电机交流伺服电机;至个继电器、电继阀、记忆合金

16、;至个灯泡、电热丝、蜂鸣器。扩展实例:灭火风扇,机械手臂,装饰彩灯等。(3)电子扩展能力至几百路位模拟输入;至几十路输出捕捉;路数字式输出。扩展实例:超声测距卡,红外测距卡,路伺服电机驱动卡,路输入输出。第2章 超声波测距扩展卡的设计2.1 超声波测距原理2.1.1超声波发生器 为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。总体上讲,超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。目前较为常用的是

17、压电式超声波发生器。 在本次设计中我们采用市场上较为普遍的型号为TR40-16B的超声波传感器。TR40-16B是分体式超声波传感器,共分为接收和发射两部分。其中,标有T的是发射部分,标有R的是接收部分。2.1.2压电式超声波发生器原理 压电式超声波发生器实际上是利用压电晶体的谐振来工作的。超声波发生器内部结构有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。 若对发送传感器内谐

18、振频率为40KHz的压电陶瓷片(双晶振子超声波传感器)施加40KHz高频电压,则压电陶瓷片就根据所加高频电压极性伸长与缩短,于是发送40KHz频率的超声波,其超声波以疏密形式传播(疏密程度可由控制电路调制),并传给波接收器。接收器是利用压力传感器所采用的压电效应的原理,即在压电元件上施加压力,使压电元件发生应变,则产生一面为“+ ”极,另一面为“-”极的40KHz正弦电压。因该高频电压幅值较小,故必须进行放大。 超声波传感器使得驾驶员可以安全地倒车,其原理是利用探测倒车路径上或附近存在的任何障碍物,并及时发出警告。所设计的检测系统可以同时提供声光并茂的听觉和视觉警告,其警告表示是探测到了在盲区

19、内障碍物的距离和方向。2.1.3 超声波测距原理 超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2 。这就是所谓的时间差测距法。 超声波测距的原理是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。由此可见,超声波测距原理与雷达原理是一样的。测距的公式表示为:L=CT(1) 式中L为测量的距离长

20、度;C为超声波在空气中的传播速度;T为测量距离传播的时间差(T为发射到接收时间数值的一半)。 超声波测距主要应用于倒车提醒、建筑工地、工业现场等的距离测量,虽然目前的测距量程上能达到百米,但测量的精度往往只能达到厘米数量级。 由于超声波易于定向发射、方向性好、强度易控制、与被测量物体不需要直接接触的优点,是作为液体高度测量的理想手段。在精密的液位测量中需要达到毫米级的测量精度,但是目前国内的超声波测距专用集成电路都是只有厘米级的测量精度。通过分析超声波测距误差产生的原因,提高测量时间差到微秒级,以及用LM92温度传感器进行声波传播速度的补偿后,我们设计的高精度超声波测距仪能达到毫米级的测量精度

21、。 超声波测距误差分析 根据超声波测距公式L=CT,可知测距的误差是由超声波的传播速度误差和测量距离传播的时间误差引起的。 时间误差当要求测距误差小于1mm时,假设已知超声波速度C=344m/s (20室温),忽略声速的传播误差。测距误差st(0.001/344) 0.000002907s即2.907ms。 在超声波的传播速度是准确的前提下,测量距离的传播时间差值精度只要在达到微秒级,就能保证测距误差小于1mm的误差。使用的12MHz晶体作时钟基准的89C51单片机定时器能方便的计数到1s的精度,因此系统采用89C51定时器能保证时间误差在1mm的测量范围内。2.2课题设计的任务要求2.2.1

22、设计的任务(1)超声测距卡能发射超声波并检测被障碍物反射回来的声波,测量出两者的时间差,然后根据声音在空气中传播的速度,计算出障碍物与机器人之间的距离。在机器人比赛中可对周围环境进行探测,确定对手所在的方位。(2)Protel格式的电路原理图和印刷电路板图各一张。(3)自制的超声测距卡一块。(4)利用VJC1.6编程工具调试通过。2.2.2设计的要求(1)可以直接应用于机器人足球比赛的超声测距卡一块。(2)完整的技术文档。(3)毕业论文。2.3方案设计比较2.3.1方案设计一本方案以AT89C51为核心,实现该单片机对外围电路的适时控制,并提供给外围电路各种所需要的信号,包括频率震荡信号和数据

23、处理信号等,大大简化了外围电路的设计难度。并同时更重要的使该设计方案大大节省了设计成本,并且由于是采用软件编程技术,所以它的移植性好,并在设计电路使可以将其他功能设计进去。(1)提高设计精度本设计以单片机为核心的低成本、高精度的超声波测距系统,以提高对时间t的测量精度,以最终达到提高测距精度的目的。以单片机内部计数器来计数测量超声波传输时间时,其测量精度受收盘价内部参考频率或主振频率的限制,若主振频率为12MHz,则内部参考频率为1MHz,周期为1s。参考频率计数误差的影响,往往就决定了测试系统的最高分辨力。提高分辨率的唯一方法就是提高计数参考平率。只有改进电路工作原理,才能提高测量精度。本电

24、路直接去自由单片机的主振频率12MHz,可升高技术参考频率,从而可提高超声波测距系统的测量分辨率。(2)超声波发射电路发射电路如图2-1所示,主要有频率产生电路、发射驱动电路和升压电路。图2-1 超声波发射电路a.频率产生电路本设计用到两种频率。一种是超声波的中心频率(40KHz);二是是单片机送出来的计数频率,根据超声波测距精度为1mm,超声波发射器的声波传播到反射物,再由反射物反射到接收器,所传播距离为2倍测量距离的计算得出。声波在标准气压下15的传播速度为341m/s,要设计一个时钟周期内超声波传播距离为0.02mm,341/0.02m=17.05103kHz,故一个时钟周期内所测距离便

25、为0.01m, N个周期所测的距离为N*0.01m。在软件编程能保证单片机在启停时两个频率信号同步,就具备了精确计数的最基本条件。b.发射驱动电路由于单片基P1口最多只有20mA的电流得知,超声波发射器的最小驱动电流比它要高,所以在输出口加入了一个三级管放大电路,由于工作频率比较高,所以这里悬着了产用的高频管9018,这样能很好的完成超声波的发射。c.升压电路由于TR40-16T发射超声波所需要的电压为12V,故需要一升压电路,将电压又5V升到12V,才能满足电路的需要。这里需要用到芯片LT1073,能很好的将电压升到12V,提供给传感器所需要的电压值。(3)超声波接收电路运放LM139的带宽

26、以及抗干扰能力都比较强,而且还是多个运放集成的芯片,节省了电路板上的空间,降低了布线的麻烦。在设计超声波信号放大电路时,将放大电路设计成两级同相交流放大电器,通过参数设置,每一级放大接近20倍,这样经过两级放大后,接收到的超声波信号就被放大了几乎400倍,完全能够被后续检测电路检测到。超声波放大电路有运算放大器芯片LM139等组成,具体放大电路如图2-2所示。图2-2超声波接收电路接受传感器TR40-16R奖反射的超声波转化为电信号后,由放大器放大后再送到由U4A、U4B等(如图2-3)组成的斯密特整形电路整理成规范的方脉冲。电R12和电位器R13为同相位端提供直流偏置电位。需要注意的是这两个

27、直流偏执电阻的作用是相当的重要,它可以很好的稳定运放LM139的直流工作点,不至于使其同相输入出现浮动状态,而造成输入信号不稳定。LM139芯片需要+5V到-5V的电压,而电源电压不能提供-5V的电压,需要用到一个变压电路,在这里我选用了由MAX660组成的变压电路,输入+5V,输出-5V,可以很好的提供给LM139负5V的电压,确保了LM139的正常工作,保证信号放大的准确。图2-3 私密特整形电路(4)单片机与ASBUS总线的连接电路单片机与ASBUS连接时需要用到锁存器74HC373,将单片机处理得到的最后数据锁存在74HC373中,当ASBUS用到所需要的数据时,由IO0-IO3四个输

28、出口中的一个发射信号,这四个输出口外部分别接了跳线,这样,当同时用到IO口时,通过跳线选择,避免了接收信号时得到错误的数据。具体接线如图2-4所示:图2-4 单片机与ASBUS的接线电路(5)方案设计的优缺点优点:本设计方案原理图简单,芯片较少,因此扩展卡成本低、制作相对简单;另外,由单片机直接发出控制信号控制,不占用存储空间,且所用硬件扩展总线端口较少,不影响扩展其它硬件;无需多加定时器产生40KHz的振荡频率。缺点:温度对测量的结果影响很大,在一定程度上限制了超声波测距的精度。另外,系统测试精度和分辨力还与超声波换能器的灵敏度及方向角度和风速有关系。还有一种误差时触发误差,触发误差由于被测

29、信号经过放大、整形,噪声信号、干扰信号的掺入,使触发的时间可能提前或滞后,给测量结果带来了随机误差,该误差与信号的触发波形有很大的关系。在本电路中给测量结果带来误差是量化误差,这也是不可避免的。 2.3.2方案设计二该方案主要包括:温度检测电路,超声波发射及控制电路,超声波接受及信号处理电路,微处理电路及其辅助电路,以及RS-232通信接口电路等5部分,其框图如图2-5:超声波发送超声波接收RS-232通信接口单片机控制器温度检测图2-5超声波测距的系统框图(1)超声波发射器的设计超声波接收器包括超声波产生电路和超声波发射控制电路两部分,超声波探头的型号选用CSB40T。可采用软件发生法和硬件

30、方法产生超声波。前者利用软件产生4DkHZ的超声波信号,通过输出引脚输人至驱动器,经驱动器驱动后推动探头产生超声波。在本设计中采用的就是这种方法产生超声波,具体设计图如图2-6所示。图2-6超声波发射机控制电路由上图可知,40KHz的超声波信号是利用555定时器及电路振荡产生的。其振荡频率计算公式如下式:(2)(2)超声波接收器的设计超声波接受器包括接受探头、信号放大电路及波形变换电路三部分。超声波探头设计中采用CSB40R。电路如图2-7所示。图2-7 超声波接受电路超声波在空气中传播时,其能量的衰减程度与距离成正比,即距离愈近,信号越强,距离越远信号越弱,通常在1mV-1V之间。在实验中发

31、现,距离较近时,两级放大的增益已能输出足够强的信号了,第三级有可能出现信号饱和,但距离较远时,必须采用三级放大。合理调节电位器R27,选择比较基准电压,可是测量更加精确和稳定。(3)温度测量电路的设计温度测量电路基于DS18B20一线式数字温度传感器,电路非常简洁,具体电路如图2-8所示。图2-8 温度测量电路(4)基于P89LPC932的主机电路设计主机电路的设计关键是P89LPC932微处理器及其辅助电路的设计。在P89LPC932内部具有8KB的Flash程序存储器、256B+512B的数据存储器,关于P89LPC932的其他特性及应用开发特点可参阅参考资料。从哦那个设计要求出发,充分利

32、用其内部的复位监视电路、时钟电路和看门狗等其他功能部件,可以简化电路的复杂程度,提高电路的可嵌入性。PHILIPS P89LPC932E的工作电压为+3.3V,应该说是微处理器的发展方向。混合系统的接楼设计,可简要归纳如下几点:(a)处理高于P89LPC932工作电压的最好方案是采用开漏输出模式,通过外部电阻可将电平拉高到5.5V,而只有漏电流流人P89LPC932的输出端口;(b)用3V器件的输出完全可驱动5VTTL的输出端;(c)一般情况下,5VTTL器件可以驱动3VTTL输人,原因是典型双极晶体管的输出并不能达到电源电压的幅度,典型值约为3.6V。这样不会引起SV电源的电流流向3V电源。

33、(5)方案的优缺点优点:加入了温度测量电路,能够很好的解决由于温度变化而引起的测量误差;考虑到距离较远时,用三级放大,可以使测量更加精确稳定;用555定时器,超声波的频率可调,能调节频率可使在工作时减少外界的干扰。缺点:元器件太多,对于在7080的板子上把元器件放开并且布线,这是件很麻烦的事情;风暴机器人在比赛时,是在一个封闭的环境下进行的,无需考虑温度的变化;555定时器将简单的事情复杂化,单片机可以很好的完成输出40KHz的脉冲,而且是元器件减少,降低了布线的麻烦; P89LPC932的工作电压为3.3V,而ASBUS提供的电压为5V,还要用变压电路得到3.3V的电压,又给设计带来了一定的

34、负担。2.3.3 方案比较的结论经过研究比较决定,采用方案一。2.4 系统硬件结构设计2.4.1超声波测距的框图单片机发出40kHZ的信号,经放大后通过超声波发射器输出;超声波接收器将接收到的超声波信号经放大器放大,用锁相环电路进行检波处理后,启动单片机中断程序,测得时间为t,再由软件进行判别、计算,得出距离数;再经过BUS直接读取测量得到的值即可。如图2-9:超声波发射器放大电路超声波接收器放大电路锁相环检波电路定时器单片机控制ASBUS读取图2-9 超声波测距的框图2.4.2 51单片机的结构功能特点(1)51单片机的功能特点5l系列单片机中典型芯片(AT89C51)采用40引脚双列直插封

35、装(DIP)形式,内部由CPU,4kB的ROM,256 B的RAM,2个16b的定时计数器TO和T1,4个8 b的工O端I:IP0,P1,P2,P3,一个全双功串行通信口等组成。特别是该系列单片机片内的Flash可编程、可擦除只读存储器(EPROM),使其在实际中有着十分广泛的用途,在便携式、省电及特殊信息保存的仪器和系统中更为有用。该系列单片机引脚与封装如图2-10所示。5l系列单片机提供以下功能:4 kB存储器;256 BRAM;32条工O线;2个16b定时计数器;5个2级中断源;1个全双向的串行口以及时钟电路。空闲方式:CPU停止工作,而让RAM、定时计数器、串行口和中断系统继续工作。掉

36、电方式:保存RAM的内容,振荡器停振,禁止芯片所有的其他功能直到下一次硬件复位。图2-10 51系列单片机封装图5l系列单片机为许多控制提供了高度灵活和低成本的解决办法。充分利用他的片内资源,即可在较少外围电路的情况下构成功能完善的超声波测距系统。(2)51单片机的引脚介绍以下只对在本设计当中就用到的引脚作简要介绍:RST/VPD(9脚)复位信号:时钏电路工作后芯片内部进行初始复位,复位后P0-P3口输出高电平,初值07H写入堆栈指针SP,清0程序计数器PC和其他特殊功能寄存器。EA/Vpp(31引脚)片外程序存储器地址选择信号:若EA接地,则不使用内部程序存储器,不管地址大小,取指时总是访问

37、外部程序存储器。本超声波测距扩展卡并不需要外部存储器,故该引脚直接接高电平。AT89C51的I/O口:AT89C51单片机有4个双向位I/O口P0-P3,P0为三态双向口,负载能力为8个LSTTL门电路,P1-P3为准双向口,负载能力为4个LSTTL门电路。P3口作第二功能口使用时实际上际上是系统具有控制功能的控制线。此时相就的口线必须(3)51单片机的定时计数系统一般单片机内部都设有定时计数器,因为有的测控系统是按时间间隔定时控制的,如定时对物理过程的采样等。虽然可以通过延时程序实现定时,但这会降低CPU的工作效率。如果能利用一个可编程的实时时钟获得延时定时,就可以提高CPU的工作效率。另外

38、,也有一些测控系统是根据外部信号的计数结果来实现控制的。必须对外部随机事件进行计数。因此,单片机内部一般都设置可编程的定时计数器,以简化系统设计,提高系统功能。AT89C51内部有两个定时计数器,分别称为定时计数器0和定时计数器1简称T0、T1,它们都具备定时计数功能,有4种工作方式可以选择。在超声波测距扩展卡的设计中我们需要定时计数器的定时功能,定时功能的工作方式是对芯片内的机器周期计数,或者说计数脉冲来自芯片内部,每来一个机器周期,计数器加1,直到计数器满,再来一个机器周期,定时计数器全部回0,这就是溢出。每个机器周期的时固定(振为12MHz,机器周期为1s,晶振为6MHz,机器周期为2s

39、)。与定时计数器有关的控制寄存器共有4个,分别是TCON,TMOD,IE,IP特殊功能寄存器。根据TMOD寄存器中的M1和M0位的设定,定时计数器可选择4种不同的工作方式。根据超声测距的要求我们选择工作方式1。方式1是16位计数结构,定时器计数器由TH的全部高8位和TL的全部低8位组成。(4)51单片机的中断系统计算机工作时由于系统内外某种原因而发生的随机事件,计算机必须尽可能快终止正在运行的原程序,转向相应的处理程序为其服务,待处理完毕,再返回去执行被中止的原程序,这个过程就是中断。 引起中断的设备或原因称为中断源。一个计算机系统的中断源会有多个,用来管理这些中断的逻辑称为中断系统。采用中断

40、的优点有:分时操作;实时处理;故障处理;AT89C51单片机中有5个中断源,外部有两个中断请求输入,INT0,INT1。内部有3个中断请求。定时计数器T0,T1和片内串行口。当系统产生中断请求时,5个中断源中的请求标志根子别由特殊功能寄存器TCON和SCON的相位来锁存。2.4.3硬件扩展总线ASBUS能力风暴控制板设计了ASBUS总线见(图2-11),简单类似于ISA和PCI总线。采用堆叠式的ASBUS扩展卡可以方便扩展控制板的功能, 它分为ASBUSA和ASBUSB两部分。机器人主板上ASBUSA和ASBUSB插槽用于插各种功能的扩展卡。ASBUSA和ASBUSB引脚图和各部分功能如下所示

41、:图2-11 ASBUS信号线ASBUSA和ASBUSB分别有14个信号线。各信号线功能如下:PCO-PC7:数据总线/RESET:复位信号/IRQ:外部中断输入脚VCC:+5V电源(负载不要超过300MA),可用于扩展卡的电源输入端。Vmotor:电机电压,也即电池电压,可接较大负载。GND:地IS0-IS3:输入选择线0-3OS0-0S3:输出选择线0-3PA1-PA2:输入捕捉口,可用来扩展数字或脉冲输入的传感器。PA3:输出比较口,已被喇叭、DC3,servo使用,PE5-PE7:模拟输入口, 可用来扩展温度传感器、力传感器等模拟量输入传感器。2.5 绘制原理图和印刷电路板在EDA (

42、 Electronic Design Automation) 工具中 ,Protel 系列软件一直是比较常用的。Protel99SE是应用于Windows9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以进行联网设计,具有很强的,数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源-地层和16个机加工层。Protel 99 SE(Second Edition)在原理图设计和电路仿真方面增加了许多小的功能,而其最主要的改进体现在电路板设计系统方面。Protel99 SE

43、共分5个模 块,分别是原理图设计、PCB设计(包含信号完整性分析)、自动布线器、原理图混合信号仿真、PLD设计。在本次设计中,即使用了Protel99 SE软件。下面简述产生PCB的步骤:(1)新建一SCH文件,绘制整个电机控制电路的电路原理图(2)另新建一SCH文件,绘制用于产生网络表的扩展卡原理图(3)在扩展卡原理图中定义元件的封装(4)产生网络表(5)新建一PCB文件,绘制出电路板边框,装载元件封装库并加载网络表,各元件封装图便会出现在该界面上。元件排列杂乱无章,且各元件之间用飞线连接。(6)手动调整元件的布局,使各元件摆放尽量整齐美观。(7)进行布线,由于设计并不复杂,元件较少,可使用

44、自动布线。(8)对文字、个别元件、走线做些调整以及敷铜。(9)检查核对网络。下图为最终绘制成的PCB图:图2-12 超声波测距的PCB图第3章 超声波测距卡的软件调试3.1 VJC简介图形化交互式C语言(简称VJC)是用于能力风暴智能机器人系列产品的软件开发系统,具有基于流程图的编程语言和交互式C 语言(简称JC)。VJC 为开发智能机器人项目、程序与算法、教学等提供了简单而又功能强大的平台,是全球开创性的具有自主知识产权的产品。在 VJC 中,不仅可以用直观的流程图编程,也可以用JC 语言编写更高级的机器人程序。VJC 操作简便,有活泼明快的图案和简短的文字说明。读者可以使用形象化的模块,由

45、顶向下搭建流程图,搭建流程图的同时,动态生成无语法错误的JC 代码。流程图搭建完毕,程序就已经编写完成,可以立即下载到机器人中运行。3.2 JC语言3.2.1 JC语言交互式C语言(简称JC)是用于能力风暴智能机器人的专用开发语言。JC由两部分组成:编译环境和能力风暴操作系统ASOS。JC实现了标准C语言的一个子集,它包括控制语句(for,while,if else)、局部变量和全局变量、数组、指针、16位和32位整数以及32位浮点数。JC不直接编译生成针对特定处理器的机器代码,而是先编译生成基于堆栈虚拟机的伪代码。然后这种伪代码由能力风暴操作系统解释执行。JC这种不寻常的编译方式有以下优点:

46、(1)解释执行:允许检查运行错误。例如:JC在运行时,数组下标的检查。(2)代码更精简:伪代码比机器代码更简短。(3)多任务:由于伪代码是完全基于堆栈的,进程状态完全由它的堆栈和程序计数器所决定。因此只需要装载新的堆栈指针和程序计数器就可以方便地实现任务切换。任务切换由操作系统处理,而不是编译器。JC与标准C对比有以下特点:JC语言是建立在ANSIC标准上的。但是它们有些重要的区别。许多区别是因为JC比标准C更“安全”。例如,JC在运行时要检查数组下标,所以数组不能被变为指针,也不可以进行指针运算。另一些区别是由于JC的运行时间更短更高效。 3.2.2 用JC代码编写超声波数据接收程序由于VJ

47、C中没有合适的超声测距的模块库,所以我们只能用JC代码来编程,编制的程序见附录。将该软件下载到能力风暴机器人上,并接好超声波测距卡,运行程序,即可实现超声波测距功能。3.3 单片机汇编语言调试由于计算机的CPU只能认识和识别二进制代友,所以又称为机器码。一种计算机有几十种甚至上百种指令,若都是用二进制码表示,是很困难的,二进制代码,如果用十六进制书写,是很方便的,所以通常用十六进制代码表示指令码,但是仍解决不了记忆问题和阅读问题。为了记忆和阅读方便,制造厂家对指令系统中每一条指令都给出了符号作指令助记符,这就容易记忆,容易理解,清晰可读。3.3.1 采用汇编语言的优点汇编语言与高级语言相比具有以下优点:(1)占用的内存单元和使用的CPU资源少;(2)程序简短,执行速度快;(3)可直接调动计算机的全部资源,并可有效地利用计算机的专有特性;(4)能准确地掌握指令的执行时间,适用于实时控制制系统。根据以上汇编语言的特点,决定

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号