首页> 中国专利> 一种基于6LowPAN的两信道数据检测与协议分析仪及方法

一种基于6LowPAN的两信道数据检测与协议分析仪及方法

摘要

本发明请求保护一种基于6LowPAN的两信道数据检测与协议分析仪及方法,涉及无线传感器网络技术领域。该分析仪包括无线数据采集模块和上位机解码分析部分,无线RF收发器1和无线RF收发器2,持续监听信道是否有无线数据报文,主控制器对数据报文进行封装报文头和信道号,上传到上位机;上位机数据处理模块根据接收的数据报文的MAC层报文头的帧控制域中的帧类型子段确定帧类型,若为6LowPAN数据包,将6LowPAN数据包的协议报头根据6LowPAN协议模型的协议规则逐层解析,并进行分析统计送入人机界面显示。

著录项

  • 公开/公告号CN102158882A

    专利类型发明专利

  • 公开/公告日2011-08-17

    原文格式PDF

  • 申请/专利权人 重庆邮电大学;

    申请/专利号CN201110140443.7

  • 发明设计人 谢昊飞;王平;沈杰;陈庆华;陆楠;

    申请日2011-05-27

  • 分类号H04W24/00;H04W80/00;H04W84/18;

  • 代理机构重庆市恒信知识产权代理有限公司;

  • 代理人刘小红

  • 地址 400065 重庆市南岸区黄桷垭崇文路2号

  • 入库时间 2023-12-18 03:00:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-07-09

    授权

    授权

  • 2011-09-28

    实质审查的生效 IPC(主分类):H04W24/00 申请日:20110527

    实质审查的生效

  • 2011-08-17

    公开

    公开

说明书

技术领域

本发明涉及无线传感器网络技术领域,尤其针对于6LowPAN(IPv6 over LR_WPAN,简称6LowPAN)的无线传感器网络的数据检测、协议分析。

背景技术

随着无线通信技术在工业控制领域的快速发展,产生了一种面向设备间信息交互的工业无线通信技术。在对无线传感技术的研发和测试中,都要求对无线传感器网络中的设备之间进行数据检测和协议分析。

通讯网络协议分析设备有很多,主要是对协议进行分析,为网络系统的可靠性和稳定性提供具体的数据支持。但是当前的协议分析仪存在较多缺陷。首先,如最常用的就是嗅探器,主要是对网络状态和数据流动进行监视,并且是单一信道的监测,缺乏对无线传感网进行检测。其次,现有对无线传感网的协议主要是针对单一协议ZigBee进行检测和分析,缺乏可扩展性。再次,IPv6技术在无线传感网中的渗透,对新的无线传感网技术基于IEEE802.15.4实现IPv6通信的6LowPAN进行检测和分析,需要新的数据检测和协议分析,来为6LowPAN开发和研究提供可靠的数据支持。因此,传统的分析仪不能满足新技术的需求,需要更新数据检测和协议分析技术。

发明内容

为解决现有技术中存在的上述技术问题,本发明提出一种基于6LowPAN的两信道数据检测与协议分析仪(以下简称“分析仪”)。该分析仪基于USB接口的多功能分析仪。该分析仪能自配置两信道,对无线传感网数据报文进行同时检测,并对协议数据报文进行解码分析。支持兼容对ZigBee协议分析和可扩展对WIA-PA、ISA100.11a报文的检测和解码分析。

本数据检测与协议分析仪,包括两部分:无线数据采集模块部分、上位机解码分析部分。无线数据采集模块由主控制器、2.4GHz无线射频接收器模块1、2.4GHz无线射频接收器模块2、USB接口模块、电源管理模块组成。上位机解码分析部分包括系统设置模块、数据处理模块和人机界面,主控制器通过同步串行端口控制器的两个串行外围设备接口进行总线操作,分别控制无线RF接收器1和无线RF收发器2,通过不断轮询持续监听信道是否有无线数据报文,并把有效的数据报文存储在各自的无线RF收发器的数据缓存中,主控制器对数据报文封装报文头和信道号,上传到上位机;上位机解码分析部分数据解析模块对检测到的数据包进行解码分析,按照其协议类型解析后,将解析的数据报文送数据显示模块,系统设置部分通过串口下发命令修改接收数据报文的信道。所述轮询持续监听信道是否有无线数据报文具体包括,通过两个无线射频接收器对16个原始信道序列表进行轮询扫描,在扫描每个信道时,当监测每个信道数据的最大时间值内仍没有数据报文,按照原始信道序列表自动切换到相邻的下一个信道号。对检测到的数据包进行解码分析具体为,上位机数据处理模块根据接收的数据报文的MAC层报文头的帧控制域中的帧类型子段确定帧类型。若接收到的MAC层报文头是MAC命令帧和信标帧,则该数据包是WIA-PA或ZigBee的数据包;若是报文头是数据帧,则是6LowPAN、ISA100.11a、WIA-PA和ZigBee中之一的数据包,则优先采用6LowPAN协议模型的协议规则逐层解析。

