ZBD 的属性包含在结构体 BDB_tsAttrib 中,如下所示

typedef struct
{
    uint16                       u16bdbCommissioningGroupID;
    uint8                        u8bdbCommissioningMode;
    BDB_teCommissioningStatus    ebdbCommissioningStatus;
    uint64                       u64bdbJoiningNodeEui64;
    uint8                        au8bdbJoiningNodeNewTCLinkKey[16];
    bool_t                       bbdbJoinUsesInstallCodeKey;
    const uint8                  u8bdbNodeCommissioningCapability;
    bool_t                       bbdbNodeIsOnANetwork;
    uint8                        u8bdbNodeJoinLinkKeyType;
    uint32                       u32bdbPrimaryChannelSet;
    uint8                        u8bdbScanDuration;
    uint32                       u32bdbSecondaryChannelSet;
    uint8                        u8bdbTCLinkKeyExchangeAttempts;
    uint8                        u8bdbTCLinkKeyExchangeAttemptsMax;
    uint8                        u8bdbTCLinkKeyExchangeMethod;
    uint8                        u8bdbTrustCenterNodeJoinTimeout;
    bool_t                       bbdbTrustCenterRequireKeyExchange;
    bool_t                       bTLStealNotAllowed;
    bool_t                       bLeaveRequested;
}BDB_tsAttrib;

ZBD 的属性值可以在编译时在 bdb_options.h 文件中使用下表中列出的宏进行初始化(有关编译时选项的信息,请参阅 2.10 节)。通过上述结构体,可以在运行时写入或读取属性。

Note:bTLStealNotAllowed 和 bLeaveRequested 是 NXP 私有变量,非 ZigBee 的属性。

属性 初始化宏
u16bdbCommissioningGroupID BDB_COMMISSIONING_GROUP_ID
u8bdbCommissioningMode BDB_COMMISSIONING_MODE
ebdbCommissioningStatus BDB_COMMISSIONING_STATUS
u64bdbJoiningNodeEui64 BDB_JOINING_NODE_EUI64
au8bdbJoiningNodeNewTCLinkKey[16] -
bbdbJoinUsesInstallCodeKey BDB_JOIN_USES_INSTALL_CODE_KEY
u8bdbNodeCommissioningCapability -
bbdbNodeIsOnANetwork -
u8bdbNodeJoinLinkKeyType BDB_NODE_JOIN_LINK_KEY_TYPE
u32bdbPrimaryChannelSet BDB_PRIMARY_CHANNEL_SET
u8bdbScanDuration BDB_SCAN_DURATION
u32bdbSecondaryChannelSet BDB_SECONDARY_CHANNEL_SET
u8bdbTCLinkKeyExchangeAttempts BDB_TC_LINK_KEY_EXCHANGE_ATTEMPTS
u8bdbTCLinkKeyExchangeAttemptsMax BDB_TC_LINK_KEY_EXCHANGE_ATTEMPTS_MAX
u8bdbTCLinkKeyExchangeMethod BDB_TC_LINK_KEY_EXCHANGE_METHOD
u8bdbTrustCenterNodeJoinTimeout BDB_TRUST_CENTER_NODE_JOIN_TIMEOUT
bbdbTrustCenterRequireKeyExchange BDB_TRUST_CENTER_REQUIRE_KEYEXCHANGE
bTLStealNotAllowed -
bLeaveRequested -

这些属性分布在下面描述。有关更多详情,请参阅 ZigBee Base Device Behavior Specification (13-0402-08)。


u16bdbCommissioningGroupID

该属性只能用于发现和绑定发起者的端点。它包含发起者将放置目标端点的组的标识符。如果它等于 0xFFFF,则将创建单个(非组)绑定。该属性值可以在编译时使用宏 BDB_COMMISSIONING_GROUP_ID 进行初始化。

要使用此属性,需要在 u8bdbCommissioningMode 属性中使能发现和绑定。

commissioning 模式的发现和绑定在 2.2.4 节中描述。


u8bdbCommissioningMode

该属性是一个位映像,用于指示端点上使能了哪些 commissioning 模式,其中每个位对应一种模式,并且当模式使能时对应位置为 ‘1’。这意味着如果需要的话,节点将能够实现该 commissioning 模式。该属性值可以在编译时使用宏 BDB_COMMISSIONING_MODE 来初始化。下表说明位映像及用于置位的枚举。

