发明名称 一种基于定位信息的无线传感器网络地址配置方法
摘要 本发明提供了一种基于定位信息的无线传感器网络地址配置方法,其特征在于,所述6LoWPAN无线传感器网络包括一个以上二维的且面积为S的正方形逻辑区域,每个逻辑区域由坐标(x,y)标识,其中S为正整数,x、y为非负整数;每个传感器节点包括一个定位坐标(Lx,Ly),传感器节点通过定位坐标计算出自己所在逻辑区域的坐标。6LoWPAN无线传感器网络启动后,传感器节点首先获取所在逻辑区域坐标,然后将MAC地址或者出厂的原始ID作为节点ID,并与全局路由前缀相结合形成临时IPv6地址;在传感器节点配置IPv6地址之前,传感器节点由临时IPv6地址来标识。
申请公布号 CN103281674B 申请公布日期 2015.10.21
申请号 CN201310255794.1 申请日期 2013.06.25
申请人 常熟理工学院 发明人 王晓喃
分类号 H04W4/02(2009.01)I;H04W8/26(2009.01)I;H04W84/18(2009.01)I 主分类号 H04W4/02(2009.01)I
代理机构 江苏圣典律师事务所 32237 代理人 胡建华
主权项 一种基于定位信息的无线传感器网络地址配置方法,其特征在于,所述无线传感器网络包括一个以上二维的且面积为S的正方形逻辑区域,每个逻辑区域由坐标(x,y)标识,其中S为正整数,x、y为非负整数;每个传感器节点包括一个定位坐标(Lx,Ly),传感器节点通过定位坐标计算出自己所在逻辑区域的坐标,计算方法如公式(1)和公式(2)所示:<img file="FDA0000707317430000011.GIF" wi="957" he="152" /><img file="FDA0000707317430000012.GIF" wi="962" he="156" />6LoWPAN无线传感器网络包括两类传感器节点:新节点和普通节点,其中,新节点为没有获取IPv6地址的节点,普通节点为获取IPv6地址的节点;传感器节点的IPv6地址由四部分组成,第一部分是全局路由前缀,一个6LoWPAN无线传感器网络中所有传感器节点的全局路由前缀都相同;第二部分和第三部分分别代表传感器节点所在逻辑区域的横坐标和纵坐标,第四部分为节点ID,节点ID在一个逻辑区域内部具有唯一性;其中,第二部分、第三部分和第四部分组成传感器节点的链路地址;传感器节点通过接入路由器接入IPv6互联网,接入路由器定期向6LoWPAN无线传感器网络广播全局路由前缀,传感器节点由此获取所在6LoWPAN无线传感器网络的全局路由前缀;6LoWPAN无线传感器网络启动时,执行以下初始化操作,所有传感器节点获取具有全球唯一性的IPv6地址;6LoWPAN无线传感器网络启动后,传感器节点首先获取所在逻辑区域坐标,然后将MAC地址或者出厂的原始ID作为节点ID,并与全局路由前缀相结合形成临时IPv6地址;在传感器节点配置IPv6地址之前,传感器节点由临时IPv6地址来标识;6LoWPAN无线传感器网络中,传感器节点在一跳范围内定期广播信标帧,源地址为节点的临时链路地址;传感器节点通过接收同一个逻辑区域内的邻居传感器节点广播的信标帧来获取与邻居传感器节点之间的相对位置(α,d),其中α为传感器节点与邻居传感器节点之间的相对角度,0≤α&lt;360;d为传感器节点与邻居传感器节点之间的距离,<img file="FDA0000707317430000021.GIF" wi="262" he="59" />传感器节点A通过下述算法来计算它与邻居传感器节点B的权重关系:如果传感器节点A与邻居传感器节点B的相对角度α<sub>A‑B</sub>满足270&lt;α<sub>A‑B</sub>&lt;360或者0≤α<sub>A‑B</sub>≤90,那么A的权重大于B;如果传感器节点A与邻居传感器节点B的角度90&lt;α<sub>A‑B</sub>≤270,那么节点B的权重大于节点A的权重;如果传感器节点A的权重值既大于邻居传感器节点B的权重值也大于邻居传感器节点C的权重值,那么传感器节点A通过下述算法来判断邻居传感器节点B和邻居传感器节点C的权重关系:如果d<sub>A‑B</sub>·cosα<sub>A‑B</sub>&lt;d<sub>A‑C</sub>·cosα<sub>A‑C</sub>,则传感器节点A判断邻居传感器节点B的权值大于邻居传感器节点C的权重;如果d<sub>A‑B</sub>·cosα<sub>A‑B</sub>&gt;d<sub>A‑C</sub>·cosα<sub>A‑C</sub>,则传感器节点A判断邻居传感器节点C的权值大于邻居传感器节点B的权重;如果d<sub>A‑B</sub>·cosα<sub>A‑B</sub>=d<sub>A‑C</sub>·cosα<sub>A‑C</sub>并且d<sub>A‑B</sub>·sinα<sub>A‑B</sub>&lt;d<sub>A‑C</sub>·sinα<sub>A‑C</sub>,则传感器节点A判断邻居传感器节点B的权值大于邻居传感器节点C的权重;如果d<sub>A‑B</sub>·cosα<sub>A‑B</sub>=d<sub>A‑C</sub>·cosα<sub>A‑C</sub>并且d<sub>A‑B</sub>·sinα<sub>A‑B</sub>&gt;d<sub>A‑C</sub>·sinα<sub>A‑C</sub>,则传感器节点A判断邻居传感器节点C的权值大于邻居传感器节点B的权重;如果d<sub>A‑B</sub>·cosα<sub>A‑B</sub>=d<sub>A‑C</sub>·cosα<sub>A‑C</sub>并且d<sub>A‑B</sub>·sinα<sub>A‑B</sub>=d<sub>A‑C</sub>·cosα<sub>A‑C</sub>,则传感器节点A判断邻居传感器节点C的权值等于邻居传感器节点B的权重,其中邻居传感器节点B或者邻居传感器节点C进入休眠状态;其中,d<sub>A‑B</sub>为传感器节点A和邻居传感器节点B之间的距离,α<sub>A‑B</sub>为传感器节点A和邻居传感器节点B之间的角度,d<sub>A‑C</sub>为传感器节点A和邻居传感器节点C之间的距离,α<sub>A‑C</sub>为传感器节点A和邻居传感器节点C之间的角度,传感器节点A、邻居传感器节点B和邻居传感器节点C都为新节点;在一个逻辑区域内,新节点首先计算自己与邻居新节点的权值,如果新节点检测到自己的权值最大,那么它发起如下初始化操作:步骤101:开始;步骤102:新节点将自己的权值w设置为1,同时将(w‑1)×L+1作为自己的节点ID,其中,L为每个节点初始化时保存的地址长度,其值为预先设置,同时新节点将地址空间设置为[(w‑1)×L+2,w×L],并将自己标记为普通节点;新节点获取节点ID之后,将节点ID与全局路由前缀以及所在逻辑区域的横坐标和纵坐标相结合组成自己的IPv6地址;步骤103:新节点比较所有邻居新节点的权值,向权值最大的邻居新节点发送初始化消息,消息负载为自己的权值;步骤104:邻居新节点收到初始化消息后,将消息负载中的权值加1并设置为自己的权值w1,同时将(w1‑1)×L+1作为自己的节点ID,同时将地址空间设置为[(w1‑1)×L+2,w1×L],邻居新节点将自己标记为普通节点,邻居新节点获取节点ID之后,将节点ID与全局路由前缀以及所在逻辑区域的横坐标和纵坐标相结合组成自己的IPv6地址;步骤105:邻居新节点判断自己是否有邻居新节点,如果是,进行步骤106,否则进行步骤107;步骤106:邻居新节点比较所有邻居新节点的权值,向权值最大的邻居新节点发送初始化消息,消息负载为自己的权值,返回步骤104;步骤107:结束。
地址 215500 江苏省苏州市常熟市常熟理工学院(东南校区)计算机科学与工程学院