本发明还提出一种基于6LowPAN的两信道数据检测与协议分析方法,其特征在于,无线数据采集部分的主控制器通过同步串行端口控制器的两个串行外围设备接口进行总线操作,分别控制无线RF接收器1和无线RF收发器2,通过不断轮询持续监听信道是否有无线数据报文,并把有效的数据报文存储在各自的无线RF收发器的数据缓存中,主控制器对数据报文封装报文头和信道号,上传到上位机;上位机解码分析部分数据解析模块对检测到的数据包进行解码分析,按照其协议类型解析后,将解析的数据报文送数据显示模块,系统设置部分通过串口下发命令修改接收数据报文的信道。

本发明提出的协议分析仪,独立于无线传感网系统以外,能同时进行两信道的数据监测和协议分析,也可调整两个信道同时对一个信道检测,降低了丢包率,可以对6LowPAN进行检测和协议的解码分析,并兼容对ZigBee的协议分析和可扩展对WIA-PA、ISA100.11a进行协议解码分析。

附图说明

图1 本发明原理框图;

图2无线数据采集模块部分原理结构图;

图3上位机解码分析部分结构图;

图4 本发明工作流程图;

图5 串口数据接收流程图;

图 6 6LowPAN解析流程图。

图1中标号:A为主控制器,B为2.4GHz无线RF收发器1,C为2.4GHz无线RF收发器2,D为USB接口,E为上位机解码分析部分。

具体实施方式

下面参照附图和具体实例,对本发明的技术方案做进一步的详细分析。

如图1所示为分析仪的原理框图。包括两部分:无线数据采集模块和上位机解码分析部分。无线数据采集部分包括主控制器、2.4GHz无线射频收发器1、2.4GHz无线射频收发器2、USB接口模块、电源管理模块。上位机解码分析部分包括系统设置模块、数据处理模块和人机界面。

图2所示为无线数据采集模块原理结构图。主控制器采用微处理芯片ARM公司最新发布的Cortex-M0内核,它是市场上现有的最小、能耗最低的ARM处理器。无线射频接收器采用UZ2400模块,UZ2400模块工作在2.4GHz的频段上具有16个信道,是一种符合IEEE802.15.4标准协议的射频模块。此时,Cortex-M0处理器就通过串行外围设备接口(SPI0和SPI1)总线分别控制的UZ2400无线射频接收器1和UZ2400无线射频接收器2,轮询读取缓存器(FIFO)中的数据,Cortex-M0处理器对数据报文进行处理。

设置2.4GHz无线射频收发器1、2.4GHz无线射频收发器2保证同时进行两信道的数据报文的检测,支持对工作在频段为2.4GHz,从2.405GHz-2.480GHz间分布,共16个信道的射频接收装置。主控制器无线数据采集模块部分的核心,通过同步串行端口控制器(SSP)的两个串行外围设备接口(SPI)进行总线操作,以主控制器为主机模式,无线射频接收器为从模式,分别控制无线射频收发器1、2工作。主控制器通过总线对无线数据模块的寄存器进行设置,通过不断轮询两个无线射频收发器,持续监听两个信道是否有无线数据报文。

主控制器通过串口转USB,实现无线采集模块和上位机之间的通信。电源管理模块,通过串口转USB接口电路,提供对整个分析仪的供电。

无线数据报文经过基带滤波把有效的数据报文存储在无线射频接收器的数据缓存(FIFO)中,主控制器通过总线操作读取数据缓存(FIFO)中的有效数据报文,并对读取到的报文进行报文长度识别,检测是否是一个完整的数据报文。对完整报文送入上位机解码分析部分。

