【自组网气象站组网方案设计案例4500字】_第1页
【自组网气象站组网方案设计案例4500字】_第2页
【自组网气象站组网方案设计案例4500字】_第3页
【自组网气象站组网方案设计案例4500字】_第4页
【自组网气象站组网方案设计案例4500字】_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

自组网气象站组网方案设计案例目录TOC\o"1-3"\h\u20981自组网气象站组网方案设计案例 1226141.1自组网气象站总体要求 1261531.2无线广播技术 1227801.3自组网通讯协议 2281701.4通信协议实现 5243181.3.1数据帧格式 5209231.3.2通信数据包格式 6263421.3.3协议实现 8257751.4通信组网仿真 9253881.4.1有站点损坏的情况 9125731.4.2无站点损坏的情况 1162041.4.3全排列枚举过程 131.1自组网气象站总体要求本设计中一个主站最多可以搭载9个子站,每个子站有独立的ID号,中心站只是被动接收子站数据,不主动发送信号联系主站。主站将收到的信息打包发送到数据中心。因此就要求每个子站都可能带有整个网络的数据信息,主站可能从任何一个子站获得全网信息。根据自组网气象站总体要求,整个网络中主站仅仅接收数据然后发送数据,所以对于9个子站来说是没有中心子站的,每个子站都是平等的子站,每个子站都需要接收和转发全网数据信息,因此本设计采用无线单通道,泛洪技术来实现全网数据的相互交换,并采用时分复用技术来避免网络碰撞,采用多次发送的冗余技术实现全网传播1.2无线广播技术此次系统中主要采用单信道广播技术,在单信道广播技术中泛洪机制采取得较为广泛,在这个机制中所要求的是所有节点在首次接收广播消息后再次对该广播内所包含的信息进行广播。该机制的优点是实现简单,广播覆盖率广,但其缺点也很明显,便是会引起广播风暴问题。引起的广播风暴主要是以下几方面:一、冗余重播:当一个子站进行广播时,其所有相邻子站都已从其他子站接收到广播消息。假设子站的通信距离为r,则接收广播消息并转发该消息的子站所覆盖的附加区域仅为0.41πr2。当子站收到相同的广播消息k(k≥4)次时,此消息可以重新发布的附加覆盖区域已经小于0.05πr2二、竞争:子站广播消息后,如果它的许多邻居接收到该消息并决定重新广播该消息,则在这些传输中可能会发生严重的竞争。假设子站1发送了一条广播消息,并且n个邻居节点收到了此消息。分析表明,当n=2时,假设子站2和子站3为两个接收节点,则它们将重新广播并竞争的预期概率为59%。随着n的增加,预期竞争的可能性将更高。当n≥6时,所有相邻节点的碰撞概率将超过0.8三、冲突:因为不足的避退机制,缺少RTS/CTS机制和冲突检测,在广播过程中很容易发生冲突。假设子站3是子站1和子站2相邻的。如果子站1和子站2同时广播,则子站3可能会因为消息的冲突而无法正常接收到广播消息。目前,单信道无线网络中基于泛洪原理解决广播风暴问题主要有以下几种方法:1、基于概率的方案当子站能够接收到广播消息时,广播该消息的概率为n,没能接收到广播的该消息的概率为1-n。这种算法比较简单,但是N值选择策略的优缺点会影响该算法的性能。2、基于计数器的方案在子站尝试重新广播消息之前,它可能会多次从其他相邻子站接收广播消息。设置一个计数器r来记录接收到同一广播消息的次数,并选择一个合理的阈值R。如果r≥R,则不要重新广播广播消息。3、基于距离的方案假设子站H第一次听到来自S的广播消息。如果H和S之间的距离d非常小,则可以由H的重放额外覆盖的新区域非常小。如果d较大,则可以由H的重放额外覆盖的新区域较大。在极端情况下,如果d=0,则附加覆盖区域的面积为零。设置适当的阈值以确定节点是否将重播。4、基于位置的方案假定子站从K个邻居接收到广播消息并知道其位置,则可以计算该消息重新广播时可以覆盖的额外区域S,并设置阈值K。如果S>K,则将转发广播消息。1.3自组网通讯协议自主网通信协议参考Modbus协议进行修改,Modbus协议技术简单如下:Modbus协议没有具体的规定它的物理层,可以是RS485也可以RS232是或者其它数字信号。Modbus协议中有ASCII码和RTU(RemoteTerminalUnit)两种不同的数据传输格式。ASCII格式传输的都是可见的ASCII字符,好处是具有较高的可读性;RTU格式则是传输的数据二进制的数据,使用RTU格式每传输一个字节。在Modbus协议中,采用主机查询和从机应答的消息结构,并且同一网络上的所有主机和从机必须使用相同的串行通信参数和传输格式。下表1.1显示了Modbus的标准帧格式。表1.1Modbus帧格式地址码(8位)功能码(8位)数据段(N*8位)校验域(16)程序中使用16位CRC码作为Modbus协议帧的校验域,它包含两个字节,对于每一帧要发送的数据,主机(从机)数据进行计算后将得到的CRC码加在消息的尾部形成完整的Modbus协议帧进行传输。16位CRC码有多种计算方法,下面介绍一种比较高效的计算方法,下面是这种计算方法的C语言程序实现:unsignedshortGetCRCValue(constchar*pSendBuf,intnEnd){unsignedshortCrc=0xFFFF;for(inti=0;i<n-End;i++){Crc^=(unsignedshort)pSendBuf[i];for(intj=0;j<8;j++){if(wCrc&1){Crc>>=1;Crc^=0xA001;}else{Crc>>=1;}}}returnCrc;}主机和从机都是依照Modbus协议来编写通信程序。主机需要主动发起网络中的通信,即依次向各个从机发送命令,而各个从机根据接收到的命令做出相应的回应。由于每个从机的地址是唯一的,所以在主机发送一个数据帧后,只有一个从机响应,这样就不会导致多个设备同时向总线发送数据,从而规避了网络传输的混乱。Modbus协议主机和从机的程序流程图分别如下图1.1和1.2所示。图1.1Modbus主机的程序流程图1.2Modbus从机的程序流程1.4通信协议实现自组网气象站通信协议使用Modbus协议,它高效、简洁,可方便地连接多个从机进行功能扩展。自组网气象站数据采集系统的通信可分为两部分,一是与智能传感器之间的通信,二是与计算机软件之间的通信。1.3.1数据帧格式自组网气象站组网过程中,设计的通信协议数据帧的格式,如下表1.2所示。表1.2通信数据帧格式帧头本机ID数据ID索引时间数据块CRC8位($)8位16位(1-9位,对应每个ID,有数据为1,无数据为0,10-16位保留)6x8位12x16位或16位(按照索引表排列每一个子站数据,最小为1个本机数据,最大为9个站点的所以数据)2x8位该通信协议的工作原理如下:上位机主机发送的数据段为一个2字节的指令码标识,自组网气象站可根据功能码和这个指令码执行相应的操作。自组网气象站发送的数据段为24字节的气象要素信息,包括系统所用到的所有气象要素和几个保留位,便于今后的扩展。为了减少数据传输量,所有数据值都被1位小数乘以10,并在传输前将十进制数转换为十六进制数,上位机主机只需要将接收到的数据转换成十进制后再除以10就可以得到真实的气象数据值,大大减少了计算量。自组网气象站发送数据的数据格式定义,如下表1.3所示。表1.3数据段的格式序号123456定义大气湿度大气压力大气温度光照保留保留序号789101112定义降雨量风速风向保留保留保留因为各个自组网气象站的配置不尽相同,所以设置了一个16位的气象要素标志段,它的每一位用来表示数据段中是否包含有对应的气象要素信息,它的最低位始终为0,其余位依次对应表1.3中对应的气象要素。本次设计取0x7F为帧头标识,当主机或从机接收到0x7F时就认为数据帧开始,由于主机和从机发送的帧长度都是固定的,软件可以用计算数据帧长度的方法来确定数据帧的结束。1.3.2通信数据包格式数据包中需要包含必要的气象要素观测值和通信必要的起始段、地址段、数据段、结束码等。自动气象站的无线射频通信协议共有两种帧格式:控制帧和回应帧。制帧用于主机向从机(自动气象站)发送命令,从机则执行相应的操作(修改数据或发送气象观测值);回应帧用于自动气象站响应控制帧而回发,向主机发回所请求的数据。控制帧和回应帧的格式,如表1.4所示。表1.4控制帧格式起始码地址码命令参数数据长度数据结束码3字节1字节1字节2字节1字节变长2字节字段说明:(1)起始码:作为鉴别帧的开始位置,设定为0x7FAEAE;(2)地址码:无线射频范围内的从机地址,在1千米范围内最多有50个设备;(3)命令:4种功能码(0x01、0x02、0x03、0x04),1个字节可以后可扩展其他命令;(4)参数:自动气象站观测要素的代码,低6位分别代表6个气象要素,可以有目标的选择其中几个作为主机需要的参数;(5)数据长度:值不能大于20,表示数据的字节数;(6)数据:变长的数据,实际数据字节数不能大于20个;(7)结束码:鉴别帧的结束位置,设定为0xAFAF。自动气象站回应帧格式,如表1.5所示。表1.5自动气象站回应帧格式起始码3字节地址码1字节命令1字节数据长度1字节日期2字节时间2字节瞬时风向1字节瞬时风速1字节平均风向(2分)1字节平均风速(2分)1字节平均风向(10分)1字节平均风速(10分)1字节最大风向1字节最大风速1字节最大风速时问点2字节降雨1字节累积雨量1字节空气温度2字节最高温度2字节最高温度时问点2字节最低温度2字节最低气压2字节最低气压时问点2字节结束码2字节字段说明:(1)起始码:作为鉴别帧的开始位置,设定为0x7FAEAE;(2)地址码:本身的从机地址(3)命令:2种功能码(0x01、0x03),1个字节可以后可扩展其他命令;(4)数据长度:通常为固定长度36,根据实际参数配置会有改变;(5)数据:36字节数据,各数据段含义在表中已给出;(6)结束码:鉴别帧的结束位置,设定为0xAFAF。自动气象站系统在启动时需要通过串口向SIM300模块发送AT指令来实现,AT指令一般应用于终端设备与PC应用之间的连接与通信。1.3.3协议实现当主机想从自动气象站读取风速的实时数据时,假设风速值为0x007F,其发出的指令如下表1.6所示。表1.6读取实时风速数据帧头地址码功能码时间要素标志补偿标志CRC0x7F0x080x04位实际时间0x00400x0000CRC值自动气象站返回的风速数据帧,如下表1.7所示。表1.7返回的风速数据帧帧头地址码功能码时间要素标志补偿标志风速CRC0x7F0x080x04位实际时间0x00400x00000x007ECRC值主机如想从数据采集仪读取历史数据,读取历史数据的功能码为0x41,则发出读取历史数据命令,如下表1.8所示。表1.8读取从某段时间起的所有历史数据帧头地址码功能码时间要素标志补偿标志CRC0x7F0x080x41位起始时间0x1FFE0x0XXXCRC值则自组网气象站将所有历史数据在处理器空闲时一帧一帧地上传给上位机软件,每一帧的格式,如下表1.9所示。表1.9自动气象站返回的历史数据帧头从机地址功能代码字节数年月日时分秒0x070x0841H20HYYHMMHDDHhhHmmHssH要素标志补偿标志蒸发大气湿度大气压力光照降水量保留0x1FFE0x00100xXX7E0xXX7E…………0xXX7E0风向大气温度风向风速保留保留保留CRC0xXXXX0xXX7E0xXX7E…………0x00000x007ECRC值使用AccessPort串口数据监视软件可以很方便地监测主机和从机的数据通信,实验过程中某一时刻得到的串口通讯数据结果,如下图1.3所示。图1.3AccessPort软件监测到的串口通信数据格式1.4通信组网仿真1.4.1有站点损坏的情况先对系统进行初始化,其运行界面,如图1.4所示。图1.4系统初始化在上述界面中,可以看出9个子站ID中出现了2个0,代表出现了2个站点损坏的情况。然后正向发送一次,其运行界面,如图1.5所示。图1.5第一次正向发送随后,再进行一次逆向发送,运行界面,如图1.6所示。图1.6第一次逆向发送完成上述操作后,再进行一次正向发送,其运行界面,如图1.7所示。图1.7第二次正向发送1.4.2无站点损坏的情况在无站点损坏的情况,正常启动系统,对系统进行初始化,运行界面,如图1.8所示。图1.8系统初始化

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论