2024年3月15日发(作者:)
Z-Stack协议中几个重要概念的理解
1. 原语
ZigBee设备在工作时,各种不同的任务在不同的层次上执行,通过层的服
务,完成所要执行的任务。每一层的服务主要完成两种功能:根据它的下层服务
要求,为上层提供相应的服务;另一咱是根据上层的服务要求,对它的下层提供
相应的服务。各项服务通过服务原语来实现。
可以把原语看作是API函数 是ZigBee中最基本的操作, 一般协议都有对
原语进行程序实现 在自己开发系统时,只需要调用,设定参数就好了 。如果要
自己实现底层的细节那就必须在开源的协议栈中,深入到原语的级别。也就是说,
对于原语我们只需要了解就行,真正开发程序只知道我们给系统哪些参数就行
了。
原语通常分为下面4种类型:
(1)Request:请求原语是从第N1用户发送到它的第M层,请求服务开始。
(2)Indication:指示原语是从第N1用户的第M层向第N2用户发送,指出对
于第N2用户有重要意义的内部M层的事件,该事件可能与一个遥远的服务请求
有关,或者可以是由一个M层的内部事件引起
(3)Respons:响应原语是从第N2用户向它第M层发送,用来表示对用户执行
上一条原语调用过程的响应
(4)Confirm:确认原语是由第M层向第N1用户发送,用来传送一个或多个前
面服务请求原语的执行结果。
2. 绑定
绑定涉及到两个网络节点,在绑定表中,它包含如下信息: IEEE地址、
EndpointID。其中Endpoint描述信息中的ClusterID必须值相等,而且属性方向
相反。节点间的绑定,通常是通过Endpoint的绑定来实现的。例如节点A 的
Endpoint可以和节点B 中的一个或多个Endpoint实现绑定,节点A的Endpoint
也可以和多个节点中的Endpoint进行绑定。
绑定是一种两个(或者多个)应用设备之间信息流的控制机制。绑定允许应
用程序发送一个数据包而不需要知道目标地址,APS层从它的绑定表中确定目
标地址,然后将数据继续向目标应用或者目标组发送。
绑定有间接绑定、直接绑定(OTA) 和直接绑定(通过串口) 3种方法
[6]
。通常
前两种使用较多。
① 间接绑定:间接绑定方法比较简单,它通过按键来发送绑定信息。需要绑定的
两个节点在一定的时间内发送绑定命令,当协调器在设定的时间内收到这样的两
条绑定信息时,它就会建立对应的绑定表
[7]
。建立了绑定关系的两个节点之间就
可以通过Endpoint来相互通信;
② 直接绑定(OTA) :直接绑定需要用户自己编写相应的绑定程序, ZigBee协议
栈中含有绑定API,这就要求用户通过适当的方法调用来实现绑定功能。这种方
法通常是使用一个节点直接向协调器发送两条绑定信息,这两条信息中的目标地
址和源地址相反
[8]
。 这种方法需要用户对协议栈有一定的了解,熟悉相关的API
函数。使用这种方法有许多好处,我们可以通过第三方节点来配置网络来是任意
两个节点之间建立绑定 关系,使网络通信方式更加灵活。而且第三方节点可以通
过与上位机互联,在上位机上我们可以建立一个界面,通过串口向第三方节点传
递配置信息,这样我们的配 置会更加方便;
③ 直接绑定(通过串口):这种方法是使用上位机通过串口向协调器发送绑定信
息,但这种方法需用户对串口API比较熟悉,这种方法一般使用的比较少,因为通
常我们的协调器需要与上位机通信,要把网络的信息传到上位机,一般不适合在
同一个上位软件再做网络的配置部分。通常直接绑定(OTA)方法比较适用,可以
专 门做一个网络的配置软件,来配置网络,当然间接绑定最简单,在项目中我们可
以综合考虑选择适当的绑定方式。
3.配置文件
Profile的书面意思是框架、轮廓,在这里它的意思是应用程序框架。它
是由ZigBee技术开发商提供,应用于特定的应用场合,它是用户进行 ZigBee技
术开发的基础。当然用户也可以使用专用工具建立自己的Profile。Profiles
是这样一种规范,它规定不同设备对消息帧的处理行 为,使不同的设备之间可以
通过发送命令、数据请求来实现互操作。
4. Endpoint
Endpoint是一种网络通信中的数据通道,它是无线通信节点的一个通信部
件,如果选择“绑定”方式实现节点间的通信,那么可以直接面对 Endpoint操
作,而不需要知道绑定的两个节点的地址信息。每个ZigBee设备支持多达240
个这样的Endpoints。Endpoint的值和 IEEE长地址、16位短地址一样,
是唯一确定的网络地址,通常结合绑定功能一起使用。它是ZigBee无线通信的一
个重要参数。
5.簇
在了解簇之前,首先要理解什么是间接通信和直接通信,即ZigBee技术可
以通过使用IEEE地址或短地址来通信,也可以通过绑定在各个节点间建立联系,
然后通过Endpoint和Cluster信息来进行通信。
间接通信:是指各个节点通过Endpoint的绑定建立通信关系,这种通信方式
不需要知道目标节点的地址信息,包括IEEE 地址或网络短地址
[5]
。 绑定关系表
通常被建立在网络协调器中,这样网络中的节点就可以通过Endpoint来访问与
之建立绑定关系的节点。这种通信方式离不开网络的协调器,因为绑定表放在这
个节点中, 每次的通信源节点把信息发送到Coordinator,由Coordinator将接
收信息中的Endpoint信息作为参数,查表找到对应的目标地址并转发。
直接通信:不需要节点之间通过绑定建立联系,它使用网络短地址作为参数
调用适当的API来实现通信,这种方法也需要通过协调器转发
[9]
。 直接通信部分
关键点在于节点网络短地址的获得。在发送信息帧之间,必须知道要发送的目标
短地址。由于网络协调器的短地址是固定的0x0000,因此人们可容易地把消息帧
发送到协调器。其它网络节点的网络短地址是它们在加入到网络中时由协调器动
态分配的,与网络深度、最大路由数、最大节点数等参数有关,没有一个固定的值。
所以,要想知道目标节点的网络短地址还需通过其它手段,可以采用通过目标节
点的IEEE地址来查询短地址的方法。 通常, ZigBee节点的IEEE地址是由用户
自己定义的,它们被写在节点的EEPROM中,这个作为ZigBee节点的参数一般会被
标示在节点上。所以,要得 到IEEE地址还是能够实现的。有了IEEE地址以后,
可以通过部分网络API的调用,得到与之对应的网络短地址
[。
当人们着手建立Profile时会遇到这个概念,它是一簇网络变量
( attributes)的集合,当然如果将通信帧属性选择为“Message”时,它也可以
发布者:admin,转转请注明出处:http://www.yc00.com/news/1710461843a1760827.html
评论列表(0条)