您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > ZigBee协议网络层
3.1网络层状态值网络层确认原语通常都包括一个参数,这个参数记录回答请求原语的状态。网络层状态参数值如表3.1所示。表3.1名称值描述SUCCESS0x00请求执行成功INVALID_PARAMETER0xc1从高层发出的原语无效或者超出范围INVALID_REQUEST0xc2考虑到网络层目前的状态,高层发送的请求原语无效或者不能执行NOT_PERMITTED0xc3NLME-JOIN.request原语不被接受STARTUP_FAILURE0xc4NLME-NETWORK-FORMATION.request原语启动网络失败ALREADY_PRESENT0xc5产生NLMEDIRECT-JOIN.request原语的设备的邻居表中已经存在有地址设备提供的NLMEDIRECT-JOIN.request原语SYNC_FAILURE0xc6用来表明在MAC层NLME-SYNC.request原语失败NEIGHBOR_TABLE_FULL0xc7NLME-JOIN-DIRECTLY.reques失败,因为邻居表没有更多的空间UNKNOWN_DEVICE0xc8NLME-LEAVE.request原语失败,因为产生原语的设备地址不在邻居表中的参数列表中UNSUPPORTED_ATTRIBUTE0xc9NLME-GET.requestorNLME-SET.request原语产生带有未知的属性标识符NO_NETWORKS0xca没有检测到网络环境产生NLME-JOIN.request原语LEAVE_UNCONFIRMED0xcb设备确认从网络出发失败MAX_FRM_CNTR0xcc因为帧计数器达到最大值,所以输出帧安全处理失败NO_KEY0xcd输出帧尝试安全处理且失败,因为对于处理没有有效的钥匙BAD_CCM_OUTPUT0xce输出帧尝试安全处理且失败,因为安全设计产生一个错误的输出NO_ROUTINGCAPACITY0xcf由于缺少路由表或者发现路由表能力,尝试发现路由失败ROUTE_DISCOVERY_FAILED0xd0尝试发现路由失败,由于缺少路由能力ROUTE_ERROR0xd1由于发送设备的路由失败,NLDE-DATA.request原语失败BT_TABLE_FULL0xd2由于没有足够的空间在BTT,尝试发送一个广播帧或成员模式多点传送失败FRAME_NOT_BUFFERED0xd3一个非成员多点传送帧丢弃未决路由发现3.2概况描述3.2.1网络层概述ZigBee网络层的主要功能就是提供一些必要的函数,确保ZIgBee的MAC层(IEEE802.15.4-2003)正常工作,并且为应用层提供合适的服务接口。为了向应用层提供其接口,网络层提供了两个必须的功能服务实体,它们分别为数据服务实体和管理服务实体。网络层数据实体(NLDE)通过网络层数据服务实体服务接入点(NLDE-SAP)提供数据传输服务,网络层管理实体(NLME)通过网络层管理实体服务接入点(NLME-SAP)提供网络管理服务。网络层管理实体利用网络层数据实体完成一些网络的管理工作,并且,网络层管理实体完成对网络信息库(NIB)的维护和管理,下面分别对它们的功能进行介绍。3.2.1.1网络层数据实体(NLDE)网络层数据实体为数据提供服务,在连个或者更多的设备之间传送数据时,将按照应用协议数据单元(APDU)的格式进行传送,并且这些设备必须在同一个网络中,即在同一个内部个域网中。网络层数据实体提供如下服务:(1)生成网络层协议数据单元(NPDU):网络层数据实体通过增加一个适当的协议头,从应用支持层协议数据单元中生成网络层的协议数据单元。(2)指定拓扑传输路由,网络层数据实体能够发送一个网络层的协议数据单元到一个合适的设备,该设备可能是最终目的通信设备,也可能是在通信链路中的一个中间通信设备。(3)安全:确保通信的真实性和机密性。3.2.1.2网络层管理实体(NLME)网络层管理实体提供网络管理服务,允许应用与堆栈相互作用。网络层管理实体应该提供如下服务:(1)配置一个新的设备:为保证设备正常工作的需要,设备应具有足够的堆栈,以满足配置的需要。配置选项包括对一个ZigBee协调器或者连接一个现有网络设备的初始化的操作。(2)初始化一个网络:使之具有建立一个新网络的能力。(3)连接和断开网络。具有连接或者断开一个网络的能力,以及为建立一个ZigBee协调器或者路由器,具有要求设备同网络断开的能力。(4)寻址:ZigBee协调器和路由器具有为新加入网络的设备分配地址的能力。(5)邻居设备发现:具有发现、记录和汇报有关一跳邻居设备信息的能力。(6)路由发现:具有发现和记录有效地传送信息的网络路由的能力。(7)接收控制:具有控制设备接收状态的能力,即控制接收机什么时间接收、接收时间的长短,以保证MAC层的同步或正正常接收等。3.3网络层服务协议图3.1给出了网络层各组成部分和接口。网络层通过两种服务接入点提供响应的两种服务。它们分别是网络层数据服务和网络层管理服务。网络层数据服务通过网络层数据实体服务接入点接入,网络层管理服务通过网络层管理实体服务接入点接入。这两种服务通过MCPS-SAP和MLME-SPA接口为MAC层提供接口。除此之外,在NLME和NLDE间还有一个接口使得NLME可以使用网络层数据服务。3.3.1网络层数据服务网络层数据实体服务接入点支持对等应用实体之间的应用协议数据单元的传输。表3.2列出了网络层数据实体服务接入点支持的原语,下面小节就是对这些原语的讨论。3.3.1.1NLDE-DATA.request原语该原语请求从本地应用支持层实体到单个或者多个对等的应用支持层实体的协议数据单元传输。3.3.1.1.1服务原语的语法该服务原语的语法如下所示:表3.3描述了NLDE-DATA.request函数原语的参数3.3.1.1.2产生当一个NSDU要传送到一个对等的应用支持层实体时,本地应用支持层实体就会生成该原语。3.3.1.1.3接收当一个不与网络连接的设备接收到该原语时,该设备网络层将发出一个状态参数为INVALID-REQUEST的NLDE-DATA.confirm原语。网络层数据实体在接受到该原语时,为传送NSDU包,需要构造一个NPDU包。在处理过程中,如果网络层数据实体在发送NSDU包之前,先发送了NLDE-DATA.cindirm原语,则将发起所有的后续处理。在构造新的NPDU过程中,网络层头的目的地址域设置为参数DstAddr所提供的值,源地址域设置为MACPIB中属性macShortAddress的值。网络层帧头帧控制域中的路由发现域设置为DiscoverRoute参数的值。如果提供的Radius参数不为0,那么它将设置在网络层帧头的radius域,如果值为0,那么网络层帧头中的radius域设置NWKIB中nwkMaxDepth属性值的二倍。网络层将会生成一个如3.7.2.1小节所描述的系列号。这个序列号可以插入到网络层帧头的sequencenumber域。帧头的多点发送标志位将根据DstAddrMode的值设置。如果DstAddrMode的参数值为0x01,网络层帧头将包含multicastcontrol域,该域的设置如下:(1)如果该节点是DstAddr参数所包含的节点,那么multicastmode域置为0x01(2)否则,multicastmode域设为0x00(3)non-memberradius和maxnon-memberradius域按照NonmemberRadius的值设置一旦构造好NSDU包,如果是单播,将按照3.7.3.3小节所描述的过程为NSDU包确定传输路由;如果是广播,则参见3.7.4小节;如果是多点通信,则参见3.7.5.2小节。当确定了NSDU包传输路由后,通过MCPS-DATA.request原语来发送NSDU包,在该原语中参数SrcAddrMode和DstAddrMode都设置为0x02,表明适应16位的网络地址。参数SrcPANId和DstPANId应设置为MACPIB中的macPANId值。SrcAddr参数值设置为MACPIB中的macShortAddr值。DstAddr参数值为由路由程序所决定的下一跳地址。当TxOptions与0x01相与时,该参数值应为非零值,表示发送需要确认。在接收到MCPS-DATA.confirm原语时,网络层数据试题发送NLDE-DATA.confirm原语,该原语中的参数状态为MAC层所接收到的状态。如果在网络层信息数据库(NIB)中所确定的网络安全级别标准为一个非零值,并且SecurityEnable值为TRUE,则在帧发送之前,按照4.4小节所描述对帧进行安全处理。否则,网络层不对该帧进行安全处理。如果安全处理已经进行了,但是由于某些原因而失败了,那么,将丢弃该帧,并且网络层数据实体将发送NLDE-DATA.confirm原语,该原语的状态参数为安全方案所返回的值。3.3.1.2NLDE-DATA.confirm原语该原语提供了从本地应用支持层实体到一个对等应用支持成实体传送NSDU包请求原语的结果。3.3.1.2.1服务原语的语法该原语的语法如下所示:表3.4详细描述了NLDE-DATA.confirm原语的参数。3.3.1.2.2产生该原语为本地网络层数据实体对接收到NLDE-DATA.request原语而产生的响应。Status域将反映相应的请求结果,详见3.3.1.2.3小节。3.3.1.2.3接收接收到该原语,开始设备的APS子层将被通知传输请求的结果。如果传输成功了,那么status参数为SUCCESS。否则,status参数表明传输的错误。3.3.1.3NLDE-DATA.indication原语该原语表示一个NSDU包从网络层到本地应用支持层实体的传送。3.3.1.3.1服务原语的语法该原语的语法如下:表3.5描述了NLDE-DATA.request原语的参数。3.3.1.3.2产生当本地MAC层实体接收到一个适当地址的数据帧时,就生成该原语,并发送给应用支持层。3.3.1.3.3接收当应用支持层接收到该原语时,则被通知一个数据帧到达设备,就可得到设备所接收的数据。3.3.1.3.4网络管理服务网络层管理实体服务接入点为其上层和网络层管理实体之间传送管理命令提供接口。表3.6列出了NLME所支持的NLME-SPA原语,下面的小节详细介绍了这些原语。3.3.2网络发现网络层管理实体服务接入点支持运行网络的发现。采用NLME-NETWORK-DISCOVERY原语来发现网络。3.3.2.1NLME-NETWORK-DISCOVERY.request原语该原语支持网络层上层应用该原语来发现在POS范围内正在运行的网络。3.3.2.1.1服务原语的语法该原语的语法如下:表3.7详细描述了NLME-NETWORK-DISCOVERY.request原语的参数。3.3.2.1.2产生该原语由ZigBee设备网络层上层产生,发送给它的网络层管理实体,请求网络层发现当前在POS正在运行的网络。3.3.2.1.3接收网络层在接收到该原语后,将通过检查ScanChannels参数确定的信道以及ScanDuration参数所确定的扫描时间,发现在POS中正在运行的网络。通过MLME-SCAN.request原语进行扫描。在接收到MLME-SCAN.confirm原语后,网络层管理实体发送NLMENETWORK-DISCOVERY.confirm原语,其原语参数为发现网络信息以及随MLME-SCAN.confirm原语返回的状态参数值。3.3.2.2NLME-NETWORK-DISCOVERY.confirm原语该原语返回网络发现操作的结果。3.3.2.2.1服务原语的语法该原语的语法如下:表3.8详细描述了NLME-NETWORK-DISCOVERY.confirm原语的参数。表3.9给出了NetworkDescriptor参数中网络描述符所包
本文标题:ZigBee协议网络层
链接地址:https://www.777doc.com/doc-2829753 .html