查看: 38709|回复: 36

葵花宝典--ZigBee Wireless Networks and Transceivers中文版,第三章(3.5节)

[复制链接]
wwh199169 发表于 2011-10-30 17:31:10 | 显示全部楼层 |阅读模式
本帖最后由 wwh199169 于 2011-10-30 17:44 编辑

我想有必要事先向各位坛友和论坛管理员声明,本帖非盗版帖或山寨帖噢!
     大家可能对这个标题确实很敏感了,因为此前rgmlfofiw坛友在论坛里分享了他的翻译大作——《葵花宝典--ZigBee Wireless Networks and Transceivers》,且已进行到了第三章。想必大家一定非常敬佩其坚强的意志、专业的翻译以及共享的精神!呵呵,在下也是如此啊!因此,在仰慕他的同时,念及他孤军作战之不易,也是基于对自己英文水平的一点点自信,通过论坛和他联系,表达了合作翻译该文档的愿望。仁兄十分爽快的答应了,故而这两天发愤苦读《葵花宝典》,本着rgmlfofiw精益求精的精神,也为了不辜负他的信任和期望经过两天稳坐金钟、茶饭不思、夜以继昼的苦战,完成了仁兄交代给在下的3.5-3.6两节的翻译任务! 因此现在怀着激动的心情来到论坛里和大家分享这两天的劳动成果!
不过,翻译水平可能不及rgmlfofiw兄,但在下也是尽己所能了,望各位坛友多多包涵,并积极提出意见和建议,在下一定虚心纳谏!
     先附上Word文档:
     以下是正文:


 楼主| wwh199169 发表于 2011-10-30 17:41:22 | 显示全部楼层
回复 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
 楼主| wwh199169 发表于 2011-10-30 17:43:22 | 显示全部楼层
回复 2# wwh199169


    设备profile提供对设备和服务,以及绑定管理的支持。设备发现(Device discovery)是一种决定PAN上其它设备特性的能力。在服务发现(service discovery)中,设备要求网络中的另一个设备提供诸如其profile标识符或其ZigBee描述(如节点描述或简单描述)之类的详细信息。设备也能请求另一个设备的输入或输出簇列表。簇列表能够在绑定过程中用来连接设备。
