silabs ZLL

Silabs zll
1.介绍
     ZigBee Light Link (ZLL)配置文件是基于ZigBee PRO的ZigBee应用配置文件,用于场外交换和消费照明应用程序。根据规范,ZLL概要文件的声明目的是:
为照明设备提供进化的消费者体验,其中进一步的购买增强了整个系统。
开发一个简单和合理的ZigBee规范在消费者市场的场外灯具和灯具。
开发解决方案,完全符合消费者市场边界条件,包括调试,安全性,易用性,网络规模,成本等。
能够解决ZigBee家庭自动化(ZHA)配置文件中未解决的非安装者消费者照明相关功能。
ZLL旨在与其他ZigBee配置文件(如家庭自动化)本地互操作,但最初并非用于高级住宅,商业建筑,工业或专业户外照明网络。
2.ZLL网络调试流程
     ZLL网络调试通过称为触摸链接的过程进行。触摸链接,设备发现和识别有两个初始阶段,然后是许多依赖于所涉及设备状态的场景。触摸链接涉及两方,一个“发起者”,一个是启动发现过程的设备(通常是某种控制器),一个“目标”,即被发现的设备(通常是一个灯)。自从离开网络或形成新网络以来未参与任何触摸链接的设备被称为“工厂新”,并且在某些情况下的行为与不是工厂新的不同的行为不同。在适用的情况下,这些差异在下面描述。触摸链接允许发现并将两个紧邻的设备连接到同一ZLL PAN中的方法。
1)设备发现
    只有“具有地址分配能力”的设备,即那些能够维护用户和可用网络地址列表以供其他设备分配的设备才能启动设备发现。在发起方侧,设备发现以8个PAN间扫描请求命令帧的广播开始,其中ZLL信息字段的触摸链路发起方子字段被设置为1并且标称输出功率为0dBm。传输过程如下:

发起者切换到第一主ZLL信道(即信道11)并连续广播五次
扫描请求PAN间命令帧。

然后,发起者切换到剩余的三个主要ZLL信道,并在每个信道上广播单个扫描请求命令帧。
在每次传输之后,发起者等待固定的时间量以接收任何响应。
如果需要扩展扫描(即,为了重置为新工厂或如果启动器是非ZLL网络的一部分),则启动器切换到每个辅助ZLL通道并在每个通道上广播单个扫描请求命令帧,并且等待接收任何回复。
如果接收到具有有效事务标识符的任何响应,则发起者可以通过单播设备信息请求 PAN间命令帧来请求关于目标的子设备的信息 ; 但是,如果目标只有一个子设备,则这是不必要的。如果接收到具有有效事务标识符的任何响应并且扫描响应帧间PAN命令帧的ZLL信息字段的触摸链接优先级请求位被设置为1,则发起者可以考虑对这些设备进行优先级处理。

设备发现操作可以随时中止。如果在扫描期间,非工厂新启动器从工厂新目标接收到另一个扫描请求PAN间命令帧,则忽略它。

在目标端,如果目标是终端设备,则可能首先需要唤醒它以使其能够启用其接收器并响应来自发起者的扫描。这是通过特定应用程序来完成的。如果工厂新目标启动扫描,则它将延迟到来自非工厂新启动器的扫描请求 PAN间命令帧并相应地响应。接收扫描请求命令帧的设备可以选择是否响应; 如果是,则设备将扫描响应 PAN间命令帧单播回到接收扫描请求命令帧的同一信道上的发起者。如果发起者成功接收到响应帧,则目标将忽略连续扫描请求来自同一启动器的具有相同事务标识符的帧。如果其RSSI高于特定制造商特定阈值并且ZLL信息字段的链路发起方子字段被设置为1,则预期目标将仅响应扫描请求帧。然后以0dBm的标称输出功率发送扫描响应帧。 。目标设置扫描响应的RSSI校正字段为了补偿无线电与产品外侧之间的RF信号损耗,可以对某个产品特定的RSSI校正值进行帧化处理; 然后,发起方可以使用每个发现目标中的此值来选择适当的设备。如果目标设备希望在触摸链接期间被发起者视为优先级,则ZLL信息字段的触摸链接优先级请求比特被设置为1.目标将响应标识符字段设置为随机(非顺序)值。如果不是工厂新的,则目标将扩展的PAN标识符,网络更新标识符,逻辑信道,PAN标识符和网络地址字段设置为路由器在其启动阶段期间从NVM确定的相应值。发起者和目标之间的所有未来的PAN间通信都在逻辑信道字段中指示的信道上进行。收到一个设备信息请求 PAN间命令帧,目标应通过单播相应的设备信息响应帧间PAN命令帧来响应它。
2)鉴定
    设备发现操作可以产生潜在设备的列表,应用程序可以从中选择一个或多个设备以进行进一步处理。为了支持用户确认,发起者可以让所选择的设备识别他们自己。

