This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] BLE 绑定 Bluetopia v4.0.2.2

Guru**** 2587365 points
Other Parts Discussed in Thread: CC2564MODN

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/659036/ble-bonding-bluetopia-v4-0-2-2

主题中讨论的其他器件:CC2564MODN

大家好、感谢 Vihang 迄今为止的帮助、不胜感激!

现在、我可以执行与 CC2564MODN 无线电和 STM32F4 MCU 板的 OOB 连接。 我完成了配对、并交换了加密密钥。 现在、如果我想进行绑定、我需要在密钥交换期间保持 LTK 密钥交换、我想这是在以下期间完成的:

GAP_LE_Authentication_Event_Data_t latEncryptionInformation (仅在中央设备上?)

对讲机或堆栈是否具有 API 来存储在重新引导之间记忆的信息? 或者、我是否必须将此信息存储在 MCU NVRAM 中?

中央装置如何执行粘接连接?

到目前为止、我的猜测是我需要获取内部信息

BSC_SearchGenericListEntry()

设备启动时,我需要使用以下命令填写 NVRAM 信息中的条目:

bsc_AddGenericListEntry()

下面的流程是我所期望的:

  1. 中央尝试连接到设备(扫描或不连接)或外设尝试请求连接
  2. 连接完成后(而不是调用 GAP_LE_Pair_Remote_Device),我需要 使用 BSC_SearchGenericListEntry()中的信息调用 GAP_LE_reestablish_Security。

保存整个 BSC 列表标题项是否是一个好主意? 或者、在成功配对时、我是否只需要 LTK 和器件地址?

绑定如何与随机地址一起工作? 我是否需要设置 irk 可解析地址并保留器件的公共地址(交换 irk、使用 irk 解析随机地址、以便仅将公共地址与 LTK 和 irk 一起保留到 NV 存储器中)? 这意味 着现在我应该始终使用 使用 GAP_LE_Generate_Resolved_Address ()创建的随机地址,并抛弃 GAP_LE_Generate_Static_Address ()或 GAP_LE_Generate_NON_Resolved_Address (),这可能不是一个好主意,感觉更安全,但可能不具有绑定功能)。

此处的目标是在通讯座上使用两个设备进行初始 OOB 更换、然后每当设备启动 BLE 无线电并准备好离开通讯座时、它们就会相互配对(到目前为止有效)。 但是、我希望它们能够再次关闭和上电、并且在外设放入另一个通讯座之前仍能正常工作。 因此我需要该等电位连接功能。

谢谢、此致、

Jerome

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    只是想知道内部键合值的影响是什么

    GAP_LE_Pair_Remote_Device (
    GAP_LE_Pairing_Capabilities)
    {
    GAP_LE_Bonding_Type_t Bonding_Type;
    }
    ) 

    我将其设置为 lbtbonding、但我不确定它到底有什么作用??? 是否自动在某个地方保存某项内容? 堆栈是否与它一起执行某些操作? 我是否必须将交换密钥保存到 latEncryptionInformation 事件中?

    由于我使用的是 OOB 连接、我想知道我是否只能保留交换密钥并再次进行配对(但我认为这可能需要更多能量)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我似乎找到了一些信息、但我没有使用 GAP_LE_Authentication_Event_Data_t 处理 latIdentityInformationRequest 和 latIdentityInformation 案例 如果我没有弄错、我想这是存储绑定的器件标识符所需的堆栈数据请求。

    因此、如果我正确的话、外设应该执行 latIdentityInformationRequest、以便将它自己的信息提供给中央。 另一方面、中央设备应实现需要为此设备存储的 latIdentityInformation、以便在进行绑定时再次连接到该设备。

    我想我应该将这些信息沿器件的 LTK 和公共地址存储到中央 NV 存储器中吗? 如果我可以再次连接到器件而不是 GAP_LE_Pair_Remadue_Device()调用,那么我应该传递回 GAP_LE_reestablish_Security()的信息是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jerome、

    对迟迟不答复表示歉意、Vihang 一直忙于其他任务。 正确,您可以将 LTK 和身份信息存储在 NVM 中,以便在重新引导后将其存储在 NVM 中,并在重新引导后将该信息复制回相应的字段中。 这将使器件无需完成整个配对过程即可进行连接、因为它们将已与正确的 LTK 配对、并且只需进行连接。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢、这似乎是正确的方法、我仍然希望查看是否应该执行 OOB 配对、并避免存储 LTK 和仅 OOB 密钥。 这可能会使配对时间更长、但不会出现太多问题、因为 OOB 对用户的影响更小。