ZigBee设备profile(ZDP)命令通过使用APS数据服务而被发送。ZDP命令格式见图3.50。第一部分是8位的执行数字。任何应用对象拥有一个计数器,每当一个新的transaction被传送的时候这个计数器就加1。计数器的内容被复制到ZDP命令中的序列数字域(sequence number field)。执行数据(transaction data)包含了命令本身以及和命令相关的一些数据。完整的ZDP命令清单和命令的简单描述在Appendix  B中有提供。有两组主要的命令:客户机服务和主机服务。每一组ZDP命令被分为三种:设备和服务发现,绑定管理,网络管理。这三组中的命令组要来自ZDO中的三个对象,设备和服务发现对象,绑定管理对象,网络管理对象。
设备和服务发现命令允许一个设备请求信息,例如网络地址,网络中其他设备的描述符。同时也允许一个设备在初始发现缓存设备(primary discovery cache device)中存储自己的描述符或者配置网络中其他设备的用户描述符。绑定管理命令允许一个设备创建或解除绑定关系、在初始绑定缓存设备(primary binding cache device)中存储绑定表、创建备份绑定表。恢复先前存储的备份绑定表。网络管理命令用来识别邻居网络,请求路由和邻居表信息,管理网络中的加入和离开设备。
在ZDO还有两个对象:网络管理器和安全管理器。网络管理器包含了网络关联原语和NLME(如NLME-JOIN.request)接口。这些原语见于3.4.10章节。安全管理对象包含和安全相关的原语和APSME接口。安全管理器的职能在3.6节会进一步阐明。
ZDO包含配置属性,但这些属性和zigbee设备profile没有联系,ZDO属性以Config _开始并且包含诸如节点描述符和网络安全等级的一些信息。详细配置属性列表可以参照zigbee说明文件。
3.5.3  APS子层
应用支持子层通过APSDE为应用对象和设备对象提供数据服务。APSDE接受那些从ZDO或是应用对象以协议数据单元(PDU)传来的数据,APSDE加上适当的帧头创建了一个APS数据帧,被传送到网络层。
应用支持子层的管理实体(APSME)包含一些原语处理三种任务:绑定管理,APS信息数据库管理,和组管理。绑定原语(APSME-BIND.request 和APSME-UNBIND.request)允许上层通过在本地绑定表中创建入口请求绑定两个设备或者在绑定表中移除相应的入口来解除绑定。APSME-GET.request和APSME-SET.request原语允许上层在APS信息库中读和写属性。组管理原语用来在组表中加入或者移除节点中相应的端点。
单播,广播,组播三种发送信息的方式我们在3.4章节中已有讨论。APS支持的第四个功能就是间接寻址。在间接寻址方式下,一个设备可以在不知道目标地址的情况下和另一个与之绑定的设备通信。间接传输通过原设备被发送到协调器。协调器从绑定表中查找源地址,端点地址和簇标识符,并将信息重新发送到相应的目标地址/端点。
图3.51是zigbee2006通用的APS帧结构。在ZigBee Pro版本中,在APS计数器域后有个被称为“扩展头(Extended Header)”的可选域。有三种类型的APS帧:数据帧,命令帧,应答帧。图3.51所示的帧类型子域决定了帧的类型。发送模式子域表明传输选项。如果传送模式是间接寻址,间接寻址模式子域指定了哪种地址域(源地址或目的地址)必须在帧中省略。如果间接寻址模式区域被设置为1,这就意味着这个帧是传送给ZigBee协调器,因此目标端点区域必须省略。如果区域被设置为0,说明这个帧是从ZigBee协调器发送到目的地址,那么源端点域必须省略。安全子域由安全服务提供器(SSP)设置。如果应答请求区域被设置为1,接受者必须发回一个应答帧。
如果当前为组寻址方式,那么信息将会传送到属于该组成员的所有端点。目标端点域和组寻址域在一个帧当中不能同时出现。簇标识符域只在一个绑定操作中出现并且包含在绑定过程中用到的簇标识符。APS计数器是一个8位计数器,它被加入到每个aps的帧中并且当一个新帧传送时就加1。该计数器有助于帧接收者识别,并忽略重复的帧。
图3.52显示了这三个APS帧类型。数据帧和通用帧格式相同。ZigBee规范除了3.6节包含的安全相关的命令外,并未定义任何APS命令。应答帧既无载荷也无组地址。应答帧从不会被发送到一组设备。


3.5.4  APL层职能总结
ZigBee APL层有以下三部分组成:
    ●  Application Support (APS) sublayer  应用支持子层
    ●  ZigBee Device Objects (ZDO)  ZigBee设备对象
    ●  Application framework   应用层框架
应用支持子层(APS)提供网络层(NWK)和应用层(APL)之间的接口。以下是应用支持子层的职能:
●  保存绑定表  
●  在相互绑定设备之间传送消息
●  管理组地址
●  映射64位IEEE地址到16位网络地址,反之亦然
●  提供可靠数据传输  
ZDO这一层利用网络层和APS子层服务来执行一个设备,其隶属于三种ZigBee设备之一:ZigBee协调器,路由器,或终端设备:
●  定义网络角色
    ●  发现网络中的设备及其应用,初始化或响应绑定请求
    ●  执行安全相关的任务
ZigBee中应用层框架是应用对象运行的环境。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
rgmlfofiw 发表于 2011-10-30 17:58:12 | 显示全部楼层
我靠,你这速度也太快了。有必要让你往前翻译,你搞定第三章,我搞定次要的。
 楼主| wwh199169 发表于 2011-10-30 18:03:00 | 显示全部楼层
回复 4# rgmlfofiw


    呵呵,也是鏖战两天才出这么点成果啊~~~
   你在线?不如加个QQ(635365217),有事详谈!
ZS10060201 发表于 2011-11-3 15:19:11 | 显示全部楼层
不得不敬佩坛友们的精神!
gh329zby 发表于 2011-11-7 17:27:43 | 显示全部楼层
佩服佩服
bennyyu 发表于 2011-11-22 20:06:35 | 显示全部楼层
值得敬佩!
nich2010 发表于 2011-12-4 11:22:50 | 显示全部楼层
致敬,谢谢
一月的萧邦 发表于 2012-2-2 09:59:38 | 显示全部楼层
好东西拿走了,谢谢分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表