一旦在设备发现事务内,发起者就生成并将PAN间命令帧的识别请求发送到适当的已发现目标设备。的识别请求帧必须包含相同的PAN间事务标识符这是在所述扫描请求帧间PAN命令帧设备发现期间使用。如果发起者希望进一步发送识别请求帧,则必须在活动事务时间内发送。否则,必须重复设备发现。

在接收到具有有效事务标识符的PAN间命令帧的识别请求时,目标根据识别时间字段的值以应用特定方式(例如,通过闪烁灯)识别其自身一段时间。如果此字段的值为0x0000,则设备立即停止其标识操作。如果此字段的值为0xffff,则设备会在特定于应用程序的时间标识自身。对于所有其他值,设备以1秒为单位标识自己等于此值的时间。如果接收到具有无效事务标识符的标识请求帧,则忽略该帧。没有对标识请求帧生成响应。识别请求是非阻塞的。
3)形成和加入情景  
    如2.2节所述,此时发起者可以形成一个新网络并将识别出的目标带入网络。如果启动器已经形成网络,则它可以将路由器或终端设备加入其网络。网络开始请求帧和网络加入路由器/网络加入终端设备帧之间的主要区别在于后一帧中没有Initiator IEEE地址和Initiator网络地址字段。另外,

网络参数应该已经存在,并且应该包含在连接帧中。最后,对于后面的连接方案,在发起方端不需要网络重新加入请求。
3.ZLL和非ZLL设备
    除了轻触链接调试之外,ZLL设备(在应用程序控制下)支持经典的ZigBee调试。由于经典的ZigBee调试机制不支持一系列地址的概念,即使设备具有地址分配能力,它也只会被分配一个地址。只有在终端设备与另一个ZLL设备进行触摸链接时,才能分配网络和组地址范围。应用程序可以请求主要网络发现,其中设备将在主要ZLL信道集上进行。如果找到任何合适的网络,则终端设备尝试通过经典的ZigBee连接机制加入网络。如果连接成功,则对设备进行身份验证,并等待从其父设备接收网络密钥。收到网络密钥后,ZLL地址和组属性设置为0x0000。如果未找到合适的网络或加入不成功,则通过辅助ZLL通道集启动辅助网络发现,并且如上所述继续加入和验证过程。如果在辅助信道上找不到合适的网络,则连接失败,或者验证失败,ZLL设备随机选择一个主ZLL信道并调谐到它。如果它是终端设备,则它进入低功率休眠状态并且不执行进一步处理。如果是路由器,则启用其接收器并等待touchlink命令。如果在辅助信道上找不到合适的网络,则连接失败,或者验证失败,ZLL设备随机选择一个主ZLL信道并调谐到它。如果它是终端设备,则它进入低功率休眠状态并且不执行进一步处理。如果是路由器,则启用其接收器并等待touchlink命令。如果在辅助信道上找不到合适的网络,则连接失败,或者验证失败,ZLL设备随机选择一个主ZLL信道并调谐到它。如果它是终端设备,则它进入低功率休眠状态并且不执行进一步处理。如果是路由器,则启用其接收器并等待touchlink命令。

应用程序可以请求路由器在其固定持续时间内启用其许可加入标志,以允许非ZLL设备在需要时使用标准ZigBee连接过程加入。如果设备尝试使用经典的ZigBee调试加入,则路由器使用经典的ZigBee机制分配地址。然后路由器将对设备进行身份验证:如果它位于受信任中心保护的网络上,则路由器生成并使用信任中心链路密钥保护APS更新设备命令帧到信任中心,以允许其处理新设备。否则,路由器生成并发送APS传输密钥命令帧,用ZLL认证预安装链接密钥保护到加入设备。

关于受信任中心保护的网络,发起者可以在受信任中心保护的网络上与目标设备进行触摸链接,无论它是否在同一受信任中心保护的网络上; 然而,可能不在受信任中心保护的网络上的发起者与工厂新的或连接到不同网络的目标设备之间执行触摸链接。

