网络层数据流程原语说明
1.数据发送部分原语
DstAddrMode, //目的地址寻址模式,0x01=16位短地址
DstAddress,
DstEndPoint,
ProfiledId,
ClusterId,
SrcEndpoint,
asduLength,
asdu,
TxOptions
DiscoverRounter,//指定路由发现时采取的措施
RadiusCounter
)
APSDE-SAP服务接口实现了在对等的应用实体之间传输应用协议数据单元。APS数据请求原语APSDE-DATA.request请求吧本地NHLE的一个PDU(即ASDU)传输到对等的NHLE实体。当本地NHLE有数据(PDU)需要传输时,就会产生该原语,数据可以采用直接寻址方式发送以及数据加密服务。
DstAddr,
NsduLength,
Nsdu,
NsduHandle,
BroadcastRadius, //允许广播帧传输距离
DiscoverRoute,
SeurityEnable
)
本地应用支持层生成该原语,用来传送一个NSDU数据包到对等的应用支持层,原语参数如上所示。
本地网络层数据实体收到该原语后,为传送NSDU包,需要先构造一个NPDU包(网络层协议数据单元)DstAddr的值不为0xFFFF将忽略BroadcastMode和BrocastRadiuds这两个参数。构造好NSDU包后将为NSDU包确定传输路由,确定了NSDU包的传输路由后,通过MCPS-DATA.request原语来发送NSDU包。该原语定义如下:
SrcAddrMode,
SrcPANId,
SrcAddr,
DstAddrMode,
DstPanId,
DstAddr,
msduLength,
msdu,
msduHandle,
TxOptions,
)
在本原语中,参数SrcAddrMode和DstAddrMode都设为0x02,即使用16为网络地址;SrcPanId和DstPanId参数应设为MAC PIB中的macPANId的值;SrcAddr参数值设为MAC PIB中的macShortAddr值;DstAddr参数值为由由程序所决定的下一跳的地址;TxOptions参数与0X01或运算,所得到的结果非零,表示此次发送需要确认。在网络层实体接收到MCPS-DATA.confirm原语后,网络层实体发送NLDE-DATA.confirm原语,该原语中的参数状态为MAC层所接受到的状态。
如果网络层信息数据库(NIB)中所确定的网络安全级别为一个标准为非零值,并且SecurityEnable值为TRUE,则在帧发送之前,网络层将会对帧进行安全处理。否则,网络层不对该帧进行安全处理。
MAC层数据实体在接收到MSDU后,将构造MPDU(MAC层协议数据单元),具体方法是在MSDU前加上帧头MHR,在MSDU后加上帧尾,即MPDU=MHR+MSDU+MFR
在发送连接请求之前,MAC层管理实体先向网络层发送一个带有TX_On的PLME_STE_TRX_STATE.request原语以激活发射机,当MAC层管理实体收到带有SUCCESS或TX_ON状态的PLME_STE_TRX_STATE.confirm原语后,MAC层实体将向物理层发送PD-DATA.request原语发送MPDU。
psduLength,
psdu,
)
物理层实体在接收到PSDU后,物理层实体将构造网络层协议数据单元PPDU,然后通过发射机将PPDU送出。具体方法是PPDU=SHR+PHR。其中:MHR是同步码序列,PHR是PSDU的长度。
2.数据接收部分原语
psduLength,
psdu,
ppduLinkQuality
)
物理层利用PD-DATA.indication原语想本地MAC层实体传送一个MPDU(即PSDU),其中:参数psduLength=0或者psduLength>aMaxPHYPacketSize时,表示没有数据或数据有误,就不会生产该原语。
SrcAddrMode,
SrcPANId,
SrcAddr,
DstAddrMode,
DstPanId,
DstAddr,
msduLength,
msdu,
msduLinkQuality, //接受MSDU时所测得的LQ值
SecurityUse,
ACLEntry
)
当MAC层管理实体接收到远方传来的数据帧后,通过该原语MAC层将接收到的数据帧进行适当的信息过滤后,发送至服务协议汇聚层(SSCS)。当服务协议汇聚层(SSCS)收到MCPS-DATA.indication原语时,就能够得知所发生的数据已到达设备,并表示已经成功地接受到来远方发送来的数据信息。
DstAddress,
NsduLength,
Nsdu,
LinkQuality
)
当本地MAC层实体接收到一个适当的地址数据帧时,就生成该原语,并发送给应用支持层。
DstEndPoint,
SrcAddrMode, //源地址寻址模式,0x01=16位短地址
SrcAddress,
SrcEndpoint,
ProfiledId,
ClusterId,
asduLength,
asdu,
WasBroadcast
SecurityStatus
)
本原语用来指示一个数据PDU从APS子层传送到本地应用层实体。
3.应答原语
如果最终接收方收到的帧的确认请求(AR=1)子域为1,则它需要对接收帧进行确认。如果接收方正确接收到要求确认的帧,它将产生并向发送方发送一个确认帧。如果是间接传输模式,则Zigbee协调器将产生并向此次数据发送的发起方发送一个确认帧,然后在每一次信息转发时都把数据帧帧控制字段的确认请求子域置为1,要求接收者对于转发的帧进行确认。
对于发送据发送的应答(ACK)时从APS应用子层开始的。APS确认帧只有帧头部分,它包含帧控制、簇标识和配置文件标识字段。
psduLength,
psdu,
psduLinkQuality //从接受数据单元中测试链路品质
)
当物理层收到远方发送过来的确认帧(ACK)后,通过该原语吧收到的数据送给MAC层,MAC层收到PD-DATA.indication原语后,即可获得物理层所接收到的额数据信息。
msduHandle,
Status,
)
本语句有MAC层实体生成,并发给MAC层的服务协议汇聚层实体,该原语返回一个对MCPS-DATA.request的响应,指示发送请求状态为成功(SUCCESS)。
NsduHandle,
Status
)
该原语为本地网络层数据实体对对接受到的NLDE-DATA. request原语而参数的响应,指示发送请求状态为成功(SUCCESS)。
DstAddrMode, //目的地址寻址模式,0x01=16位短地址
DstAddress,
DstEndPoint,
SrcEndpoint,
Status
)
APSDE-DATA.confirm原语由APS子层实体产生,作为对APSDE-DATA.request的相应。SUCCESS状态指示请求发送成功。