专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
TI
Zigbee解析: NWK层作用
2019-07-20 16:26
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
3104
2
1108
在实际应用中,对MAC
及下层的直接修改较少,因此直接看比较重要的NWK层。
首先看一下NWK
层的通信方式及支持的拓扑结构:
·
协调器的NWK
层为网络中每一个设备分配一个短地址。同时NWK层会限制数据帧传送 的跳数(Hops),这个参数通常称为Radius,即通信半径。另外,通信机制分为三种:Broadcast,Multicast和Unicast。
o
广播时,目的地址是0xffff
,PAN ID也是0xffff;任何一个设备的APS子层可以调用NWK接口来发送一个广播数据;广播数据不需要ACK,所有广播数据会被协调器和路由器记录在一个叫BTT(Broadcast Transaction Table)的表中。
o
多播时,消息发送到网络中具有相同Group ID
的节点,即同级节点。每个节点可以属于多个不同的Group,同时会保留这种身份记录在多播表中。多播有两种模式:MemberMode和Nonmember Mode,前者多播由组成员发送消息,后者由非成员将消息转发到成员节点。在Zigbee中,多播只限于数据,对命令不进行多播。
·
除了上述基本模式,还有一种Many-to-One
,即多个节点向单个节点发送数据,非常适用于WSN。只不过是所有节点(包括协调器和路由器)向Sink节点发送数据。
接下来,看一下Zigbee
中NWK支持的两种常用拓扑:
1.
Hierarchical Topology(Tree)
·
Zigbee
支持树形拓扑(即Mesh
网状拓扑的一种),特别是提供了一种叫
缺省分布式地址分配
的方式,可以为树形拓扑结构中每一个节点单独分配地址,分配地址时只需要知道树的深度和最大孩子节点数即可。这种算**用到一个CSkip函数,参数d表示深度,其示意图如下:
2. Mesh
拓扑:这种拓扑允许节点自动选择路由,因此可以自修复路由,更加健状,但是需要更多自行处理。
再接下来,看一下NWK
层最最重要的功能:Route,分为以下几个部分
:
·
Route Discover
:路由发现由协调器节点和路由器节点完成,它们会根据LQI
(Link Quality Indicator)来评估包传输成功率。在这个过程中,会用到Routing Table,Routing Discovery Table及每个节点都有一个Neighbor Table(如下表)。此外,APL层可以调用NLME-Route-Discoery.request原语来请求NWK实现路由发现。如果RD请求只包含一个目的地址,那就是为Unicast通信找路由;否则如果目的地址是一个16位的Group ID,则是多播寻路由;如果APL层没有提供任何目的地址,那么就是请求Many-to-one方式寻路由。对于广播方式,不需要也不允许请求Routing Discovery。
·
Route Maintenance and Repair
最后,看一下NWK
层提供的管理服务功能
,
这一点对于理解组网过程十分重要。主要包括网络发现、网络形成等。
·
Network Discovery
:由APL
层调用,NWK层就会利用MAC层的信道扫描来发现是否存在其它网络,扫描完成后会向APL层返回相关的参数。
·
Network Formation(
生成协调器)
:NWK层在收到APL的请求后,可以将一个节点设置为协调器。首先,在上一步的主动扫描后,会进行一个ED扫描,该请求是由NLME向MLME提出。根据ED扫描结果,NWK层会选择一个Frequency Channel和一个PAN ID。通常协调器为设置0x0000作为 它自身的MAC地址。
·
Establishing the device as a router
:由APL
调用NWK层的NLME-START-ROUTER原语来完成。
·
Joining and Leaving a network
:协调器和路由器的NWK
层允许其它设备通过请求MLME并设置macAssociationPermit=TRUE,来完成加入或者退出一个网络。当然,节点的高层可以调用NLME-JOIN原主来请求NWK层将节点加入到一个已经存在的网络;相反,应用层也可以调用NLME-LEAVE原语来离开一个网络。
·
Resetting the NWK Layer
:由APL
层调用NLME-RESET原语实现;
·
Synchronization
:由NLME-SYNC
原语实现,主要用于节点间同步或者从协调器或路由器提取数据。
NWK
层数据帧(Frame)
格式:
NWK
层数据按类型分为Data
和Command,格式如下:
其中,Command
包括以下:
以下是每一种命令中,NWK Payload的格式:
我们据此来分析一下前面提到的,TI Packet Sniffer收到的每一个数据包中的NWK Payload内容:
根据上面看到的,该包是Link Status查询包,这是Zigbee-PRO新增的命令,上面没有这个包的格式,无法继续分析,但是已经知道该包的含义。因此可以确定Collector路由器节点启动后会周期性发送NWK层的Link Status以测试链路层的状态,该消息的Radius是1。
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
一代掌门
2019-07-20 19:29
精彩回答 2 元偷偷看……
0人看过
加载中...
查看其它2个回答
一周热门
更多
>
相关问题
CPLD的方波输出
4 个回答
11个版本Quartus II 软件下载,安装包网盘合集,附教程,47G!
20 个回答
请大家帮忙到21IC发展大家谈支持我申请新版面
20 个回答
【通知】21ic中国电子网服务条款 (所有人员必读)
1 个回答
满载而归乙亥年,大展鸿途庚子年---集签赢好礼
20 个回答
相关文章
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
TI
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
一周热门 更多>