一种基于消防应急灯的MAC层通信方法
技术领域
本发明属于通信技术领域,特别涉及一种消防应急灯和远程监控端的通信方法。
背景技术
基于IEEE802.15.4的无线传感网络以及其应用一直处于高速发展,并变得越发繁荣。在由此也衍生出了诸如WirelessHART(可互操作无线通讯标准)、Zigbee(双向无线通讯技术)等一系列标准和设备,由此已经很好的应用在建筑监测、生理状态监测、农业监测甚至水下监测等多个领域中。但是现有的无线传感网络标准各有问题:
1、现有无线传感网标准大多应用自带网络协议,即每个节点拥有自带ID,上下位机通信需要通过网关及相关软件来转换传输协议。因此不同网络组内的节点无法平面化通信。消防部门如需对大规模的消防设备进行统一管理,将会非常繁琐。
2、类似于Zigbee标准的传输协议,节点应用CSMA接入方式,即依靠信道抢占机制传输。如此节点可能出现长时间无法抢到信道可能,或者由于隐藏终端问题而无法通行。故传输延迟、功耗和稳定性都很难保证。
3、由于Zigbee设备发射时间不确定,所以功耗利用率低。WirelessHART虽然基于TDMA(时分多址接入)技术,统一了各个节点时间,但实现方法较为复杂(需要额外的网络管理器)成本较高,不适合应用于传统低成本的消防设备中。
4、GINSENG(工业级无线传感网络研究项目)已经实现低复杂度,高稳定性且低功耗的无线网络系统。但该协议基于静态TDMA技术,且未考虑时系复用,所以该系统无法扩展,不适合应用于灵活布防的消防设备。
发明内容
本发明的目的在于针对现有消防通信技术的不足,提供一种更加有效的消防应急灯与远程监控端的通信方法。
一种基于消防应急灯的MAC层通信方法包括以下步骤:
第一步,离线时隙规划,具体是:将离线规定时隙周期长短,预先规划成包括上传和下载时隙的基础时隙SB、附加时隙和未用时隙,时隙划分同样按照GinMAC协议规则进行,但不进行离线分配时隙。同时为了保证网络的可扩展性及时间同步,在原有时隙基础上加入入网时隙、时间同步时隙和路由时隙。
时间同步时隙ST为网络中每一个节点的时间进行同步,基准时钟为网关时钟。在S1时隙时,网关广播网关时钟,处于接收状态的节点接收到之后;在S2时隙时,收到网关时钟的节点广播接收到的网关时钟,依次向下传输,故时间同步时隙与网络深度相同,即ST=H。
入网时隙SN为了接收新增节点入网请求,保证了网络的扩展性。其中第一个时隙中,所有节点进入接收状态,需入网节点发送入网请求;第二个时隙,父节点将处理结果告知需入网节点;第三个时隙,入网节点若入网成功,则广播告知自身邻居节点入网成功。故入网时隙SN=3,同时,由于入网时隙每个周期都存在,所以无线节点可以在该时隙内进行传感器采样。
路由时隙SR为了兼容上层的6lowpan协议及节点之间相互告知自身邻居列表;在路由时隙中节点采用CSMA的方式发送路由包。
第二步,时钟同步,具体是:将网关时钟作为基准时钟,网络需要根据节点晶振精度和环境干扰预先规定好时钟同步频率。当需要时钟同步时,首先,网关广播基准时钟,网络第一层处于接收状态接收基准时钟,并校正本地时钟;之后,第一层节点广播校准后的本地时钟,第二层节点处于接收状态接收基准时钟,并校正本地时钟;以此类推,直到所有节点均校准了时钟。为了保证时钟的精确性,所以必须考虑传输时间。假设传输速率为V,射频准备时间为tp,时间同步包长度为Kd,导前码和同步字节长度为Kh。则估计传输时间计算公式:
在基础时隙时,若节点向上一层节点上传数据包时MAC层包头包含本地时间,父节点若接收到数据包,将节点本地时间和自身时间之差作为实际传输时间tr,并且将实际传输时间通过应答包反馈给节点。
节点以实际传输时间为准,当未获得实际传输时间时节点使用估计传输时间。节点时间为传输时间与基准时间之和。
第三步,节点入网和淘汰,具体是:
A.时间同步。由于每个节点上传数据或是下载数据时MAC头都包含本地时钟,所以入网节点将收听网络,直到接收到网络中任意节点时钟为止。之后,入网节点将根据接收到的时钟对本地时钟进行校准。由于时隙个数F一定,每个时隙为MmS,且第一个时隙正好对应基准时钟的初始值,则根据时间t计算时隙序号N公式如下:
B.节点在入网请求时隙广播入网请求,在路由时隙时该节点的邻居节点将自身的邻居表反馈发送给入网节点。入网节点存储好接收到的数据包更新自身邻居列表,并选择最优链路的邻居节点作为父亲节点。
C.入网节点再次在入网时隙中向第二步选择的父亲节点发送入网请求。父亲节点之后首先广播路由包来更新自身邻居列表,与入网节点相同,父亲节点的邻居节点在路由时隙反馈自身的邻居表。通过邻居列表更新后的父亲节点判断是否有空余时隙。
D.若入网成功父亲节点在入网时隙中将入网成功信息反馈给入网节点。之后入网节点向邻居节点广播入网成功信息,以告知邻居节点更新自身邻居列表。
每次节点入网时将会对其父亲节点进行邻居列表更新,当无法接收到原有邻居节点则将其中邻居列表中淘汰。同时,当节点连续两次出现发射失败时,则节点自认链路断开,从步骤A开始重新入网。
第四步,时隙分配,具体是:采用的是动态的自组织的时隙分配规则,设现有网络深度H=2,信道数C=4的网络。其中0号节点v1为网关,1、2号节点v1、v2为网络第一层,3、4号节点v3、v4为网络第二层。时隙分配按照网络层数由高到低进行分配,同时为了保证信号的可靠性时隙复用次数限定为C/2。已知0号邻居节点N0={v1,v2},N1={v0,v4},N2={v0,v1},N3={v2},N4={v4}。
首先分配v1至v0链路,由于时隙表为空则分配在第一个基础时隙中;之后分配v2至v0链路,由于接收端都为v0则只能分配在中;再是分配v4至v1链路,由于N1 N4 ,故分配在中;最后分配v3至v2链路,v3至v2链路跳到其他信道以避免干扰。对于下载基础时隙的分配原理与上传基础时隙分配相同。
第五步,数据上传及下载。随着子节点入网成功及父节点时隙分配完成,节点间的链路形成。之后节点将基于TDMA进行数据的上传及下载。
本发明的有益效果有:本发明将传统的消防应急灯通信方式升级为空分TDMA技术为基础,IPv6/6LoWPAN技术为协议栈标准,CoAP协议包为通信载体的新型自组织多跳协议,相对原有的通信协议具有诸多优点。
一、在节点链路传输方面:
保证了较短的时延时间及每个节点传输的公平性。
更低的功耗:由于利用TDMA技术做到的时间同步,使得能耗利用率更高。
具有较高的吞吐量:利用空分TDMA技术,实现了多条链路通信。
具有自适应能力:由于加入了入网和淘汰机制,所以节点会随着环境和网络的变化做出调整。
二、在协议应用和系统构成方面:
更高的稳定性:由于采用了REST(表征状态转移)架构的CoAP协议,资源之间以松散耦合方式构建,当某一个资源(算法服务器)发生故障时不会影响整个系统的工作。
更强的可操作性:协议将每个网络中的应急灯节点都拥有各自的IPv6地址,因此服务器能够之间能够直接访问所有网络中的应急灯节点,而无需网关进行协议转换。这样将有助于多个无线网络,大规模节点管理。
更精简的软件架构:如上所说,服务器能够通过CoAP协议直接访问某个节点,所以程序节省了关于通信协议转化方面的存储消耗,并缩短了通信时间。同时由于CoAP协议是HTTP协议的简化,因此服务器无需复杂的协议转化就能够以HTTP协议方式供远端终端访问。精简的架构同时也方便了开发人员的研发和维护成本。
更规范的标准:协议以IPv6/6LowPAN为通信标准,相对其他通信协议标准而言具有更强的规范性和互操作性。规范的标准有助于行业通信接口的统一,最终方便消费者的购买和使用。
附图说明
图1为MAC层协议执行流程;
图2为本发明时隙分布;
图3为基于自组织的时隙分配示例。
具体实施方式
下面结合附图通过实施例详细对本发明做出进一步的说明。
本发明的目的在于针对现有消防通信技术的不足,提供一种更加有效的消防应急灯与远程监控端的通信方法。协议栈架构如表1所示。
表1协议栈架构
应用层 |
IETF CoAP / REST Engine |
传输层 |
UDP |
网络层 |
IPv6 / RPL |
适配层 |
6LoWPAN |
数据链路层 |
GinMAC Based on STDMA |
RDC层 |
SICSLoWMAC |
物理层 |
EZPRO |
该通信方法基于空分TDMA技术,对GinMAC协议进行修改与改进。由于消防系统协议栈采用树状拓扑结构,所以网络中每一条链路都可视为父节点与子节点间的通信过程,本通信方法流程如附图1所示,包括:
首先,离线时隙规划。开发人员根据现场环境和节点分布情况预先规划好每种时隙的个数,并将其预存在节点的存储器中。
第二步,时钟同步。由于本方法采用空分TDMA技术,所以网络中所有节点必须统一时间,否则无法加入网络。
第三步,节点入网。为了满足应急灯工作环境的不确定性,同时方便设备的安装和维护,本方法实现了节点入网功能。
第四步,时隙分配。时隙分配由父节点实现,主要对新入网的节点分配时隙。
最后,数据上传及下载。随着子节点入网成功及父节点时隙分配完成,节点间的链路形成。之后节点将基于TDMA进行数据的上传及下载。
具体内容如下:
1、时隙划分规则
为了保证网络的稳定性和低延迟时间,所以必须保证在任何时间内所有链路传输不存在竞争关系。本方法沿用了该思想,将离线规定时隙周期长短,预先规划成包括上传()和下载()时隙的基础时隙(SB)、附加时隙和未用时隙,时隙划分同样按照GinMAC协议规则进行,但不进行离线分配时隙。同时为了保证网络的可扩展性及时间同步,在原有时隙基础上加入入网时隙、时间同步时隙和路由时隙。如附图2所示。
时间同步时隙(ST)为网络中每一个节点的时间进行同步,基准时钟为网关时钟。在S1时隙时,网关广播网关时钟,处于接收状态的节点接收到之后;在S2时隙时,收到网关时钟的节点广播接收到的网关时钟,依次向下传输,故时间同步时隙与网络深度相同即ST=H。
入网时隙(SN)为了接收新增节点入网请求,保证了网络的扩展性。其中第一个时隙中,所有节点进入接收状态,需入网节点发送入网请求;第二个时隙,父节点将处理结果告知需入网节点;第三个时隙,入网节点若入网成功,则广播告知自身邻居节点入网成功。故入网时隙SN=3。同时,由于入网时隙每个周期都存在,所以无线节点可以在该时隙内进行传感器采样。
路由时隙(SR)为了兼容上层的6lowpan协议及节点之间相互告知自身邻居列表。在路由时隙中节点采用CSMA的方式发送路由包。
由此可知,改进后的时隙在GinMAC时隙基础上增加了SR、SN和ST,然后对于GinMAC本身而言实际也是具有传感器采样时隙和时钟同步时隙,所以具体增加的时隙需要视应用而定。
2、时钟同步
本通信方法将网关时钟作为基准时钟,网络需要根据节点晶振精度和环境干扰预先规定好时钟同步频率。当需要时钟同步时,首先,网关广播基准时钟,网络第一层处于接收状态接收基准时钟,并校正本地时钟;之后,第一层节点广播校准后的本地时钟,第二层节点处于接收状态接收基准时钟,并校正本地时钟;以此类推,直到所有节点均校准了时钟。为了保证时钟的精确性,所以必须考虑传输时间。假设传输速率为V,射频准备时间为tp,时间同步包长度为Kd,导前码和同步字节长度为Kh。则估计传输时间计算公式:
在基础时隙时,若节点向上一层节点上传数据包时MAC层包头包含本地时间,父节点若接收到数据包,将节点本地时间和自身时间之差作为实际传输时间tr,并且将实际传输时间通过应答包反馈给节点。
节点以实际传输时间为准,当未获得实际传输时间时节点使用估计传输时间。节点时间为传输时间与基准时间之和。
3、节点入网和淘汰
考虑无线节点在楼宇消防中物理分布的特点,本方法参考Xmesh路由协议,将GinMAC协议改进成自组织的树状网络结构。
在消防系统中,每一个设备都可能会进行临时更换或者是移动而影响网络拓扑结构,此时就需要有入网和淘汰规则对原有网络拓扑进行刷新。
本方法的入网和淘汰时间片分配在入网时隙和路由时隙。节点入网条件为网络中有可被该节点分配的基础时隙。节点淘汰条件为父节点的邻居列表中不存在该节点。
当节点需要入网时,第一步需要时间同步。由于每个节点上传数据或是下载数据时MAC头都包含本地时钟,所以入网节点将收听网络,直到接收到网络中任意节点时钟为止。之后,入网节点将根据接收到的时钟对本地时钟进行校准。由于时隙个数F一定,每个时隙为MmS,且第一个时隙正好对应基准时钟的初始值,则根据时间t计算时隙序号N公式如下:
第二步,节点在入网请求时隙广播入网请求,在路由时隙时该节点的邻居节点将自身的邻居表反馈发送给入网节点。入网节点存储好接收到的数据包更新自身邻居列表,并选择最优链路的邻居节点作为父亲节点。
第三步,入网节点再次在入网时隙中向第二步选择的父亲节点发送入网请求。父亲节点之后首先广播路由包来更新自身邻居列表,与入网节点相同,父亲节点的邻居节点在路由时隙反馈自身的邻居表。通过邻居列表更新后的父亲节点判断是否有空余时隙。
第四步,若入网成功父亲节点在入网时隙中将入网成功信息反馈给入网节点。之后入网节点向邻居节点广播入网成功信息,以告知邻居节点更新自身邻居列表。
如上可知,入网周期为4个TDMA时隙周期。由于在消防领域对节点入网时间要求不高,且TDMA时隙周期往往较短,所以入网规则符合应用要求。
每次节点入网时将会对其父亲节点进行邻居列表更新,当无法接收到原有邻居节点则将其中邻居列表中淘汰。同时,当节点连续2次出现发射失败时(目标节点在基础时隙和附加时隙中均无应答),则节点自认链路断开,从步骤一开始重新入网。
4、基于自组织的时隙分配规则
本方法采用固定时隙数来保证系统的低延迟时间。由于GinMAC时隙分配方式只采用了TDMA技术,因此网络节点数的增加会增大传输延迟时间,在楼宇消防中消防设备数往往较大,传输延迟无法保证。但是另一方面,消防设备物理分布具有点与点间距离较远,网络较为稀疏的特点。所以本方法将相互不干扰的链路在同一时隙内进行通信。由于离线时时隙不进行分配,所以本方法采用的是动态的自组织的时隙分配规则。
时隙需要分配的主要的是基础时隙,因为一旦基础时隙确定了两个信道直接无干扰,那么在附加时隙中一定能够复用。
由于多条链路能够同时传输的两点条件对原有的TDMA时隙进行复用。以附图3为例,现有网络深度H=2,信道数C=4的网络。其中0号节点v1为网关,1、2号节点v1、v2为网络第一层,3、4号节点v3、v4为网络第二层。时隙分配按照网络层数由高到低进行分配,同时为了保证信号的可靠性时隙复用次数限定为C/2。附图3中已知0号邻居节点N0={v1,v2},N1={v0,v4},N2={v0,v1},N3={v2},N4={v4}。
首先分配v1至v0链路,由于时隙表为空则分配在第一个基础时隙中;之后分配v2至v0链路,由于接收端都为v0则只能分配在中;再是分配v4至v1链路,由于N1 N4 所以因为不满足条件1不能分配在和中,故分配在中;最后分配v3至v2链路,同v4至v1链路一样因为不满足条件1不能分配在和中,但在中虽然N1 N0 但由于v0不在两条链路的发射点中故满足条件1,同时为了满足条件2,v3至v2链路跳到其他信道以避免干扰。对于下载基础时隙的分配原理与上传基础时隙分配相同,在此不做累述。
定义在任意时隙中,已分配发送节点集合为V,需分配发送节点为vi,已分配接收节点集合为L,需分配发送节点为li,时隙复用判断伪指令如下:
for(i=1;i<=;i++)
{
if()
{
if(分配次数少于C/2)
{
if(V和vi )
{
vi和li传输链路更改信道;
完成分配;
}
}
else
{
无法分配在;
}
}
else
{
直接分配在;
}
}
5、数据上传及下载
经过前几步的执行,通信网络将基本构成。之后每个子节点将通过父节点分配好的时隙进行上传和下载数据。