无线传感器网络算法测试系统及测试方法

文档序号:7647068阅读:225来源:国知局
专利名称:无线传感器网络算法测试系统及测试方法
技术领域
本发明涉及一种无线传感器网络算法测试系统和测试方法,尤其涉及一种节点与上位机之间通过有线连接方式的无线传感器网络算法测试系统和测试方法。
背景技术
无线传感器网络综合了传感器技术、微电子技术、计算机软件技术、计算机网络技术、嵌入式计算技术、分布式信息处理技术和无线通信技术,能够协作地实时感知、采集和处理网络覆盖的地理区域中感知对象的信息,并发布给观察者。无线传感器网络可以应用于国防军事、环境科学、医疗卫生、反恐抗灾等诸多领域,它的出现是信息感知和采集领域的一场革命,引起了世界上许多国家的军事部门、工业界和学术界的极大关注。
CAN(Controller Area Network)即控制器局域网络,最初为汽车、控制系统而设计的,现在在过程工业、机械工业、机器人等工业领域广泛应用。CAN总线采用载波侦听多路访问/避免碰撞(Carrier SenseMultiple Access/Collision Avoidance-CSMA/CA)的介质访问的控制方式,又称为非破坏性仲裁的CSMA/CD,实质上CAN总线采用CSMA/CD协议并引用非破坏性仲裁机制解决了媒体的共享问题。与一般的通讯总线相比,CAN总线的数据通讯具有突出的可靠性、实时性和灵活性,其特点概括如下(1)CAN总线为多主方式工作,网络上的任意一个节点可在任意时刻主动的向网络的其它节点发送信息,而不分主从,通讯方式灵活,且无须占地址等节点信息。
(2)CAN总线节点可以分成不同的优先级,可满足不同实时要求。
(3)CAN总线采用非破坏性总线仲裁机制,当多个节点同时向总线上发送信息时,优先级较低的节点会主动的退出发送,而高优先级的节点可以不受影响的继续传输数据,从而大大节省了总线冲突仲裁时间,尤其是在网络负载很重的情况下也不会出现网络瘫痪的情况。
(4)CAN总线只需报文滤波即可实现点对点、一点到多点及全局广播等几种方式的传送接收数据,无需专门的“调度”。
(5)CAN总线最高通讯速率为1Mbps,最多可支持到110个节点。
(6)CAN总线采用帧结构,传输时间短,受干扰概率低,具有较好的检错效果。
(7)CAN总线每帧信息都有CRC校验及其它检错措施,保证了数据出错率极低。
(8)CAN总线上的节点在错误严重的情况下具有自动关闭的输出功能,以使总线上其它节点的操作不受影响。
CAN控制器工作于多主方式,网络中的各节点都可根据总线访问优先权通过竞争向总线发送数据,并具有一套完整有效的冲突避让和容错机制,能够实现节点间的可靠通信。通过对CAN控制器中的验收滤波器的操作,可以方便的变更节点间的连接关系。
无线传感器网络由多个节点组成,需要多个节点的协同工作,属于分布式系统,它们程序调试本身就具有一定的难度,无线传感器网络的通讯介质属于无线介质,存在着介质访问冲突、无线信道干扰、单向链路等一些不稳定的因素,网络物理拓扑不易控制。无线传感器网络算法评估方法及测试系统可以更加有效测试无线传感器网络的算法性能。传统的软件仿真方法由于很难模拟真实的物理环境,因此借助软件仿真来评估无线网络算法与实际情况有较大误差。

