基于ZStack协议的异构网络数据交互方法转让专利

申请号 : CN201210124173.5

文献号 : CN102612168B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张龙飞何定旭蒲爽孟玖林

申请人 : 成都思晗科技有限公司

摘要 :

本发明公开了一种基于ZStack协议的异构网络数据交互方法,在每个Zigbee设备的ZStack协议栈中添加一层SH协议层与SH协议交换机相配合,使每个Zigbee设备都具有一个唯一的TCP/IP网络身份,将现在已经非常成熟的基于TCP/IP协议的以太网络与Zigbee无线传感网络相“连通”,使得使Zigbee网编设备成为一个TCP/IP网络设备。Zigbee设备间以及TCP/IP网络设备与Zigbee设备间可依赖于每个设备唯一TCP/IP网络身份进行通信,进一步扩宽了Zigbee设备的使用范围。

权利要求 :

1.基于ZStack协议的异构网络数据交互方法,其特征在于,在每个Zigbee设备的ZStack协议栈中添加一层SH协议层,所述SH协议层与SH协议交换机相配合,使每个Zigbee设备都具有一个唯一的TCP/IP网络身份;

所述SH协议层将Zigbee设备的应用数据封装为SH协议层数据;

所述SH协议层数据整体作为Zigbee协议层的应用数据进行再次封装,并通过Zigbee网络发送至Zigbee协调器;

Zigbee协调器将Zigbee协议层的应用数据发送至SH协议交换机,SH协议交换机根据SH协议层数据的帧头和帧尾信息,将SH协议层数据中的应用数据转发至目的设备;

具体步骤为:首先,Zigbee设备上应用程序的应用数据在SH协议层进行封装,成为SH协议层数据,应用程序的应用数据被作为SH协议层数据中的应用数据;所述SH协议层数据包括帧头、帧尾和应用数据,所述帧头用于存放数据路由信息,帧尾用于存储校验数据,所述帧头存放的数据路由信息包括数据的源地址和目标地址;所述SH协议层数据帧头为31字节,具体定义如下:位 位描述 位长度

H1 开始字符 1

H2 帧类型 1

H3 帧长度 1

H4 簇 2

H5 目标地址 13

H6 源地址 13

其中,帧类型用于判断帧的类别是为数据帧还是网络维护帧;帧长度用于描述帧的总长度;源地址是帧的发起地址;目标地址是帧的接收地址;源地址和目标地址内容如下表示:位描述 数据交换机Mac 网络类型 节点IP 程序端口位长度 6 1 4 2

其中,数据交换机Mac是目标的上级数据交换机的物理地址,网络类型是描述网络的类别,节点IP是目标的IP地址;

所述SH协议层数据帧尾内容如下:

位 描述 长度

CRC校验 对本协议此CRC之前的所有数据作校验 2

结束字符 对本协议完整一帧作结束标志 1

然后,SH协议层将SH协议数据帧头、应用数据和SH协议数据帧尾整体作为Zigbee协议层的应用数据,传递至Zigbee协议层进行再次封装;

最后,整个Zigbee协议层的数据通过Zigbee网络发送至Zigbee协调器,Zigbee协调器将Zigbee协议层的应用数据发送至SH协议交换机,SH协议交换机根据SH协议层数据的帧头和帧尾信息,将SH协议层数据中的应用数据转发至目的设备,所述目的设备为TCP/IP设备或Zigbee设备,当所述目的设备为Zigbee设备时,所述目的Zigbee设备与数据源Zigbee设备分属于两个Zigbee网络;

其中,SH协议交换机在各个端口监听接收通过SH协议封装后的加入特定帧头帧尾的数据帧,在收到数据帧后,通过对帧头的解析判断此数据帧的数据类型,如果为网络维护帧,继续解析此数据获取此数据发送的路由地址,对交换机中的路由表进行新增、更新;如果为用户数据帧,解析数据帧头的发送类型信息,以此判断此数据帧是基于有链接的方式发送还是基于无链接的方式发送,确定数据的发送方式后,查找路由表,确定发送路径,将数据发送出去。

