用于交通物联网的节点模块及其通信方法

文档序号:7887977阅读:311来源:国知局
专利名称:用于交通物联网的节点模块及其通信方法
技术领域
本发明属于传感器网络领域,涉及一种用于交通物联网的节点模块及其通信方法,更具体地涉及一种利用TCP/IP网络和ZigBee网络进行通信的交通物联网和相应的通
信方法。
背景技术
随着3G、物联网技术的发展进步,智能交通正在向“新一代智能交通”发展。无线传感器网络作为一种融合短程无线通讯技术、微电子传感器、嵌入式系统的新技术,逐渐被用于新一代智能交通系统等需要数据采集与检测的相关领域,从而给城市智能交通带来一次全新的升级。为了使交通物联网传感器具有感知、计算和通信能力,能够主动或被动地给出车辆的身份信息和状态信息,实现采集的交通流数据的融合,必需要求无线传感器网络及节点与因特网互联互通。现有技术文件中已经公开了无线传感器网络与因特网之间互联互通的方式。例如,CN101005418A公开了以太网与无线传感器网络之间的通信方法和装置,其中涉及的地址转换方式包括两种,即地址转换表和地址转换算法,但是对于地址转换算法的细节没有透露;CN201657338U公开了一种基于ZigBee技术的以太网关,其中采用CCM20作为ZigBee芯片,采用8位8051作为主控芯片,利用W3150A+完成TCP/IP数据处理。但是上述现有技术文件必须利用存储器存储地址映射表,并通过查找映射表进行地址转换,从而需要使用一定的存储空间,并需要占用一定的系统资源进行地址映射表的查找等;而且,网关成为了因特网用户与ZigBee网络节点模块间的通信中转站,ZigBee网络节点模块不支持TCP/IP协议,不能够传输IP数据报,这样使ZigBee网络节点模块不能直接向用户提供因特网服务。因此,需要一种计算简单、占用存储空间少和使用IP地址资源少的IP地址分配算法、ZigBee网络地址-IP协议端口号之间的映射算法,使ZigBee网络节点模块支持传输IP数据报,用户能够通过因特网直接访问交通物联网传感器,获取车辆身份信息;同时交通物联网传感器可主动向因特网特定地址发送车辆身份信息。