1)集群
    ZLL配置文件ID为0xc05e。但是,出于互操作性的目的,ZCL命令解决除ZLL调试之外的集群或ZLL调试集群的调试实用程序命令集中的那些命令,请使用ZHA配置文件标识符0x0104。所述ZLL调试簇具有的0x1000的一个集群ID。
2)设备ID
下面列出了ZLL规范中列出的设备描述和标识符,以及它们各自的ZLL调试簇方向。ZLL照明设备不需要支持ZLL调试集群的调试实用程序功能。
          设备描述    设备ID    调试服务器    调试服务器/客户端    调试客户
灯光      开/关灯    为0x0000            
        
设备    开/关插件    0×0010            
    可调光    0100            
    可调光插件    0x0110            
    彩色灯    0200            
    扩展的彩色光    0x0210            
    色温灯    0x0220            
控制器设备                    
    色彩控制器    为0x0800            
    彩色场景控制器    0x0810            
    非色彩控制器    0x0820            
    非彩色场景控制器    0x0830            
    控制桥    0x0840            
    开/关传感器    0x0850            

4.ZLL和ZigBee PRO 5之间的差异
     虽然ZLL建立在ZigBee PRO堆栈之上,但两者之间存在差异。以下部分将概述差异。
1)安全差异
    在ZigBee网络层,ZLL安全功能与传统的ZigBee安全功能相同,尽管ZLL安全性不需要集中安全控制器(在ZigBee PRO中称为“信任中心”)来验证传入设备。ZigBee PRO和ZLL安全方案之间的主要区别在于安全密钥交换。在称为“Touchlinking”的ZLL网络调试期间,称为ZLL密钥的固定密钥对交换的网络密钥进行加密。ZLL密钥存储在每个ZLL设备中。

根据正在执行的网络调试的类型,不同地处理网络密钥的传输。在经典的ZigBee调试期间,非ZLL设备连接到没有信任中心的ZLL网络,预安装的链路密钥用于在进行身份验证时保护网络密钥的传输。所有经过认证的ZLL设备都共享预先安装的秘密链接密钥,但在认证之前,认证密钥用于测试目的。如果APS解密通过使用认证预安装链接密钥失败,则ZLL设备尝试使用已知的默认信任中心链接密钥解码APS消息,该密钥与ZigBee家庭自动化(ZHA)使用的默认信任中心链接密钥相同配置文件并在ZHA规范中定义。

在ZLL touchlink调试的情况下,可以使用十六种可能的算法来在发起者和可能的目标之间的传输期间加密网络密钥(目前,已经分配了三种算法。)在其扫描响应 PAN间命令帧内,可能的目标在密钥位掩码字段中指示支持哪些密钥加密算法。当发起者收到扫描响应时来自潜在目标的PAN帧间,它将其内部密钥位掩码与接收到的密钥位掩码字段进行比较。如果通过此比较找不到公共密钥,则发起方将不会选择此目标进行进一步调试。否则,发起者将密钥索引设置为与索引最高的匹配密钥对应的位位置,使用适当的算法加密网络密钥,并在密钥索引和加密网络密钥字段中包括索引和加密密钥分别为网络启动请求,网络加入路由器或网络加入终端设备的PAN间命令帧。

下面列出了各种ZLL密钥加密算法的说明:

关键指标0(发展关键)
    该算法一步一步地在ECB模式下用AES加密网络密钥。关联的AES密钥采用“PhLi”||形式 TrID || “CLSN”|| RsID,其中“PhLi”和“CLSN”是要转换为其十六进制等值的字符串,TrID是在发起者和目标之间传递的原始扫描请求命令帧的事务标识符字段,RsID是扫描的响应标识符在目标和启动器之间传递的响应命令帧。1 商业ZLL产品不得使用或支持此算法。

主要指标4和15(主密钥和认证密钥)
     使用主密钥和证书密钥进行密钥加密的算法本身是相同的; 区别在于网络加密中使用的密钥。密钥索引4表示ZLL主密钥的使用,ZLL主密钥是由所有认证的ZLL设备共享的密钥,而密钥索引15表示在认证阶段期间使用的固定的预定密钥的使用,称为ZLL认证密钥。