发明内容
本发明的一个目的在于提供一个较为接近真实环境的测试系统;本发明的另外一个目的在于提供一种无线传感器网络算法评估方法。
为了实现本发明目的,本发明提供的无线传感器网络算法测试系统包括一台上位机,若干无线传感器仿真节点;节点通过有线连接方式与上位机通信,所采用的有线通信可以是CAN总线、以太网等具有共享介质访问控制机制的串行通信方式。
上述传感器仿真节点包括中央处理器,采用计算能力比较强大的单片机,通过运行嵌入式操作系统实现对所有电路和应用程序的管理;有线和无线通信接口,用来对两种通信模式下的运行情况进行仿真、测量和分析;用户接口,包括状态开关、LED状态指示、在线程序升级(ISP)和复位开关,该用户接口可以方便用户完成仿真节点的状态设置并实时掌握仿真节点的运行状态;程序存储器,用于存储无线传感器网络仿真算法程序和各功能电路的控制程序;数据存储器,用于存储仿真节点在仿真过程中的运行数据;
串行通信接口,用户可以通过串行数据接口获得仿真节点运行过程中的实时调试信息,可以提供仿真节点的基本运行数据;数据采集模块,仿真节点可以模拟实际应用要求采集部分模拟量信息,包括光强、声音等;地址译码电路,该部分电路配合中央处理器完成各功能电路的数据管理。
为了实现本发明目的,构思了一种无线传感器网络算法评估方法,该方法包括以下步骤(1)首先测试系统对每个仿真节点下载仿真参数;(2)节点在工作过程中每次发送数据时会按照步骤(1)所述参数对所发送的数据报进行变异处理,这样接收节点可能就会收到不正常的数据,从而模拟了无线网络的不稳定情况;(3)在节点组网、路由选择、数据传输、节点上线、下线等过程中,测试系统不断记录相关的工作参数;(4)将测试记录的相关工作参数与算法的理论值对比以评价传感器网络算法。
上述步骤(1)中仿真参数包括节点的通信误码率、链路质量、响应延时因子;上述步骤(3)中记录的工作参数包括组网时间、组网能耗、簇头个数、簇头平均能量、节点能量最大值之比、每个节点的能量消耗与数据采集;上述步骤(3)中所有记录的信息均可以表格与曲线两种方式显示,便于测试者与理论研究结果对比。
本发明相对于现有技术有如下优点(1)利用有线通信介质控制方法仿真无线通信环境下可能出现的各种不稳定状态,可以为算法的设计者提供有针对性的试验环境,有效的降低了算法在实际环境测试时的难度。
(2)无线传感器网路是一个并行系统,而通常使用的计算机仿真软件是依靠CPU的串行处理机制实现的。测试系统的每个仿真节点都独立运行,而且随时可以收到仿真系统上位机的控制,能够为算法的设计者提供真正的并行仿真环境。
(3)系统中所有控制软件都设计了第三方算法接口,为扩充系统可仿真的算法种类提供了基础。
(4)系统中各个节点间的通信采用了总线传输方式,理论上可以根据仿真要求无限制的扩充节点数量。
(5)系统提供的实时运行数据输出,可以为第三方测试仿真软件提供实时数据。