说明书 :

基于ZStack协议的异构网络数据交互方法

技术领域

[0001] 本发明涉及无线传感网络,尤其涉及一种基于ZStack协议的异构网络数据交互方法。

背景技术

[0002] Zigbee(IEEE802.15.4)技术是最近发展起来的一种短距离无线通信技术。它使用2.4GHz波段,采用跳频技术和扩频技术,具有功耗低,迟延小,高可靠性,低复杂度,低成本,低数据速率,自组织网络等特点,使得其在工业监控、传感器网络、家庭监控、安全系统等领域有很大的发展空间。
[0003] 为了实现跨地域的Zigbee网络设备间的通信,完成远距离数据直接交互以及远程Zigbee网络设备的控制和管理,让Zigbee网络设备间可以有序、高效的工作,仅使用Zigbee网络是不可能实现的,原因是Zigbee网络点到点的通信距离小于1KM,要实现跨地域的通信,就必须在两地间布置大量的Zigbee节点,使数据在Zigbee网络节点间以“接力”的方式经过多次路由后传送至目的地。这种做法网络迟延大、工程量大、硬件成本高,毫无实用意义,如何有效实现跨地域的Zigbee网络设备间的通信成为一个有必要解决的问题。
[0004] 另外,Zigbee协议与现在广泛使用的TCP/IP协议是完全不兼容的,即Zigbee设备不能直接与TCP/IP设备通信。

发明内容

[0005] 本发明的目的是提供一种基于ZStack协议的异构网络数据交互方法,解决现有跨地域的Zigbee网络设备间的通信问题及Zigbee设备不能直接与TCP/IP设备通信的问题。
[0006] 为了实现上述发明目的,本发明提供了一种基于ZStack协议的异构网络数据交互方法,在每个Zigbee设备的ZStack协议栈中添加一层SH协议层,所述SH协议层与SH协议交换机相配合,使每个Zigbee设备都具有一个唯一的TCP/IP网络身份;
[0007] 所述SH协议层将Zigbee设备的应用数据封装为SH协议层数据;
[0008] 所述SH协议层数据整体作为Zigbee协议层的应用数据进行再次封装, 并通过Zigbee网络发送至Zigbee协调器;
[0009] Zigbee协调器将Zigbee协议层的应用数据发送至SH协议交换机, SH协议交换机根据SH协议层数据的帧头和帧尾信息,将SH协议层数据中的应用数据转发至目的设备。
[0010] 其中,所述SH协议交换机根据SH协议层数据的帧头和帧尾信息,将SH协议层数据中的应用数据转发至目的设备步骤,进一步包括:SH协议交换机根据SH协议层数据的帧头信息和帧尾信息通过TCP/IP网络,将SH协议层数据发送至目的SH协议交换机;目的SH协议交换机收到所述SH协议层数据后,根据SH协议层数据的帧头和帧尾信息将SH协议层数据中的应用数据转发至目的设备。
[0011] 其中,所述SH协议层数据包括帧头、帧尾和应用数据,所述帧头用于存放数据路由信息,帧尾用于存储校验数据,所述帧头存放的数据路由信息包括数据的源地址和目标地址。
[0012] 其中,所述目的设备为TCP/IP设备或Zigbee设备。
[0013] 其中,当所述目的设备为Zigbee设备时,所述目的Zigbee设备与数据源Zigbee设备分属于两个Zigbee网络。
[0014] 其中,当TCP/IP设备向Zigbee设备发送数据时,根据Zigbee设备的TCP/IP网络身份进行数据发送。
[0015] 与现有技术相比,本发明具有如下有益效果:
[0016] 本发明在每个Zigbee设备的ZStack协议栈中添加一层SH协议层,所述SH协议层与SH协议交换机相配合,使每个Zigbee设备都具有一个唯一的TCP/IP网络身份,使得使Zigbee网编设备成为一个TCP/IP网络设备。Zigbee设备间以及TCP/IP网络设备与Zigbee设备间可依赖于每个设备唯一TCP/IP网络身份进行通信,进一步扩宽了Zigbee设备使用范围。