如开发密钥算法中所述,在触摸链接过程中交换事务和响应标识符,并且对于加密和解密,它们被扩展为形成事务标识符||形式的128位nonce。交易标识符|| 响应标识符|| 响应标识符。对于加密,通过执行128位AES加密来计算传输密钥,其中上述nonce作为明文,并且ZLL主机或认证密钥(视情况而定)作为密钥。发起者使用计算的传输密钥和AES ECB模式加密网络密钥,然后作为触摸链接过程的一部分发送加密的网络密钥。目标接收加密密钥,并使用计算的传输密钥以AES ECB模式解密。然后,目标将接收的网络密钥存储在ZLL目标的NIB参数中。
2)网络形成差异
    在触摸链接的设备发现阶段,发起者将找到合适的目标。为了启动新网络,启动器生成PAN间命令帧的网络启动请求,如下所示:

如果需要,发起者可以在命令帧内为新网络指定PAN ID,扩展PAN ID和逻辑信道。否则,它们被设置为零并由目标确定。
发起者相应地设置命令帧的密钥索引和加密网络密钥字段,以描述用于保护网络的ZigBee网络密钥。
发起者将命令帧的网络地址字段设置为目标应在网络上运行的所选网络地址。如果空闲网络地址范围的开始等于0x0000,则发起者根据经典的ZigBee机制随机地生成地址。如果不是,则启动器向目标提供存储的起始地址并递增该值。目标不会更改网络地址,除非它离开网络并加入另一个网络,或者如果需要这样做以解决地址冲突。
如果在设备发现阶段期间目标请求了一组组标识符并且空闲组ID范围的开始不等于0x0000,则发起者为目标分配一系列组标识符并设置组标识符开始和组标识符结束相应的命令框的字段。如果它等于0x0000,则命令帧中的前述字段被设置为0x0000。
如果在设备发现阶段期间目标指示它具有地址分配能力且起始网络地址不是0x0000,则发起方分配目标可用于其自身目的的一系列网络地址和组标识符,并设置空闲网络地址范围开始,空闲网络地址范围结束,空闲组标识符范围开始和自由组标识符范围相应的命令帧结束字段。如果相反,起始网络地址是0x0000,则命令帧中的上述字段被设置为0x0000。

发起者将命令帧的发起者IEEE地址和发起者网络地址字段分别设置为其IEEE地址和它将在新网络上使用的网络地址。
    一旦生成了网络启动请求 PAN间命令帧,则启动器将其单播到所选目标。然后,它启用其接收器并等待预定的时间量,或者直到接收到具有有效事务标识符的PAN间命令帧的网络启动响应。如果等待超过此持续时间或接收到具有非零状态参数值的响应帧,则发起方终止与所讨论的目标的操作。如果没有其他目标,则终止整个操作并且不执行进一步处理。收到网络启动响应后如果网络参数由目标确定,则发起者首先将网络参数复制到其网络信息库,然后等待允许目标正确地启动网络。然后,启动器向NWK层发出网络重新加入请求。如果重新加入成功,则发起者广播设备通告。

    在目标侧,当接收到具有有效事务标识符的网络启动请求命令帧时,目标通过应用程序特定装置决定是否加入网络。如果它决定不加入网络,它会生成网络启动响应命令帧,状态指示失败。然后它不执行其他处理。如果目标决定加入网络,它将检查PAN ID,扩展PAN ID和逻辑信道字段。对于每个字段,如果该值等于零,则目标确定适当的值。为了验证PAN和扩展PAN ID的唯一性,目标通过主ZLL信道向NWK层发出网络发现请求并等待确认。然后,目标将信任中心地址设置为0xffffffffffffffff。然后,目标生成网络启动响应命令帧并将其单播到启动器。如果目标不是工厂新的,它将离开旧网络,将其网络参数重置为默认值,然后将新网络参数复制到其网络信息库,并通过向NWK发出启动路由器请求开始在新网络上运行层。路由器成功启动后,会广播设备通告。为了允许在发起者和目标之间通过ZigBee网络进行直接通信,目标最终执行ZigBee直接加入过程,以便在邻居表中创建具有IEEE地址和发起者的网络地址的条目。