commissioning 模式 枚举
0 Touchlink BDB_COMMISSIONING_MODE_TOUCHLINK
1 Network Steering BDB_COMMISSIONING_MODE_NWK_STEERING
2 Network Formation BDB_COMMISSIONING_MODE_NWK_FORMATION
3 Finding and Binding BDB_COMMISSIONING_MODE_FINDING_N_BINDING
4-7 保留(设置为 ‘0’) -

commissioning 模式在 2.2 节中描述。

Note:该属性用于所有节点类型。但是,为了使能 commissioning 模式,它必须在节点上是可用的,通过属性 u8bdbNodeCommissioningCapability 表明。使能的 commissioning 模式将成为节点 commissioning 能力的一个子集。


ebdbCommissioningStatus

该属性指示当前正在端点上进行的 commissioning 过程的状态。该属性取 BDB_teCommissioningStatus 枚举中定义的值的其中一个(参见 2.8.2 节)。该属性用于所有节点类型。该属性值由 ZBD 实现内部更新,但可由应用程序读取。


u64bdbJoiningNodeEui64

该属性包含正在加入集中式安全网络的节点的 64-bit IEEE/MAC 地址,它仅用于协调器。该属性值由 ZBD 实现内部更新。


au8bdbJoiningNodeNewTCLinkKey

该属性包含一个新的链接密钥,用于当前正在加入网络但尚未被授予完整网络成员资格的节点。该属性值由 ZBD 实现内部更新(在加入节点及其父系节点上)。


bbdbJoinUsesInstallCodeKey

该属性指示在节点被允许加入网络之前,预配置链接密钥是否必须可用,这可能是预安装的链接密钥,也可能是派生自安装码。值为 TRUE 表示需要链接密钥,FALSE 表示不需要链接密钥。它仅用于 协调器/ TC。该属性值可以在编译时使用宏 BDB_JOIN_USES_INSTALL_CODE_KEY 进行初始化。默认情况下,该属性被设置为 FALSE。该属性不被 ZBD 使用,如果其设置为 TRUE,则应用程序有责任直接处理该功能并设置所需的密钥(参阅 u8bdbNodeJoinLinkKeyType)。


u8bdbNodeCommissioningCapability

该属性是指示节点的 commissioning 能力的位映像,其中每个位对应一种 commissioning 能力,并且如果能力存在则被置为 ‘1’。该属性用于所有节点类型。应用程序不能直接写入这些位,它们根据应用程序的 makefile 中定义的选项进行设置。下表详细介绍了位映像和相关的 makefile 选项。

能力 Makefile 选项(如果定义了其中一个,则置为 ‘1’)
0 Network Steering BDB_SUPPORT_NWK_STEERING
1 Network Formation BDB_SUPPORT_NWK_FORMATION
2 Finding and Binding BDB_SUPPORT_FIND_AND_BIND_INITIATOR \ BDB_SUPPORT_FIND_AND_BIND_TARGET
3 Touchlink BDB_SUPPORT_TOUCHLINK_INITIATOR_END_DEVICE \ BDB_SUPPORT_TOUCHLINK_INITIATOR_ROUTER \ BDB_SUPPORT_TOUCHLINK_TARGET
4-7 保留(设置为 ‘0’) -

以上 commissioning 模式在 2.2 节中描述。

Note:为了使用其中一种可用的 commissioning 模式,必须通过属性 u8bdbCommissioningMode 来使能该模式。使能的 commissioning 模式将会成为节点 commissioning 能力的一个子集。


bbdbNodeIsOnANetwork

该属性指示本地节点当前是否网络的成员。值为 TRUE 表示它在网络中(但不一定绑定到任何远程节点),FALSE 表示它不在网络中。该属性用于所有节点类型,但 ZBD 不维持它。应用程序负责维持属性值,并在重启后初始化属性(在调用任何其他 ZBD 函数之前)。


u8bdbNodeJoinLinkKeyType

该属性指示链接密钥的类型。当节点加入一个新的网络时,节点能够解密通过 over-air 接收到的已加密的网络密钥。该属性由路由器和终端设备节点使用。下表列出了属性值和对应的链接密钥类型,以及可用于定义链接密钥的宏。

链接密钥类型 链接密钥定义宏
0x00 默认全局 TC 链接密钥 DEFAULT_GLOBAL_TRUST_CENTER_LINK_KEY
0x01 分布式安全全局链接密钥 DISTRIBUTED_SECURITY_GLOBAL_LINK_KEY
0x02 安装码派生的预配置链接密钥 INSTALL_CODE_DERIVED_PRECONFIGURED_LINK_KEY
0x03 TL 预配置链接密钥 TOUCHLINK_PRECONFIGURED_LINK_KEY