附图说明

[0017] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图:
[0018] 图1为本发明实施例Zigbee设备中应用数据封装示意图;
[0019] 图2为本发明实施例基于ZStack协议的异构网络拓扑结构示意图。

具体实施方式

[0020] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0021] 本发明实施例方法在Zigbee协议栈中添加一层SH协议与SH协议交换机相配合,使每个Zigbee设备都拥有一个唯一的TCP/IP网络身份,对于应用程序而言,Zigbee协议是透明的,使Zigbee网编设备成为一个TCP/IP网络设备。Zigbee设备间以及TCP/IP网络设备与Zigbee设备间的通信,完全依赖于每个设备唯一TCP/IP网络身份。
[0022] 首先,需要说明的是,SH协议是由本申请人自定义的网络传输协议,SH协议交换机内运行有与SH协议对应的数据交换协议,使得SH协议交换机可识别由SH协议层封装后的数据,两者相互配合可将Zigbee设备种的数据进行远程路由。其中SH协议层及SH协议交换机中的SH代码无具体技术含义,仅为一种自定义名称。
[0023] 本发明实施例中的SH协议帧结构可以用表一来示意:
[0024] 表一:
[0025]帧头(Head) 数据位(Data) 帧尾(End)
31字节 3字节
[0026] 其中,帧头主要用于存放数据路由信息,路由信息包括数据的源地址和目标地址等信息,数据位用于存放应用数据,帧尾用于存储校验数据。
[0027] 其中,帧头内容定义方式可参见表二:
[0028] 表二:
[0029]位 位描述 位长度(字节)
H1 开始字符 1
H2 帧类型 1
H3 帧长度 1
H4 簇 2
H5 目标地址 13
H6 源地址 13
[0030] 其中,帧类型用于判断帧的类别是为数据帧还是网络维护帧;帧长度用于描述帧的总长度;源地址是帧的发起地址;目标地址是帧的接收地址。源地址和目标地址内容均可以表三的方式表示:
[0031] 表三:
[0032]位描述 数据交换机Mac 网络类型 节点IP程序端口
位长度(字节) 6 1 4 2
[0033] 其中,数据交换机Mac是目标的上级数据交换机的物理地址;网络类型是描述网络的类别,目前主要包括Zigbee、TinyOS、Wifi、RFID、以太网、蓝牙、3G等,节点IP是目标的IP地址。
[0034] 帧尾内容定义方式可参见表四:
[0035] 表四:
[0036]位 描述 长度(字节)
CRC校验 对本协议此CRC之前的所有数据作校验 2
结束字符 对本协议完整一帧作结束标志 1
[0037] 本发明在ZStack协议栈的基础上再封装一层SH协议层,主要用于为应用层程序提供数据发送接口,以及用于将接收到网络数据包进行解析提供给应用层程序。
[0038] 在本发明实施例中,应用程序要进行网络数据发送时,首先会调用SH协议层提供数据发送接口,将应用程序的数据作为接口参数传递进来。在Zigbee设备上,应用程序的应用数据从应用层下发至Zigbee网络中时,要经历如图1所示的封装过程:
[0039] 参见图1,首先,应用程序的应用数据在SH协议层进行封装,成为SH协议层数据,应用程序的应用数据被作为SH协议层数据中的应用数据;所述SH协议层数据包括帧头、帧尾和应用数据,所述帧头用于存放数据路由信息,帧尾用于存储校验数据,所述帧头存放的数据路由信息包括数据的源地址和目标地址。
[0040] 然后,SH协议层将SH协议数据帧头、应用数据和SH协议数据帧尾整体作为Zigbee协议层的应用数据,传递至Zigbee协议层进行再次封装;最后,整个Zigbee协议层的数据就会通过Zigbee网络发送至Zigbee协调器。Zigbee协调器将Zigbee协议层的应用数据发送至SH协议交换机,SH协议交换机可根据SH协议层数据的帧头和帧尾信息,将SH协议层数据中的应用数据转发至目的设备。所述目的设备可是真正的TCP/IP设备,也可以是Zigbee设备,当所述目的设备为Zigbee设备时,所述目的Zigbee设备与数据源Zigbee设备分属于两个Zigbee网络。
[0041] 其中,SH协议交换机在各个端口监听接收通过SH协议封装后的加入特定包头包尾的数据包。在收到数据包后,过对包头的解析判断此数据包的数据类型(用户数据还是网络维护数据),如果为网络维护帧,程序继续解析此数据获取此数据发送的路由地址,对交换机中的路由表进行新增、更新;如果为用户数据帧,程序会解析数据包头的发送类型信息,以此判断,此数据帧是基于有链接的方式发送还是基于无链接的方式发送(有链接和无链接的发送方式就如同TCP/IP协议的TCP和UDP方式,有链接的方式就是为了保证数据能够可靠的发送,无链接的发送方式,不能保证数据能发送到),确定数据的发送方式后,就会去查找路由表,确定发送路径,将数据发送出去。
[0042] 本发明基于ZStack协议的异构网络数据交互方法中,当目的设备与源Zigbee设备不属于同一SH协议交换机下的子网时,当Zigbee协议层的数据通过Zigbee网络发送至Zigbee协调器上时,协调器会将Zigbee协议层中的应用数据发送至SH协议交换机(由图1中的关系可知,此时的Zigbee协议层中的应用数据就是整个SH协议层的数据),SH协议交换机根据SH协议层的帧头和帧尾,通过TCP/IP网络发送至相应的目的SH协议交换机上,目的SH协议交换机收到数据后,根据数据中SH协议层的帧头、帧尾信息将SH协议层中的应用数据(由图1中的关系可知,SH协议层中的应用数据就是源Zigbee设备上应用程序发送的数据)转发至和其相连接的目的设备。
[0043] 本发明实施例在使用经过封装SH协议层的ZStack协议栈时,应用层程序只需要将其的初始化函数(函数类型与原ZStack的任务初始化函数相同)和事件处理函数(函数类型与原ZStack的事件处理函数相同)以参数的形式传给SH协议层提供的任务添加接口,系统运行时,操作系统会为应用导程序分配资源,并在应用程序初始化函数中将应用程序同指定的端口进行注册、绑定。
[0044] 当应用层程序要向TCP/IP网络设备(在SH协议层和SH协议交换机下,Zigbee网络设备等同于TCP/IP设备)发送数据时,调用SH协议层提供的数据发送接口,并指定目标TCP/IP网络设备相应的IP、端口等,数据发出后,经过一系列的转换和路由会被发送到相应的设备上。当TCP/IP设备向Zigbee设备发送数据时,根据Zigbee设备的TCP/IP网络身份进行数据发送,当ZStack协议层接收到网络数据时,数据会经过SH协议层,SH协议层将数据包进行解析,将其中的用户数据提供给相应端口的应用程序,对相应的应用程序触发一个AF_INCOMING_MSG_CMD事件,应用程序在此事件处理函数中取走用户数据。
[0045] 在Zigbee网络中,单张网络中能容纳的节点理论为65535个,而在每个Zigbee设备中能支持运行的程序程序为240个,每个应用程序在注册时和指定的端口相绑定。
[0046] 参见图2,为本发明实施例中一种基于ZStack协议的异构网络拓扑结构示意图,包括3个Zigbee网络(Zigbee网络a、Zigbee网络bZigbee网络c),每个Zigbee网络的Zigbee协调器通过SH协议交换机与TCP/IP网络连接,每个SH协议交换机可通过Zigbee协调器连接至少一个Zigbee网络;每个Zigbee网络包括至少一个Zigbee设备,每个Zigbee设备的ZStack协议栈中封装有一层SH协议层。图2中,Zigbee网络a包括Zigbee设备1和Zigbee设备2,Zigbee网络b包括Zigbee设备3,Zigbee网络c包括Zigbee设备4;
Zigbee网络a通过协调器和SH协议交换机A连接到TCP/IP网络;Zigbee网络b和Zigbee网络c均通过协调器连接到SH协议交换机B,再连接到TCP/IP网络;TCP/IP设备10和TCP/IP设备11均通过SH协议交换机C连接到TCP/IP网络。
[0047] 如图2中的网络拓扑结构中,设备间通信有4种方式,由于数据在设备内在传递已在前文中说明,以下只介绍数据在网络的路由细节。
[0048] 1)同一个Zigbee网络中的设备间的通信:
[0049] 如Zigbee网络a中的设备Zigbee设备1与Zigbee设备2间的通信,这种通信方式时,数据不会传递至SH协议交换机,而是在Zigbee网络a内部直接被路由至相应的目标Zigbee设备,为传统Zigbee网络中的设备间的通信方式。
[0050] 2)不在同一个Zigbee网络且两个Zigbee网络属于同一SH协议交换机下的子网,两网间的Zigbee设备的通信:
[0051] 如Zigbee网络b中的Zigbee设备3欲将数据发送至Zigbee网络c中的Zigbee设备4,通信时,Zigbee网络b中的Zigbee设备3的数据被直接发送至Zigbee网络b的协调器,数据在协调器中被拆去Zigbee协议层后传递至网关—SH协议交换机B(每个SH协议交换机可以连接数个Zigbee协调器),SH协议交换机B根据数据包中的SH协议层提供的相关信息将数据路由至Zigbee网络c的协调器,协调器根据数据包中的SH协议层提供的相关信息为数据封装上Zigbee协议层以让数据能在Zigbee网络中被正确的路由至Zigbee网络c中的Zigbee设备4。
[0052] 3)不在同一个Zigbee网络且两个Zigbee网络不属于同一SH协议交换机下的子网,两网间的Zigbee设备的通信:
[0053] 如Zigbee网络a中的Zigbee设备1欲将数据发送至Zigbee网络c中的Zigbee设备4,通信时,Zigbee网络a中的Zigbee设备1的数据被直接发送至Zigbee网络a的协调器,数据在协调器中被拆去Zigbee协议层后传递至SH协议交换机A,SH协议交换机A根据数据包中的SH协议层提供的相关信息将数据通过TCP/IP网络发送至SH协议交换机B,SH协议交换机B根据数据包中的SH协议层提供的相关信息将数据路由至Zigbee网络c的协调器,协调器根据数据包中的SH协议层提供的相关信息为数据封装上Zigbee协议层以让数据能在Zigbee网络中被正确的路由至Zigbee网络c中的Zigbee设备4。
[0054] 4)Zigbee网络设备同TCP/IP网络设备间的通信:
[0055] 如Zigbee网络a中的Zigbee设备1欲将数据发送TCP/IP设备10。通信时,Zigbee网络a中的Zigbee设备1的数据被直接发送至Zigbee网络a的协调器,数据在协调器中被拆去Zigbee协议层后传递至SH协议交换机A,SH协议交换机A根据数据包中的SH协议层提供的相关信息将数据通过TCP/IP网络发送至SH协议交换机C,SH协议交换机C 根据数据包中的SH协议层提供的相关信息将数据路由至TCP/IP设备10。
[0056] 本发明实施例在每个Zigbee设备的ZStack协议栈中添加一层SH协议层,所述SH协议层与SH协议交换机相配合,使每个Zigbee设备都具有一个唯一的TCP/IP网络身份,将现在已经非常成熟的基于TCP/IP协议的以太网络与Zigbee无线传感网络相“连通”,使得使Zigbee网编设备成为一个TCP/IP网络设备。Zigbee设备间以及TCP/IP网络设备与Zigbee设备间可依赖于每个设备唯一TCP/IP网络身份进行通信。
[0057] 本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
[0058] 本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
[0059] 本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。