1 TrID和RsID都是随机的32位整数。
3)寻址
   具有地址分配功能的设备可以分配网络地址。所有网络地址必须是唯一的。ZLL用于确保这是为了将可用地址空间的细分分配给加入网络并且能够进行地址分配的设备。由于ZigBee为协调器保留网络地址0x0000,为广播保留地址范围(0xfff8 ... 0xffff),因此在范围内定义了总ZLL网络地址空间(N m in = 0x0001 ... N max= 0xfff7)。具有地址分配功能的ZLL设备可跟踪其当前的空闲地址范围; 当这些设备是工厂新的时,地址范围是(0x0001 ... 0xfff7)。当具有地址分配功能的工厂新启动器设备刚刚形成新网络时,它会为自己分配网络地址N m in(即0x0001),然后递增N m in。当设备加入现有网络时,会为其加入的启动器的空闲网络地址范围分配第一个(即N m in)网络地址。启动网络的启动器然后增加N m in。如果无法为设备分配网络地址,则不允许在网络上运行。如果一个装置,该装置地址分配能够加入网络时,它也接收(“N它自己的自由网络地址范围米在 ... N” 米斧)。发起者在实现指定点处分割其自己的空闲网络地址范围,并且将上限(即,最高值)分配给具有新地址分配能力的设备。如果在划分空闲网络地址范围之后,所得到的两个地址范围小于实现特定阈值,则新设备不加入网络。

ZLL还以与网络寻址处理类似的方式支持组标识符。当使用广播机制寻址设备子集时使用组标识符,并且它们通常由驻留在某个端点的控制器应用程序使用。组标识符在网络中必须是唯一的,其范围是(0x0001 ... 0xfeff)。组标识符0x0000保留用于ZCL 场景群集和组中的默认组

范围内的标识符(0xff00 ... 0xffff)是保留的。驻留在端点上的应用程序所需的组标识符的数量在设备信息表中给出。由于组标识符分配链接到网络地址分配,因此在扫描响应命令帧中报告节点上所有端点所需的组标识符总数。组管理如上,处理其中G min ~ N min , G max ~ N max , G’ min
~ N’ min , and G’ max ~ N’ max 
4)其他
   ZLL设备能够在2.4 GHz的所有可用频道上运行,编号为11-26。所述初级 ZLL通道被定义为11,15,20,和25的所有其他信道构成的次级 ZLL通道。此外,ZLL以应用程序定义的方式支持通道更改机制。当发起频道改变机制时,设备广播网络更新,其中扫描频道字段被设置为指示开始操作的ZLL频道。接收更新请求的路由器更新其NIB并执行其频道改变过程。错过请求的路由器可以通过touchlink程序返回网络。如果touchlink发起者想要将路由器带回网络,它会发送一个PAN间单播网络更新请求命令帧。如果触摸链接发起者是终端设备,则它执行重新加入过程。
5.ZLL考虑因素
 给定ZLL地址分配机制,如果管理不当,ZLL设备的地址空间可能会很快耗尽。
触摸链接受设备接近度的限制(取决于产品。)
ZHA和ZLL命令具有不同的命令,并且可能存在设备ID冲突。
ZHA设备无法加入ZLL网络,因为它们没有必需的ZLL密钥。
出于互操作性目的,ZLL设备必须同时保持ZHA和ZLL键。
6.APPBuilder配置
   为了在AppBuilder中配置ZLL应用程序,只需选择平台并启用ZLL调试插件。ZLL可用于SOC或NCP /主机上下文,但ZLL仅支持EM35x平台。此外,ZLL应用程序可以在运行时确定是作为ZLL还是ZHA设备运行,具体取决于它占用的网络类型。
  图1和图2分别示出了用于ZLL彩色光和ZLL彩色场景遥控器的样本EM357 ZLL配置。

silabs ZLL_第1张图片

图1:AppBuilder ZLL Color Light配置

silabs ZLL_第2张图片

图2:AppBuilder ZLL色彩场景远程配置

7.例举ZLL灯光及远程方案
  下图中的示例是ZLL Light / Remote Scenario示例。节点3是ZLL颜色场景遥控器,节点1和2是ZLL颜色灯。这些图说明了触摸链接过程以及灯和遥控器之间的一些简单的网络交互。省略重复元素(例如,多个触摸链接)。

silabs ZLL_第3张图片

图3:节点3启动触摸链路并发现节点2

silabs ZLL_第4张图片

图4:节点2宣布自己

silabs ZLL_第5张图片

图5:节点3发出重新加入请求

silabs ZLL_第6张图片

图6:节点3宣布自己

silabs ZLL_第7张图片

图7:节点3广播ZCL On命令

silabs ZLL_第8张图片

图8:节点3广播ZCL关闭命令

你可能感兴趣的:(zigbee)