图3所示为上位机解码分析部分结构图。上位机由数据处理模块、系统设置模块和人机界面三部分构成,对接收的报文进行进行判断,识别是何种协议的数据报文,数据处理模块对协议栈的数据报文逐层解码分析,获得协议栈数据报文的源地址、目的地址、帧类型、协议各层的负载等数据报文信息,提供数据图显示,能对数据报文进行实时或事后监测分析,提供详细的数据,对研发和应用提供可靠的支持。

如图4所示为两信道数据检测和协议分析仪工作流程图。以默认两信道分别为0x0B,0x0C为例,详细说明信道切换过程。上电后,对主控制器Cortex-M0处理器进行初始化,通过Cortex-M0处理器的串行外围设备接口(SPI)进行对无线射频接收器1、2的寄存器进行写操作,完成数据采集配置。通过两个无线射频接收器对16个原始信道(显示为十六进制数值从ch11(0B)至ch26(1A),0B=11,0C=12...10=16,...19=25,1A=26)序列表进行轮询扫描。在扫描每个信道时,当监测每个信道数据的最大时间值(系统设定的监测时间阈值)内仍没有数据报文,按照原始信道序列表0x0B-0x1A自动切换到相邻的下一个信道号0x0D,0x0E继续对空中无线数据进行监测。

数据报文经过无线射频接收器的基带滤波后,送入接收数据缓存(RXFIFO)中,同时帧校验序列(FCS)对数据报文进行合法性检查。每个无线射频接收器的接收数据缓存(RXFIFO)中有两个144-byte(RXFIFO_0和RXFIFO_1)组成的接收数据缓存来存储即将到来的数据报文,每当Cortex-M0处理器读取其中的一个RXFIFO中数据时,另外一个RXFIFO就会继续接收存储即将到来的数据报文,这样就能有效减小数据的丢包率。无线数据检测模块每次接收到一个数据报文时会自动将接收信号强度指示和链路质量指示值加到该数据报文的后面。Cortex-M0处理器通过不断轮询读取无线RF收发器,把接收数据缓存(RXFIFO)中的数据读取出来。根据该报文的长度值,主控制器读取到一个完整数据报文以后,在该报文前封装报文有效性报文头(如:0x66 、0xAB),以方便上位机进行对数据有效性进行识别判断,然后通过串口上传给上位机进行协议的解码分析。控制器向上位机传送的数据格式如下所示:

注:0x表示十六进制;字节即byte,由8个bit位构成。

其中,起始位——表示捕获到的数据包的帧头,占2字节,取值为0x66,0xAB。

信道号——表示捕获的数据的信道编号,占1字节,取值范围:0x0B-0x1A(即十进制的11-26)。

PPDU——是物理层协议数据单元。其中,帧长度由一个字节的低7位表示,其值表示物理帧负载的长度,因此物理帧负载的长度不会超过127个字节;Payload,即有效载荷,其长度可变,根据包长度确定其大小。

LQI——是链路质量指示,表示了所接收的数据包强度和质量的特性。LQI占1字节,其取值范围:0x00-0xFF。

RSSI——是接收信号强度指示,它用来判定链接质量以及是否增大广播发送强度。RSSI占1字节。

如图6所示为本发明上位机解码分析结构图,本发明上位机解码分析由数据处理、系统设置和人机界面三部分功能模块组成。下面分别对这三部分功能模块进行详细说明:

数据处理部分包括,数据接收模块、数据解码分析模块、数据存储模块、数据显示模块。

数据接收模块接收无线数据采集模块通过串口上传的数据报文,传送给数据解析模块;数据解析模块对检测到的数据包进行解码分析,包括信道号、数据长度、协议类型、链路质量指示值、信号包的强度值、接收时间戳,以及对检测到的数据包的个数的统计,按照其协议类型解析后,送数据显示模块以表格形式显示,提供直观的数据分析结果。系统设置部分包括信道配置模块和数据类型诊断模块。信道配置模块通过串口进行命令下发修改接收数据报文的信道。其中,

命令的格式如下所示:

控制命令序列是以十六进制的形式向下发送的。比如修改为信道15和信道17,则向下发送的控制命令为:0xCA 0x04 0x0F 0x11(0x表示十六进制)。数据诊断类型模块对捕获的数据报文提供过滤器,判断是否是基于IEEE802.15.4协议的数据报文,并进行事后触发,以便分析仪有选择地捕获数据。数据处理部分对数据进行实时或事后监测分析,下面详细论述其分析处理过程:

无线数据采集模块与上位机以串口方式进行通信。在上位机的数据接收模块中,通过串口接收函数Rtn=ReadFile()(C++中的API函数,该函数从文件指针指示的位置开始从文件读数据)持续从串口缓存中读取数据报文,存储到缓冲区中,交由数据处理模块进行进一步的解析处理。串口数据接收流程如图5所示。在Visual C++环境中,通过创建UI线程(即用户界面线程)从串口接收数据,并通过线程消息PostThreadMessage将接收到的原始数据传送到主线程,再进行解析、显示。使用线程可以在进行数据处理及其它操作时,不会影响到数据报文的检测。

例如,对捕获的6LowPAN数据报文按照协议类型进层层解析,在对每一层进行数据报文的解析时,都借助下层解析的结果。在协议数据解析的过程中,当协议类型不能确定时,采用以用户设定的协议类型为优先级进行解析。默认的优先解析协议类型是6LowPAN及ZigBee,即优先使用6LowPAN协议对数据帧进行解析,对信标帧和MAC命令帧优先使用ZigBee协议进行解析,这样保证了对ZigBee的兼容性。

首先,解码分析模块根据数据报文头的标志位来判别各种不同协议。然后MAC层报文头的帧控制域中的帧类型子段(3bit位)来确定帧类型。

帧类型子段值如下所示

因为ISA100.11a和6LowPAN两种协议都只有数据帧类型,而ZigBee和WIA-PA两种协议都包括数据帧、MAC命令帧、信标帧。因此若接收到的数据包的类型是MAC命令帧和信标帧,则该数据包可能是ZigBee或WIA-PA的数据包,此时采用设定的优先协议类型进行逐层逐字节解析,若优先协议类型是ZigBee则按ZigBee进行逐层逐字节解析;若是WIA-PA则按WIA-PA进行逐层逐字节解析。若数据包的类型是数据帧,则按照优先类型进行逐层逐字节解析,这样就能对不同协议WIA-PA、ISA100.11a进行扩展解析。

下面以6LowPAN为例,数据包解析的流程图如图6所示,解析详细流程步骤如下:

(1)打开串口接收缓存的数据,并将接收到的数据取第一、二个字节,分别与报头封装的起始位两字节0x66、0xAB进行比较。若不相等则丢弃接收到的数据。否则继续解析数据。

(2)取出第三个字节,得到信道号,并判断信道号的值是否在捕获的数据的信道编号0x0B~0x1A之间。若取值超出该范围则将该数据丢弃,否则继续解析数据。

(3)取出第四个字节,得到数据的长度并用Len表示,即物理层的负载部分的字节数,也即是MAC层(即媒介访问控制层)的PDU(即协议数据单元)。若数据报文长度取值为5或者9-127,则参照IEEE Std 802.15.4-2006继续解析数据包。否则,将数据丢弃。

(4)自第五个字节开始,取出(3)中得到的数据长度Len个字节。所得到的这个Len字节即是媒介访问控制层的协议数据单元。底层根据IEEE Std 802.15.4-2006的帧格式,逐字段地解析数据。

(a) 取出协议数据单元的第一、二个字节,得到媒介访问控制层的帧控制域信息。IEEE Std 802.15.4-2006的帧控制字段位长为16比特,包括帧类型的定义,地址子字段和其他控制标志。其中,帧类型子字段位长度为3个比特位。因此取出第一个字节的低3bit位得到数据类型。若低3bit位取值为001(表示数据帧),由继续解析数据。否则,将数据丢弃。

(b) 继续取出帧控制字段的信息后,然后取出帧序列号、地址信息、媒介访问控制层的帧数据单元(取至第Len-1个字节)。

(c) 在取出媒介访问控制层的帧数据单元中,先取出其第一个字节的低2bit位,然后根据6LowPAN的网络层帧格式的帧控制字段中的帧类型字段判断其类型。若帧类型不是数据帧,则不再解析MAC层的帧数据单元,直接将其作为MAC层的负载,不再向上层解析。若是数据帧,则根据6LowPAN的网络层帧格式取出地址信息、网络层的帧数据单元。在网络层的帧数据单元中,先取出其第1个字节的低2bit位,得到帧类型为数据帧或命令帧或确认帧;然后取出地址信息、应用层读数器、扩展头和应用层帧数据单元。

(d) 取第Len个字节,解析MAC帧尾。

(e) 取出最后两个字节,分别解析得到LQI和RSSI。

(f) 将解析的数据显示出来,同时存储到数据库,以便于后续的查询和分析。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号