




已阅读5页,还剩65页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
杭州电子科技大学硕士学位论文基于无线传感器网络的定位技术研究与实现姓名:俞建平申请学位级别:硕士专业:信号与信息处理指导教师:杨小牛;章坚武20100301 杭州电子科技大学硕士学位论文 I摘 要 近年来,无线传感器网络已经成为通信领域的研究热点。从无线传感器网络的应用角度出发,传感器节点位置信息的获得是任何应用的基础。在卫星定位信号缺失或不宜采用卫星定位系统等场景下,本文研究一种特殊的基于 MC-CDMA 的传感器节点用于提供位置参考功能。假设在传感目标区域中撒放大量普通传感器节点和少量该类节点,在近距离锚节点不足的环境下,该类节点可以通过与其它具有 MC-CDMA 模块的已知节点进行远距离测距并实现高精度自身定位,然后升级为锚节点,进而为该网络的其他未知节点提供位置参考功能。以下是本文的主要工作: 首先,本文在分析几种测距手段的基础上,选择了适合本文传感器节点的基于扩频码的MC-CDMA 测距技术用于距离测量,并介绍了实现测距的基本原理。并且针对影响测距的各种误差因素进行分析,重点考虑了非视距误差的抑制问题,从基于代价和基于应用时机两种角度对非视距误差的抑制算法进行分类。 其次,重点分析介绍了本文研究的基于 TOA 双程测距的传感器节点设计方案及具体工作流程。本传感器节点分测距模块和定位模块两部分,测距模块由基于扩频码的 MC-CDMA测距方案实现,本文主要从测距流程、精度控制等方面进行阐述。而定位模块的分析主要从硬件和软件两方面出发, 本节点的硬件平台是以 S3C2440A 微处理器为中央控制芯片的开发板为基础的,软件是以裁剪后的嵌入式 Linux 操作系统为基础的。由于本节点的测距模块和定位模块之间是通过串口连接的,所以对串口的设置进行了分析介绍。另外对定位的流程、发送的定位信息的格式等都进行了相应的介绍。 最后,提出了一种适用于三维空间的节点定位算法。考虑到当前多数定位研究都是基于二维空间的状况,通过分析研究当前基于三维空间的无线传感器网络节点的定位技术,提出了基于球面坐标的无线传感网络三维静态定位算法,该算法是在(得知)四点球面坐标的基础上通过求球心坐标的方法实现定位的。在如何选择合适的四点问题上,本文提出了基于PIT方法进行分析比较来获得通信半径内的最佳四点来进行定位计算。 通过仿真实验及性能分析,在邻居节点密度满足定位要求的情况下,相比于没有采用 PIT 选择方法的情况,该算法可获得相对较高的定位精度。 关键词:无线传感器网络,多载波码分多址,测距,非视距误差,嵌入式系统,三维定位 杭州电子科技大学硕士学位论文 IIABSTRACT In recent years, wireless sensor network (WSN) has been widely researched in the field of communications. From the practical standpoint of WSN, the location information of the WSN node is the foundation of any application. This paper focuses on the particular MC-CDMA-based WSN nodes to provide location reference to other unknown nodes in the situation that the satellite location information is missed or the satellite location system can t be used. Assuming that numerous normal sensor nodes and few MC-CDMA ones are cast in the sensing target area, once the amount of close anchor nodes is insufficient, the MC-CDMA node can perform the far distance ranging and the function of accurate self- location with the help of other nodes which is equipped with MC-CDMA module. After that it upgrades to an anchor node and can provide location reference to other unknown nodes in this network. The main ideas of this paper are as followings: First of all, the ranging algorithm based on spread spectrum code is provided which is suitable for this ranging location system, and the basic protocol of ranging is introduced. The different error which has influence on ranging is also analyzed and how to control the NLOS error is emphasized. Then two ways of classifying the NLOS controlling algorithm, which based on cost and application occasion respectively, are introduced and their own comprehensive application is provided under the guidance of the classification. Secondly, the overall design plan and the concrete work flow of WSN node based on T OA two-way ranging is stressed. The sensor node is comprised of two parts, which are ranging module and location module. The ranging module is implemented using MC-CDMA ranging scheme based on spread spectrum code and the location module is analyzed from the viewpoints of hardware and software. The hardware platform of the node is built on the development board with S3C2440A microprocessor as its center controlling chip and the software is based on the simplified embedded Linux operating system. Since the ranging module and the location module are connected by serial interface, the setting method of interface is also introduced. The location process and the location message format are correspondingly stated as well. At last, a node location algorithm suited for three-dimension space is proposed. Since most of the existing location schemes are based on two-dimension space, the available location technology of WSN nodes based on three-dimension space is studied. After that a three-dimension static location algorithm based on spherical coordinates is proposed. This algorithm makes use of which four spherical coordinates are already known and realize self- location according to calculating the 杭州电子科技大学硕士学位论文 IIIspherical center coordinate. According to the problem of how to choose the suitable four spherical coordinates, this paper calculates and ranges the optimal four spherical coordinates in the range of communication radius by analyzing and comparing in the base of PIT. The simulation results and performance analysis demonstrate that when the density of neighbor nodes satisfies the location requirements, the algorithm can achieve relatively high location precision compare to the situation that don t use the PIT. Keywords : Wireless Sensor Network, MC-CDMA, Ranging, NLOS, Embedded System, 3D Location 学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明: 所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品或成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 论文作者签名: 日期: 年 月 日 学位论文使用授权说明 本人完全了解杭州电子科技大学关于保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属杭州电子科技大学。本人保证毕业离校后,发表论文或使用论文工作成果时署名单位仍然为杭州电子科技大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。 (保密论文在解密后遵守此规定) 论文作者签名: 日期: 年 月 日 指导教师签名: 日期: 年 月 日 杭州电子科技大学硕士学位论文 1第 1 章 绪 论 1.1 研究背景 无线传感器网络是现今在国际上被广泛关注的热点研究领域,它综合了微电子系统(Micro-Electron Mechanical System,MEMS) 、传感器采集技术、数据处理技术、嵌入式技术、数据传输技术以及无线传输技术等1。无线传感器网络节点在被随机的布置以及自组网完成后可以通过数据的采集、环境的监测为人们提供各种形式的服务,能够在无线传感器网络分布范围内提供各种环境或监测对象的信息,比如湿度、酸碱度、温度、PH 值、光强度、噪声强度等物理、化学信号以及环境变化,并对这些信息进行处理,然后由汇聚节点通过核心网络将数据传送到远程用户。无线传感器网络在军事、交通、医疗、制造、反恐等许多领域都有广阔的应用前景。随着无线传感器网络技术的日益成熟和广泛应用,人们的生产、生活方式会得到很大的改善,工作效率会得到不断提高。 无线传感器网络技术被 2003 年 2 月份的美国技术评论评为最能影响改变未来人类生活的技术。科学家们认为无线传感器技术必将引发新的信息革命,2003 年 8 月 25 日出版的美国商业周刊杂志预测未来全球的四大科技分别为效用计算、无线传感器网络、仿生人体器官以及塑料电子学,无线传感器网络技术就在其中。我们可以预计,无线传感器网络在未来的世界中必然会得到广泛的应用,必将带给人类社会极大的变革。 无线传感器网络技术作为一种全新的信息获取技术,如何更好地将无线传感器网络技术应用于实际当中需要科技工作者解决许多具有挑战性的课题,定位就是其中之一2。定位是大多数应用,特别是军事应用的基础。对于无线传感器网络而言,没有位置标定的信息采集、处理和传输常常是没有实际意义的。例如目标监测与跟踪、智能交通、物流管理等许多应用都要求网络节点提供自身的位置信息。无线传感器网络中的节点的定位机制与定位算法包括两种情况:节点自身定位3和外部目标定位,前者是后者的基础。无线传感器节点在一般的应用中通常将节点随机部署在不同的环境中执行各种监测和跟踪任务,节点之间以自组织方式相互协调工作从而形成一个网络。能够完成监测及跟踪任务前,传感器节点必须首先知道自身的地理位置信息,也就是节点必须进行自身定位,自身定位就是未知节点根据周围或临近的少数已知位置的节点,按照相应的定位机制来确定自身的位置,这是进一步采取措施和做出决策的基础;在网络节点完成自身定位后,就能对网络外部的目标进行实时地监测和跟踪应用了。因此,对节点自身如何定位进行深入的研究和探讨具有很高的理论和实际价值。1.2 无线传感器网络节点定位概述 1.2.1 无线传感器网络概念 所谓无线传感器网络4,即通过将大量具有传感器单元、数据处理单元及通信模块的微小智能节点密集地散布在感知区域,节点间以自组织方式构成的无线通信网络,该网络可以杭州电子科技大学硕士学位论文 2看作能根据环境自主完成任务的智能系统。功能是以协作的方式来进行感知、采集和处理网络覆盖范围内感知到得对象的信息,并将信息传送到用户。 无线传感器网络的体系结构在研究中通常分为硬件体系结构和软件体系结构。从硬件角度来讲,无线传感器网络由部署在监测区域内大量廉价的传感器节点组成,通过自组织方式构成网络,协同形成对目标的感知视场。传感器节点将检测到目标的信号经简单处理后通过邻近传感器节点多跳传输到汇聚节点。用户如果要进行相关应用可以通过外部网络,比如移动通信网络或 Internet,与汇聚节点进行交互通信。然后汇聚节点向网络广播发布查询请求和控制指令,接收传感器节点通过感知处理后返回目标信息,其体系结构如图 1.1。 监测区域汇聚节点(Sink)卫星通信Internet移动通信网络监测中心(观察者)传感器节点图 1.1 传感器网络体系结构 从软件角度看,虽然无线传感器节点硬件简单,可以直接在硬件上进行软件编程,但是在实际的工程实践中程序员无法继承现有的软件成果,并且对硬件很了解才能进行应用程序的开发。因此,在无线传感器网络中使用嵌入式操作系统来解决以上问题。目前比较著名的无线传感器网络操作系统有 TinyOS、MANTIS 、MOS 等,均有很强的网络处理能力和资源收集能力,满足无线传感器网络的要求。 1.2.2 无线传感器网络定位的基本概念 在无线传感器网络中,节点定位机制是指根据有限的位置已知的信标节点来确定无线传感器网络中其他节点的位置,在无线传感器网络的节点之间建立起来位置关联的定位机制。针对不同的无线传感器网络节点分布情况,节点定位的难度是不同的,一般我们考虑的是在二维空间情况下的定位,图 1.2 为一般情况下的传感器网络中锚节点和未知节点的放置图。锚节点在网络中所占的比例相对较少,它们可以通过自身携带的 GPS 定位系统5或者预先在指定位置部署等手段获得自身的精确位置; 而未知节点依靠有限的位置己知的信标节点,通过测量未知节点至其余节点的距离或跳数,或者通过估计节点可能处于的区域范围,结合节点间交换的信息和锚节点的已知位置,来确定自己的位置。 杭州电子科技大学硕士学位论文 3锚节点(参考节点)未知节点(位置待定节点) 图 1.2 无线传感器网络中的参考节点和未知节点 下面是定位技术中涉及的基本术语介绍: 到达时间(Time of Arrival,TOA) :信号从一个节点到另一个节点所需要的时间,称为信号到达时间; 到达时间差(Time Difference of Arrival,TDOA) :两种不同传播速度的信号(超声波信号、射频信号)从一个节点到另一个节点所需要的时间之差,称为信号的到达时间差; 到达角度(Angle of Arrival, AOA) :节点接收到的信号相对于自身线的角度,称为信号相对接收节点的到达角度; 邻居节点(Neighbor Nodes) :节点通信半径内的所有传感器节点,称为该节点的邻居节点; 跳数(Hop Count) :两个节点之间间隔的跳段总数称为两个节点间的跳数; 跳段距离(Hop Distance) :两个节点之间间隔的各跳段距离之和称为该两个节点间的跳段距离; 基础措施(Infrastructure) :协助传感器节点定位的已知自身位置的固定设备,如卫星、基站等; 视距(Line of Sight,LOS) :两个节点间没有任何障碍物间隔,能够直接通信,称为两个节点间存在视距关系; 非视距(No LOS,NLOS) :两个节点之间存在障碍物; 接收信号强度(Received Signal Strength indicator,RSSI) :节点接收到无线信号的强度大小,称为接收信号强度。 当我们对无线传感器网络自身定位系统和算法的性能进行评价时,主要从定位精度、规模、参考节点密度、节点密度、容错性和自适应性、功耗以及成本等几个指标来评价该定位系统和算法的优劣。 杭州电子科技大学硕士学位论文 41.2.3 国内外研究现状 由于无线传感网络的应用价值巨大,在世界各地各研究机构、高校等对它的理论和应用都进行了深入的研究。比如美国在 20 世纪 90 年代就开始了传感器网络的研究工作。美国国防高级研究计划局(DARPA,Defense Advanced Research Projects Agency)和自然科学基金(NSF, National Science Foundation)在无线传感器网络领域都投入了巨资进行研究,重点集中在传感器节点体系结构、通信协议设计、信息处理和大规模网络应用等方面6。其中最著名的项目有:UCLA 和 Rockwell Automation Center 的合作项目 WINS7(Wireless Integrated Network Sensors) ;MIT 的 AMPS m 8(micro-Adaptive Multi -domain Power-aware Sensors)项目; UC Berkeley 等 25 个研究机构共同承担的 SensIT9(Sensor Information Technology) 项目;UC Berkeley 的 Smart Dust10等。接着,DARPA 的 NEST、美国 NSF 的 FIREBUG 和 CENS项目相继启动。在其他地区如日本、英国、意大利、巴西等国家也纷纷对传感器网络展开了研究工作。 我国在无线传感器网络的理论和应用的研究上也非常重视,清华大学、中科院软件所、浙江大学、哈尔滨工业大学、中科院自动化所、中国人民大学等国内一些高等院校和研究机构均已展开了无线传感器网络的理论和应用的研究工作11, 12。2006 年,政府将发展无线传感器网络列入未来 15 年的国家中长期科学和技术发展规划纲要 。目前,国家 973 计划、国家自然科学基金和国家 863 高技术计划等国家和省部级科技发展“十一五”规划也设专项资助该领域的理论、方法和关键技术研究。目前国内研究重点主要集中在穿戴式计算、上下文感知环境、智能教室等领域,在支持无线传感器网络的无线通信网络技术的研究尚不多见。研究者们针对不同的环境要求等提出各种各样的解决方案,在相对的条件下很多都能达到很好的效果,但真正的应用还很少,而且一般条件限制都是很严格的。因此,该领域还有待更多的人提出更好的方法,以求解决定位问题,使无线传感器网络更好发挥实际作用。 1.3 论文的工作及组织结构 节点自定位技术是无线传感器网络的关键技术之一,具有很高的研究价值。本文系统分析了目前国内外节点自定位算法的研究成果,对基于测距的定位算法进行了深入的研究,并在此基础上研究了在嵌入式 Linux 环境下基于 TOA 双程测距的定位功能的开发。 本论文的主要内容安排如下: 第一章为绪论,主要阐述无线传感器网络定位技术的研究背景及意义,介绍无线传感器网络节点定位的基本理论,分析其目前国内外的研究状况,并介绍课题的主要研究内容和组织结构。 第二章介绍当前典型的无线传感器网络节点定位算法的分类,对比较常用的测距手段进行了详细介绍,并对基于测距的定位算法进行深入的分析和介绍。 第三章分析介绍基于 MC-CDMA 系统的双程测距技术。 首先介绍 MC-CDMA 系统的特点,然后给出了本文传感器节点采用的基于扩频码的 MC-CDMA 测距技术,最后对影响 TOA 双杭州电子科技大学硕士学位论文 5程测距的误差因素进行了分析总结,并且提出了 NLOS 的抑制方法。 第四章分析介绍了本文提出的具有远距离测距能力的传感器节点的设计方案,并介绍了整个系统的工作流程。首先从测距、定位两个模块分别展开介绍,测距模块主要基于扩频码的 MC-CDMA 测距方案实现,主要从测距流程、精度控制等方面进行阐述;而定位模块的分析主要从硬件和软件两方面出发,本节点的硬件平台是以 S3C2440A 微处理器为中央控制芯片的开发板为基础的,软件是以裁剪后的嵌入式 Linux 操作系统为基础的。由于测距模块和定位模块通过串口连接,因此特别介绍了串口的设置,分析了定位的流程、定位信息的格式以及 CRC 校验等并通过在误差因素下定位精度的影响进行仿真分析。 考虑到当前多数定位研究都是基于二维空间的状况,在第五章中通过分析研究当前基于三维空间的无线传感器网络节点的定位技术,提出了基于球面坐标的无线传感网络三维静态定位算法,该算法是在四点球面坐标的基础上通过求球心坐标的方法实现定位的。在如何选择合适的四点问题上,本文提出了基于 PIT 方法进行分析比较来获得通信半径内的最佳四点来进行定位计算。使用 MATLAB 仿真工具,通过仿真实验及性能分析,在有一定节点密度限制的情况下有相对较好的定位精度。 第六章是总结和展望。对全文进行总结,提出下一步的工作目标。 杭州电子科技大学硕士学位论文 6第 2 章 传感器网络定位基本理论 2.1 无线传感器网络节点定位算法分类 到目前为止,无线传感器网络节点定位的分类与方法很多,国内外学者提出了不同的见解,通常将其划分为:基于测距(Range-Based)和基于非测距( Range-Free)定位算法13,室内定位系统 Cricket14、AHLos (Ad-Hoc Localization System)算法、RADAR 算法等都是基于测距的定位算法,质心15(Centroid Algorithm) 、DV-Hop(Distance Vector-Hop)算法16、凸规划(Convex Optimization)算法17等基于非测距的定位算法;绝对定位与相对定位,大多数定位算法都属于绝对定位,相对定位算法和系统有 SPA(self-positioning algorithm) 、LPS(local positioning system)等;细粒度定位算法和粗粒度定位算法,Cricket、AHLos、RADAR等算法属于细粒度定位算法,而质心、凸规划等算法属于粗粒度定位算法;集中式定位与分布式定位,分布式定位算法很多,如 DV-Hop、质心算法等,而凸规划算法则属于集中式定位算法;递增式的定位算法和并发式的定位算法;基于锚节点定位算法和不需锚节点的定位算法;物理定位系统和符号定位系统;紧密耦合定位算法和松散耦合定位算法等等。 本文将重点介绍基于测距的定位研究。在下面几节中重点介绍测距的几种手段,并且针对各测距手段给出相应的测距原理。 2.2 节点测距技术介绍 2.2.1 测距手段 在无线传感器网络中,用来测量节点间距离或角度的常用技术,主要有基于 RSSI18的、基于 TOA19的、基于 TDOA20的和基于 AOA21的。 测量接收信号强度(RSSI,Received Signal Strength Indicator) :已知节点发射信号强度,接收节点测量接收到该信号的信号强度 RSSI,并计算传播过程中的损耗,使用理论或经验的信号传播衰减模型将传播损耗转换为距离。信号衰减模型用公式表示如下 00nW WAF nW门限 /*标准输入 /出定义 printf,puts,fprintf,fputs*/ #include /*字符串功能定义 bzero,strcpy*/ #include /*UNIX 标准函数定义 read,write*/ #include #include 杭州电子科技大学硕士学位论文 35#include /*文件控制定义 open,close */ #include /*错误码定义 */ #include /*POSIX 终端控制定义 tcgetattar,tcsetattr*/ 打开串口: int fd; /*端口文件描述符*/ fd=open (“ /dev/ttyS0” ,O_RDWR | O_NOCTTY | O_NDELY); 当打开设备文件时,除了使用 read + write 模式外,还可以使用两个其它的标志符号,O_NOCTTY 和 O_NDELAY。O_NOCTTY 标志告诉 Linux,该程序不想成为此端口的“控制终端” 。如果没有强调这一点,那么任何输入(例如键盘的中断信号等)都会影响程序的执行。O_NDELAY 标志告诉 Linux,该程序并不关注 DCD 信号线所处的状态,即不管另外一端的设备是在运行还是被挂起。 如果没有指定该标志, 那么程序就会被设置为睡眠状态, 直到 DCD信号线为低电平为止。 (2 )向端口写数据 向端口写数据是很容易的,只要使用 write () 系统调用就可以了。例如: n=write (fd, “ hellon” ,6); write 函数返回发送数据的个数。如果出现错误,则返回-1。 (3 )读端口数据 从端口读数据则需要些技巧。如果在原始数据的模式下对端口进行操作,read () 系统调用将返回串行口输入缓冲区中所有的字符数据,不管有多少。如果没有数据,那么该调用将被阻塞,处于等待状态,直到有字符输入,或者到了规定的时限或出现错误为止。通过以下方法,能使 read 函数立即返回: fcntl(fd, F_SETFL, FNDELAY); FNDELAY 参数使 read 函数在端口没有字符存在的情况下,立刻返回 0。如果要恢复正常(阻塞)状态,可以调用 fcntl()函数,不要 FNDELAY 参数,如下所示: fcntl(fd,F_SETFL,0); 使用 O_NDELAY 参数打开串行口时,同样也使用了该函数的调用。 (4 )关闭串行口 要关闭串行口,使用如下的函数调用即可。 close(fd); 4.4.2 串行口的设置 在 C 语言下,使用 POSIX 终端接口设置串行口,该方法要求包含头文件 ,它定义了终端控制结构和 POSIX 的控制函数44。两个最重要的 POSIX 函数是 tcgetattr()和tcsetattr(),他们分别用于获取和设置终端的属性。可以提供一个指向 structure termios 的指针,该 structure 包含了所有串行参数。 杭州电子科技大学硕士学位论文 36Struct termios tcflag_t c_iflag; /输入模式 tcflag_t c_oflag; /输出模式 tcflag_t c_cflag; /控制模式 tcflag_t c_l flag; /局部模式 cc_t c_ccNCCS; /特殊控制字符 (1) 控制参数 c_cflag 控制波特率、数据位数目、硬件的流控等。c_cflag 成员包含了两个必须时刻保持使能状态的参数:CLOCAL 和 CREAD。这确保了程序在突发的作业控制和挂起信号到来时,不会成为端口的占有者,同时串行口的接口驱动会读取输入的数据。 不要直接地初始化 c_cflag (或其他标志) 。应该使用诸如 AND、OR 及 NOT 等位操作符,在成员中设置或清除特定的位。这是由于不同的操作系统间对位操作是不同的,这样做可以避免错误的产生。 本系统中该参数设置为: options.c_cflag | = (CLOCAL | CREAD); /*使能接收,并设置本地状态*/ (2) 设置波特率 波特率存放的地点随操作系统的不同而不同。老式接口将波特率存放在 c_cflag 成员中,使用波特率常数来表示。而新的方法是使用了 c_ispeed 和 c_ospeed 成员,他们包含了实际的波特率的值。无论是何种操作系统,都可以使用 cfsetospeed()和 cfsetispeed()函数在termios 结构中设置波特率,如下所示。 设置波特率: struct termios options; tcgetattr(fd, /*获取当前端口的参数信息*/ /*将波特率设置为 115200*/ cfsetispeed( cfsetospeed( options.c_cflag | = (CLOCAL | CREAD); tcsetattr(fd,TCSANOW, /* 为端口设置新参数 */ tcgetattr()函数把对串行口的当前设置赋予 termios 这个数据结构,在设置好波特率,并使能本地状态和串行数据接收后,使用 tcsetattr()函数选择新的设置。TCSANOW 常数表示,无须等待数据发送或接收的结束,所有的改变必须立即生效。也可以根据需要选择其他相关的常数,常数 TCSADRAIN 表示一直等待所有数据传送完毕,常数 TCSAFLUSH 表示将输入/出缓冲区清空,改变才生效。绝大多数系统并不支持不同的输入和输出速率,要确保输入和输出的设置一致。 杭州电子科技大学硕士学位论文 37(3) 设置字符大小 同波特率的设置不同,不能很方便地用函数来设置字符大小。只能使用一些掩码方法来实现设置。字符大小是按位指定的,如下所示: options.c_cflag /* 屏蔽字符大小位 */ options.c_cflag | = CS8; /* 选择 8 数据位 */ (4) 设置奇偶校验位 与字符大小设置相同,必须手动设置奇偶校验位。UNIX/Linux 的串行驱动程序支持生成奇、偶校验位,或者无校验位的生成。在此设置为无校验位,实现方法如下: options.c_cflag options.c_cflag options.c_cflag options.c_cflag | = CS8; (5) 设置输入模式 可以选择常规输入模式,将输入字符放入一个缓冲区,交互式地对该缓冲区进行编辑,直至接收到一个 CR 或 LF 为止。如果不是开发终端之类的,只是利用串口传输数据,而不需要串口来处理,则可以使用原始输入模式来通信。根据需要,在此选择非标准型,不回应模式,设置如下:options.c_lflag=0。 (6) 设置输入输出参数 输入模式成员 c_iflag 控制端口接收到的所有字符的输入处理过程。与 c_cflag 域一样,在 c_iflag 中最终存储的值是所选参数的按位。输出模式成员 c_oflag 包括输出过滤参数。与输入模式一样,可以选择已经处理过的数据输出,或者选择原始数据的输出。本应用只是通过串口传输数据而无需进行其他处理,所以进行如下的设置: options.c_iflag options.c_oflag (7) 设置流控 为防止用于通信的码流引起流控上的错误判断,在此使用如下方法禁止软件流控: options.c_iflag (8) 设置控制字符 c_cc 字符数组包含了控制字符的定义和超时参数。本程序中使用如下设置 options.c_ccVTIME = 0; options.c_ccVMIN =0; /* 不使用分割字元组计时器 */ 完成上述的设置,定位模块就可以通过串口与测距模块进行命令和数据的通信了。 串口初始化配置函数如下: 杭州电子科技大学硕士学位论文 38int Set_opt() struct termios newtio; /* newtio 为 termios 结构体变量*/ if(fd=open( /dev/ttyS1 ,O_RDWR|O_NOCTTY)0) perror(serial dev error); exit(1); /*打开串口二对应设备文件*/ tcgetattr(fd, /*获取当前端口的参数信息*/ cfsetispeed( cfsetospeed( /* 输入输出串口速率 */ newtio t.c_cflag /*无校验*/ newtio.c_cflag newtio.c_cflag /*屏蔽字符大小位*/ newtio.c_cflag|=CS8; /*选择 8 数据位*/ newtio.c_cflag|=(CLOCAL|CREAD); /*使能接收,设置本地状态 */ newtio.c_iflag /*设置输入参数*/ newtio.c_oflag /*设置输出参数,输出字符不改变就传输 */ newtio.c_iflag /*禁止软件流控*/ newtio.c_lflag = 0; /* 设定输入模式 (非标准型, 不回应 ,.) */ newtio.c_ccVTIME =0; /*缓存维持等待时间,最多维持等待 0*1 个十分之一秒*/ newtio.c_ccVMIN =0; /* 缓存维持字节数,最小读取的字节数*/ tcsetattr(fd,TCSANOW, /*为端口设置新参数*/ tcflush(fd, TCIFLUSH); tcflush(fd, TCOFLUSH); status = tcsetattr(fd, TCSANOW, /*保存参数的设置*/ if(status != 0) perror(tcsetattr fd); return; tcflush(fd,TCOFLUSH); tcflush(fd,TCIFLUSH); printf(Open Serial .OK n); 4.4.3 数据包的格式 本系统参照 NMEA-0183 无线通信输出格式,它是一套定义接收机输出的标准信息,有杭州电子科技大学硕士学位论文 39几种不同的格式,每种都是独立相关的 ASCII 格式数据串,称该数据串为一个数据包。定义定位消息的传输包的数据结构如下: Struct local_message_transfer unsigned char type; /*传输包类型*/ unsigned char dest; /*传输包目的地址 */ unsigned char srce; /*传输包源地址*/ unsigned char tail; /*传输包尾*/ unsigned long crc; /*传输包 CRC32 校验位*/ Struct local_message_receive unsigned char type; /*传输包类型*/ unsigned char dest; /*传输包目的地址*/ unsigned char srce; /*传输包源地址*/ unsigned char content4; /*TOA 测量值*/ unsigned char tail; /*传输包尾*/ unsigned long crc; /*传输包 CRC(Cyclical Redundancy Check)32 校验位*/ 根据传输包的数据结构,我们设计各业务传输包的封装格式分别如图 4.10 和图 4.11 所示。 包头 (1byte) 被叫逻辑地址 (1byte) 自身逻辑地址 (1byte) 包尾 (1bytes) CRC 校准 (4bytes) 图 4.10 测距请求消息包封装格式 包头 1byte) 被叫逻辑地址 (1byte) 自身逻辑地址 (1byte) TOA 测量值 (4byte) 包尾 (1bytes) CRC 校准 (4bytes) 图 4.11 测距响应消息包封装格式 由于传输距离、线路状况等诸多可能出现的因素影响,通信数据常会发生无法预测的错误,为了确保数据在传递过程中的正确,在该数据的尾部加上 CRC 循环冗余码校验。 4.5 定位仿真分析 在实际应用中节点部署完成后,每个节点通过与周边节点的通信,获得其位置信息及相互间距离信息,存储于定位模块的数据库;然后选定需要进行测距的节点进行测距,根据得到的三个以及三个以上的参考节点坐标和距离信息,采用极大似然估计法计算本节点坐标。由于时间的关系,本节点未能及时的完成,因此有必要在本节中对基于测距的极大似然估计杭州电子科技大学硕士学位论文 40算法进行定位算法性能仿真。通过仿真考察在几种误差因素影响下的定位精度。首先考察测距误差的影响,仿真参数如表 4.1 所示。 在不考虑其它误差影响的情况下,使用极大似然估计法进行 TOA 方法的位置估计,如图4.12 所示,可以看出测距误差标准差与定位误差均值成线性关系。随着误差标准差的增加定位误差均值成等比例的增加。该比例值为 36 . 0 3 / 08 . 1 = 。 表 4.1 考察测距误差影响 目的 考察测距误差对定位精度的影响 环境 LOS 环境,6 个参考节点随机分布 TOA 极大似然估计法 测距次数 每个参考节点 10 次,取均值带入计算 测距误差 服从 0 均值,标准差从 0 到 3 的高斯分布 考察对象 定位误差均值 0 0.5 1 1.5 2 2.5 300.20.40.60.81测距值误差标准差定位误差均值(m)图 4.12 考察测距误差影响 杭州电子科技大学硕士学位论文 41表 4.2 考察测量次数影响 目的 考察测距次数对定位精度的影响 环境 LOS 环境,6 个参考节点随机分布 TOA 极大似然估计法 测距次数 每个参考节点测距 1 到 15 次,取均值带入计算 测距误差 服从 0 均值,标准差为 1 的高斯分布 考察对象 定位误差均值 在待测节点与某一参考节点对到达时间进行 n 次等精度重复测量,得到 n 个测量数据,最基本的处理方法是取其算术平均值作为两点间传输时间的估计值:一般来说,无论测量误差具有何种分布,只要具有对称性,其数学期望就为零,以算术平均值作为被测量的估计量就具有最优性,这是随机误差抵偿性的必然结果。不过算术平均值仍为随机变量,不可能完全消除随机误差的影响,只不过是减少了这一影响而已。仿真参数如表 4.2 所示。不考虑其它误差情况下,由于测距误差标准差与定位误差均值的线性关系,只取误差标准差为 1 带入仿真,其它情况应与仿真结果成等比关系。 0 3 6 9 12 1500.20.40.60.81测量次数定为误差均值(m)图 4.13 考察测量次数影响 仿真结果如图 4.13 所示。当测量次数只有 1 次时,坐标估计随机性很强,定位误差均值相当大。增加到 5 次以后,性能改善的程度逐渐减缓。增加到 10 次左右时,均值改善已不太明显。虽然随着次数的增加,均值一直在减少,但性能的提高相对于继续增加的测量次数所损耗的时间及通信资源已有些得不偿失。 一般情况下,参考节点的数目越多,获得的定位效果越好。实际的应用环境中,所有的杭州电子科技大学硕士学位论文 42节点位置都是随机分配的。待测节点周边的参考节点数目往往是无法确定的。同时引入位置估计的参考节点数目越多,耗费的运算资源也会同时增加。仿真考察参考节点数目对定位误差均值的影响。仿真参数如表 4.3 所示。 仿真结果如图 4.14 所示,当参考节点只有 3 个时,定位性能很差。到了 8 个参考节点时,性能提高已不明显。实际应用中,选取周边参考节点至少应该为 4 个。此外,选取 58 个是效费比较高的方案。 表 4.3 考察参考节点数目影响 目的 考察参考节点数目对定位精度的影响 环境 LOS 环境,3 到 15 个参考节点随机分布 TOA 极大似然估计法 测距次数 每个参考节点测距 10 次,取均值带入计算 测距误差 服从 0 均值,标准差为 1 的高斯分布 考察对象 定位误差均值 2 4 6 8 10 12 14 1600.511.522.533.5参考节点数目定位误差均值(m)图 4.14 考察参考节点数目影响 杭州电子科技大学硕士学位论文 4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第10课 集字临摹练习(五)教学设计小学书法练习指导五年级下册西泠版
- 沪科版八年级物理全2.1 动与静(两个课时)说课稿
- 第二节 图像检测说课稿初中信息技术(信息科技)八年级下(2020)粤教B版(第4版)
- 4.2光的反射 教学设计 人教版八年级上册物理
- 2025年区块链技术的金融创新与监管
- 2025年新版保安员考试模拟题库及答案
- 2025年北京市公务员考试(行测)考试真题试卷(含答案)
- 2025事业单位医院考试题库及答案
- 2025中环消防考试题及答案
- 2025发展心理学自考试题及答案
- 【课件】数学建模活动:决定苹果的最佳出售时间点课件-2025-2026学年高一上学期数学人教B版(2019)必修第一册
- 施工队进场安全教育培训
- 母婴分离护理常规
- 污泥池清理管理制度
- 秩序员休假管理制度
- 保护环境的课件
- 2025年中国张裕产区葡萄酒特色与品牌国际化发展报告
- 图深度强化学习在配电网故障恢复中的应用研究
- (2017)海南省房屋建筑与装饰装修工程综合定额交底资料
- 2024-2025学年下学期高一英语人教版同步经典题精练之语法填空
- 《社会科学研究方法》课件
评论
0/150
提交评论