u32bdbPrimaryChannelSet

该属性指定将在信道扫描中使用的 2.4GHz 无线信道的主要(第一选择)集合。该属性是一个位映像,其中每个位对应一个信道,如果该信道将被扫描则应该置为 ‘1’。位编号直接对应信道编号,即第 11 位对应 2.4GHz 的 11 信道,第 26 位对应 26 信道。该属性用于所有节点类型。该属性值可以在编译时使用宏 BDB_PRIMARY_CHANNEL_SET 来初始化。


u8bdbScanDuration

该属性决定每个 2.4GHz 无线信道扫描操作的持续时间。实际的扫描时间计算如下:

$$aBaseSuperframeDuration * (2^{bdbScanDuration} + 1)$$

其中 aBaseSuperframeDuration 在 IEEE 802.15.4 规范中定义。

该属性用于所有节点类型。该属性值取自 ZPS 配置编辑器中设置的扫描持续时间(Scan Duration Time)。


u32bdbSecondaryChannelSet

该属性指定将在信道扫描中使用的 2.4GHz 无线信道的次要(第二选择)集合。如果主要信道的扫描不成功,将使用此信道集。如果不需要扫描次要信道,则应该将该属性设置为零。该属性用于所有节点类型。该属性值可以在编译时使用宏 BDB_SECONDARY_CHANNEL_SET 来初始化。


u8bdbTCLinkKeyExchangeAttempts

该属性指示当节点加入网络时请求(创建)新链接密钥的尝试次数。该属性用于路由器和终端设备节点。该属性值可以在编译时使用宏 BDB_TC_LINK_KEY_EXCHANGE_ATTEMPTS 进行初始化。


u8bdbTCLinkKeyExchangeAttemptsMax

该属性指定当节点加入新的网络时,在密钥建立被放弃之前将进行的密钥建立尝试的最大次数。该属性用于路由器和终端设备节点。该属性值可以在编译时使用宏 BDB_TC_LINK_KEY_EXCHANGE_ATTEMPTS_MAX 进行初始化。


u8bdbTCLinkKeyExchangeMethod

该属性指定节点加入网络时用于获取新链接密钥的方法。下表列出了属性值及相应的方法。该属性用于路由器和终端设备节点。

密钥交换方法
0x00 APS 请求密钥
0x01 基于证书的密钥交换(CBKE)
0x02-0xFF 保留

该属性值可以在编译时使用宏 BDB_TC_LINK_KEY_EXCHANGE_METHOD 来初始化。它应该被初始化为 0x00(APS 请求密钥)。


u8bdbTrustCenterNodeJoinTimeout

该属性指定 TC 在新加入节点的密钥建立失败时删除其 TC 生成链接密钥的超时时间(以秒为单位)。该属性仅用于 协调器/ TC。该属性值可以在编译时使用宏 BDB_TRUST_CENTER_NODE_JOIN_TIMEOUT 来初始化。


bbdbTrustCenterRequireKeyExchange

该属性指定 TC 是否要求加入节点将其初始链接密钥替换为由 TC 生成的新链接密钥。值为 TRUE 表示加入节点必须成功完成链接密钥交换过程,否则将从网络中移除该节点;值为 FALSE 表示加入节点将被允许保留在网络中,即使它没有完成链接密钥交换过程。该属性值可以在编译时使用宏 BDB_TRUST_CENTER_REQUIRE_KEYEXCHANGE 来初始化。它应该根据网络中实施的 TC 策略进行初始化,默认情况下,将其设置为 FALSE 以实现向后兼容。


bTLStealNotAllowed

这是 NXP 私有的标志,应用程序可以设置该标志以防止来自不同网络中的另一个节点的 TL commissioning 命令 ‘盗取’ 本地节点。清除标志为允许节点被盗,在这种情况下,它会离开当前网络并加入另一个网络或形成一个新的分布式网络,如 TL 发起者所指示的那样。


bLeaveRequested

这是 NXP 私有的标志,应用程序应该只读而不写入。如果 TL commissioning 操作导致 ZBD 发起网络离开,则该标志由 BD 设置。当生成 stack 事件 ZPS_EVENT_NWK_LEAVE_CONFIRM 时,应用程序应该读取此标志,如果它为 TRUE,则应用程序不应处理该事件(因为 ZBD 将处理该事件)。


results matching ""

    No results matching ""