时间:2023-03-01 16:28:30
序论:写作是一种深度的自我表达。它要求我们深入探索自己的思想和情感,挖掘那些隐藏在内心深处的真相,好投稿为您带来了七篇雷达技术论文范文,愿它们成为您写作过程中的灵感催化剂,助力您的创作。
关键词:LiDAR;铁路勘察设计,DEM;DLG
中图分类号:TN958.98文献标识码:A文章编号:1007-9599 (2011) 03-0000-02
Airborne LIDAR Technology in Railway Survey and Design Application and Benefit Analysis
Han Zujie
(Railway Third Survey and Design Institute Group Co.,Ltd.,Tianjin300142,China)
Abstract:Airborne laser radar technology (LiDAR) is a new remote sensing technology,because of its high precision and efficiency,in terms of rapid development of topographic mapping,currently nearly 20 sets of LiDAR systems.This paper studies LiDAR technology in railway engineering survey and design the content,products,and effects,on the basis of aerial photogrammetry and traditional methods are compared to prove LiDAR technology in the railway survey and design of the feasibility and superiority.
Keywords:LiDAR;Railway survey and design;DEM;DLG
一、引言
机载激光雷达技术(LiDAR)是一种全新的遥感技术,自上世纪90年代在德国首次出现商用样机系统以来,因其高精度和高效率,在地形测绘方面得到快速发展。目前,全球已经有几十套商用系统在使用,主要实用系统有:Topscan、Optech、TopEye、Saab、Fli-map、TopoSys、HawkEye、Leica ALS50/60系列、Falcon等。
上世纪90年代中后期至今,美国、德国、加拿大、澳大利亚、瑞典和芬兰等国家,先后成功应用这项技术进行了地形测量、森林资源调查与评估、三维城市建模等试验与工程实践。特别是芬兰和德国,已经采用这项技术建立了全国或者大部分国土的DEM,达到了理想的效果。目前在国内已经有接近20套LiDAR设备,其中,北京星天地信息科技有限公司、山西亚太数字遥感新技术有限公司、广西桂能信息工程有限公司、广州建通测绘技术开发有限公司以及东方道迩公司等单位已经先后开展了实验和工程飞行,主要用于生产数字高程模型(DEM)、正射影像(DOM),进而制作线划图(DLG)等。本研究将使用LiDAR技术对铁路勘察工程设计进行研究与试验,介绍其主要产品及应用并对经济效益进行评价。
二、机载激光雷达技术系统构成与工作原理
(一)机载激光雷达技术简介
LiDAR系统是一种新型的综合应用激光测距仪、IMU、GPS的快速测量系统,可以直接测得地面物体各个点的三维坐标。机载的激光雷达系统通常还集成高分辨率数码相机,用于获取目标影像。从功能上看,机载激光扫描系统是基于激光测距技术、GPS技术和惯性导航技术这三种技术集成的一个软硬件系统,其主要目的是为了获取高精度的数字表面模型(DSM)。
目前,LiDAR提供的直接数据产品为:点云数据,DSM,DEM,DOM。经过后处理可以快速生成等高线、高程点、横纵断面图,完成路线设计需要的专项测绘内容(如架空管线的净空、交叉角度测绘等),并提供工程设计模型和景观设计模型等。
(二)LiDAR的主要系统构成
主要系统构成包括:
1.扫描仪组件:激光发射器、激光信号接收器、机械组件、扫描镜及窗口、接口板。
2.设备支持系统:系统控制器、飞机位置及姿态测量系统、检流控制器、激光电源、电源分配器、控制计算机、连接电缆。
3.附属软件:包括项目飞行设计及对记录数据进行后处理(滤波、分类等)处理。
4.控制/显示器:激光发射指标器、音频告警器、电路熔断器、系统诊断数据输出、控制接口。
(三)主要工作原理
通过DGPS(或PPP)和IMU求得航机线上任意采样时刻激光发射中心的空间坐标和设备的空间姿态,内插后能够获取任意时刻激光光束的姿态和发射中心的空间坐标,通过激光测量激光发射中心到地面的距离,可以求得每一个激光脚点的空间三维坐标。另外,利用DGPS/IMU可以直接获取每一张照片的外方位元素,可以快速制作DOM成果。最后将激光点数据和数码影像进行联合处理得到高精度的正射影像和数字高程模型。
三、机载激光雷达的应用
机载激光雷达能够快速获取数字地表模型(DSM),同时,配套的中画幅数码相机可以获得同步的数码相片,经过加工处理可获得数字高程模型、分类信息、航空相片的立体像对和正射影像图。目前还没有成熟的专业接口供铁路勘察设计工程中使用机载激光雷达成果,因此,如何将机载激光雷达勘测成果与众多设计专业手段无缝结合,从海量基础信息中快速提取或检索有用的信息为各专业设计所用,是机载激光雷达技术应用于铁路勘察设计的关键。
结合铁路勘察设计特点和工程应用实践,一方面将机载激光雷达技术成果进行加工,提供满足专业应用的专题成果,另一方面,改进专业设计勘察设计流程,提出新的设计理念,以便更加有效地利用海量的基础信息,提高设计质量和设计效率。
利用机载激光雷达技术提供的高精度、高分辨率数字地面模型和正射影像图,结合铁路专业设计要求,主要生产以下几种产品(见图4):
1.工点地形图。它是针对铁路设计的控制工点,在施工图阶段做的更加详细的勘测工作,以保证设计资料的精度和准确性。如:桥址地形、隧道进出口等;
2.断面图。主要包括纵断面和横断面,一般它们的精度高于地形图的精度。主要用于保证设计线路的平顺性和计算工程数量的准确性;
3.数字正射影像地形图。这是线划图的替代产品,通过将正射影像图叠加等高线、专业调查的地质界线、自然保护区等矢量信息,而形成的一种地形图,它的信息量更加丰富,更加直观;
4.专项测绘。针对特殊的专业需求而进行的详细勘测工作。如:水文断面、涵轴测量、电线垂度等;
5.工程中的土石方自动计算、坡度、坡向的计算等;
6.快速构建三维虚拟场景,城市建模等。
此外,还可利用高分辨率的影像进行专业调查、地质判视等,便于指导外业工作,提高外业勘测的针对性和合理性。
四、技术、经济效益和推广应用前景
(一)机载激光雷达测量技术与常规航测方法的经济比较
1.两种技术手段外业控制测量的比较。LIDAR所需的外业控制点与常规航测外控的比较,以II级地形1:2000航测地形图测绘(常规航测单航带100km)为例。
(1)首级平面和高程控制网工作内容和数量是基本相同的。
(2)LIDAR系统要求每5-7km测量一个平面和高程控制点,每30km测量一处高程校正区,这样100km线路需要布设平高控制点17个,高程校正区3个。而常规航测方法,采用150mm焦距的航摄仪拍摄,需要75个平高控制点;采用210mm焦距的航摄仪拍摄,需要150个平高控制点。
(3)LIDAR系统不因地形等级的变化而改变外业平高控制点的数量(适当的宽度,如不大于10km)。而常规航测方法会随着宽度的增加而成倍增加外控点的数量。
2.横断面切绘的经济比较。以张唐铁路定测为例,相对于采用Lidar技术平均1000-1200个横断面/人天的工作效率,常规航测方法每人每天只能切绘300-400个横断面,可见工作效率提高了3-4倍,对企业发展带来了巨大的经济效益。
3.地形图制作的经济比较。以II级地形1:2000地形图测绘为例。
因为LIDAR具有高效生成DEM的优势,所以在生成等高线、高程点等具有高程信息的地形信息时具有更高的效率,在这个方面,采用Lidar技术平均效率为12-15平方公里/(人.天),常规航测方法每人每天只能测绘2-3平方公里;
航测方法在立体模型下获取(除等高线、高程点之外)矢量信息具有更大的优势,而LIDAR则因其自身离散性获取能力比较弱,适合于小面积的(除等高线、高程点之外)矢量信息获取。
(二)成功案例及分析
经过试验与实践,LiDAR技术已成功用于多个铁路项目的勘测设计项目,减少了内业制图的压力,缩短了项目工期,在铁路各专业使用中反映良好,取得了显著的经济效益。以某工程为例,泛亚铁路某段全长257Km,由于距离遥远,地处国外,而且铁路过境区域存在大量地雷区域,给外业工作带来极大不便。考虑到地理因素和方案局部变动的因素,项目在实际操作中抛弃传统外业测量加航测制图的作业方式,直接采用机载激光雷达系统,一次性获取铁路过境区域长257km,宽4km的雷达点云数据和数码影像数据,利用该数据圆满完成了无外业控制测量情形的1:10000和1:2000的地形图成图任务,不仅避免了人力物力消耗和地雷区作业的危险性,而且在内业成图中,大胆使用数字正射影像地形图代替传统的DLG,取得了制作者和使用者均满意的双赢局面。
(三)推广应用前景
机载激光雷达测量技术具有巨大的发展空间和潜力,作为一种新技术,还有许多发展空间,特别是在数据处理算法以及软件和系统的开发等方面。随着用户数量的增加,其应用领域将越来越广,特别是随着激光技术的进一步发展,将促进机载激光雷达技术的革新。在铁三院于2009年率先在国内将机载激光雷达技术应用于铁路勘察设计并取得巨大成功后,今年铁一院、铁二院、铁四院都陆续定购了机载激光雷达并加大了人力投入,可见由于其精度高、成本低、周期短等特点在铁路行业已经被广泛关注。铁路行业之外,水利、公路、电力、农林等行业也在积极开展相关的研究和应用。
参考文献:
[1]孟宪军.铁路勘察设计虚拟现实技术的研究[J].高速铁路精密测量理论及测绘新技术应用国际学术研讨会论文集
[2]王长进.基于机载激光雷达的铁路勘测技术研究[J].高速铁路精密测量理论及测绘新技术应用国际学术研讨会论文集
[3]高文峰,王长进.铁路勘测中使用机载激光雷达测绘横断面相关问题的探讨[J].铁路航测,2010
[4]高文峰,王长进.GPS基站布设对机载激光雷达精度影响的研究[J].高速铁路精密测量理论及测绘新技术应用国际学术研讨会论文集
[5]徐祖舰.机载激光雷达测量技术及工程应用实践[M].武汉:武汉大学出版社,2009
关键词:铁路工程;地质雷达技术;基桩检测技术;隧道及挡土墙
中图分类号:U215文献标识码:A文章编号:1009-2374(2010)03-0131-02
铁路运输是我国重要的运输方式,它贯穿了我国南北东西的运输道路,同时还是拉动各地经济发展的重要保障,所以,我们有必要加强铁路工程的检测,保障铁路运输的正常运行。
铁路工程质量检测的方法有很多,一般都是使用动测技术检测法和地质雷达检测法,这是两种新方法,已经在铁路检测方面得到了广泛的应用。检测可以让我们对工程进行一个整体的评价,并且可以保证工程的质量和工程运营的安全性。
为了让工程检测达到更好的效果和目标,我们将工程检测的方法慢慢的组合成一套体系,我国铁路部门经过多年的努力和实践摸索,在铁路工程检测方面已经累积的丰富的经验为我们在今后的工程实践中提供了很好的基础,在此,文章就对工程的检测方法及其的问题做阐述和分析,在路基填筑、隧道及挡土墙几个方面进行论述,供交流和参考。
一、地质雷达检测方法
地质雷达术是铁路工程检测的一项新技术,它就是利用电磁波反射原理进行检测的,主要是应用在浅层地质结构和工程质量检测的方面,指一种地球物理方法。地质雷达检测的方法有其自身的优点,比如它比其他的检测方法更精准,对地面无损害,并且测试的速度更快。地质雷达检测技术的应用范围不止是铁路检测方面,它还在场地勘察和工程质量检测两大领域应用广泛,在场地检测方面一般是用于工程场地勘察、铁路与公路路基状态探查、基岩风化层探查、地下水探查、地下溶洞和人工洞室探测等。其次在工程质量检测方面一般用于铁路和公路隧道衬砌、高速公路路面及路基、机场跑道等质量检测和工程结构检测等。
通过时间和研究,关于地质雷达的检测方法在隧道地质检测中也得到了应用,可见,这种方法前景非常广阔,比如在铁路,渝怀铁路,宜万铁路都分别利用了地质雷达检测隧道的质量和混凝土的结实程度。隧道混凝土的质量好坏直接决定了隧道是否可以稳定之久的正常使用,对隧道的建设起着重要的作用。
二、基桩检测方法
(一)桥梁基桩
桥梁基桩质量的检测的主要目的是为了检验基桩上的混凝土是否完整,通常是应用低应变法或声波透射的方法,当检测到混凝土有问题时,还可以用钻心取样的方法对混凝土直接检测。为了更好说明这个方法,我们通过一个实例对它进行分析。
案例分析。根据北京某铁路桥梁工程的现状分析,我们可以得知,该桥梁的桩长为:367桩长60m、桩径1.5m、C3O,413桩长60ITI、桩径1.25ITI、C3O。了解清楚它的具体情况后,我们认为,在这次的案例中说明低应变法在桩身外型尺寸较为规则情况下可以准确的检测到超长桩桩低的信号,同时我们也应该考虑到367桩2.6m所存在的缺陷。因为这种方法也许会因为桩底清晰度、波速正常反而影响测试判断,会出现误判从而引起轻微的缺陷。那么,检测的方法最好是利用低应变法结合局部声波透射法实施综合的评价,以达到更好的效果。
低应变法的特点是实践性非常强,同时已经被工程质量检测广泛使用,这种方法使用的有关参考材料是非常丰富的,在实际的工程施工阶段,我们要强调,每一个桩体都必须进行高密度的检测,以保证桩体的质量,减少问题桩的出现,同时要仔细观察,细心验证,确保桩的质量。
声波透射法是根据超声波的透射原理检测桩身完整性,它不仅突破了低应变法存在的局限性,还实现了两种方法的互补,效果明显。声波透射法检测基桩完整性的测试方法是按照统计的方法进行的,但它的前提是,所有测点的声学参数的概率分布近似为正态分布。
我国现阶段的声波透射法技术还在不断的发展壮大中,现在连续式快速采集的声波检测仪已经成为检测的重要手段,它和传统的点式测量的声波检测仪相比,对现场施工情况下数据的采集和质量检验的精准更大幅度的提高了,因为应变法时常出现测试信息经常会出现一些不完整的情况,所以在检测方面仍然存在隐患,特别是在铁路工程普遍采用100年使用寿命的当下,这种隐患应该引起重视,并得到解决。
(二)地基处理桩
在铁路建设的工程中,有关地基的处理一般都是利用地基处理桩进行处理,通常的桩型有CFG桩、PHC桩、粉喷桩、湿体搅拌桩、高压旋喷桩、碎石桩等,要按照实际情况的不同而选择,一般按照设计标准和地质条件的时间情况选用,对桩身的质量和承压能力进行抽样检测。根据桩行的不同检测的方案也不同,具体有以下两种情况:
1.像CFG桩、预制桩等都是使用低应变法和载荷试验检测的方法检测桩身的完整程度和承压能力,这种方法对CFG桩的完整程度的检测有比较好的效果,关于多节预制桩,因为该桩容易受到接桩部分的影响,对桩体以下部分的检测不能很准确的达到检测要求,所以,就应该对有问题的桩体使用高应变法或载荷试验进行验证方法。
2.粉喷桩、湿体搅拌桩、高压旋喷桩等采用钻芯的荷试验检测其桩身完整性和承载力,因为选用的方法都是直接的方式,可以保障工程质量和检测工作顺利的进行。
(三)路基填筑
我国的铁路建设标准在不断的提高,目前已经形成了比较完整的路基填筑质量控制体系,正在不断的积累经验和完善检测方法,这种方法是全方位的检测,主要是施工阶段和成行的路基质量检测评价的方面,在检验的同时要注意以下几个方面:
首先,在施工的过程中,要求施工单位严格的依据国家规定的验收标准进行验收,有关的负责单位还要进行抽查检验,同时要求我们在原有的基础上建立并完善多方的检测体系和监察单位的抽查体制,以保障路基填筑工程的质量和顺利实施。其次,对已完成的铁路路基修建工程的检测的内容要明确,其中包含了该路基修建完成的质量和成形后的路基道路运营和使用的基本情况。建设部门最关心的就是路基的运营情况和该路基所能承受的压力,这是路基质量是否合格的重要指标。
(四)隧道及挡土墙
隧道及挡土墙的工程质量检验一直是个难题,检验和评价都很难进行,但是自从使用地质雷达技术之后,使我们对隧道和挡土墙的检验和评估可以顺利的进行。这些年来,地质雷达技术在隧道和挡土墙检测的方面都得到了广泛的应用。
这种检测方法的几种方案是,首先在隧道分成有六条纵贯检测线的格局形式,检测人员再对这六条检测线进行检,实现对隧道的整体检验,检测的内容包括:二次衬砌及隧底厚度、钢筋及钢架分布、拱圈和仰拱混凝土的固定的后后部回填后的密实度;在现阶段,隧道的检测工程包含了,竣工验收、阶段性检测和既有线隧道质量评价等三个方面,实际上,除了在隧道竣工后,其他阶段的检测条件和状况都是不理想的,研发出一套保持天线沿测线密贴和较均匀走行的装置,它可以减少在检测时施工环境对其的影响,可以保障数据的有效采集和准确度。
地质雷达应用在挡土墙检测的时候,它的具体方案是,在水平方向设置一条检测线,如果挡土墙的高度超过了设定的高度,那么就根据实际的情况,按照一定的间隔距离来确定检测线的条数;如果检测环境有缺陷,就应该加强检测线的格局。
检测内容有挡土墙混凝土的厚度和密实度,以及回填的厚度和密实度。地质雷达技术应用在挡土墙检测时的效果还是比较好的。
三、结语
首先,我们采用地质雷达无损检测,就可以将在施工中出现的各种大小质量问题拦截在施工建设阶段之外,同时,我们的技术程度也在不断的加高,在获取数据和分析数据方面都在不断的完善和进步。地质雷达探测的方法将得到更加广泛的发展和应用空间。
随着这种技术的推广,其他的技术也在不断的深化和改革,我们要不断发展新技术,改善旧的技术,让铁路质量工程检测达到最高的标准。
参考文献
[1]建筑基桩检测技术规范(JGJ106―2003)[S].北京:中国建筑工业出版社,2003.
[2]铁路工程土工试验规程(TB 10102―2004)[S].北京:中国铁道出版社,2004.
关键词:NANDFlash,多通道流水线,大容量高速
1. 引言
本文的项目背景是企业一个大容量半导体闪存控制器的预研方案,而如何扩大容量,提高闪存存储速度是研究中的一个重要部分。以半导体作为记忆载体Flash芯片,比传统的磁存储设备更能承受温度的变化、机械的振动和冲击,可靠性更高,易于实现高速度、低功耗和小型化,日趋成为存储器的主流。它分为NOR 和NAND两种类型。与NOR型相比,NAND型具有存储密度更高、功耗更低、芯片引脚兼容性更好和成本效益更高等优点,在计算机及多媒体消费类电子产品中得到广泛应用。而现在单个NAND Flash芯片的存储容量比较小,读写速度也比较慢,因此,开发出高速、大容量的存储系统就显得尤为重要。本文将从NAND Flash的结构特性出发,对扩大闪存容量,提高存储技术进行探讨。由于NAND Flash有多个生产厂商,产品之间有一些差异,本文采用现在市面上流行的三星K9K8G08U0M[1]高密度NAND Flash 存储芯片,这样研究就有了很好的现实意义及实用价值。
2. K9K8G08U0M型NAND Flash芯片内部组成
图1 K9K8G08U0M芯片内部逻辑结构图
3. 扩展容量--多通道高带宽Flash存储阵列
图2 存储阵列组织结构示意图
4 提高存储速度方法探讨
4.1 并行总线及并行分路技术[4]
并行总线技术亦称拓宽总线技术,也即上节所提到的位扩展技术,即通过拓宽数据总线的宽度实现数据宏观上的并行操作。免费论文。比如, 由4块8bit数据总线的芯片组成一个32 bit宽的存储模块, 它们共用相同的控制信号, 包括片选信号、读写信号、地址信号等。免费论文。存储模块总是被看作一个整体而进行相同的操作, 只是数据加载的时候是不同的数据。这样,数据量将是使用一块芯片时的4倍, 所以理论上速度也将是非并行时的4倍。时分多路复用通信,是指各路信号在同一信道上占有不同时间间隙进行通信,具体说,就是把时间分成一些均匀的时间间隙,将各路信号的传输时间分配在不同的时间间隙,以达到互相分开,互不干扰的目的。借鉴时分多路复用通信技术, 可以将输入存储系统的高速数据流看作是以传输一个字所需的时间为一个时间片, 不同的时间片传输不同数据的时分多路数据复用。这也是下面要详细说明流水线技术的基本原理。
4.2 多通道流水线技术
流水线技术是一种非常经济、对提高处理机的运算速度非常有效的技术,它依据的是时间并行性。存储系统采用流水处理技术有两个前提条件:首先,在前一个I/O命令没有完全结束之前,系统能获取下一个I/O命令的有关信息;其次,不同部件应能同时操作,资源不发生冲突。由NAND Flash的写时序图分析可得,NAND Flash写入操作可分为3个步骤[3] :首先,加载操作,即完成命令、地址和数据的载入工作;其次,自动编程操作,即由闪存芯片自动完成编程操作,将载入到页寄存器的数据写到内部存储单元的;最后,检测操作,即在自动编程结束后检测写入的数据是否正确。如果不正确,需要重新编程;如果正确,继续下一步的操作。
在写入自动编程命令后,NAND Flash提供专门的R /B#输出信号变低,指明当前正在进行内部编程操作,进入自动编程状态后的典型时间为700μs,远远超过前面的加载操作部分,当自编程操作完成后,R /B #变高,因此,对NAND Flash的操作满足流水线要求,可对写操作采取流水操作。免费论文。而用几级流水才能使得系统能够最高效的运行,下面来进行分析:
图3 存储器写操作流水方式
采用八级流水后的写速度计算[3] ,写入速度=(1页数据量×并行操作芯片数量×流水级数)/(加载时间×流水级数+自编程时间+检测时间),可得理论写速度为45MB / s。
5 总结
NAND Flash存储密度大,功耗小,可靠性高,体积小重量轻且成本也在不断降低,今后拥有非常广阔的市场。本文主要从芯片自身的结构特性出发,从硬件的角度采用位扩展、并行总线、及流水线技术对提高NAND Flash存储容量和速度进行了探讨。同时在提高闪存容量的速度方面的探讨还可以涉及到Flash纠错算法(ECC),地址映射表[4],Flash文件系统优化算法等等,这些都有待在今后的工作中进行研究。
参考文献:
[1] K9 K8G08U0M Advanced FLASH Memory Data Sheet SAMSUN G Electronics , 2007.
[2] 张锐.高速大容量存储系统的研究和设计. 航空计算技术, 2008. 7.
[3] 李敏杰等. 基于SOPC 高密度固态存储系统的研究与实现[ J ].微计算机信息.2007.
[4] 李超. 高速大容量FLASH 存储系统设计[ J ].火控雷达技术, 2007(3).
【关键词】道路桥梁;桥梁检测技术;综述
经济高速发展的需求带动道路桥梁的进入了大规模建设期,但是,交通运输业的高速发展与相关基础设施建设相对落后之间的矛盾越来越突出,有相当一部分处于超期服役的状态,人为损坏、老化以及承载力下降等现象十分突出,严重制约与威胁着交通事业的发展与人民群众的生命财产安全。采用高效的检测技术能够让技术人员准确了解道路桥梁的各项性能参数,有利于及时采用相关措施。下文综述了道路桥梁检测的几种技术。
1 超声检测技术
上个世纪50年代,加拿大人切斯曼(Cheesman)与莱斯利(Leslied)以及英国人琼斯(Jons)与加特弗尔德(Gatfield)第一次利用超声脉冲检测技术来进行混凝土的检测,他们共同开创了混凝土超声检测的先河,随后超声检测技术在工程领域得到了广泛地应用。
超声法检测道路桥梁缺陷的基本原理是利用带波形显示功能的超声波检测仪和频率为20-25kHz的声波换能器,测量与分析超声脉冲在道路桥梁中的传播速度(声速)、首波幅度(波幅)、接受信号主频率(主频)等声参数,并根据这些参数及其相对变化,来判定道路桥梁中的缺陷情况。
科学技术的发展使得超声检测仪器从最初笨重的电子管单示波显示型转变为现在的半导体集成化、数字化甚至智能化的轻便仪器。同时,测量参数也更加多元化,从当初的单一声速参数检测发展为现在的声速、波幅以及频率等多参数检测;其检测效果也有了质的飞跃,从最早的定性检测发展为现在的定量检测。
在进行道路桥梁检测时,超声波能够穿透混凝土结构并在其中传播较远的距离,并且使用安全,操作简便。使用超声仪器最为常用的方法就是穿透测法,但是利用该方法进行检测时要求两个相对测试面。因此,这限制了超声检测的应用范围,例如,超声检测技术不适用于隧道中的衬砌、喷射混凝土等结构或者在墙体、路面、跑道、护坡、护坦以及底板等方面。同时需要注意的是,因为是声波穿透检测,其缺陷信号的有效捕捉始终是制约其发展的瓶颈问题。因此,在对于道路桥梁进行检测的过程中,我们通常采用比较多测点测试数据的方式,利用统计概率对数据进行处理,并对缺陷情况进行评估,所以,超声检测技术的直观性非常差,而且为了获得更高的策略精度,通常需要增加多个测点。
2 地质雷达检测技术
地质雷达(又称探地雷达,Ground Penetrating Radar,简称GPR)检测技术是一种高精度、连续无损、经济快速、图像直观的高科技检测技术。它是通过地质雷达向物体内部发射高频电磁波并接收相应的反射波来判断物体内部异常情况。作为目前精度较高的一种物理探测技术,地质雷达检测技术已广泛应用于工程地质、岩土工程、地基工程、道路桥梁、文物考古、混凝土结构探伤等领域。
地质雷达仪器的构成部分主要包括:控制单元、控制中心(通常是笔记本电脑)、发射天线以及接收天线。探地雷达的工作流程为:①检测人员利用笔记本电脑能够对控制单元发出各种指令;②控制单元在接收到指令之后,可以同时向发射天线与接收天线发出触发信号;③在发射天线触发之后,它能够向地面发射高频脉冲电磁波(通常其频率在几十至几千兆赫之间);④电磁波在向下传播的过程中会遇到不同电性的目标和界面等,或者当被探位置局域介质不均匀体的时候,部分电磁波便可以被反射回地面,并由接收天线进行接收,接收到的信号会以数据的形式被输送到控制单元,并最终传回到笔记本电脑,以图像的方式显示出来。⑤通过对图像进行处理与分析,就可以了解地下介质的具体分布情况,检测目的便也达到了。
3 声发射法检测技术
声发射法的具体原理是,由于材料内部微观构造不均匀或者存在性质不同的缺陷,局部的应力集中会致使应力分布的不稳定;材料的塑性变形、产生裂缝、裂缝扩展、失稳断裂等一系列过程能够有效完成不稳定高能状态向稳定的低能状态的转化;在整个应力松弛释放的过程中,所释放的部分应变能将会以应力波的形式想四周发射,我们称之为声发射。
以道路桥梁中的混凝土结构为例,它在荷载作用下会产生变形。当这种变形超过设计要求,混凝土结构便会出现裂缝,并通过弹性波的形式释放出应变能(例声能、热能或者光能等)。在对其进行测试的时候,我们可以将声发射感应器放置在待检测部位,通过确定不同位置收到声音的时间差,我们可以明确发生源(即裂缝部位)的具置。通过此种措施,我们可以比较详细、准确地了解道路桥梁的内部变化。同时,分析与研究发声位置之后,裂缝的大小、种类、开裂速度、最大荷变应力都可以得到比较详细地认识。
但是其最大的缺点是进行检测非常容易受各种噪声的影响,进而导致检测精度的幅度下降;然而,该检测方式是利用道路桥梁自身的内部缺陷,因而可以实现连续的动态检测。总体来说,声发射检测技术已经应用较少。
4 冲击回波法检测技术
我国南京水利科学研究院在20世纪80年代末研制成功IES冲击反射系统,并在大型模拟试验板及工程实测实践中取得了成功,使冲击回波法在我国进入实用阶段。冲击回波法的测试原理是仪器通过机械冲击器向物体表面发送短周期应力脉冲波,其中压缩波(P波)在物体内传播过程中,当遇到内部缺陷(如裂缝宽度>0.03mm)时,波便不能穿透而产生反射,遇到表面边界时也会发生反射,一旦波速确定,且选择正确的冲击器,就可通过单面测试准确地测得裂缝等缺陷的位置和深度,当构件不存在缺陷时则可测得其厚度。
冲击回波法通常为单面反射测试,因此它的测试比较方便和快速,测试结果也比较直观。此方法可以实现“测一点判断一点”,因此曾经广泛地应用于测定道路桥梁的沥青混凝土或者混凝土结构的内部缺陷,但是这种方法由于是单点检测,其检测结果往往不全面,因此实际应用也比较少。
5 红外热像检测技术
红外热像检测技术是指运用红外热像仪探测物体各部分辐射出的红外线能量,根据物体表面的温度场分布状况所形成的热像图,直观地显示材料、结构物及其结合上存在的不连续缺陷的检测技术。它是非接触的无损检测技术,即在技术上可作上下、左右对被测物非接触的连续扫测,因此也称红外扫描测试技术。
红外热像检测技术具有以下优点:①在理论上,其探测器焦距为20cm至无穷远,所以特别适合具有非接触和广视域等特点的大面积无损检测;②该探测器只对红外线响应,因此只要道路桥梁高于绝对零度(显然会高于绝对零度),红外线热像监测技术便可以工作,白天和晚上均可;③当前红外热像仪的温度分辨率已经高达0.1℃,因此检测精度有技术保证;④红外热像仪的可测温度范围在-50℃-2000℃之间,具有非常广阔的探测空间;⑤摄像速度在1帧每秒至30帧每秒之间,静态的常规检测和动态的跟踪探测都适用,检测模式的选择更加灵活。
参考文献:
关键词:医疗设备;RFID;信息管理系统
中图分类号:R197.324;TP391.4 文献标识码:A 文章编号:1006-1959(2017)14-0017-04
随着科学技术及信息化建设的快速发展,医疗行业早已进入信息化发展的快车道,信息化发展给医疗行业带来诸多便捷,提升了医院的管理水平,提高了临床诊疗效率,给群众就医带来诸多便利之处。
医疗设备早已成为患者诊疗过程中不可或缺的工具,正因为医疗设备在现代医学中起到的重要作用,所以如何将各种医疗设备效益最大化,已经受到各级医院的广泛重视。如今医疗设备管理已从手工登记发展为数字化管理,目前大部分医院在设备管理中使用条形码技术,仅有小部分医院利用RFID技术对设备进行管理。
1 RFID概述
射频识别技术(Radio Frequency Identification,RFID)是从雷达技术发展而来,这是一种非接触式自动识别技术,这种技术通过空间电磁耦合进行通讯,所以无需直接接触就能获取数据,也无需像条码识别轮流扫描才能获得信息。
在RFID系统中,被识别的对象上必须通过粘贴、挂配或植入等方式安装相应RFID标签,当标签进入RFID读写器读取范围内时,读写器通过无线方式同标签建立通讯链路,标签将自身数据发送给读写器,读写器接收数据后传输给计算机系统进行下一步处理。
1.1 RFID系统组成
RFID系统是由标签、读写器和数据管理系统三部分组成[1],见图1。
标签又称标签、应答器、射频卡等,它是整个系统中识别信息的载体,它通过天线电路同读写器进行射频载波信号传输。
读写器以射频载波的方式向标签传输能量和查询信号,获取并处理标签传来的数据,完成与系统之间的通信。
数据管理系统从读写器获得信息后,将其有效的整合起来,提供所需的管理和服务。
1.2 RFID技术工作原理
RFID技术是通过无线电波进行识e工作的,根据射频耦合方式不同分为电感耦合和反向散射耦合。
电感耦合利用电磁感应定律以空间磁场的方式进行耦合[2]。这种方式采用的标签几乎都是无源的,主要工作频率为13.56 MHz和小于135 KHz的频段,识别作用距离小于1m,典型作用距离为10~20 cm,这种方式具有干扰小的特点。
反向散射耦合利用雷达工作原理,当电磁波遇到空间物体时,由物体吸收一部分能量,另一部分能量通过物体散射至各方向,散射能量中有一小部分反射至雷达被其接收 [3]。这种方式适用高频RFID系统,工作频率分别有433 MHz、915 MHz、2.45 GHz和5.8 GHz[4],识别距离大于1 m,典型作用距离为3~10 m。它具有功率大、传输距离远的优点,同时也存在传输距离较远干扰大、成本较高的缺点。
1.3 RFID技术数据传输方式
在RFID系统中根据通信距离的远近和工作频率的高低,将读写器和标签之间的数据传输方式分为两种:负载调制和反向散射调制。
1.4 RFID防碰撞技术
当有多读写器和多标签共存的情况时数据之间会相互干扰,目前常用的解决数据干扰的方法有四种:空分多路法、频分多路法、码分多路法、时分多路法[5]。
目前绝大部分医疗设备管理中使用条形码技术,故对条形码和RFID这两种技术主要特点进行对比,见表1。
通过表1的对比,可以明显发现RFID技术仅在前期成本方面较条形码技术偏高,RFID技术的特点决定了它可以在医疗设备管理中成功应用。例如对高温高压消毒的医疗设备进行管理,如果在消毒完成打包结束后要对包内的设备进行清点就必须拆包,采用RFID技术无需拆包就可以通过读取挂配了耐高温高压材料封装的标签进行清点,这就避免了设备的污染和重复操作。对RFID技术加以合理利用势必会改善医疗设备管理现状,提高医疗事业信息化程度。
2系统总体设计
2.1医疗设备管理现状及系统设计目标
随着医疗设备不断的向大型化、高精化方向发展,因此开发相对独立的医疗设备信息管理系统有助于缓解医院信息系统压力,完善设备管理的不足之处。
目前,国内多数医院对设备的管理还是工作人员将实物和清单逐件确认后,把信息录入系统,管理者通过系统可以看到使用情况,利用系统实现一些简单的功能,这种方法依然存在人工管理的众多环节,因此可以利用RFID技术无屏障读写、多目标识别、可重复使用等特点改进医疗设备管理模式,减少人工环节,提高工作效率,降低人为因素造成的差错率。
另一方面,目前现有的医疗设备管理系统大多数只提供对固定资产和卫生材料使用和报废的管理,对设备的购置、维保等方面信息管理不够重视[6],所以在本系统的研究中实现对设备全生命周期的信息化,让决策层能更及时、直观、全面的看到全局情况,使医疗设备管理能够跟上医疗行业高速发展的脚步,成为医院可持续发展的契机[7]。
2.2系统架构模式
目前主流的软件架构模式为C/S和B/S两种,随着各种跨平台开发软件的成熟,系统开发难度和资金都能很好的控制,因此选择B/S结构进行系统开发。
2.3 系统需求分析
需求分析是把用户对系统功能的要求转换为具体的需求规格说明,将这些内容进行整理分析后才能确定适合用户的功能模块等[8],经过对工作人员工作内容分析得到如下六项功能需求:①系统管理员的功能需求;②设备管理部门领导的功能需求;③临床科室领导的功能需求;④设备管理员的功能需求;⑤临床科室人员的功能需求;⑥医学工程技术人员的功能需求.
2.4系统功能及模块设计
通过对实际需求和工作流程的调查分析,研究得出RFID医疗设备管理系统要实现设备申购采购管理、设备验收信息管理、设备使用管理、固定资产管理、设备维保管理、防盗报警功能这六项主要功能,其功能结构,见图2。
在设备或耗材入库时将标签通过粘贴、悬挂等方式附着在设备上,在后续的使用管理过程中只需通过阅读器将各类信息直接读取至系统内即可,无需人工清点、录入。
3系统数据库设计
3.1系统数据库设计
数据库设计根据对应用系统具体数据的研究建立数据库的过程,是软件开发工作中的一项重要内容[9]。由于医疗设备管理系统信息不仅涉及到设备本身的信息,还牵涉到很多其他信息,因此信息量大、数据类型复杂、相关性强,因此在设计数据库之前明确应用目的,切合实际需求出发。
3.2数据库概念设计
数据库概念设计描述的是问题域中实体与实体之间的联系,是对现实世界的抽象表达[10]。结合对医疗设备管理的需求分析内容,利用数据库概念设计常用的实体-联系模型(E-R图)对本系统的数据库概念进行设计,见图3。
3.3 数据库逻辑结构设计
数据库逻辑结构设计是将E-R图进行转换,成为与数据模型符合的逻辑结构。利用PowerDesigner[11]软件得到系统数据库逻辑结构图,见图4。
根据实际需求进行数据库概念设计及逻辑结构设计,为设计数据库表提供基础。
4 结论
本文研究的内容是通过对医疗设备管理的实际现状进行分析后展开的,由于RFID技术能够较好的利用到医疗设备管理中,虽然现阶段在国内医疗机构还未能大规模的推广,但这种技术的优越性决定了其未来巨大的市场。
本文针对医疗设备管理的具体工作需求对系统进行了研究与设计,将医疗设备管理过程当中的各个工作流程进行了模块化分解。不仅将RFID技术加入医疗设备仓储管理之中,还在设备申购、审批、合同信息管理和设备验收方面进行了信息化处理,将过去不受重视的设备维保信息管理加入到系统中。这样的设计使得整个医疗设备管理系统能够很好的满足实际需求,降低了工作人员工作强度,提高了整体工作效率,保障了信息更安全的保存。
对于医疗设备管理系统来说只有不断的根据实际需求进行改进,才能让整个系统功能更加完善从而满足不断增加的工作需求,才能更好的为医疗设备管理进行服务。
参考文献:
[1] 胡建国.智能RFID标签芯片理论与实现[D].博士学位论文.中山大学,2010:11-13.
[2] Klaus Finkenzelle著,陈大才编译.射频识别(RFID)技术[M].北京:电子工业出版社,2006.
[3] 孙雪凤.RFID天线场强的测试与研究[D].硕士学位论文.河南理工大学,2011.
[4] 游战清,李苏剑.无线射频识别技术(RFID)理论与应用[M].北京:电子工业出版社,2005.20-43.
[5] 王福昌,熊兆飞.通信原理[M].北京:清华大学出版社,2006.267-268.
[6] 任凯,顾慧,沈炜.全过程医疗物资管理系统的研制与应用[J].中国医疗器械信息, 2011(17):4-5.
[7] 康东,石喜勤,李勇鹏.射频识别(RFID)核心技术与典型应用开发案例[M].北京:北京邮电出版社,2008.434.
[8] Roger S.Pressman著,人杰译.软件工程:实践者的研究方法[M].北京:机械工业出版社,2011.85-89.
[9] 王珊,陈红编著,数据库系统原理教程[M].北京:清华大学出版社,2003.
关键词: MATLAB; 预处理; Hough变换; 降维; 形态学
中图分类号:TP391.41 文献标志码:A 文章编号:1006-8228(2016)11-17-04
Research on the image recognition of target sheet with MATLAB
Wang Weiyang, Ding Jiayue, Wang Penghong, Lu Zhengyong
(School of Imformation & Electronic Engineering, Zhejiang Gongshang University, Hangzhou, Zhejiang 310018, China)
Abstract: According to the shooting competition when a real-time and accurate detection of the shooting results is required, a research on image recognition of target sheet with MATLAB is presented in this paper. An image processing algorithm based on MATLAB is used in order to analyse the ring number of impact point on the target sheet captured by digital camera. Grayscale conversion, median filtering, and binariztion of the target sheet image are used in the image pretreatment. Sobel operator is used to extract image edge, so the amount of computation is dramatically reduced. And the bullet hole is recognized and located by using improved Hough transform, image subtraction method and morphological algorithm. The experimental results show that the image processing algorithm has fast speed and good accuracy.
Key words: MATLAB; pretreatment; Hough transform; mension reduction; morphology
0 引言
随着科技的发展,射击比赛时采用自动报靶系统,将会越来越普遍。这种方式不仅能减少人力物力支出、提高报靶效率,还能减小由于人为带来的不确定因素。目前已有不少单位研究出多种自动报靶系统[1-4]。基于机器视觉的自动报靶系统,应用环境要求特殊,还未得到普及[1-4]。本文基于MATLAB函数工具箱实现靶纸弹孔检测的数字化方法,在射击时对靶纸图像进行采集,通过基于MATLAB的图像处理技术对靶纸图像进行处理分析,并模拟图像进行成绩输出。
1 靶纸图像采集读取
靶纸图像采集可以有多种方式,本实验采用最高像素值为300万的数码相机拍摄,图像采集简便,便于推广应用。MATLAB中提供的imread()函数用于实现图像的读取操作,可读取JPG、TIF、GIF、HDF、XWD和CUR等多种图像格式。调用该函数后将得到一个存储图像数据的矩阵,后期对图像的各种处理正是基于该数据矩阵来完成。
2 靶纸图像预处理[1]
2.1 图像灰度化
数码相机拍摄的图像为彩色图像,图像中每个像素都包含有R(红色)、G(绿色)、B(蓝色)三种基色分量信息,每种基色分量均需要占用八位来表示基色强度,数据量较大。为减轻计算机工作量,去除掉部分无用信息,将图像进行灰度化处理,减少后续处理分析耗时。
在MATLAB中采用rgb2gray()函数对图像进行灰度化处理,该函数中三基色的权重系数取值为(0.299,0.587,0.114)[5]。
2.2 图像增强
对靶纸图像增强是为了突出图像中的有用信息,同时对噪声等无用信息进行一定的消除,类似信号处理中的滤波器。图像噪声常常表现为孤立像素点,如果不去除噪声,会对边缘检测、图像变换以及后续的弹孔定位带来影响。MATLAB中提供了平滑滤波器、中值滤波器以及锐化滤波器这三种图像增强滤波器[6]。平滑滤波器本质上类似低通滤波器,只对信号的低频部分有很好地选通性。靶纸图像中对属于高频部分的圆环边缘提取十分重要,采用平滑滤波器将对其造成破坏。锐化滤波器有时会导致输出图像灰度值出现负值,还需要进行相应灰度转换,增加处理工作量。本文采用中值滤波器对靶纸图像进行滤波处理,能有效去除类似斑点噪声及椒盐噪声的孤立像素点,同时较好地保留了图像的边缘信息[2]。这是一种非线性的去噪方法,其基本原理是在图像中一个像素周围确定一个邻域,以该邻域中各像素点灰度值的中值来代换该像素点自身的灰度值[4]。
MATLAB中提供medfilt2()函数用于对图像信息进行中值滤波,二维滤波窗口可以为方形、圆形、菱形等,由图像像素点构成,可在函数中设置窗口形状,默认为像素点的方形窗口[5]。
2.3 靶纸图像二值化
由于对靶纸图像的处理主要是对圆环和弹孔的识别提取,对于图像灰度值并没有特定的要求,所以进一步对图像二值化以去除无用信息。所选取的阈值需要能够有效保留图像特征,保证后续处理的可靠性。对灰度化后的靶纸图像绘制灰度直方图,如图1所示。
从直方图看出灰度值集中在Y220范围内,其中Y220对应白色背景以及白色圆环部分,所以阈值TG取值应在30/255
3 基于Hough变换的靶心定位
3.1 Hough变换圆检测原理[2,7]
Hough变换将二维图像平面转换为三维参数空间,采用类似“投票”模式的判断方法。三个参数值分别为圆心的行坐标a,圆心列坐标b,以及半径r。对于图像平面中的任何一个像素点(x,y)都要在三维参数空间内进行遍历运算,若运算结果满足关系式,则对应三维空间中的参数点票数加一。完成运算后,三维空间中“票数”最多(或满足一定数量)的参数点,其参数即为检测到的圆所对应圆心坐标以及半径值。Hough变换检测圆三个参数间的一般关系如下式:
3.2 用于靶纸圆环提取的Hough变换降维算法
从Hough变换原理可知,其运算过程中将会有大量的时空消耗,减少运算维度和参与运算的像素点数可以提高Hough变换效率。前期已对靶纸图像进行预处理得到图像的二值图,减少了参与Hough变换的像素点数。接着,采用Sobel算子对靶纸圆环进行边缘提取。图像边缘是图像局部特征不连续的表现,出现在两个不同图像区域的交界,常常是灰度突变的结果,在灰度突变处进行微分运算将产生高值[8]。MATLAB中通过调用edge()函数进行边缘提取,函数计算结果为和输入图像一样大小的二值图。边缘提取对图像的特征信息进行提取,进一步减少Hough变换算法的工作量,减少运算时间。
由于靶纸圆环均为同心圆环,只存在一个位置固定的圆心。经边缘提取后的图像是由像素点组成的多个同心圆环,圆环特征较为明显,考虑降低Hough变换的计算维度来提高计算速度[9],先进行靶纸圆心的提取,将圆心横纵坐标分别提取。首先是横坐标的提取,以平行于X轴的扫描线,自图像顶部向下纵向扫描。此时靶纸上圆环边缘点值为“1”,背景为“0”,因此每向下扫描一行,记录该行i中间距最大的两个“1”值像素点的横坐标分别为、,直至扫描完图像。接着,以平行于Y轴的扫描线,自图像左边向右横向扫描,记录像素点纵坐标分别为ali、a2i,直至扫描完图像。若某行只存在一个“1”值点,则跳过该行。距离最远的两“1”值点为最外圈圆环上的点,坐标中值(ami,bmi)即为对应圆心坐标,计算公式如下:
由于边缘提取后的圆环边缘不完全连续,且可能存在弹孔边缘信息以及噪声点,若以文献[10]中尽量多弦交点的简单统计平均来计算坐标,将引入上述影响因素,导致圆心定位出现误差。因此,采用类似Hough变换证据积累的判断方法,对每行/列扫描得出的中值坐标采取投票的积累方式,出现相同的中值点坐标时则对该坐标对应“票数”Na[ami]加1,当遍历完整幅图像时,找出“票数”最多的中值点坐标ammax。此处,可设置一个阈值Ta,考虑到图像像素点的离散化以及边缘提取带来的影响,将中值坐标满足
内的对应点ami求和,接着求取平均值,此平均值记为圆心坐标a。同理得b。通过这种方法可以有效减少非最外圈圆环上弦交点即错误点或者噪声点的干扰的影响。MATLAB中调用sum()函数用于求和,调用max()函数用于求取最大值。坐标关系式如下:
上述算法的部分MATLAB代码如下:
%BW为边缘提取后靶纸图
[rows,cols]=find(BW); %搜索1值像素点
mount=size(rows); number=mount(1);
i=1; j=1;
while(i
xjd(j,1)=rows(a);
while(i
if(cols(i)==cols(i+1))
xjd(j,2)=rows(i+1);i=i+1;
else
i=i+1; j=j+1; break;
end
end
end
number=length(xjd); Na=zeros(1,number);
for n=1:number%for循环计算中值及票数
zz(n)=round((xjd(n,1)+xjd(n,2))/2);
Na(zz(n))=Na(zz(n))+1;
end
[amax,id]=max(Na); %找出票数最多中值点
a=(Na(id)*id+Na(id-Ta)*(id- Ta)+Na(id+Ta)*(id+Ta))/
sum(Na(id-Ta:id+Ta))%基于阈值Ta计算均值得坐标a
根据机器视觉中的ROI(Region Of Interest)理论,恰当选取ROI能有效减少图像运算的计算量[11]。根据先验知识图像采集时圆心处于图像中部区域,将待验证像素点所处范围设定为图像中部的矩形区域,该矩形区域边长设为图像边长的1/4,由此进一步减少参与运算的像素点。本算法将圆的参数方程写为极坐标形式:
已知圆心坐标,根据先验知识设定r的可能取值范围,遍历计算感兴趣区域中的边缘点,采用上述Hough变换证据积累的方法得到r[9],且设定一个阈值Tr,减少离散数据带来的误差。阈值的设定使得对于一些存在干扰的靶纸图像也能有效地进行圆环检测,例如靶纸存在一定形变或者是子弹击中内圆环带来的干扰,提高了算法的鲁棒性。
4 基于图像差影法的弹孔定位[12]
4.1 图像差影算法[2,4]
本文在弹孔定位的分析上,将弹孔视为一个运动目标,每次射击后弹着点都不同,近似为目标的运动过程。运动目标的检测算法有帧间差分法、背景差分法以及基于光流场的检测方法,图像差影法是利用当前图像与初始图像进行减运算来提取目标的一种检测方法[13]。首先,采集射击前的靶纸图像以及本次射击后的靶纸图像,将两幅图像视为视频中的前后两帧图像,接着采用帧间差分法获得弹孔信息,并将弹孔图像二值化处理。
4.2 形态学滤波处理[3]
提取的弹孔图像可能会包含噪声,将会导致弹孔定位出现误差,对该图像进行先腐蚀后膨胀处理的开运算[5]。在MATLAB中调用imerode()函数对图像进行腐蚀操作,去除图像中小而无意义的噪声像素点;接着调用imdilate()函数对图像进行膨胀操作,使弹孔区域恢复至原始大小,即消除由于腐蚀对弹孔面积带来的影响。两个函数均采用strel()函数定义一个结构元素,其在形态学中的作用好比滤波器中的滤波窗口,该函数支持创建线形、矩形、方形、球形和自定义类型等的结构元素。
实现弹孔提取及定位的部分MATLAB代码如下:
b=imread('current.jpg'); %靶纸读取
B=I-b; %射击前后的靶纸图像差影
B=im2bw(B,T); %基于阈值T进行二值化
subplot(221),imshow(B)
se=strel('square',2); %定义方形结构元素
imeBW=imerode(B,se); %图像腐蚀
subplot(222),imshow(imeBW)
imdBW=imdilate(imeBW,se); %图像膨胀
subplot(223),imshow(imdBW)
[row,col]=find(imdBW==1); %搜索弹孔
x=min(col); w=max(col)-x;
y=min(row); h=max(row)-y;
subplot(224),imshow(imdBW)
hold on; %图像保持
rectangle('Position',[x,y,w,h],'LineWidth',1,'EdgeColor',
'w'); %框弹孔区域
5 实验结果
仿真实验在2.3GHz,RAM为4GB的计算机上进行,采用MATLAB8.2语言编写代码。本次实验采用靶纸满环11环,且不同环数圆环半径差相同。实验结果如图2、图3和图4所示。
求得弹着点环数及误差。其中(a,b)为环心坐标,(xd,yd)为弹孔坐标,r为中心圆环半径,Hj为环数计算值,Sj为人工计算值(采用尺规法测量),ρ为环数相对误差。计算结果若为负数,则判为脱靶。靶纸测试结果如表1所示。
6 总结
基于MATLAB函数工具箱的图像处理,函数调用方便,程序设计高效。首先通过图像预处理去除无用信息,接着将Hough变换算法降维进行内圆环的定位,最后搜索定位弹孔,求出弹着点坐标,方案适用于圆环完整的靶纸识别。计算出的射击环数相比人工计算误差在0.1环以内,且计算速度较快。进一步,可考虑靶纸形变带来的影响或将方案转换为硬件系统以提高实时处理性能,可以应用于射击比赛中的自动报靶系统,免去人工报靶可能带来的不确定性因素,提高比赛的公正度和效率。
参考文献(References):
[1] 周晓伟.基于图像处理的自动报靶系统研究[D].中北大学硕
士学位论文,2011.
[2] 陈海萍.基于机器视觉技术的模拟射击训练系统研究与设计[D].
厦门大学硕士学位论文,2012.
[3] 罗真.基于图像处理的自动报靶系统设计[D].中南大学硕士
学位论文,2014.
[4] 谢殿强.基于ARM-Linux机器视觉的军用自动报靶系统的
研究[D].山东大学硕士学位论文,2009.
[5] 周品.MATLAB图像处理与图形用户界面设计[M].清华大学
出版社,2013.
[6] 叶雯.基于MATLAB的图像去噪研究[J].计算机时代,
2015.6:10-12
[7] 陈小艳,王强,李柏林.改进的Hough变换检测圆方法[J].计算
机系统应用,2015.8:197-201
[8] 蒋先刚.数字图像模式识别工程软件设计[M].中国水利水电
出版社,2008.
[9] 赵京东.用两步Hough变换检测圆[J].计算机应用,2008.7:
1761-1763
[10] 孙蓉蓉.图像处理技术在自动报靶系统中的应用研究[D].南
京理工大学硕士学位论文,2006.
[11] 孙国栋,赵大兴.机器视觉检测理论与算法[M].科学出版社,
2015.
[12] 崔亚琳.基于计算机视觉的射箭精确自动报靶系统研究[J].
火控雷达技术,2015.12:27-30
1.1 课题的背景
随着公路交通运输的发展,交通拥挤、道路阻塞和交通事故频繁发生等问题越来越严重地困扰着世界各大城市。在我国,长期以来城市人均道路面积一直处于低水平状态,近十年有了较快发展,人均面积由2.8平方米上升到6.6平方米。尽管其增长幅度较快,仍赶不上城市交通流量年均20%的增长速度。这种状况在大城市中尤为突出目前全国32个百万人口以上的大城市中,有27个城市的人均道路面积低于全国平均水平。
另外,最近几年也是大城市机动车增长速度最快的年份,轿车、客车、面包车以及摩托车的增幅年均在15%以上。以广州为例,广州市近10年来机动车年均增长速度为17%,其中轿车为19%,摩托车为35%。
相对于交通运输工具的飞速发展,我国交通配套设施建设明显滞后,道路安全网络、道路标识、交通指挥中心仍然不足。单独从车辆方面或道路方面考虑,均很难有效地解决交通问题。
停车场是交通事故频发区之一。随着汽车的日益普及,停车场越来越拥挤,车辆间距离非常接近,使得驾驶员在停车场穿行、掉头或倒车时常常顾此失彼,发生碰撞和拖挂的事故,在夜间,事故发生率最高。
汽车倒车超声波报警器能在一定程度上帮助驾驶员避免事故的发生,它能显示出车尾距离障碍物的距离,并能在低于安全距离时发出报警声音。对于后视不良的车辆如大客车,货车驾驶员和驾车新手来说,拥有一个倒车报警器是很有必要的。
1.2 课题目的及意义
本课题把硬件电路和电路软件有机的结合起来,完成汽车倒车报警系统的设计,能够了解单片机技术的现状,而且通过对电路系统的设计,学习掌握了数字电路从原理图到PCB版的全部过程,形成完善的设计思路以及思想,并通过对汽车倒车超声波报警器的软件设计的过程,锻炼应用C以及相关汇编语言等软件设计电路程序的能力为以后参与实际工作奠定良好的设计基础。
本课题要求使用现在应用非常广泛的计算机软件PROTEL,及Keil C51,随着计算机技术的发展,计算机软件在电路设计中的应用越来越广泛,Protel是人们熟悉的常用EDA软件。作为电路设计自动化(EDA)的一种工具,Protel应用于电路原理图设计、电路板设计等,它基于Windows环境,功能强大,人机界面友好,能让人们在具有最完整的功能环境下,提升设计上的品质和效率。本课题将要求Protel在电路设计中的应用,包括电路原理图设计和印刷电路板设计以及设计过程中遇到的问题和解决方法。Keil C51,是51系列单片机学习和调试的常用软件,是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编、PLM语言和C语言的程序设计,界面友好,易学易用。这样使学生也能将所学与所用有机结合起来。在步入工作岗位之前得到全方位的工程设计训练。
通过对汽车倒车报警电路的设计能初步具有用PROTEL软件设计电路原理图以及电路版图的能力。与实际电路相结合,通过理论联系实际的方法,使所学的知识通过自己设计思考真正应用到实践中。通过该次设计能了解51系列的一些单片机的知识,并能熟练运用PROTEL,Keil C51软件,提高实际动手能力。
通过运用汇编语言编程,可以锻炼严谨的编程思路,进一步提高编程能力和对汇编思想的理解。为以后的工作打下良好的基础。
第2章 总体设计方案和开发软件介绍
2.1超声波测距原理
人耳的听音范围是20~20 000Hz ,超声波是人耳听不到的一种声波,是一种频率超过 20kHz 的机械波。超声波作为一种特殊的声波,同样具有声波传输的基本物理特性—反射、折射、干涉、衍射、散射。超声波具有方向性集中、振幅小、加速度大等特点,可产生较大力量,并且在不同的媒质介面,超声波能量损失小大部分能量会反射。同时,由于超声波对人体和环境是无害的,所以超声拨检测可以广泛应用到各个部门。而且利用超声波检测往往比较迅速,方便,易于做到实时控制,并且在测量精度方面能达到工业实用的要求。在本设计中综合各方面考虑,采用的超声波频率为40KHz。
超声波的纵向分辨率较高,对色彩和光照度不敏感,对外界光线和电磁场不敏感,可以用于测量较近目标的距离。本设计采用的超声波传感器往返距离为15m ,在有灰尘、烟雾、强磁场干扰、有毒等各种环境下都能稳定工作.超声波测距是根据超声波传播过程中遇到障碍物会发生反射这一原理来测量距离的,即用发射超声波和接收其回波之间的时间差来计算距离,计算公式为:
v = 331. 5 + 0. 607 T (2-1)
式中:v 为超声波在空气中传播速度T为环境温度
常温下可简化为
(2-2)
式中:S为被测距离;Δt为发射超声脉冲与接收其回波的时间差:t1为超声回波接收时刻;t0为超声脉冲发射时刻. 用单片机可以很方便地测量t0时刻和t1时刻,根据以上公式,用软件编程即可得到被测距离S。
2.2 汽车倒车雷达的发展
倒车雷达其实跟大家所知道的雷达是一样的,是根据蝙蝠在黑夜里高速飞行而不会与任何障得物相撞的原理设计开发的,通过感应装置发出超声波,然后通过反射回来的超声波来判断前方有无障得物,以及距障碍物的距离、障碍物的大小、方位和形状等。不过由于倒车雷达体积和实用性的限制,目前的倒车雷达主要具备的就是判断障碍物的距离,并作出提示,让驾驶者便于判断是否该减速或熄火。
通常的倒车雷达主要由三部分组成:感应器(探头)、主机和显示设备。感应器发出和接收超声波信号,然后将得到的信号传输到主机里面的电脑进行分析,再通过显示设备显示出来。探头装在后保险杠上,探头有1、3、4、6只不等。探头以45°角辐射,上下左右搜寻目标。它最大的特点是能探索到那些低于保险杠而驾驶员从后窗难以看见的障碍物( 如花坛、蹲在车后玩耍的小孩等)并报警。倒车雷达的显示器装在驾驶室仪表板上,它不停地提醒驾驶员汽车距后面物体还有多少距离。到危险距离时蜂鸣器就开始鸣叫,提醒驾驶员停车。
按探头分,倒车雷达有粘贴式、钻孔式和悬挂式三种。粘贴式探头后有层胶,可直接粘在后保险杠上。钻孔式探头,是在保险杠上打一个洞,然后把探头嵌进去。悬挂式探头主要用于货车。从显示器分,有数字显示、颜色显示和蜂鸣三种。
下面介绍倒车雷达的发展:
第一代——轰鸣器,这是倒车雷达系统的真正开始,倒车时,如果车后1.5~1.8m处有障碍物,轰鸣器就会开始工作。轰鸣声越急,表示车辆离 障碍物越近,没有语音提示,也没有距离显示,虽然司机知道有障碍物,但不能确定障碍物离车有多远,对驾驶员帮助不大。
第二代——数码波段显示,这代产品要先进得多,它安装在仪表台的位置,可以显示车后障碍物离车体的距离。如果是物体,在1.8m 开始显示;如果是人,在0.9m左右的距离开始显示;这一代产品有两种显示方式,数码产品显示距离数字,而波段显示产品由三种颜色来区别显示:绿色代表安全距离,表示障碍物离车体距离有0.8m 以上;黄色代表警告距离,表示离障碍物的距离只有0.6~0.8m;红色代表危险距离,表示离障碍物只有不到0.6m 的距离,你必须停止倒车。这种产品把数码和波段组合在一起,比较实用。但缺点是反应不够快,而且使用寿命较短。
第三代——液晶显示屏动态显示,这一代产品非常引人注目,特别是屏幕显示开始出现动态显示系统。它不用挂倒挡,只要发动汽车,显示器上就会出现汽车图案以及车辆周围障碍物的距离。其外表美观,可以直接粘贴在仪表盘上,安装很方便,给人以舒适的感觉,显示的距离也更准确些。相比其他倒车雷达产品,这种产品广为车主接受。但是,液晶显示器存在抗干扰能力不强的毛病,所以有时出现误报的情
第四代——魔幻镜倒车雷达,它结合了前几代产品的优点,采用了最新仿生超声雷达技术,配以高速电脑控制,可全天候准确地测知2m以内的障碍物,并以不同等级的声音提示和直观的显示提醒驾驶员。魔幻镜倒车雷达可以把后视镜、倒车雷达、免提电话、温度显示和车内空气污染显示等多项功能整合在一起,并设计了语音功能。因为其外形就是一块倒车镜,所以并不占用车内空间,直接可安装在车内后视镜的位置。当然,它的价格也相对较高。
第五代——整合影音系统,这是专为高档轿车生产的,它在上一代产品的基础上新增了很多功能。从外观上来看,这套系统比上代产品更精致和典雅;从功能上来看,它除了具备上代产品的所有功能之外,还整合了高档轿车具备的影音系统,可以在显示器上观看DVD影像。
可见汽车倒车雷达的技术发展已经比较成熟了。
2.3总体设计方案
本系统由89S51单片机、超声波发射电路、超声波接收电路、显示电路等部分组成。如图2-1所示
图2-1 总体设计框图
本设计以ATMEL公司生产的AT89S51为中心,通过AT89S51单片机控制超声波发射电路发出40KHz的超声波,与此同时单片机内计数器开始计时;经过延迟后开启超声波接收电路,当接收电路收到经障碍物反射的回波后,计数器计时结束。通过AT89S51单片机计算出即时距离,在显示电路显示出来,若低于警戒距离则开启报警。超声波发射电路和超声波接收电路是整个系统的基础;显示电路选用LED作为显示设备,一来价钱便宜,二来编程方便;报警电路选用蜂鸣器报警,也是从经济和编程的角度去考虑的。
2.4 Keil C51介绍
KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2 IDE可为它们提供单一而灵活的开发环境。
C51 V7版本是目前最高效、灵活的8051开发平台。它可以支持所有8051的衍生产品,也可以支持所有兼容的仿真器,同时支持其它第三方开发工具。因此,C51 V7版本无疑是8051开发用户的最佳选择。
2.4.1 uVision2集成开发环境
项目管理 ,工程(project)是由源文件、开发工具选项以及编程说明三部分组成的。一个单一的uVision2工程能够产生一个或多个目标程序。产生目标程序的源文件构成“组”。开发工具选项可以对应目标,组或单个文件uVision2包含一个器件数据库(device database),可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定微控制器的要求。此数据库包含:片上存储器和外围设备的信息,扩展数据指针(extra data pointer)或者加速器(math accelerator)的特性。uVision2可以为片外存储器产生必要的连接选项:确定起始地址和规模。
集成功能uVision2的强大功能有助于用户按期完工。
1.集成源极浏览器利用符号数据库使用户可以快速浏览源文件。用详细的符号信息来优化用户变数存储器。
2.文件寻找功能:在特定文件中执行全局文件搜索。
3.工具菜单:允许在V2集成开发环境下启动用户功能。
4.可配置SVCS接口:提供对版本控制系统的入口。
5.PC-LINT接口:对应用程序代码进行深层语法分析。
6.Infineon的EasyCase接口:集成块集代码产生。
7.Infineon的DAVE功能:协助用户的CPU和外部程序。DAVE工程可被直接输入uVision2。
2.4.2部分编辑器和调试器
源代码编辑器,uVision2编辑器包含了所有用户熟悉的特性。彩色语法显像和文件辩识都对C源代码进行和优化。可以在编辑器内调试程序,它能提供一种自然的调试环境,使你更快速地检查和修改程序。
断点, uVision2允许用户在编辑时设置程序断点(甚至在源代码未经编译和汇编之前)。用户启动V2调试器之后,断点即被激活。断点可设置为条件表达式,变量或存储器访问,断点被触发后,调试器命令或调试功能即可执行。在属性框(attributes column)中可以快速浏览断点设置情况和源程序行的位置。代码覆盖率信息可以让你区分程序中已执行和未执行的部分。
调试函数语言, uVision2中,你可以编写或使用类似C的数语言进行调试。
内部函数:如printf, memset, rand及其它功能的函数。
信号函数:模拟产生CPU的模拟信号和脉冲信号(simulate analog and digital inputs to CPU)。
用户函数:扩展指令范围,合并重复动作。
变量和存储器,用户可以在编辑器中选中变呈来观察其取值。双层窗口显示,可进行以下调整:
1.当前函数的局部变量
2.用户在两个不同watch窗口页面上的自定义变量
3.堆栈调用(call stack)页面上的调用记录(树)(call tree)
4.不同格式的四个存储区
2.4.3 C51编译器
KEIL C51编译器在遵循ANSI标准的同时,为8051微控制器系列特别设计。语言上的扩展能让用户使用应用中的所有资源。
存储器和特殊功能寄存器的存取, C51编 译器可以实现对8051系列所有资源的操作。SFR的存取由sfr和sbit两个关键字来提供。变量可旋转到任一个地址空间。用关键字-at-还能把变量放入固定的存储器.存储模式(大,中,小)决定了变量的存储类型。连接定位器支持的代码区可达32个,这就允许用户在原有64K ROM的8015基础上扩展程序。在V2的编译器和许多高性能仿真器中,可以支持应用程序的调试。
中断功能, C51允许用户使用C语言编写中断服务程序,快速进、出代码和寄存器区的转换功能使C语言中断功能更加高效。可再入功能是用关键字来定义的。多任务,中断或非中断的代码要求必须具备可再入功能。
灵活的指针, C51提供了灵活高效的指针。通用指针用3个字节来存储存储器类型及目标地址,可以在8051的任意存储区内存取任何变量。特殊指针在声明的同时已指定了存储器类型,指向某一特定的存储区域。由于地址的存储只需1到2字节,因此,指针存取非常迅速。
2.4.4 测试程序
uVision2调试器具备所有常规源极调试,符号调试特性以及历史跟踪,代码覆盖,复杂断点等功能.DDE界面和shift语言支持自动程序测试.
CPU和外设模拟装置, uVision2为8051及衍生产品提供了高速CUP模拟功能和片上扩展口.在对话框内可直接观察和修改I/O值,也可以用预装的C-LIKE宏指令书写符号函数来提供动态输入。
目标监控器,uVision2含一个可配置的监控器,可测试目标器件上的软件体。监控器用uVision2的调试器直接工作,可支持代码区。它要求目标系统具备6字节堆栈空间,6KB的代码ROM和256字节Xdata RAM。
MCB517/251启动工具包,在开始一项8051工程时,MCB启动工具会对你有很大帮助。每一个启动工具包括一套2K字节的开发工具和许多可快速运行的举例程序。用户可在检测8051性能的同时,查看开发工具的可行性。MCB517AC板含高性能InfineonC517A单片机,它提供标准8052外围设备和A/D转换器,PWM,搜索/比较,8位数据指针,一个高速运算单元。同时包含对81C90CAN控制器和代码区的支持。
2.5 AT89S51简介
AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4K bytes的可系统编程的flash只读程序寄存器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能和强大,低价位的AT89S51单片机可提供许多高性价比的应用场合,可灵活用于各种控制领域。
2.5.1主要性能参数
与MCS-51产品指令系统安全兼容
4k字节在系统编程(ISP)FLASH闪速存储器
1000次擦写周期
4.0-5.5V的工作电压范围
全静态操作:0HZ—33MHZ
三级加密程序存储器
128×8字节内部RAM
32个可编程I/O口线
2个16位定时/计数器
6个中断源
全双工串行UART通道
低功耗空闲和掉电模式
中断可以从空闲模式唤醒系统
看门狗(WDT)及双数据指针
掉电标识和快速编程特性
灵活的在系统编程(ISP-字节或页写模式)AT89S51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个五向量两级中断结构,一个全双工,片内振荡器及时钟电路。同时,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式件可选的节电工作模
图2-2 89S51引脚图
式。空闲方式停止CPU工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。引脚图如图2-2所示。
2.5.2 引脚功能说明
Vcc:电源电压
GND:地
P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对断口写“1”
可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节。而在程序检验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部上拉电阻把端口拉到高电平,此时可作输入口。作输出口使用时,因为存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流( )。
Flash编程和程序校验期间,P1口接受低8位地址。
P2口:P2是一个带内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部上拉电阻把端口拉到高电平,此时可作输入口。作输出口使用时,因为存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流( )。
在访问外部程序存储器或16位地址的外部数据存储器P2口送出高8位地址数据。在访问八位地址的外部数据存储器,P2口线上的内容(也即特殊功能存储器(SFR)区中R2寄存器)。在整个访问期间不改变。
FLASH编程或校验时,P2亦接受地址和其它控制信号
P3口:P3口是一组带有内部上拉电阻的八位双向I/O口,P3口输出缓冲级可驱动(吸收或输出电流)四个TTL逻辑门电路。对P3口写入“1”时。它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流(I )。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表2-1所示。
表2-1 P3口的分配
端口引脚 第二功能
P3.0 RXD(串性输入口)
P3.1 TXD(串行输出口)
P3.2 (外中段0)
P3.3 (外中段1)
P3.4 (定时/计数器0)
P3.5 (定时/计数器1)
P3.6 (外部数据存储器写选通)
P3.7 (外部数据存储器读选通)
P3口还接受一些用于FLASH闪速存储器和程序校验的控制信号。
RST;复位输入。当振荡器工作时,RST引脚出现机器周期以上高电平将使单片机复位。
ALE:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低八位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是,每当访问外部数据存储器时将跳过一个ALE脉冲。
对Flash 存储器编程期间,该引脚还用于输入编程脉冲( )。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。
:程序储存允许( )输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次 有效,即输出两个脉冲。在次期间,当访问外部数据存储器时,这两次有效的 信号不出现。
EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp。当然这必须是该器件是使用12V编程电压Vpp。
XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。
XTAL2:振荡器反相放大器的输出端。
当采用外部时钟时,外部时钟接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。若选用12M晶振,时钟周期为1微秒。
第3章 主程序设计原理
主程序设计按自上而下的设计理念。主程序主要完成初始化工作,对超声波发射和接收的控制,以及对计算和显示的控制。
主程序需要实现对两个定时器/计数器的设定、中断的开启关闭以及控制调用各子程序从而实现系统功能。
3.1 AT89S51的定时器/计数器的控制器
与定时器/计数器应用有关的控制寄存器有三个。
3.1.1 定时控制寄存器(TCON)
TCON寄存器既参与中断控制又参与定时控制。
TF0和TF1:计数器溢出标志位
当计数器计数溢出(计满)时,该位置“1”。使用查询方式时,此位为状态位以供查询,但应注意查询有效后,需用软件方法及时将该位清“0”;使用中断方式时,此位为中断标志位,在转向中断服务程序时由硬件自动清“0”。
TR0和 TR1:定时器运行控制位
TR0(TR1)=0 停止定时器/计数器工作
TR0(TR1)=1 启动定时器/计数器工作
该位根据需要以软件方法使其置“1”或清“0”。
3.1.2 工作方式控制寄存器(TMOD)
TMOD寄存器是一个专用寄存器,用于设定两个定时器/计数器的工作方式,但TMOD寄存器不能位寻址,只能用字节传送指令设置其内容。格式如下:
表3-1 TMOD寄存器格式
D7 D6 D5 D4 D3 D2 D1 D0
GATE C/T M1 M0 GATE C/T M1 M0
GATE:门控位
GATE=0由运行控制位TR启动定时器;
GATE=1由外中断请求信号(INT0和INT1)和TR的组合状态启动定时器。
C/T:定时方式或计数方式选择位
C/T=0定时器工作方式;
C/T =1计数器工作方式。
M1M0:工作方式选择位
M1M0=00 方式0,13位定时器/计数器工作方式;
M1M0=01 方式1,16位定时器/计数器工作方式;
M1M0=10 方式2,常数自动装入的8位定时器/计数器工作方式;
M1M0=11 方式3, 仅适用于T0,为两个8位定时器/计数器工作方式;在方式3时T1停止计数。
3.1.3中断允许控制器(IE)
中断允许寄存器格式如下:
表3-2 中断允许寄存器格式
D7 D6 D5 D4 D3 D2 D1 D0
EA — — ES ET1 EX1 ET0 EX0
寄存器中用于控制中断的共6位,可实现中断管理。EA为中断允许总控制位。EA=1时,CPU开中断;EA=0时,CPU屏蔽所有中断请求。
ES、ET1、EX1、ET0、EX0为对应的串行口中断、定时器/计数器1中断、外部中断1中断、定时器/计数器0中断、外部中断0中断的中断允许位。对应位为1时,允许其中断,对应位为0时,禁止其中断。
89S51单片机中断系统的管理是由中断允许控制EA和各中断源的控制位联合作用实现的,缺一不可。
3.2主程序设计
本系统需要实现功能有收发超声波、显示距离、计算距离、开启报警等。这些功能都需要主程序控制完成。收发超声波中用到的定时器/计数器需要在主程序中对其进行设置;通过调用计算子程序,可以计算出当前的距离;通过调用显示子程序显示当前的距离。程序流程如图3-1所示。
程序开始执行后,首先进行初始化:显示缓冲单元清“0”,接收成功标志位清“0”, T0、T1的工作方式的设定。在完成初始化后,CPU开中断,定时器1开中断,开外部中断0中断,并且开启定时器1用于65ms定时。
当65ms定时完成后,转入中断处理程序,也就是超声波发射程序,控制超声波发射器发射超声波。当收到回波信号后,接收成功标志位置“1”,这时候CPU关中
碍物,但不能确定障碍物离车有多远,对驾驶员帮助不大。第二代——数码波段显示,这代产品要先进得多,它安装在仪表台的位置,可以显示车后障碍物离车体的距离。如果是物体,在11 开始显示;如果是人,在11左右的距离开始显示;这一代产品有两种显示方式,数码产品显示距离数字,而波段显示产品由三种颜色来区别显示:绿色代表安全距离,表示障碍物离车体距离有11以上;黄色代表警告距离,表示离障碍物的距离只有0.6~0;红色代表危险距离,表示离障碍物只有不到的距离,你必须停止倒车。这种产品把数码和波段组合在一起,比较实用。但缺点是反应不够快,而且使用寿命较短。第三代——液晶显示屏动态显示,这一代产品非常引人注目,特别是屏幕显示开始出现动态显示系统。它不用挂倒挡,只要发动汽车,显示器上就会出现汽车图案以及车辆周围障碍物的距离。其外表美观,可以直接粘贴在仪表盘上,安装很方便,给人以舒适的感觉,显示的距离也更准确些。相比其他倒车雷达产品,这种产品广为车主接受。但是,液晶显示器,存在抗干扰能力不强的毛病,所以有时出现误报的情驾驶员。魔幻镜倒车雷达可以把后视镜、倒车雷达、驾驶员。魔幻镜倒车雷达可以把后视镜、倒车雷达、驾驶员。魔幻镜倒车雷达可以把后视镜、魔幻镜倒车雷达
图3-1 主程序原理图
断,调用计算子程序计算出当前距离。然后调用显示子程序,将当前距离显示在LED上。测量间隔一定时间后转入下一循环,继续执行。
第4章 超声波发射及接收程序的设计
超声波发射程序主要实现对超声波发射电路的控制,从实际的角度考虑,设计本汽车倒车超声波报警器的最远探测距离为11m,由公式(2-2)可计算出时间间隔约为65ms,为了 避免超声波发射端的声波直达到超声波接收端,必须在发射之后延迟一段时间,在实际设计的电路中,发射头和接收头的距离约为7cm所以最小探测距离设置为7cm,算出的时间间隔约为0.5ms,也就是说发射电路发射结束后0.5ms才能开启接收电路。
超声波接收程序完成对超声波接收电路的控制,通俗点说就是将收到回波的消息告诉单片机,并完成保存计数器值的功能。
两个程序都采用中断控制的方式设计,下面对AT89S51的中断系统及发射、接收中断程序做分别的介绍。
4.1 AT89S51中断系统
4.1.1 中断源
AT98S51共有5个中断向量:2个外中断(INT0和INT1),2个定时中断(TIMER0和TIMER1)和一个串行中断。
外部中断:INT0和INT1,它们的中断请求信号有效方式分别电平触发和脉冲触发两种。电平方式是低电平有效,脉冲方式为负跳变触发有效。
内部中断:内部中断有TF0、TF1、TI、RI,分别为定时器/计数器溢出中断和串行口的发送接收中断。
4.1.2 中断控制
89S51单片机设置了4个专用寄存器用于中断控制,用户通过设置其状态来管理中断系统,下面介绍下本设计中用到的3个中断控制寄存器。
1、定时器控制寄存器(TCON)
TCON的格式如下:
表4-1 TCON的格式
D7 D6 D5 D4 D3 D2 D1 D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
在该寄存器中,TR1、TR0用于定时器/计数器的启动控制,其余6位用语中断控制,其作用如下:
IT0为外部中断0请求信号方式控制位,IT0=1为脉冲出发方式(负跳变有效);IT0=0为电平触发方式(低电平有效)。
IE0为外部中断0请求标志位。当CPU检测到INT0(P3.2)端有中断请求信号时,由硬件置位,使IE0=1请求中断,中断响应后转向中断服务程序时,由硬件自动清零。
IT1为外部中断1请求信号方式控制位,其作用同IT0。
IE1为外部中断1请求标志位,其作用同IE0。
TF0(TF1)为定时器/计数器溢出标志位。
2、中断允许控制寄存器(IE)
寄存器中用于控制中断的共6位,可实现中断管理。EA为中断允许总控制位。EA=1时,CPU开中断;EA=0时,CPU屏蔽所有中断请求。
ES、ET1、EX1、ET0、EX0为对应的串行口中断、定时器/计数器1中断、外部中断1中断、定时器/计数器0中断、外部中断0中断的中断允许位。对应位为1时,允许其中断,对应位为0时,禁止其中断。
3、中断优先级控制寄存器(IP)
中断优先级控制寄存器的格式如下:
表4-2 中断优先级控制寄存器的格式
D7 D6 D5 D4 D3 D2 D1 D0
— — — PS PT1 PX1 PT0 PX0
89S51中规定了两个中断优先级:高级中断和低级中断,用中断优先级寄存器(IP)的5位状态管理5个中断源的优先级别,即PS、PT1、PX1、PT0、PX0分别对应串行口中断、定时器/计数器1中断、外部中断1中断、定时器/计数器0中断、外部中断0中断,当相应位为1时,设置其为高级中断:相应位为0时,设置其为低级中断。通过对IP的设置可以为中断设置不同的优先级别。
4.2 超声波发射程序
对于超声波发射程序,设计采用中断控制的方式让超声波发射电路每隔65ms发射出一次超声波。单片机89S51的定时器T1设置为65ms的定时,控制本中断程序每65ms执行一次。该中断为定时器/计数器1溢出中断,入口地址为001BH。
每执行一次,单片机就控制超声波发射管发射一次超声波,在本系统中设计由单片机的P1.0口控制,对端口写“1”,通过内部上拉电阻把端口拉到高电平,此时可作输入口;作输出口使用时,因为存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。如上所说为避免发射的信号直达超声波接收器,发射结束后应该延迟一定时间,再开启接收中断。
程序流程图如图4-1所示。
碍物,但不能确定障碍物离车有多远,对驾驶员帮助不大。第二代——数码波段显示,这代产品要先进得多,它安装在仪表台的位置,可以显示车后障碍物离车体的距离。如果是物体,在11 开始显示;如果是人,在11左右的距离开始显示;这一代产品有两种显示方式,数码产品显示距离数字,而波段显示产品由三种颜色来区别显示:绿色代表安全距离,表示障碍物离车体距离有11以上;黄色代表警告距离,表示离障碍物的距离只有0.6~0;红色代表危险距离,表示离障碍物只有不到的距离,你必须停止倒车。这种产品把数码和波段组合在一起,比较实用。但缺点是反应不够快,而且使用寿命较短。第三代——液晶显示屏动态显示,这一代产品非常引人注目,特别是屏幕显示开始出现动态显示系统。它不用挂倒挡,只要发动汽车,显示器上就会出现汽车图案以及车辆周围障碍物的距离。其外表美观,可以直接粘贴在仪表盘上,安装很方便,给人以舒适的感觉,显示的距离也更准确些。相比其他倒车雷达产品,这种产品广为车主接受。但是,液晶显示器,存在抗干扰能力不强的毛病,所以有时出现误报的情驾驶员。魔幻镜倒车雷达可以把后视镜、倒车雷达、驾驶员。魔幻镜倒车雷达可以把后视镜、倒车雷达、驾驶员。魔幻镜倒车雷达可以把后视镜、魔幻镜倒车雷达
图4-1 超声波发射中断程序流程图
设计中每次发射,发射两次超声波脉冲,这可以通过对P1.0反复取反来控制,取4次就可以满足每次发送两个超声波脉,通过对取反次数位的设置可以控制每次发送脉冲的个数。超声波发出的同时计数器T0需要立即开启计数,这样才能保证测量的准确性。由于要避开从发射端直达接收段的超声波,需要延迟一定时间才开启接收,这样才能使系统正常工作,但使得近距离范围无法测量,出现“盲区”。
延迟0.5ms的子程序设计如下:
delay_250: push psw
mov r7, #0ffh
delay_250_1: djnz r7,delay_250_1 ;执行一次占用2个机器周期
pop psw
ret
4.3 超声波接收程序
对于超声波接收程序,也采用中断控制的方式。如上所说,当发射工作结束后经过0.5ms延时,开启回波接收中断,超声波接收中断为外部中断0中断。若超声波经障碍物放射回来被超声波接收管收到后,将脉冲送入CX20106红外接收芯片输入端放大,由CX20106输出端将遥控指令输出到单片机。在电路连接中用AT89S51单片机的 (外部中断0)脚接收该指令。当接收到指令后,转入中断服务程序,计数器
图4-2 超声波接收中断程序流程图
T0停止计数,此时T0的值就是超声波由发射头到达障碍物再由障碍物反射回接收头所使用的时间。程序 设计如下:外中断0,中断入口0003H,收到回波时进入。
这里使用内存44H、45H、46H用于计算距离,当收到回波时CX20106输出给单片机P3.2口一个低电平,中断程序开始工作,关计数器T0并将计数器的值放入内存单元以便下面计算使用,同时接收成功标志位置“1”,这是后面转入计算子程序的标志,最后计数器清“0”,中断结束。程序比较简单,主要是完成对计数值的保存,但这却是系统最重要的步骤。
第5章 计算程序和显示程序设计
5.1 实现功能
计算子程序需要将计数器值转化为即时距离,程序中包括两字节无符号数乘法程序和四字节/两字节除法程序两个子程序,通过对乘法、除法程序的调用将每位的结果存到显示缓冲单元。
显示子程序实现将计算的结果从89S51单片机送到LED数码管显示的功能,为了简化电路和降低成本,采用LED动态显示方式实现这一功能,一共需要显示四位。单片机的P0口送段选信号,P2口送位选信号。
5.2 计算子程序的设计
计算子程序主要实现对计数器值进行计算,和往显示缓冲单元存储数据的功
两字节无符号数乘法流程图
能。由于时钟周期为1× 秒,根据公式(2-2),可知数值计算主要完成“计数值×17/1000cm”的工作,其中涉及了乘法和除法,这里分别用两个子程序:两字节无符号数乘法程序和四字节/两字节无符号数除法程序来实现。
5.2.1 两字节无符号数乘法程序
实现R7R6R5R4 <= R3R2 ×R1R0,涉及到2个左移,R7R6R5R4的左移和R1R0的左移,大家都知道R7R6R5R4向左移一位为乘以2,,后者的左移控制“R7R6R5R4 + R3R2”一次还是“R7R6R5R4×2”一次,由于为两字节无符,循环次数为16次。程序方框图如图5-1所示。
下面用一组数据来验证这个算法,若R1R0=17,这个数据也是本程序所用到的R1R0的值。也就是R1R0=0000 0000 0001 0001,R1R0需要循环12次才能使C位第一次为1,第一次执行R7R6R5R4+R3R2,现在的R7R6R5R4也就等于R3R2,此时16自减为4,不为0,跳转到R7R6R5R4循环左移,也就是R7R6R5R4
乘以2,R1R0再左移,C不等于0,16自减为3,R7R6R5R4再乘以2……16自减为1,此时R7R6R5R4已经为R3R2的16倍,R1R0左移后C位为1,执行R7R6R5R4+R3R2此时的R7R6R5R4为R3R2的17倍,接下来16自减为0跳出两字节无符号数乘法子程序。
(c) R7R6R5R4循环左移 (d) 计算完成
图5-2 17乘以0808H部分计算流程
图5-2是R3R2为0808H也就是约为2ms时的部分计算流程。
5.2.2四字节/两字节无符号数除法程序
首先来了解一下2进制数是怎样完成除法运算的。
2进制完成除法运算就是移位和相减,比如1011011除以1110顺序如下:
1 - 1110不够减,结果添0,1左移一位再加上原来1后的0,为10。
10 - 1110不够减,结果添0,10左移一位再加上原来10后的1,为101。
101 - 1110不够减,结果添0,101左移一位再加上原来101后的1,为1011。
图5-3 四字节/两字节无符号数除法程序流程图
1011- 1110不够减,结果添0,1011左移一位再加上原来1011后的0,为10110。
10110- 1110= 1000结果添1,同上左移加原来10110后的1得10001。
10001 - 1110 = 11结果添1,同上左移加原来101101后的1得111。
111- 101不够减,结果添0,此时1011011所有位都已移完,运算完毕。
即 1011011 = 1110 ×0000110。
要完成R7R6R5R4/R3R2=R7R6R5R4(商)……R1R0(余数)这样一个四字节/两字节无符号数除法程序,应该怎样实现呢?注意到,当不够减的时候,结果添“0”,够的时候,结果添“1”,这正好和当时的“C”位值相反,可以通过观察“C”位来实现。还有,若够减的时候,减下的值要保留后再移位,不够减的时候,减法运算的结果是不被保留的,继续原来的值再移位,由于是四字节的数需要移位32次才能移完。
程序流程图如图5-3所示,整个程序的关键就是围绕“C”位进行处理,根据“C”位来判断减法运算的结果是否保留。通过运行调试,程序实现了除法的功能。
5.2.3 计算程序设计
现在已经能够计算出即时的距离了,在将计算值送到四个LED显示之前还
需要对显示缓冲单元的值再次进行调整,若最高位为“0”的时候我们不显示它,当距离小于1米的时候还需要开启报警功能,这里采用蜂鸣器来实现报警。程序方框图如图5-4所示。
先通过对上述两个子程序的调用计算出即时的距离,单位为厘米。再调用除法程序完成除以1000算出最高位,结果保存在寄存器R4中,余数保留在R1R0中。然后再将余数R1R0赋给R5R4,除以100算出次高位,以此类推算出次次高位,和最低位,通过编程判断是否将其对应的数码管电亮。若最高位为“0”,不点亮该灯;若次高位为“0”,先看最高为是否点亮,若最高位未被点亮,次高位也将不点亮,若最高位已被点亮,次高位点亮;同理接下来检查次次高位;最
后一位无论是否为“0”都将被点亮。
报警电路由放大器和蜂鸣器组成。当需要报警时AT89S51的P1.1口控制报警电路导通发出蜂鸣报警。
设计安全距离为1米,当低于一米时发出报警,注意到当低于1米时LED的最高位和次高位不点亮,所以可以在判断是否点亮次高位时确定是否发出报警,点亮说明高于1米,不点亮说明小于1米,立即开启报警。
图5-4 计算程序流程图
5.3 显示程序设计
经过主程序计算后待显示的结果存到了40H到43H,40H 为最高位,43H为最低位,设计采用先扫描最高位的方式,将40 H到43H依次显示在4个数码管。由于人眼的反应时间没有那么快,4个数码管看上去是同时点亮的。这里主要涉及两个重点注意的地方:第一,每位结果的值需要通过查表后才能送到P0口送显示;第二,P2控制循环点亮4个数码管,要设置好供移动的值。
显示子程序流程如图5-5所示。
图5-5显示子程序流程图
由于是共阳极七段码,当位选信号为“0”时驱动LED 点亮。如果将位选字设为“0101 1111”,此时LED0和LED2将被点亮,LED1和LED3不亮。考虑到需要循环显示四位数码管,每次点亮一位,位选字设置为“0111 1111”即可实现,通过对位选字的右移可以循环点亮四个LED,当位选字为“1110 1111”时表明四个 LED都被点亮了一次,这也是进入下一循环的标志。
LED显示器的七段码如下:
表5-1 共阳段码表
TAB 18H 7BH 2CH 29H 4BH 89H 88H 3BH 08H 09H 0FFH
共阳段码表值 0 1 2 3 4 5 6 7 8 9 不亮
第6章 系统调试及结论
本设计采用51汇编语言编写,采用Keil C51编译和调试,以及采用keil和proteus联调仿真。由于proteus仿真库里并无超声波仿真模型,因此这里采用光电二极管和光电三极管来代替超声波发送探头和超声波接收探头,且仿真中略去了超声波在空气中的传播过程。联调仿真后,发现数字电路的延迟效果比较明显,所以需要软件矫正。
由于超声波探头存在余震效应, 为避免余震产生的“虚假反射波”超声测距数据的采集与处理错误申请中断,超声波脉冲发射后,软件中设置了一段时间的延时,称为“死区”时间,“死区”形成了距离测量中的“盲区”,由于探头的性能误差,运行后要不断调整探头的“死区”。经过应用过程的调试,本系统的测量“盲区”控制在20cm内。
本报警系统由于受到超声波发射角度和环境温度、湿度等因素的影响,测量值和实际之间有一定的差异,原来理想的有效工作范围为7cm-11m,但经过联机调试实际的工作范围为20cm-8m,下面是联机测试的一些结果:
表6-1 联试结果1
实际值(cm) 700 300 90 50 30
LED显示结果 680 288 85 47 26
蜂鸣器 未鸣叫 未鸣叫 鸣叫 鸣叫 鸣叫
从上表可以看出,本报警器基本完成了显示和报警的功能,但也存在不少问题,测量精度不是很高,特别是距离较远的时候精度不能保证,这主要是由于所使用的声速与实际声速有差别造成的,但误差也不是很大,满足汽车倒车超声波报警器的基本要求。
表6-2 联试结果2
实际值(cm) 25 12 9 3
LED显示结果 24 20 20 20
从上表可以看出,本报警器的工作盲区为20cm。
本系统探测范围为0.2-8m,制作成本为150元左右,基本达到了汽车倒车报警器的设计要求,相信经过进一步改造后可以用于中低档车辆。若要使系统更加可靠,仍有一些需要改进之处:
1、温度对超声波速度的影响,改进方法是加入一个温度传感器,并对计算子程序做相应的修改。
2、超声波在传播过程中受空气对流及尘埃吸收的影响,使得远距离的回波难以检测,可以通过提高超声波探头功率来改进。
总结
本课题把硬件电路和电路软件有机的结合起来,完成了汽车倒车报警系统的设计,能够了解单片机技术的现状,而且通过对电路系统的设计,学习掌握了数字电路从原理图到PCB版的全部过程,形成完善的设计思路以及思想,并通过对汽车倒车超声波报警器的软件设计的过程,锻炼应用汇编语言等软件设计电路程序的能力为以后参与实际工作奠定良好的设计基础。
通过对系统程序的编写,进一步加深了对汇编语言的理解和操控能力,汇编语言的控制直接,实时性好,代码短。熟练掌握汇编有利于更好的理解单片机的结构,有利于充分地利用单片机的资源,有利于程序的调试。
设计中用到了现在应用非常广泛的计算机软件Keil C51等软件。Keil C51是51系列单片机学习和调试的常用软件,是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编、PLM语言和C语言的程序设计,界面友好,易学易用。通过对这些软件的学习和使用使我能将所学与所用有机结合起来。在步入工作岗位之前得到全方位的工程设计训练。
通过对汽车倒车报警电路的设计能初步具有用PROTEL软件设计电路原理图以及电路版图的能力。与实际电路相结合,通过理论联系实际的方法,使所学的知识通过自己设计思考真正应用到实践中。通过该次设计能了解51系列的一些单片机的知识,能熟练运用PROTEL,Keil C51软件,提高了实际动手能力。
致 谢
本论文是在西南科技大学高频实验室中完成的。特别要感谢我的导师曾毅,曾老师不仅引导我进入单片机系统世界,悉心指导我作项目开发,还对我的软件设计方面认真辅导。曾老师对工作认真负责的作风和严谨的治学态度给我留下了深刻的印象,并将使我终生受益。
我也感谢大学四年期间所有指导过我的老师,感谢他们对我无私的教诲和帮助。
感谢我大学四年的同窗,是你们让我感受了大学的美好。和你们共同走过的这大学四年,我感到无比的快乐。
参考文献
[1] 胡汉才.单片机原理及其接口技术.清华大学出版社,1996
[2] 刘乐善.微型计算机接口技术及其应用.华中科技大学出版社,2001
[3] 张明友、吕幼新.信号与系统分析.电子科技大学出版社,1999
[4] 周明德.微型计算机系统原理及应用.清华大学出版社,1998
[5] 丁玉美、高西全.数字信号处理.西安电子科技大学出版社,1994
[6] 康华光、皱寿彬.电子技术基础数字部分(第四版).高等教育出版社,2000
[7] 马建国、孟宪元.电子设计自动化技术基础.清华大学出版社,2004
[8] 丁元杰.单片微机原理及应用.机械工业出版社,2002
[9] 何立民.MCS-51系列单片机应用系统设计系统配置与接口技术.北京航空航天大学出版社,1990
[10] 姜志海.单片机原理及应用.电子工业出版社,2005
[11] 彭容修.数字电子技术基础.武汉理工大学出版社,2003
[12] 丁鹭飞、耿富录.雷达原理.西安电子科技大学出版社,2005
[13] Huelaman,l.p.Basic circuit Theory(2nd dition).Prentice-Hall,Inc.,1984
[14]Rabiner L R and Gold B.Theory and Application of Digital signal Processing.Prentice-Hill Inc.,1975
[15]Rao.Guthikonda V.Microprocessora and micro computer system.Van Nostrand Reinhold company,1982
[16] Texas Instruments Incorporated.MAX3221 3V to 5.5V multichannelRS-232 line driver/ receiver ,2000.
[17] Alessio Carullo and Marco Pavis,"An Ultrasonic Sensor for Distance Measurement in Automotive Application,"IEEE SENSOR JOURNAL.VOL.1.NO.2.AUGUST 2001.
附录1 本设计的实物图
实物图
附录2 本设计的程序
本次设计的程序如下所示:
;测距范围7CM-11M,堆栈在4FH以上,20H用于标志
;显示缓冲单元在40H-43H,使用内存44H、45H、46H用于计算距离
;
VOUT EQU P1.0 ; 红外脉冲输出端口
speak equ p1.1
;********************************************
;* 中断入口程序 *
;********************************************
;
ORG 0000H
LJMP START
ORG 0003H
LJMP PINT0
ORG 000BH
reti
ORG 0013H
RETI
ORG 001BH
LJMP INTT1
ORG 0023H
RETI
ORG 002BH
RETI
;
;********************************************
;* 主 程 序 *
;********************************************
;
START: MOV SP,#4FH
MOV R0,#40H ;40H-43H为显示数据存放单元(40H为最高位)
MOV R7,#0BH
CLEARDISP: MOV @R0,#00H
INC R0
DJNZ R7,CLEARDISP ;;;;;;;;;;清零 40H-43H单元
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: LCALL DISPLAY
JNB 00H,START1 ;收到反射信号时标志位为1
CLR EA
LCALL WORK ;计算距离子程序
clr EA
MOV R2,#32h ;#64H ;测量间隔控制
LOOP: LCALL DISPLAY
DJNZ R2,LOOP
CLR 00H
setb et0
mov th0,00h
mov tl0,00h
SETB TR1 ;重新开启测距定时器
SETB EA
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
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
MOVC A,@A+DPTR
MOV P0,A
LCALL DL1MS
INC R1
MOV A,R5
JNB ACC.4,ENDOUT;G
RR A
MOV R5,A
AJMP PLAY
ENDOUT: MOV P2,#0FFH
MOV P0,#0FFH
RET
;
TAB: DB 18h, 7Bh, 2Ch, 29h, 4Bh, 89h, 88h, 3Bh, 08h, 09h,0ffh
;共阳段码表 "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: PUSH ACC
PUSH PSW
PUSH B
MOV PSW, #18h
MOV R3, 45H
MOV R2, 44H
MOV R1, #00D
MOV R0, #17D
LCALL MUL2BY2
MOV R3, #03H
MOV R2, #0E8H
LCALL DIV4BY2
LCALL DIV4BY2
MOV 40H, R4
MOV A,40H
JNZ JJ0
MOV 40H,#0AH ;最高位为零,不点亮
JJ0: MOV A, R0
MOV R4, A
MOV A, R1
MOV R5, A
MOV R3, #00D
MOV R2, #100D
LCALL DIV4BY2
MOV 41H, R4
MOV A,41H
JNZ JJ1
MOV A,40H ;次高位为0,先看最高位是否为不亮
SUBB A,#0AH
JNZ JJ1
MOV 41H,#0AH ;最高位不亮,次高位也不亮
CPL speak; 小于1米时开启报警
JJ1: MOV A, R0
MOV R4, A
MOV A, R1
MOV R5, A
MOV R3, #00D
MOV R2, #10D
LCALL DIV4BY2
MOV 42H, R4
MOV A,42H
JNZ JJ2
MOV A,41H ;次次高位为0,先看次高位是否为不亮
SUBB A,#0AH
JNZ JJ2
MOV 42H,#0AH ;次高位不亮,次次高位也不亮
JJ2: MOV 43H, R0
POP B
POP PSW
POP ACC
RET
;
;****************************************************
;* 两字节无符号数乘法程序 *
;****************************************************
; R7R6R5R4 <= R3R2 * R1R0
;
MUL2BY2: CLR A
MOV R7, A
MOV R6, A
MOV R5, A
MOV R4, A
MOV 46H, #10H
MULLOOP1: 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
ADDC A, R3
MOV R5, A
MOV A, R6
ADDC A, #00H
MOV R6, A
MOV A, R7
ADDC A, #00H
MOV R7, A
MULLOOP2: DJNZ 46H, MULLOOP1
RET
;
;****************************************************
;* 四字节/两字节无符号数除法程序 *
;****************************************************
;R7R6R5R4/R3R2=R7R6R5R4(商)...R1R0(余数)
;
DIV4BY2: MOV 46H, #20H
MOV R0, #00H
MOV R1, #00H
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
MOV A, R0
RLC A
MOV R0, A
MOV A, R1
RLC A
MOV R1, A
CLR C
MOV A, R0
SUBB A, R2
MOV B, A
MOV A, R1
SUBB A, R3
JC DIVLOOP2 ;看是否够减,不够跳转,够R0,R1保留继续
MOV R0, B
MOV R1, A
DIVLOOP2: CPL C
DJNZ 46H, 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,#0ffh
delay_250_1:
nop
nop
nop
djnz r7,delay_250_1
pop 07h
pop psw
ret