发明内容
为了解决上述技术问题,本发明提供一种用于交通物联网的节点模块,该模块包括ZigBee片上系统、单片机、以太网控制器、电源和传感器。其中,ZigBee片上系统包括IEEE802. 15. 4射频收发器、内置ZigBee协议栈的微控制器(MCU) ,ZigBee片上系统主要承担模块之间的无线通信。ZigBee片上系统提供通用输入输出接口(GPIO)连接传感器,采集传感器数据信息。8051单片机内置TCP/IP协议栈及以太网控制器驱动程序。8051单片机与ZigBee片上系统通过SPI串行总线交换数据。单片机也提供GPIO接口连接传感器,用来采集传感器数据。以太网控制器的并行总线(含地址总线、数据总线、控制总线)连接到单片机。以太网控制器收发接口连接RJ-45接插件。其特征在于模块的体系结构上半部是因特网的应用层、传输层和网络层,下半部是ZigBee网络的MAC层和物理层(与以太网的MAC层和物理层并行),因此模块兼具因特网主机和路由器功能。作为主机,可以直接提供因特网应用,作为路由器,可以转发IP数据据报。本模块的特征之二是不需实行IP地址和ZigBee网络地址间的地址转换,只需通过ZigBee网络地址-IP协议端口号之间的映射算法,直接利用IP协议端口号寻找目的节点模块。地址映射方法为(I)ZigBee网络节点模块启动后,向ZigBee协调器发送本设备信息,包括ZigBee网络地址O字节)、设备类型(1字节、设备类型中用1位表示设备是否具有全球IP地址)、如果存储条件允许,设备信息中还可包含设备的名称、提供的服务等。ZigBee协调器依接收信息的先后次序保存设备信息。为了方便管理各模块,ZigBee协调器维护一个设备状态数组,该数组每两位(称为“状态位对”)表示一个模块,状态位对的第一位表示设备是否加入网络,位值为0,表示未加入,位值为1表示已加入;状态位对的第二位表示是否具有全球IP地址,位值为0,表示没有全球IP地址,位值为1表示有全球IP地址。设备状态数组占64字节,可管理256个模块。状态位对的分配按数组下标从小到大的顺序分配。若某一设备故障或离开了网络,则清除其状态位对,之后,该状态位对可以分配给其它模块。每个模块有一个隐含的设备序号(占8个比特位),其值等于该模块状态位对在状态数组中的下标。所以确定了状态位对,也就确定了设备序号。每个模块存有设备状态数组副本。(2)本模块成功加入ZigBee网络后,ZigBee协调器给该模块分配状态位对,确定设备序号,用设备序号直接映射到新的ZigBee网络地址低8位为0,高8位为设备序号;ZigBee协调器将该模块的ZigBee网络地址修改为其相应的新网络地址。协调器修改设备状态数组并广播给各模块以更新。经过上述步骤,可以根据设备序号直接得到目的节点模块的ZigBee网络地址。(3) IP协议端口号有16个比特位。低8位为256个熟知端口号(对应于应用进程的端口号),高8位为设备序号。用伪C语言表示的端口计算表达式为IP协议端口号=(熟知端口号|(设备序号<<8));(4)ZigBee网络内不同的节点模块通过IP协议端口号进行寻址。从IP协议端口号的高8位查出设备序号,根据设备序号直接得到目的节点的ZigBee地址。本发明还提供一种用于交通物联网的通信方法,该交通物联网由以太网络和ZigBee无线传感器网络组成,其特征在于(1)给ZigBee网络中接入节点模块分配全球IP地址(该节点简称为“接入节点”),接入节点模块作为转发节点模块(路由器),其它ZigBee网络节点模块不需分配全球IP地址。(2) IP数据报根据IP地址寻找ZigBee网络及接入节点。当因特网用户通过某接入节点模块访问其它ZigBee网络节点模块(简称为“目的节点”)时,目的节点模块的IP地址等于接入节点模块的IP地址,其套接字表达式为套接字=接入节点的IP地址目的节点的IP协议端口号;通过套接字直接建立因特网用户与目的节点模块间的TCP/IP连接。(3)ZigBee网络节点模块收到IP数据报后,从IP协议端口号求出目的节点模块的设备序号和应用进程的端口号,作如下判断若目的设备序号等于自己的设备序号,则将该IP数据报提交给上层根据应用进程的端口号进行处理;完成转发过程。否则,根据目的节点模块的设备序号,直接得到目的节点模块的ZigBee网络地址低8位为0,高8位为目的节点模块的设备序号,按ZigBee协议进行IP数据报转发。数据转发时,不需实行IP地址和ZigBee网络地址间的地址转换。本发明提供了一种利用以太网和ZigBee无线网络进行通信的节点模块,其包括ZigBee片上系统、单片机、以太网控制器,其中所述以太网控制器,用于接收来自以太网的数据帧并交给单片机;所述单片机用于从该数据帧中提取IP数据报,从IP数据报中的IP协议端口号提取目的节点模块的设备序号和应用进程的端口号,判断该设备序号是否等于自己的设备序号,是则将该IP数据报提交给上层根据应用进程的端口号进行处理;否则,根据目的节点模块的设备序号,直接得到目的节点模块的ZigBee网络地址,将该IP数据报交给ZigBee片上系统;所述ZigBee片上系统用于通过ZigBee无线网络向目的节点模块转发所述IP数据报。任一种如上所述的节点模块,其中ZigBee片上系统通过串行总线与单片机交换数据;单片机内置TCP/IP协议栈及以太网控制器驱动程序,通过并行总线连接到以太网控制器,以太网控制器的收发接口连接RJ-45接插件。任一种如上所述的节点模块,其中IP协议端口号有16个比特位,低8位为256个熟知端口号,对应于应用进程的端口号,高8位为设备序号,其计算表达式为IP协议端口号=(熟知端口号|(设备序号<<8))。任一种如上所述的节点模块,在该节点模块加入ZigBee网络时由ZigBee协调器为其分配设备序号,将其ZigBee网络地址设置为低8位为0、高8位为设备序号。任一种如上所述的节点模块,其中单片机和/或ZigBee片上系统通过GPIO接口连接传感器,用于采集传感器数据。此外,本发明还提供了一种利用以太网和ZigBee无线网络进行通信的方法,其包括,A.节点模块从以太网接收到数据帧,并从中提取IP数据报;B.从IP数据报中的IP协议端口号提取目的节点模块的设备序号和应用进程的端口号;
C.判断该设备序号是否等于自己的设备序号,是则将该IP数据报提交给上层根据应用进程的端口号进行处理;否则,根据目的节点模块的设备序号,直接得到目的节点模块的ZigBee网络地址,通过ZigBee无线网络向目的节点模块转发所述IP数据报。任一种如上所述的方法,步骤A之前还包括Al.为ZigBee网络中的接入节点模块分配全球IP地址,其他节点模块不需要分配全球IP地址。任一种如上所述的方法,步骤A之前还包括A2.节点模块加入ZigBee网络时,ZigBee协调器为该节点模块分配设备序号,将其ZigBee网络地址设置为低8位为0、高8位为设备序号。任一种如上所述的方法,还包括步骤
D. ZigBee协调器维护一个设备状态数组,用于管理各节点模块状态信息,当有节点模块加入或离开ZigBee网络时,ZigBee协调器修改设备状态数组并广播给各节点模块以更新。