图1 测试系统硬件系统示意图;图2 无线传感器仿真节点电路组成示意图;图3 仿真节点程序流程图;图4a 测试系统拓扑实现原理;图4b 测试系统拓扑实现原理;图5 数据包的格式定义;图6 FLAG值与包类型关系;图7 系统功能模块图具体实施方式
a、测试系统总体构架如图1所示,硬件系统包括一台上位机,一块PCI9840接口卡,若干挂有CAN控制器的节点,CAN总线,PCI9840接口卡上带有4个CAN接口,这里使用其中3个接口,每个接口上接10个节点,组成30个节点的无线传感器网络测试系统。
其中PCI9840接口卡具有较强的数据处理能力、更大的瞬时数据吞吐量及更安全的硬件设计,它将网络中的通信数据通过PCI总线上传给上位机,是CAN网络和上位机的接口。
软件系统包括上位机软件和仿真节点软件模板,上位机软件工作在上位机上,通过PCI9840接口卡与网络交互,完成拓扑设置、节点状态监控及通信过程监控、网络历史统计等功能,它也是测试系统的人机接口;仿真节点软件模板位于仿真节点,提供硬件初始化、数据包的收发等功能,并为协议的实现提供程序接口,仿真节点相当于现实传感器网络中的节点。
b、测试系统通信协议设计测试系统选用CAN总线作为测试系统的通信介质,使用CAN2.0B通信协议。这和典型的无线电通信有很大的差别,因此,必须在CAN2.0B的基础上建立属于测试系统自己的通信协议,以尽可能的消除差异。我们下面给出了测试系统通信协议的定义。
b1、包格式定义由于CAN2.0B通信协议中单帧数据的数据段最长为八个字节,因此必须把数据包分成若干个分片包传送,到达目的节点后再恢复成完整的数据包进行处理,完整数据包的格式定义如图1所示。
一个包主要由包头段和数据段两部分组成,其中包头段分给出了包的种类、包的事件序列等信息,而数据段则根据包种类的不同挂载了测试系统工作时所需要的各种数据。当节点发送一个特定种类包时,先根据数据部分的实际长度分成若干个分片包,格式如图1所示,所有分片包具有相同的包头段,而数据段中的DATALEN只存在于第一个分片,DATA的长度在第一个分片中为两个字节,后续分片中为三个字节。数据包中各个字段的详细说明如下FLAG标志位,唯一标识包所属类别,具体取值如图2所示;SOURCE 表示包的来源,为发送此包节点的ID号;DEST表示包的目的地(目的节点的ID号码),当为0xff时为广播包;IDENIDENTIFIER,用于分辨同一源下包的身份码;SEQ 发送包的序列号标识,其值为同一个ID号码下,以前所有分片包DATALEN及DATA段值的和;b2、DATA 包所传送的信息;DATALEN整个包中DATA段的长度,包括DATALEN本身和可能存在的CRC字段,如果需要分片,则只存在于第一个分片包中。
b3、包种类定义为了使无线传感器网络测试系统完成仿真任务,并对网络状态和下位机实验节点状态进行实时有效监控,针对目前已实现的两个算法(EACT和ETopoDisc),我们定义了四类数据包网络维护类、网络运行类、报告类和网络参数信令类,它们由数据包的第一个字节FLAG值唯一标识,具体分类如下所示b3-1、网络维护类网络维护类主要是针对节点的异常下线、节点重路由、新节点上线等情况而设计的,主要有以下9个包(1)节点定时探测邻居包(PF_NET_OF_DECTEC);(2)节点探测邻居回复包(PF_NET_OF_ACK);(3)寻找新路由包(PF_NET_OFF_ROUT_SERCH);(4)找到新路由包(PF_NET_OFF_ROUT_FIND);(5)逐级加入树包(PF_NET_OFF_TREE);(6)叶子节点寻找路由包(PF_NET_OFF_LEAF_S);(7)叶子节点找到路由包(PF_NET_OFF_LEAF_F);(8)叶子节点加入到新路由包(PF_NET_OFF_LEAF_G);
(9)新节点上线(PF_NET_ONLINE)。
b3-2、网络运行类网络运行类包主要是针对目前已实现的两个组网算法(EACT与ETopoDisc)而设计的,针对两个算法分别有如下包(1)ETopoDisc组网算法①分簇组网启动包(PF_NET_START);②簇头广播包(PF_NET_CLUSTERHEAD);③簇成员广播包(PF_NET_MEMBER);(2)EACT组网算法;①网络结构探测包(PF_NET_START);②网络结构探测确认包(PF_NET_ACK);③簇头广播包(PF_NET_CH)已确立为簇头的包把自己的ID和权值发给邻居节点,同时置节点的状态为簇头节点。设置节点状态便于标出中间节点。
④簇成员加入确认包(PF_NET_MEMBER)节点把收到的簇头节点的权值做比较,选择权值最高的加入。
⑤簇树邀请包(PF_NET_INVITE)由BS发起组树,从BS开始一步一步往下组。
⑥接受簇树邀请包(PF_NET_CHILG)受到邀请包的节点回复一个CHILD包。⑦(3)数据传输类①数据采集包(PF_NET_DATA);②数据确认包(PF_NET_ACK)当节点成功收到数据后发送此包给发送者表明正确收到数据;③数据请求重发包(PF_NET_NAK)当节点收到错误数据时发送此包给发送者要求重发。
b3-3、报告类当节点状态发生变化或进行了数据传输等时,发送此类包给上位机以及时反映网络运行情况及节点状态信息。具体有如下12个包(1)分簇组网启动报告包(PF_REPORT_START)由Sink节点报告上位机新一轮分簇组网开始。
(2)簇头报告包(PF_REPORT_CLUSTERHEAD)当节点成为簇头时报告上位机自己的状态。(当为EACT算法时路径节点为0)。
(3)簇成员报告包(PF_REPORT_MEMBER)当节点成为簇成员时报告上位机自己的状态。
(4)加入簇树报告包(PF_REPORT_CT)当节点加入到簇树后上报上位机。状态3--簇成员;1--簇头。跳数域分以下两种情况上报节点为簇头,跳数值为本簇头节点与最初发起簇树邀请的节点之间的跳数值减1。
上报节点为簇成员,跳数值为0。
(5)发送数据报告包(PF_REPORT_DATA)节点发送了数据包后报告上位机,标志表示是否数据源为自己,1表示是,0表示否。标识符同数据包IDEN。
(6)成功收到数据报告包(PF_REPORT_SUCCESS)节点发送的数据被成功收到后报告上位机。
(7)收到错误数据报告包(PF_REPORT_ERROR)节点收到NCK包后报告上位机。
(8)能量报告包(PF_REPORT_ENERGY)当节点收到或发送完所有数据分片后上报上位机能量值。
(9)节点失效包(PF_REPORT_INVALID)(10)数据报告包(PF_REPORT_SENDDATA)当SINK节点收到数据时将该数据报告上位机。
(11)节点上线/重新加入树报告包(PF_REPORT_ON_NET)节点类型1为新上线节点,0为非上线节点(12)参数配置确认报告包(PF_REPORT_CONFIGURATION_ACK)各节点回复上位机参数配置完成(标志表示节点是否是Sink节点,1表示是,0表示否)b3-4、网络参数信令类该类包主要是方便上位机对仿真节点的控制,设定网络运行的模式,配置节点参数,触发组网等。目前有以下两个包(1)节点参数配置包(PF_CONFIGURATION_PARA)上位机发送此包给各节点配置节点参数;当类型域为0时,运行模式域与选择域无意义;当类型域为1时,初始能量与最大能量无意义;当类型域为2时,所有域均有意义。
注运行模式组网模式--0,数据传递模式--1,网络维护模式--2。
(2)选择域根据以下情况确定具体内容
当运行模式为组网模式时,选择域表示网络是进行单轮或多轮组网。(单轮--0,多轮--1。)当运行模式为数据传递模式时,选择域表示要求发送数据的节点。(值为0xff表示所有节点均要发送,其他值表示具体某个节点)当运行模式为网络维护模式时,选择域无意义。
默认情况下各节点为单轮组网模式。当网络处于数据传递模式时,最大能量指配置下去所有节点的最大能量。
组网启动通知包(PF_SIGNAL_START)上位机发送此包给Sink节点启动组网。(算法选择域0----TopoDisc改进;1---EACT)测试系统软件设计c、上位机软件上位机软件是测试系统的核心部分,它实现对PCI9840接口卡的控制、网络拓扑结构及节点参数信息的设置,实时跟踪节点和网络的运行状态,并产生网络的历史统计信息。软件还提供有可视化界面方便用户操作。功能模块图如图5所示,上位机软件具有的主要功能有对PCI9840接口卡的操作包括初始化、复位、参数设置、从接口卡缓冲区读取数据及命令其发送数据等。与PCI9840接口卡配套使用的ZLGVCI驱动库支持多种操作系统,使用其中的ZLGVCI接口函数可以轻松完成以上功能。
可以分随机产生或人工设定两种方式设定网络拓扑结构及节点信息,以图形化方式直观地显示出来,并可以保存到文件。用户通过设定参与仿真节点数量,节点通信半径、抛撒范围等参数随机生成拓扑,或者在拓扑显示区手工绘制拓扑与链路并设定节点相应信息。
可以修改已经设定好的拓扑结构及节点信息。对于已设定好的拓扑用户在启动网络运行前可以随时修改节点ID、节点初始能量、相应链路质量等参数,并可通过删除节点或链路来改变拓扑结构。
实时跟踪网络运行状态。在网络运行实时显示区用户可以实时动态的看到组网的全过程,不同状态的节点以不同的颜色示意;网络运行实时信息显示区以文字形式实时呈现网络运行的信息,各类信息以文字颜色区分,更加清晰明了。
实时跟踪节点状态。在节点状态实时显示区将会以表格的形式实时呈现所有节点当前状态,包括当前轮数、节点ID、节点状态、簇头ID、路径ID、当前能量等。若用户只想察看某个节点的当前状态,也可以通过在网络运行实时显示区将鼠标放置该节点上,将会弹出小窗口显示节点所有状态信息。
节点能量实时曲线显示。为更直观观测网络运行中节点能量消耗情况,在节点能量实时曲线显示区,用户可同时有针对性地选择两个节点监测他们的能量变化曲线。
节点数据采集实时显示。用户可在网络运行实时显示区直观形象地看到数据传递的全过程,从数据源到Sink节点的路径上,每经过一条链路,该链路便会作瞬间闪烁以示数据从此经过。并当数据最终到达Sink节点时,Sink节点将此数据上报上位机,在数据采集实时表格显示区将会实时显示该信息,包括数据源ID、数据值、到达时间、传播时延等。在数据采集过程中,用户可随时打开数据实时曲线监视,并随意选择一个节点实时显示其采集数据曲线。
网络运行历史统计。统计组网时间、组网能耗、簇头个数、簇头平均能量与节点能量最大值之比等参数,记录每个节点的能量消耗与数据采集。所有统计信息均可以表格与曲线两种方式显示。
测试系统的主要目的是仿真针对无线传感器网络设计的各种网络层算法。在工作中,测试系统的仿真节点对应实际网络中的节点,仿真节点之间的通讯是依靠上位机的转发来实现的。在仿真节点软件模板中,已将仿真节点内CAN控制的验收滤波器设置为只接收发送给自己的数据帧,而发送数据时只把数据帧通过PCI9840接口卡发送给上位机。这样,当某个仿真节点要发送数据帧时,只能通过CAN总线将数据传递(由于验收滤波器存在,其他仿真节点收不到该节点发送的数据帧)给上位机,随后,上位机依据预先设计的通信协议对数据包进行分析,若为节点事件报告,则实时显示在图形界面上;若为网络运行类包,上位机根据预设的拓扑结构通过PCI9840接口卡将数据帧复制后分别发送到相连的仿真节点。
如图4a给出拓扑结构,4b是节点1发送数据时的测试系统的工作过程。节点1将数据发送给上位机,而上位机按照设置的拓扑将数据转发给相邻的节点,根据仿真节点软件模板提供的接口,添加算法的实现,也就实现了对算法的仿真。
系统的工作过程如下(1)系统初始化。用户首先通过无线传感器仿真节点的用户接口对每个节点的工作参数进行设置,然后给系统上电。在初始化过程中,系统自动完成上位机软件与仿真节点之间的通信连接,根据用户预先设定的工作参数完成各功能模块的初始化。
(2)用户通过上位机软件设置需要仿真的网络结构。其方式可以是由用户通过图形界面手工设置,也可以是通过系统随机生成后再做局部节点修改。
(3)用户可以根据所仿真目标的不同要求选择不同的上位机软件仿真算法,以及选择所需要的状态数据。
(4)启动仿真过程,用户可以在状态浏览器中看到仿真过程的相应信息,便于了解仿真过程是否按计划执行。
(5)经过若干次仿真之后,用户可以通过数据浏览、统计、分析模块的输出窗口获得相关的数据、曲线和图表。
(6)如果需要,用户还可以通过C预研编程,实现第三方算法的嵌入,按照过程(3)中所述可以实现算法的扩展。
权利要求
1.一种无线传感器网络算法测试系统,包括一台上位机,若干无线传感器仿真节点;节点通过有线连接方式与上位机通信,所采用的有线通信可以是CAN总线、以太网等具有共享介质访问控制机制的串行通信方式。
2.如权利要求1所述一种无线传感器网络算法测试系统,其特征在于,所述传感器仿真节点包括中央处理器,采用计算能力比较强大的单片机,通过运行嵌入式操作系统实现对所有电路和应用程序的管理;有线和无线通信接口,用来对两种通信模式下的运行情况进行仿真、测量和分析;用户接口,包括状态开关、LED状态指示、在线程序升级(ISP)和复位开关,该用户接口可以方便用户完成仿真节点的状态设置并实时掌握仿真节点的运行状态;程序存储器,用于存储无线传感器网络仿真算法程序和各功能电路的控制程序;数据存储器,用于存储仿真节点在仿真过程中的运行数据;串行通信接口,用户可以通过串行数据接口获得仿真节点运行过程中的实时调试信息,可以提供仿真节点的基本运行数据;数据采集模块,仿真节点可以模拟实际应用要求采集部分模拟量信息,包括光强、声音等;地址译码电路,该部分电路配合中央处理器完成各功能电路的数据管理。
3.一种无线传感器网络算法评估方法,其特征在于,该方法包括以下步骤(1)首先测试系统对每个仿真节点下载仿真参数;(2)节点在工作过程中每次发送数据时会按照步骤(1)所述参数对所发送的数据报进行变异处理,这样接收节点可能就会收到不正常的数据,从而模拟了无线网络的不稳定情况;(3)在节点组网、路由选择、数据传输、节点上线、下线等过程中,测试系统不断记录相关的工作状态参数;(4)将测试记录的相关工作状态参数与算法的理论值对比以评价传感器网络算法。
4.如权利要求3所述一种无线传感器网络算法评估方法,其特征在于,步骤(1)中仿真参数包括节点的通信误码率、链路质量、响应延时因子。
5.如权利要求3所述一种无线传感器网络算法评估方法,其特征在于,步骤(3)中记录的工作参数包括组网时间、组网能耗、簇头个数、簇头平均能量、节点能量最大值之比、每个节点的能量消耗与数据采集。
6.如权利要求5所述一种无线传感器网络算法评估方法,其特征在于,步骤(3)中所有记录的信息均可以表格与曲线两种方式显示,便于测试者与理论研究结果对比。
全文摘要
本发明涉及一种节点与上位机之间通过有线连接方式的无线传感器网络算法测试系统和测试方法。本发明提供的测试系统包括一台上位机,若干无线传感器仿真节点;节点通过有线连接方式与上位机通信。本发明提供的无线传感器网络算法评估方法包括以下步骤(1)测试系统对每个仿真节点下载仿真参数;(2)节点在工作过程中每次发送数据时对所发送的数据报进行变异处理;(3)在节点组网、路由选择、数据传输、节点上线、下线等过程中,测试系统不断记录相关的工作参数;(4)将测试记录的相关工作参数与算法的理论值对比以评价传感器网络算法。本发明为算法的设计者提供有针对性的试验环境,有效的降低了算法在实际环境测试时的难度。
文档编号H04L12/28GK101051954SQ200710057218
公开日2007年10月10日 申请日期2007年4月26日 优先权日2007年4月26日
发明者房朝晖, 孙雨耕, 孙永进, 刘秀珍, 郭瑞年 申请人:天津大学, 天津市天大全红电子信息装备有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1