本节规定了实现符合基本设备行为规范的节点所需的常量和属性。
在本说明书中使用的字头“中指定的所有常量bdbc ”(基部设备行为恒定)和所有属性使用前缀“ BDB ”(基部设备行为)。
1,所有节点使用的常量
表1列出了由所有设备使用的基本设备行为规范定义的一组常量。
Table 1 – Constants used by all nodes
bdbcMaxSameNetworkRetryAttempts | 10 |
bdbcMinCommissioningTime | 180s (0xb4) |
bdbcRecSameNetworkRetryAttempts | 3 |
bdbcTCLinkKeyExchangeTimeout | 5s |
1.1, bdbcMaxSameNetworkRetryAttempts:该bdbcMaxSameNetworkRetryAttempts常量指定同一网络进行连接或密钥交换尝试的最大数量。每个节点都使用此常数。
另请参见bdbcRecSameNetworkRetryAttempts。
1.2,bdbcMinCommissioningTime:所述bdbcMinCommissioningTime常数指定在其中网络被打开以允许新节点加入秒或用于设备识别自身的最小持续时间。
每个节点都使用此常数。
1.3,bdbcRecSameNetworkRetryAttempts:该bdbcRecSameNetworkRetryAttempts常量指定的建议的最大数量的加入或同一网络进行密钥交换尝试。
每个节点都使用此常数。
另请参见bdbcMaxSameNetworkRetryAttempts。
1.4,bdbcTCLinkKeyExchangeTimeout:所述bdbcTCLinkKeyExchangeTimeout常数指定以秒的最大时间发送APS请求键信任中心时加入节点将等待响应。
每个节点都使用此常数。
2,支持touchlink节点使用的常量
表2列出了由基本设备行为规范定义的一组常数,这些常数由支持触摸链接调试的那些设备使用。
表2 –支持触摸链接的节点使用的常量
常量 | 值 |
bdbcTLInterPANTransIdLifetime | 8秒 |
bdbcTLMinStartupDelayTime | 2秒 |
bdbcTLPrimaryChannelSet | 0x02108800 |
bdbcTLRxWindowDuration | 5秒 |
bdbcTLScanTimeBaseDuration | 0.25秒 |
bdbcTLSecondaryChannelSet | 0x07fff800 XORbdbcTLPrimaryChannelSet |
2.1,bdbcTLInterPANTransIdLifetime:所述bdbcTLInterPANTransIdLifetime常数指定的时间的最大长度PAN间事务ID仍然有效。
如果支持touchlink,则节点将使用此常量。
2.2,bdbcTLMinStartupDelayTime:所述bdbcTLMinStartupDelayTime常数指定的时间长度的发起者等待确保目标已完成它的网络启动过程。
如果支持touchlink,则节点将使用此常量。
2.3,bdbcTLPrimaryChannelSet:所述bdbcTLPrimaryChannelSet常量指定的位掩码包括通道11,15,20和25的信道组,将用于对于非扩展的TouchLink扫描。
如果支持touchlink,则节点将使用此常量。
2.4,bdbcTLRxWindowDuration:该bdbcTLRxWindowDuration常量指定一个节点离开它的接收器的最大持续时间为TouchLink后续响应过程中启用。
如果支持touchlink,则节点将使用此常量。
2.5,bdbcTLScanTimeBaseDuration:所述bdbcTLScanTimeBaseDuration常数指定,在此期间所述接收机已经发送扫描请求之后扫描响应启用的TouchLink扫描操作的基础的持续时间。
如果支持touchlink,则节点将使用此常量。
2.6,bdbcTLSecondaryChannelSet:所述bdbcTLSecondaryChannelSet常量指定将被用于扩展的TouchLink扫描后由可用为2.4GHz的剩余IEEE 802.15.4-2003信道的信道集的位掩码bdbcTLPrimaryChannelSet信道已经被扫描。
如果支持touchlink,则节点将使用此常量。
3,属性
基本设备行为规范定义了表 3中列出的属性集。 “使用者”列指示该属性用于哪种ZigBee逻辑设备类型,以及是否按端点定义该属性。注意:此规范中定义的所有属性都在节点内部,并且不能通过空中使用。
表3 –基本设备行为中使用的属性
属性 | 数据类型 | 范围 | 默认值 | 使用者 |
bdbCommissioningGroupID | 无符号16位整数 | 0x0001 – 0xffff | 0xffff | 每个端点的启动器节点 |
bdbCommissioningMode | 8位位图 | 0b0000 xxxx | 0b0000 0000 | 每个端点的所有节点 |
bdbCommissioningStatus | 列举 | 见表5 | 成功 | 每个端点的所有节点 |
bdbJoiningNodeEui64 | 电气工程师学会地址 | 数据类型范围内的任何值 | 全零(无效地址) | ZC |
bdbJoiningNodeNewTCLinkKey | 128位安全密钥 | 数据类型范围内的任何值 | 全零(无效的键值) | ZC |
bdbJoinUsesInstallCodeKey | 布尔型 | 真或假 | 假 | ZC |
bdbNodeCommissioning- Capability | 8位位图 | 0b0000 xxx1 | 0b0000 0001 | 所有节点 |
bdbNodeIsOnANetwork | 布尔型 | 真或假 | 假 | 所有节点 |
属性 | 数据类型 | 范围 | 默认值 | 使用者 |
bdbNodeJoinLinkKeyType | 无符号8位整数 | 0x00 – 0x02 | 0x00 | ZR,ZED |
bdbPrimaryChannelSet | 32位位图 | 0x00000800 –0x07fff800 | 0x02108800 | 所有节点 |
bdbScanDuration | 无符号8位整数 | 0x00 – 0x0e | 0x04 | 所有节点 |
bdbSecondaryChannelSet | 32位位图 | 0x00000800 –0x07fff800 | 0x07fff800 XOR bdbPrimary- ChannelSet | 所有节点 |
bdbTCLinkKeyExchange-尝试 | 无符号8位整数 | 0x00 – 0xff | 0x00 | ZR,ZED |
bdbTCLinkKeyExchange- AttemptsMax | 无符号8位整数 | 0x00 – 0xff | 0x03 | ZR,ZED |
bdbTCLinkKeyExchange-方法 | 无符号8位整数 | 0x00 – 0x01(0x02 – 0xff保留) | 0x00 | ZR,ZED |
bdbTrustCenterNodeJoin-超时 | 无符号8位整数 | 0x00 – 0xff | 0x0f(秒) | ZC |
bdbTrustCenterRequireKey-交换 | 布尔型 | 真或假 | 真正 | ZC |
3.1 bdbCommissioningGroupID 属性:
所述bdbCommissioningGroupID属性指定在其上发起者适用发现&绑定组的标识符。如果bdbCommissioningGroupID等于0xffff,则任何绑定都将创建为单播。
仅当bdbCommissioningMode 属性的第 3位(请参见第 3.2节)等于1(尝试查找和绑定)时,才在调试期间使用此属性。
每个端点的启动程序节点都使用此属性。
注意:休眠的ZigBee终端设备目标将无法从群播传输中受益(有关更多详细信息,请参见[R2]中的群簇)。
3.2 bdbCommissioningMode 属性:
所述bdbCommissioningMode属性被用作参数,以顶层调试程序并指定了调试方法和被调用调试时采取的选择,通过每个比特从至少显著位表示到最显著位。
请注意,此属性与bdbNodeCommissioningCapability 属性不同,后者指定节点支持哪些调试机制。该属性是按位或表 4中列出的位。
每个端点的所有节点都使用此属性。
表4 – bdbCommissioningMode属性的位
bdbCommissioning-mode位 | 描述 |
触摸链接:0 =请勿尝试Touchlink调试1 =尝试Touchlink调试 | |
1 | 网络导向:0 =请勿尝试网络控制1 =尝试网络控制 |
2 | 网络形成:0 =请勿尝试建立网络1 =根据设备类型2尝试建立网络 |
3 | 查找和绑定:0 =请勿尝试查找和绑定1 =尝试查找和绑定 |
4-7 | 保留(设置为零) |
3.3 bdbCommissioningStatus 属性:
所述bdbCommissioningStatus 属性指定其调试尝试的状态,并且可以被设置为在表5中所列的值中之一。
每个端点的所有节点都使用此属性。
网络形成时,如果该设备是ZigBee协调器(信任中心),则此位指示该设备将形成集中式安全网络。如果设备是ZigBee路由器,则此位指示该设备将形成分布式安全网络。
表5 – bdbCommissioningStatus属性的值
bdbCommissioningStatus属性的值 | 描述 |
SUCCESS | 调试过程成功。 |
IN_PROGRESS | 调试过程之一已开始,但尚未完成。 |
NOT_AA_CAPABLE | 发起程序在触摸链接期间不具有地址分配功能。 |
NO_NETWORK | 在网络控制或触摸链接期间未找到网络。 |
TARGET_FAILURE | 在触摸链接期间被请求时,节点尚未加入网络。 |
FORMATION_FAILURE | 网络形成期间无法形成网络。 |
NO_IDENTIFY_QUERY_-RESPONSE | 查找和绑定期间未收到对标识查询命令的响应。 |
BINDING_TABLE_FULL | 由于查找期间绑定表中的空间不足,无法创建绑定表条目& 捆绑。 |
NO_SCAN_RESPONSE | 触摸链接期间未收到对扫描请求 PAN间命令的响应。 |
NOT_PERMITTED | 当节点已经连接到集中式安全网络时,尝试进行触摸链接(窃取)。 |
TCLK_EX_FAILURE | 信任中心链接密钥交换过程尝试加入集中式安全网络失败。 |
3.4 bdbJoiningNodeEui64属性:
所述bdbJoiningNodeEui64属性包含EUI-64加入集中的安全网络的节点。
ZigBee协调器节点使用此属性。
3.5 bdbJoiningNodeNewTCLinkKey属性:
该bdbJoiningNodeNewTCLinkKey属性包含新的链路密钥与连接节点,但还未被证实成立。
ZigBee协调器节点使用此属性。
3.6 bdbJoinUsesInstallCodeKey属性:
该bdbJoinUsesInstallCodeKey属性指定的信任中心的政策,指出它是否需要安装编码获取预先配置相应的节点加入其网络之前必须预装链路密钥。
如果bdbJoinUsesInstallCodeKey等于FALSE,则信任中心允许节点加入其网络,而无需在节点加入之前预先安装与该节点相关联的对应安装代码派生的预配置链接密钥。如果bdbJoinUsesInstallCodeKey等于TRUE,则在节点加入之前,如果已经预先安装了与该节点关联的对应的安装代码派生的预配置链接密钥,则信任中心仅允许该节点加入其网络。
ZigBee协调器节点使用此属性。
3.7 bdbNodeCommissioningCapability属性:
该bdbNodeCommissioningCapability 属性指定节点的调试功能。该属性是按位或表 6中列出的位。
所有节点都使用此属性。
表6 – bdbNodeCommissioningCapability属性的位
bdbCommissioning-Capability位 | 描述 |
网络转向:0 =禁止1 =节点支持网络导向 | |
所有节点将此位设置为1,表示对网络控制的强制支持。 | |
1 | 网络形成:0 =节点将不形成网络1 =根据ZigBee逻辑设备类型,节点将形成网络 |
ZigBee协调器(信任中心)节点将此位设置为1,表示它将始终形成集中式安全网络。 | |
2 | 查找和绑定:0 =该节点不包含任何强制进行查找和绑定的设备端点1 =节点包含在其中查找的设备端点和绑定是强制性的 |
根据在节点上实现的特定设备来设置此位。如果实现了简单设备,则该位设置为1。如果仅实现动态设备,则如果该设备支持查找和绑定,则该位设置为1。 | |
3 | 触摸链接调试:0 =节点不支持Touchlink调试1 =节点支持Touchlink调试 |
4-7 | 保留(设置为零) |
3.8 bdbNodeIsOnANetwork属性:
所述bdbNodeIsOnANetwork属性指示节点是否连接到一个网络。如果bdbNodeIsOnANetwork等于FALSE,则该节点尚未形成或加入网络。如果bdbNodeIsOnANetwork等于TRUE,则该节点已形成集中式安全网络(如果该节点是ZigBee协调器),形成了分布式安全网络(如果该节点是ZigBee路由器)或已加入网络(如果该节点是ZigBee路由器)。 ZigBee路由器或ZigBee终端设备)。请注意,当bdbNodeIsOnANetwork等于TRUE时,该节点可能还没有绑定的端点。
所有节点都使用此属性。
3.9 bdbNodeJoinLinkKeyType属性:
所述bdbNodeJoinLinkKeyType 属性指示链路密钥的类型(参见子条款6.3)与该节点能够,当节点加入一个新的网络来解密网络密钥。此属性可以采用表 7中列出的值之一。
表7 – bdbNodeJoinLinkKeyType属性的值
bdbNodeJoinLinkKeyType属性的值 | 网络模型 | 链接密钥类型 |
0x00 | 集中 | 默认的全局信任中心链接密钥 |
0x01 | 分散式 | 分布式安全全局链接密钥 |
0x02 | 集中 | 安装代码派生的预配置链接密钥 |
0x03 | 分散式 | Touchlink预先配置的链接键 |
所有ZigBee路由器和ZigBee终端设备节点都使用此属性。
3.10 bdbPrimaryChannelSet属性:
所述bdbPrimaryChannelSet属性指定信道集合,由应用程序定义,这将优先使用,例如频道扫描期间使用。请注意,如果不需要主扫描,则此属性设置为0x00000000。但是,在这种情况下,不应将bdbSecondaryChannelSet设置为0x00000000。
所有节点都使用此属性。
3.11 bdbScanDuration属性:
所述bdbScanDuration属性指定每个通道的IEEE 802.15.4扫描操作的持续时间。花费扫描每个信道的时间由[给出aBaseSuperframeDuration *(2 Ñ + 1)],其中Ñ是的值bdbScanDuration和aBaseSuperframeDuration 在[R8的子条款7.4.1(表70)中所定义 ]。
扫描是通过ZigBee原语间接执行的,可以是能量扫描,被动扫描或主动扫描。
所有节点都使用此属性。
3.12 bdbSecondaryChannelSet属性:
所述bdbSecondaryChannelSet属性指定的信道扫描过程中的信道集,由应用程序定义,将在主信道之后被使用,例如。请注意,如果不需要辅助扫描,则此属性设置为0x00000000。但是,在这种情况下,不能将bdbPrimaryChannelSet设置为0x00000000。
所有节点都使用此属性。
3.13 bdbTCLinkKeyExchangeAttempts属性:
该bdbTCLinkKeyExchangeAttempts属性包含已取得加盟后建立一个新的链路密钥的密钥建立尝试的次数。
所有ZigBee路由器和ZigBee终端设备节点都使用此属性。
3.14 bdbTCLinkKeyExchangeAttemptsMax属性:
该bdbTCLinkKeyExchangeAttemptsMax属性指定将在密钥建立在放弃之前做出关键的建立尝试的最大数量。
所有ZigBee路由器和ZigBee终端设备节点都使用此属性。
3.15 bdbTCLinkKeyExchangeMethod属性:
所述bdbTCLinkKeyExchangeMethod 属性指定的方法中使用加入网络后,建立新的链路密钥,并且可以被设置为在表8中列出的非保留值之一。
所有ZigBee路由器和ZigBee终端设备节点都使用此属性。
表8 – bdbTCLinkKeyExchangeMethod属性的值
bdbTCLinkKeyExchangeMethod属性的值 描述 |
0x00 APS请求密钥 |
0x01 基于证书的密钥交换(CBKE) |
0x02 – 0xff 已预留 |
3.16 bdbTrustCenterNodeJoinTimeout属性:
该bdbTrustCenterNodeJoinTimeout属性指定超时在信托中心秒,除去未成功建立新的链路密钥新加入的节点的信任中心链路密钥。
ZigBee协调器节点使用此属性。
3.17 bdbTrustCenterRequireKeyExchange属性:
该bdbTrustCenterRequireKeyExchange属性指定是否信任中心需要联入设备与由信任中心产生一个新的链接密钥交换初始链路密钥。如果bdbTrustCenterRequireKeyExchange等于TRUE,则加入节点必须经历链接密钥交换过程;否则,链接节点必须进行链接密钥交换过程。交换链接密钥失败将导致该节点从网络中删除。如果
bdbTrustCenterRequireKeyExchange 等于FALSE,信任中心将允许加入节点保留在网络上,而无需交换其初始链接密钥。
ZigBee协调器节点使用此属性。