图1是本发明节点模块体系结构的协议栈结构图。图2是本发明节点模块的模块组成图。图3是本发明实施例中的ZigBee网络拓扑示意图。图中附表示ZigBee协调器,N2表示设备间无线连接,N3表示ZigBee节点模块,N4表示连接因特网,ZigBee网络节点模块序号标示在设备下方,分别用数字1_8表示,协调器的ZigBee网络节点模块序号为0。
具体实施例方式1.模块体系结构模块内置两套协议栈,即TCP/IP协议栈和ZigBee协议栈。模块的体系结构上半部是因特网的应用层、传输层、网络层,下半部是ZigBee网络的MAC层和物理层(与以太网的MAC层和物理层并行)。TCP/IP协议栈用来连接因特网,目的是使交通物联网传感器模块能直接向用户提供因特网服务。ZigBee协议栈用于交通物联网传感器模块之间的无线通信,目的是转发IP数据报。如图1所示。ZigBee层实体是IP层实体的服务提供者,向IP层实体提供IP数据报透明转发服务。2.模块组成模块的标准配置由ZigBee片上系统、单片机、以太网控制器、电源和传感器等组成。如图2所示。ZigBee片上系统包括IEEE 802. 15. 4射频收发器、内置ZigBee协议栈的微控制器(MCU) ,ZigBee片上系统主要承担模块之间的无线通信。ZigBee片上系统提供通用输入输出接口(GPIO)连接传感器,采集传感器数据信息。单片机内置TCP/IP协议栈及以太网控制器驱动程序。8051单片机与ZigBee片上系统通过SPI串行总线交换数据。单片机也提供GPIO接口连接传感器,用来采集传感器数据。以太网控制器的并行总线(含地址总线、数据总线、控制总线)连接到单片机。以太网控制器收发接口连接RJ-45接插件。本模块通过RJ-45接插件接入因特网。来自因特网的数据帧经RJ-45送到以太网控制器,以太网控制器将该数据帧上交给单片机内置的TCP/IP协议栈,该协议栈从数据帧提取IP数据报,若是发往本模块的,就上交。若不是发往本模块的,则将IP数据报通过SPI串行总线送往ZigBee片上系统,由ZigBee片上系统转发到目的模块。目的模块收到该IP数据报后,其ZigBee片上系统将该IP数据报经由SPI串行总线送到单片机IP/协议栈,向上递交直到应用层。本模块采用5VDC供电,模块内所有器件工作电压均为3.3VDC。一个3. 3VDC稳压器将输入的5VDC转换为3. 3VDC。本模块可以采用5VDC电池供电,也可采用5VDC电源适配器供电。3. IP-ZB 协议ZigBee网络地址-IP协议端口号之间的映射算法(I)ZigBee网络节点模块启动后,向ZigBee协调器发送本设备信息,包括ZigBee网络地址O字节)、设备类型(1字节、设备类型中用1位表示设备是否具有全球IP地址)、如果存储条件允许,设备信息中还可包含设备的名称、提供的服务等。ZigBee协调器依接收信息的先后次序保存设备信息。为了方便管理各模块,ZigBee协调器维护一个设备状态数组,该数组每两位(称为“状态位对”)表示一个模块,状态位对的第一位表示设备是否加入网络,位值为0,表示未加入,位值为1表示已加入;状态位对的第二位表示是否具有全球IP地址,位值为0,表示没有全球IP地址,位值为1表示有全球IP地址。设备状态数组占64字节,可管理256个模块。状态位对的分配按数组下标从小到大的顺序分配。若某一设备故障或离开了网络,则清除其状态位对,之后,该状态位对可以分配给其它模块。每个模块有一个隐含的设备序号(占8个比特位),其值等于该模块状态位对在状态数组中的下标。所以确定了状态位对,也就确定了设备序号。每个模块存有设备状态数组副本。(2)本模块成功加入ZigBee网络后,ZigBee协调器给该模块分配状态位对,确定设备序号,用设备序号映射到新的ZigBee网络地址低8位为0,高8位为设备序号;ZigBee协调器将该模块的ZigBee网络地址修改为其相应的新网络地址。ZigBee协调器修改设备状态数组并广播给各模块以更新。经过上述步骤,可以根据设备序号直接得到目的节点模块的ZigBee网络地址。(3) IP协议端口号有16个比特位。低8位为256个熟知端口号(对应于应用进程的端口号),高8位为设备序号。用伪C语言表示的端口计算表达式为IP协议端口号=(熟知端口号I (设备序号< < 8));(4)ZigBee网络内不同的节点模块通过IP协议端口号进行寻址。从IP协议端口号的高8位查出设备序号,根据设备序号直接得到目的节点的ZigBee地址。 本地IP地址分配及IP数据报转发算法(1)给ZigBee网络中接入节点模块分配全球IP地址(该节点简称为“接入节点”),接入节点模块作为转发节点模块(路由器),其它ZigBee网络节点模块不需分配全球IP地址。(2) IP数据报根据IP地址寻找到ZigBee网络及接入节点。当因特网用户通过某接入节点模块访问其它ZigBee网络节点模块(简称为“目的节点”)时,目的节点模块的IP地址等于接入节点模块的IP地址,其套接字表达式为套接字=接入节点的IP地址目的节点的IP协议端口号;(3)通过套接字直接建立因特网用户与目的节点模块间的TCP/IP连接。(4)ZigBee网络节点模块收到IP数据报后,从IP协议端口号求出目的节点模块的设备序号和应用进程的端口号,作如下判断若目的设备序号等于自己的设备序号,则将该IP数据报提交给上层根据应用进程的端口号进行处理;完成转发过程。否则,根据目的节点模块的设备序号,直接得到目的节点模块的ZigBee网络地址低8位为0,高8位为目的节点模块的设备序号,按ZigBee协议进行IP数据报转发。本发明的有益效果是能给ZigBee网络的所有256个节点模块自动分配IP地址和IP协议端口号,路由器转发IP数据报时无需像传统NAPT路由器那样转换IP地址和端口号,减轻了转发设备的负担并减少了报文转发的时延。在图3中,以非限制性的举例形式,说明了本发明的一个实施例。图中协调器m在整个网络中只有一个,ZigBee节点模块N3有多个,有线信道N4用于连接因特网,无线信道N2表明设备间无线连接。图中ZigBee网络节点模块序号标示在设备下方,协调器的ZigBee网络节点模块序号为0(简称为节点0),其它ZigBee网络节点模块序号分别为1、2、3、4.....255(分别简称为节点1、节点2.....节点255)。设图中节点2和节点8具有全球IP地址,分别为222. 240. 148. 65/24和222. 240. 148. 69/24。其它节点没有全球IP地址,它们的本地IP地址可以直接使用222. 240. 148. 65/24或222. 240. 148. 69/24,具体使用哪一个全球IP地址,取决于IP数据报到达哪个节点,或路由器选取哪个节点出去。下面以因特网上一个用户访问节点7的web服务为例,说明IP数据报转发过程。若IP数据报从节点2转发。节点7的本地IP地址等于节点2的全球IP地址,即222. 240. 148. 65/24 ;节点7的端口号为1872(高8位为7,低8位为80)。所以节点7的套接字为222. 240. 148.65 :1872。而节点2的端口号为592 (高8位为2,低8位为80),其套接字为222. 240. 148. 65 :592。所以,用户通过因特网访问节点7时,在浏览器中使用的地址应为222. 240. 148. 65 :1872。当IP数据报到达节点2后,节点2查得目的端口号1872不等于自己的端口号592,应转发;于是求取1872的高8位,为7,根据设备序号7,求出节点7的ZigBee地址是高8位为7,低8位为0,将IP数据报转发到节点7。节点7收到IP数据报后,查得端口号1872就是自己的端口号,应上交;于是将端口号1872高8位置0,得到熟知端口号 80,修改 TCP (Transmission Control Protocol) 艮文段或 UDP (User DatagramProtocol)用户数据报的检验和,上交到高层处理,完成转发过程。若IP数据报从节点8转发。节点7的本地IP地址等于节点8的全球IP地址,即222. 240. 148.69/24 ;节点7的端口号为1872 (高8位为7,低8位为80)。所以节点7的套接字为222. 240. 148.69 :1872。而节点8的端口号为2128 (高8位为8,低8位为80),其套接字为222. 240. 148. 69 :2128。所以,用户通过因特网访问节点7时,在浏览器中使用的地址应为222. 240. 148. 69 :1872。当IP数据报到达节点8后,节点8查得目的端口号1872不等于自己的端口号2128,应转发;于是求取1872的高8位,为7,将IP数据报转发到节点7。节点7收到IP数据报后,查得端口号1872就是自己的端口号,应上交;于是将端口号1872高8位置0,得到熟知端口号80,修改TCP报文段或UDP用户数据报的检验和,上交到高层处理,完成转发过程。上文中所述的节点模块设备序号为高8位,熟知端口号为低8位,仅为示例性描述,具体实施方式
中可以根据实际需要进行位数以及高低位置的灵活设定,例如根据系统中节点数量的多少、使用端口的多少来增减采用的位数;相应地,ZigBee网络地址的位数,设备状态数组的长度,均仅为示例性描述,具体实施方式
中可以根据节点数量的实际需要进行位数以及高低位置的灵活设定。
权利要求
1.一种用于交通物联网的节点模块,其利用以太网和ZigBee无线网络进行通信,该节点模块包括ZigBee片上系统、单片机和以太网控制器;其特征在于所述以太网控制器用于接收来自以太网的数据帧并交给单片机;所述单片机用于从该数据帧中提取IP数据报,从所述IP数据报中的IP协议端口号提取目的节点模块的设备序号和应用进程的端口号,判断该设备序号是否等于自己的设备序号,是则将该IP数据报提交给上层根据应用进程的端口号进行处理;否则,根据目的节点模块的设备序号,直接得到目的节点模块的ZigBee网络地址,将该IP数据报交给ZigBee片上系统;所述ZigBee片上系统用于通过ZigBee无线网络向目的节点模块转发所述IP数据报。
2.如权利要求1所述的用于交通物联网的节点模块,其特征在于所述ZigBee片上系统通过串行总线与单片机交换数据;单片机内置TCP/IP协议栈及以太网控制器驱动程序,通过并行总线连接到以太网控制器,以太网控制器的收发接口连接RJ-45接插件。
3.如权利要求1或2所述的用于交通物联网的节点模块,其特征在于所述IP协议端口号有16个比特位,低8位为256个熟知端口号,对应于应用进程的端口号,高8位为设备序号,其计算表达式为IP协议端口号=(熟知端口号|(设备序号<<8))。
4.如权利要求1-3任一项所述的用于交通物联网的节点模块,其特征在于在该节点模块加入ZigBee无线网络时由ZigBee协调器为其分配设备序号,将其ZigBee网络地址设置为低8位为0、高8位为设备序号。
5.如权利要求1-4任一项所述的用于交通物联网的节点模块,其特征在于所述单片机和/或ZigBee片上系统通过GPIO接口连接传感器,用于采集传感器数据。
6.一种利用以太网和ZigBee无线网络进行通信的用于交通物联网的通信方法,其包括A.节点模块从以太网接收到数据帧,并从中提取IP数据报;B.从IP数据报中的IP协议端口号提取目的节点模块的设备序号和应用进程的端口号;C.判断该设备序号是否等于自己的设备序号,是则将该IP数据报提交给上层根据应用进程的端口号进行处理;否则,根据目的节点模块的设备序号,直接得到目的节点模块的ZigBee网络地址,通过ZigBee无线网络向目的节点模块转发所述IP数据报。
7.如权利要求6所述的用于交通物联网的通信方法,其特征在于,步骤A之前还包括:Al.为ZigBee无线网络中的接入节点模块分配全球IP地址,其他节点模块不需要分配全球IP地址。
8.如权利要求6或7所述的用于交通物联网的通信方法,其特征在于,步骤A之前还包括A2.节点模块加入ZigBee无线网络时,ZigBee协调器为该节点模块分配设备序号,将其ZigBee网络地址设置为低8位为0、高8位为设备序号。
9.如权利要求6-8任一项所述的用于交通物联网的通信方法,其特征在于,还包括步骤D.ZigBee协调器维护一个设备状态数组,用于管理各节点模块状态信息,当有节点模块加入或离开ZigBee无线网络时,ZigBee协调器修改设备状态数组并广播给各节点模块以更新。
全文摘要
一种交通物联网的节点模块,其采用内置TCP/IP协议和ZigBee协议的8位单片机模块作为物联网传感器节点模块,其中,TCP/IP协议用于连接Internet网络,使该节点设备模块能直接向用户提供互联网服务;ZigBee协议用于该节点设备模块之间的无线通信,用于在ZigBee网络内部转发IP数据报。一种交通物联网中节点模块之间的通信方法,其将IP协议端口号和ZigBee网络地址直接相互映射,实现了互联网和ZigBee网络之间的通信。采用该交通物联网节点模块及其通信方法,用户能通过互联网直接访问交通物联网传感器,且互联网和交通物联网传感器之间的地址转换无需采用地址映射表,计算简单,节约了存储空间。
文档编号H04W84/18GK102571970SQ20121001859
公开日2012年7月11日 申请日期2012年1月20日 优先权日2012年1月20日
发明者何文德, 刘华富 申请人:长沙学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1