魏保龙,龙桂铃
(宜春学院 网络与教育技术中心,江西 宜春 336000)
IEEE 802.15.6标准[1]为无线体域网(Wireless Body Area Network,WBAN)组网技术制定了PHY及MAC规范,为协调器与传感器间的相互通信提供了协商机制。标准在设计时考虑了多种类型的应用,如:医疗健康[2]、消费电子等[3],且仅定义了WBAN设备能够互操作的必备要素,因而被设计成为了一个功能丰富的通用套件[4]。用户需要根据自己的实际应用来定制MAC层的接入与传输机制,需要对关键的性能指标进行仿真优化对比。
网络仿真是在新技术的研究过程中常用的一种基本手段,既可以取代真实的应用环境得出可靠的运行结果和数据,也可以模仿一个系统过程中的某些行为和特征,是可供选择的测试、评估和验证手段之一。现有的许多优秀的网络仿真软件,其中有NS2,MATLAB或OPENT软件等,为网络研究人员提供了丰富的网络仿真模型库和编程接口[5],包含了当前多数已经标准化的网络协议;但是,作为面向学生的仿真实验,难以看懂网络节点底层代码的实现过程,想要完全理解其内部的工作原理具有一定的难度,可延续性差。同时,IEEE 802.15.6标准MAC协议作为一种新型协议,其仿真模型还未被包含进库文件中,不能在软件上面直接定制自己的协议,而需依据协议标准自行设计构建。
本论文在开发框架的选择上,采用了Visual Studio平台的MFC结构和软件组件设计思想。它以C++类的形式封装了API,包含应用程序框架和大量的句柄控件,开发过程简单且语言更灵活。系统中的节点创建可以通过句柄触发主线程运行来实现,依次激活各功能模块,并通过互斥锁和事件的方式来实现同步。
在数据结构上,采用了双向循环缓冲区的实现机制[6]。数据的收发可以分为发送和接收两个循环缓冲区,依据缓冲区的读写指针值是否相等来判定数据是否发送或接收完成。协调器和节点的数据收发在物理层的循环缓冲区中可以依据自身的节点ID号进行独立收发,相互解耦,与实际场景相符,性能良好,数据处理过程方便便捷。网络节点创建初始化后会被分配独立的系统资源,会依据自身的流量特征来通过泊松过程模拟数据的采集与变化,构建协议栈,完成信道的接入、状态的转换及数据的收发过程。可实现节点间的相互解耦,模块化和界面化的管理,操作简单,可扩展性强。
IEEE 802.15.6 MAC支持单跳或多跳的星型网络拓扑结构,支持安全加密服务,可工作在信标模式和非信标模式,最多可支持八级优先级设置。它的帧格式由头部、数据载荷和尾部三部分组成,如图1所示:
图1 IEEE 802.15.6 MAC帧格式
帧格式头部的控制域占据4个字节,包括帧的类型、安全等级、更多数据、应答机制及网络中继等信息;BAN 编号用来唯一标识网络,接收或发送编号用来标识网络节点数据接收与发送的ID地址。其数据载荷的长度是可变的,具体内容依据帧的具体类型来确定;帧的尾部是载荷和头部数据的CRC校验序列。
IEEE 802.15.6 MAC中将信道以相同长度的信标周期为界而分成超帧,定义了三种接入模式,其结构如图2所示。信道中的竞争和非竞争阶段长度可灵活设置且交替分布,节点在竞争阶段接入网络或发送数据都需采用CSMA/CA或SlotAloha的竞争机制[7]接入信道,发送碰撞的概率较大;而在非竞争阶段,节点可向协调器申请获得无需竞争的调度时隙来进行数据传输,具有高能量效率、低传输时延。
图2 超帧的结构图
图2为超帧的时隙结构,其各部分功能为:B是信标,EAP1/2独占访问阶段1/2,RAP1/2随机访问阶段1/2,MAP管理访问阶段以及CAP竞争访问阶段,每一个阶段的长度都可灵活设置,甚至为0。节点能在信标周期中,除了MAP的任何访问阶段采用基于随机接入的CSMA/CA和Slot-Aloha方式发送数据或接入网络,能够设定已预约的上行、下行及双向链路的分配时隙,并在激活期内无竞争的传输数据,非激活期内处于低功耗模式工作。MAP时隙结构可分为有规划上传、下发及双向传输时隙、临时分配时隙及无规划双向传输时隙。在有规划传输时隙中传输数据的网络节点,需在其申请并已成功被分配的时隙中保持唤醒状态,并等待与网络协调器数据的接收与发送,而在其它时隙可转换为睡眠状态,降低功耗。临时分配时隙的分配一般需通过协调器节点根据网络节点数据帧头部的“更多数据位”信息来决定,并通过协调器节点发送Poll/Post控制帧来告知网络节点该信息。在MAP阶段,网络节点可以根据自身的数据流量特性,通过连接请求控制帧向网络协调器申请相应的MAP传输时隙。
MAC层主要实现协调器与节点间的连接请求、加密服务、状态转换、时隙分配及数据传输等过程,同时,基于接入信道的CSMA/CA或Slot Aloha防碰撞机制需要通过软件模拟来实现。主要的服务需求包括:
(1)满足协调器节点对整个WBAN网络的组织与磋商、信道边界的界定及结构划分、节点间的状态转换及数据的收发通信机制。
(2)满足传感器节点对WBAN网络数据的采集、存储及发送,模拟出数据的异构特性及流量特征,确保采集数据能被及时完整的传输而不改变。
(3)满足对PHY信道的软件模拟,实现WBAN网络中底层的数据传输通道,完成信道不同的访问方式,保障资源的有效分配。
(4)满足对WBAN网络正常运行所需的主要参数进行配置,例如:地址类型、优先级、最小时隙、节点类型及流量特征等参数。
(5)满足优化协议或改进算法的性能指标反馈与对比显示,以进一步证明所提出协议或算法的优越性,主要性能指标有:平均延时、功耗、吞吐量等。
针对上述需求特征,本系统设计了以下功能模块:
(1)协调器功能模块:可以设定传输帧的类型及格式,节点的地址类型,超帧的结构,节点接入过程的转换及时隙资源分配的过程等。
(2)传感器功能模块:可以设定传感器节点的类型,优先级特性,采集数据的特征,状态间的转换及向协调器的传输时隙申请等。
(3)PHY功能模块:可以设定CSMA/CA或Slot Aloha竞争访问机制,设定双向循环缓冲区数据的存储与收发。
(4)性能显示模块:可以设定多种性能指标的反馈及对比显示图。
此系统采用了基于多线程资源调配和双向循环缓冲区的设计方式,可以在正常PC环境下完成多任务的程序设计、并发程序设计、网络程序设计及数据共享传输等。所有线程都工作在同一定时器下,之间通过信号量、临界区、互斥锁和事件的方式来进行同步,避免了由于线程之间的相互抢夺而耗费系统资源。系统中的每个模块都是基于一个主线程来实现,且模块间是基于互斥锁和事件的方式来实现同步并行工作。
系统的子功能模块由主体程序来扩展延伸,以此来创建协调器和传感器节点,构建协议栈,完成WBAN网络的组网。主体程序由相应的控件按钮事件来触发,依次激活系统各个功能子模块,使其正常运行,工作流程如图3所示。
图3 子功能模块构建图
3.2.1 信标时隙
信标主要用于协调器与网络节点间的时隙同步,其被包含在协调器周期性广播的信标帧中,用来实现网络间的同步。标准中的信标帧格式如图4所示:
图4 信标帧格式图
在图4中,控制域、接收ID、发送ID、BAN ID、RAP1结束域、RAP2开始/结束以及有效数据载荷对全部网络节点都是必须的。而其它部分信息,如MAC功能域的MAP时隙接入信息只对成功发送MAP请求的网络节点是有效的,用于描述MAP时隙的分配信息。当头部的EAP指示域为0时,RAP1开始可省略。当头部的EAP指示域为1时,表明此信标周期中已分配了非零长度的EAP1传输时隙(EAP1的起始时刻紧接着信标帧),此时RAP1开始域作为可选项就不能省略。且此时RAP1开始域的值表示为RAP1的开始传输时刻为该值时隙的开始时刻,同时该时刻也表示EAP1时隙的结束时刻。RAP1结束域的值表示RAP1的结束时刻为该值时隙的结束时刻。RAP2开始域的值表示为RAP2的开始传输时刻为该值时隙的开始时刻,同时该时刻也表示EAP2时隙的结束时刻。RAP2结束域的值表示RAP1的结束时刻为该值时隙的结束时刻。
3.2.2 状态辨识
标准支持安全通信和非安全通信两种模式。在安全通信模式中,网络节点连接需经过安全加密辨识过程;期间,需经过孤立状态、关联状态、安全状态、连接状态间的状态转换。不同状态下的节点只能接收或发送对应功能的帧。在非安全通信模式中,网络节点只有孤立状态和连接状态,无需经过安全加密辨识过程。网络节点在孤立状态下,可直接发送连接请求申请加入网络,且可直接传输各种类型的帧。在安全通信模式中,节点的接入及状态转换过程如图5所示:
图5 状态转换图
在图5中,孤立状态下的网络节点只被允许接收关联帧和控制帧(如Poll/T-Poll帧)。网络节点成功与网络协调器关联之后,会转换到关联状态。关联状态下的网络节点只被允许接收安全非关联帧、PTK帧和控制帧;若MK丢失或无效,以及节点主动请求断开关联,其会转换到孤立状态。网络节点在关联状态下通过PTK成功与协调器进行加密辨识之后,会转换到安全状态。安全状态下的网络节点只被允许接收连接请求分配帧,非关联帧和控制帧;若PTK无效或丢失,其会转换到关联状态;若节点主动请求断开关联,其会转换到孤立状态。在安全状态通过连接请求与协调器成功建立连接之后,会转换到连接状态。在连接状态下的节点可以传输各种安全类型的帧,不包括关联帧;但不允许传输不安全帧(除了不安全控制帧);若PTK无效或丢失以及网络节点主动请求断开连接时,其会转换到关联状态;若MK无效或丢失以及网络主动请求断开关联时,其会转换到孤立状态。
3.2.3 消息处理
消息处理过程包括网络节点的接入控制、信标的接收,传输帧的类型解析等过程。依据协调器节点发送的控制及时隙分配信息来管理自身的状态转换及时隙,其处理过程如图6所示。节点需根据协调器节点发送的帧信息、状态信息及传输时隙间隔来管理自身的接入、状态转换及数据传输的时隙。节点的数据处理过程主要为响应协调器节点的数据解析及传送的各项需求,满足网络的正常运行条件。
图6 消息数据处理过程
3.2.4 循环缓冲区
在WBAN中,数据的收发可以分为发送和接收两个独立的循环缓冲区,依据读写指针值是否相等来判定数据是否发送或接收完成。实现过程如图7所示:
图7 循环缓冲区设置
3.2.5 数据收发
节点的数据接收或发送函数从物理模拟信道中获取数据。物理信道会对接收到的数据包进行解析,并依据节点ID号存入指定的循环缓冲区中,同时置位其数据包接收事件,过程如图8所示:
图8 数据收发过程图
系统功能测试实验设置WBAN由若干个网络节点和一个协调器构成的星型网络拓扑,不考虑能量问题,节点只允许利用上行传输以直传的方式传递给协调器,且在竞争接入阶段采用Slot-Aloha方式接入信道。实验仿真参数如表1所示:
表1 实验仿真参数
其中,超帧长度可由包含的时隙数目乘每个时隙的长度获得,如式(1)、(2)示。
AllocationLength=pAllocationMin+L*pAllocationResolution
(1)
tsuperframe=Nsolt*AllocationSlotLength
(2)
每一个节点的创建由界面的一个按钮进行触发,并激活相应的功能线程。节点创建后会采集不同流量特征的传感数据,并经过信道接入控制、状态转换和时隙请求分配等过程。软件界面会实时统计节点的状态、发包数、时延及丢包等性能特征,测试效果如图9所示:
图9 接入过程及状态转换功能测试图
在图9中,协调器要首先被创建并激活,节点只有经过状态转换至连接态下才能发送采集的数据,性能显示模块会实时呈现出对应的统计性能指标。
系统通过软件组件设计思想,通过调用MATLAB绘图API函数,将数据包的流量负荷与系统的平均延时性能、丢包率等指标进行跟踪和统计分析,实时呈现出负荷率对性能指标影响的轨迹图,为设计流量自适应传输控制算法奠定基础。图10中以医疗传感器为例,呈现出了流量数据与平均延时性能的动态轨迹图,效果如图示:
图10 性能指标轨迹呈现功能测试图
在图10中,随着传感器流量数据的动态变化,平均延时性能也跟随调整。当负荷在经过从5-10packet/s时,延时性能也逐渐达到其高峰值,然后,再伴随负荷的减少而降低,可实现平均延时性能指标轨迹的实时呈现功能。
通过用实验数据模拟出节点采集的突变流量数据,将标准MAC协议与文献[8]中的基于两轮预约的2R-MAC协议方法进行平均延时性能的仿真对比功能测试,实验效果如图11所示。
图11 平均延时性能对比功能测试图
本系统平台可适用于学生进行基于无线体域网的IEEE 802.15.6 MAC协议的仿真优化实验,可助于理解节点模型的内部实现原理及标准化协议的模型构建过程。系统的功能实现和界面美化还有待进一步丰富,优化算法的仿真效果还需进一步认证,因此,后期研究的重点工作将主要集中在:(1)对算法在节点的功耗、吞吐量等性能方面的影响做进一步的研究认证。(2)对系统的鲁棒性和多功能特性进行研究。