|
回复 1# wwh199169
3.5 应用层(Application Layer)
应用层(APL)是在ZigBee无线网络协议栈中最高的一层。应用层包含三个组成部分,见下图3.44:应用支持子层(APS),ZigBee设备对象(ZDO),以及应用层框架(AF)。
应用支持子层(APS)提供了网络层(NWK)和应用层(APL)之间的接口。该层和所有较低层相似,支持两种服务:数据和管理服务。APS层数据服务由APS数据实体(APSDE)通过APSDE服务接入点(APSDE-SAP)提供。管理功能由APS管理实体(APSME)通过APSME服务接入点(APSME-SAP)提供。
APS子层的常量和属性分别始于apsc和aps。APS属性包含在APS信息库(APS IB或AIB)中。APS常量和属性列表由ZigBee协议栈规范提供[3]。
ZigBee应用层框架(AF)是为驻扎在ZigBee设备中的应用对象控制和管理协议栈各层提供活动的环境。应用对象由制造商开发,也正是在这里定制了基于各种不同应用的设备。在一个设备中可以有多达240个应用对象。
应用对象使用APSDE-SAP在应用对象节点之间发送和接收数据(图3.44)。每个应用对象都有一个专有的终端节点地址(端点1—端点240)。端点0用于ZDO。端点地址255被设置用来广播消息到所有的应用对象。设定终端地址允许多个设备共享同一频段。在2.1.4节的灯控制例程中,多个灯连接在同一个频段里。每个灯都有一个专用的端点地址,并且能够独立的打开或关闭。
ZigBee设备对象(ZDO)提供了APS子层和应用层框架(AF)之间的接口。ZDO包含了所有运行在ZigBee协议栈上的应用所共有的功能。例如,定义设备属于ZigBee协调器、路由器或终端设备三种逻辑类型之一就是ZDO的职责。ZDO使用原语来执行它的任务,并通过APSME-SAP进入APS子层管理实体。应用层框架(AF)通过ZDO公共接口与ZDO相互作用。
关于应用层框架(AF)、ZDO和APS子层的细节的详细回顾见于以下三节。
•3.5.1 应用层框架(AF)
ZigBee标准提供了在开发应用时使用应用profiles的选项。应用profiles的使用使得不同开发商开发的基于某种特定应用的产品之间有更多的共同使用性。比如,在灯控制情景中,如果两个开发商使用同一个应用profiles来开发他们的产品,一个开发商制造的开关将能够打开或关闭另一个开发商制造的灯。应用profiles也是基于ZigBee profiles的。
每个应用profiles都由一个被称作profile标识符的16位数值所标记的。只有ZigBee联盟能够设定profile标识符。开发商如果自行开发了一个profile,他可以向ZigBee申请一个profile标识符。ZigBee联盟评估被提议的应用profile,如果其符合联盟准则,一个新的profile标识符就会被设定。应用profiles以与其相应的应用来命名。例如,家庭自动化应用profile提供一个公共平台给开发用于家庭自动化的基于ZigBee产品的开发商们。
应用profile的总体结构见图3.45。应用profile包含两个主要组成部分:簇(clusters)和设备描述(device descriptions)。簇是一组整合在一起的属性。每个簇都由称为簇标识符(cluster identifier)的唯一16位数字所标记。簇中的每个属性也由称作属性标识符(attribute identifier)的唯一16位数字所标记。这些属性用来存储数据或状态值。例如,在温度控制应用中,作为温度传感器的设备能在属性中存储当前温度数值。然后另一个作为火炉控制器的设备就能接受该属性值,并据此打开或关闭火炉。应用profile不包含簇本身,而是包含一个簇标识符列表。每个簇标识符都专一地指向该簇本身。
应用profile的另一个部分是设备描述(device descriptions)(图3.45)。设备描述提供关于设备自身的信息。例如,可供使用的频率波段,设备的逻辑类型(协调器、路由器或终端设备),以及设备提供的剩余电量,都是由设备描述所提供的。每个设备描述由一个16位数值所标记。ZigBee应用profile使用描述数据结构(descriptor data structure)这一概念。正是用这一取代了包含应用profile数据的方法,一个16位数值作为指向数据所在地址的指针而被保存。该指针称为数据描述指针。当一个设备发现网络中另一个设备的出现时,设备描述就会被传送以提供关于该新设备的基本信息。
设备描述由5个部分组成:节点描述(node descriptor),节点电源描述(node power descriptor),简单描述(simple descriptor),复杂描述(complex descriptor)和用户描述(user descriptor)。节点描述提供诸如节点逻辑类型和制造商编码这类信息。节点电源描述决定了设备是否由电池供电,并提供当前电量。Profile标识符和簇由简单描述提供。复杂描述是设备描述的可选部分,它包含诸如序列号和设备模型名称之类的信息。任何关于设备的附加信息都可以被用户描述所包含。用户描述可以多达16位ASCII码。例如,在灯控制应用中,安装在过道的墙上开关的用户描述区域就被读作“过道开关(Hall switch)”。
ZigBee-2006的节点描述区域见图3.46。节点描述是设备描述的命令部分。逻辑类型可能是协调器、路由器或终端设备。复杂描述和用户描述是可选项,如果它们在节点描述中的相应区域被设为0,则不会作为设备描述的组成部分而被提供。APS标志区域决定了APS子层的功能。频段(868MHz, 915MHz, 或2.4 GHz) 在频段区域中被指定。MAC功能标志和之前在图3.25中显示的MAC功能区域一样。制造商可以向ZigBee联盟申请并获得一个制造商编码。该编码包含在节点描述中。8进制的APS子层数据单元(APSDU)长度极大值在长度极大值缓存区域中被指定。送往或来自节点的单个消息的长度极大值由传送极大值区域提供(8进制)。在ZigBee-Pro版本中,传送输入长度极大值和传送输出长度极大值是分离的两个区域(每个16位)。
服务器掩码区域提供关于该节点系统服务功能的信息。服务器(server)是为网络中其它设备提供特定服务的设备。如果每一位都被置位为1,设备就拥有如图3.46所示的相关功能。信托中心(trust center)被网络中的所有设备所信任,并为网络的用途和终端-终端应用结构管理分配安全密钥。安全特征见于3.6节。
初始绑定表缓存设备只要还有存储空间剩余,就允许其它设备使用该设备来存储它们的绑定表。绑定过程在这一子区域中被进一步阐明。初始绑定表缓存能用来备份绑定表目录,并能在任何必要的时候加以存储。一个设备可以选择保存被称为源绑定表的自身绑定表,而不储存初始绑定表缓存。然而,任何设备都能在初始绑定表缓存设备中存储源绑定表的备份,并且能在必要的情况下予以恢复。
一个ZigBee网络也许会有一个初始发现表缓存设备。该设备是ZigBee协调器或路由器,其被用以储存诸如其它设备的节点描述和电源描述之类的各种描述。像长时间休眠这样的终端设备可以在初始发现缓存中储存它的描述。如果网络中的某设备尝试找到此正处于不活动状态的休眠终端设备的相关信息,它可以从初始发现缓存设备获得此信息以作替代。如果一个网络包含休眠中的ZigBee终端设备,则其必须拥有至少一个初始发现缓存设备。
节电电源描述域如图3.47所示。接收器可能会在设备处于空闲状态时保持开启状态。而这对节电设备来说可能就有所不适。除此以外,设备可以关闭接收器并且只做周期性地开启。另一种选项是,在任何需要接收消息时由某种外部触发来打开接收器。节点或许有多个可用电源。对每个可用电源而言,可用电源域中的相对应位被置为1.例如,如果节点同时有主电源和可充电电池,可用电源域就会读作0011。当前电源在当前电源域中被指定。
表3.13是简单描述域的列表。终端节点域包含该节点内的设备终端地址。该终端节点所支持的应用profile标识符位于应用profile标识符域。该设备所支持的设备描述由一个应用设备标识符域所提供的16位数值所指定。此设备描述自身也许会随时改变,而应用设备版本域决定了哪个版本的设备描述被该设备所支持。所有该设备所支持的簇标识符都包含在简单描述中。
图3.48表明了簇标识符(clusterIDs)在建立绑定关系上的作用。绑定是一种在相关联的应用之间建立逻辑连接的任务。绑定表里逻辑上相关联的设备被称为相互绑定设备。在本例中,两个墙上开关共享一个频道。因此两个开关都共用一个IEEE地址和网络地址。两个开关由不同的终端地址所区分。每个开关都有自己的应用对象。每个应用对象又能通过与其相对应的终端地址所获取。所有的三个灯也都连接在同一个频道上,每个灯都有一个专用的端点地址。簇可以是输入簇(input cluster)或输出簇(output cluster)。在绑定进程中,两个设备如果都有完全相同的簇标识符,但一个是输入簇而另一个是输出簇,则它们会被连接。终端1的墙上开关和终端1的灯有着完全相同的簇标识符,因此被认为是相互绑定设备。终端2的墙上开关被绑定到终端2和终端3的灯上。关于这些逻辑连接的信息存储在绑定表中。
绑定本身可由安装者建立。例如,安装者可以按下两个物理按钮:一个位于墙上开关,一个位于灯本身,来建立两个设备之间的绑定。这将会在与这两个设备相对应的绑定表里建立一个入口。更特别的是,按下墙上开关的按钮会启动发送终端设备绑定请求命令(End_Device_Bind_req)到ZigBee协调器。该命令是下一节要讨论的ZigBee设备profile中的一部分。接收到该命令后,ZigBee协调器等待一段时间以接收来自灯的终端设备绑定请求命令。如果第二个绑定请求在超时之前到达,ZigBee协调器就会依据它们的profile标识符和输入/输出簇列表将二者相连接。这被称为简单绑定机制。在简单绑定中,用户介入被用以识别此设备组。
3.5.2 ZigBee设备对象(ZDO)
图3.49显示了作为接口连接APS子层和应用层框架的ZigBee设备对象(ZDO)。ZDO负责初始化APS、NWK以及安全服务提供者(SSP)。与应用层框架中所定义的应用profile类似,也有一个定义ZDO的profile,它被称为ZigBee设备profile(ZDP)或就叫设备profile。设备profile包含设备描述和簇,但设备profile簇不使用属性。ZDO自身就有结构属性,但这些属性并不包含在设备profile中。设备profile和其它任一应用profile之间的另一个区别在于,应用profile是为特定的应用而创建,然而设备profile定义了所有ZigBee设备所支持的功能。设备profile只有一个设备描述。簇被分为强制簇和可选簇。强制簇必须在任何ZigBee设备上被执行。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|