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.

[参考译文] CC2745R10-Q1:删除 CC2745 上的绑定信息后进行 Re 配对

Guru**** 2644745 points

Other Parts Discussed in Thread: CC2745R10-Q1

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1574600/cc2745r10-q1-issue-re-pairing-after-deleting-bonding-information-on-cc2745

器件型号: CC2745R10-Q1

工具/软件:

在删除设备绑定信息后(成功完成 OOB 配对一次后)再次尝试配对设备时、会出现错误。
即使重新刷写代码也不能解决问题。
您是否知道这可能是什么原因造成的?

详细信息:
 1.确认GAPBOND_PAIRING_STATE_COMPLETE事件报告SUCCESS
 2.调用GAPBondMgr_SetParameter(GAPBOND_ERASE_ALLBONDS, D_NULL_, D_NULL_)并确认返回值为SUCCESS
 3.尝试再次配对时、GAPBOND_PAIRING_STATE_COMPLETE事件返回SMP_PAIRING_FAILED_UNSPECIFIED、配对失败。

此错误并不总是会出现、并且很难重现。
但是、一旦发生、每次都会发生。 Re 刷写代码无法修复它。

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

    你好、Miyatake-San、  

    首先要回答几个问题:  

    1.使用什么 SDK 引起错误?  

    2.配对时设备以前是否绑定?  

    我正在设置问题测试。 我计划使用上面提供的相同步骤、但请告诉我、在您开始删除所有绑定之前、设备是否已绑定。  

    此外,你能告诉我为什么你在配对完成后删除所有绑定?  

    谢谢、

    Isaac

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

    你好、Miyatake-San、  

    您还能告诉我该器件所处的 GAP 角色吗、CC2745R10-Q1 连接到哪种设备吗?  

    谢谢、

    Isaac

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

    你好、Isaac 先生、

    > 1. 使用了哪个 SDK 引起了该错误?
    我们正在使用simplelink_lowpower_f3_sdk_9_10_00_83

    > 2. 配对时、设备之前是否已绑定?
    是的、该器件以前已配对过一次。 执行完全删除后、再次配对时会出现问题。

    >您还能告诉我器件所处的 GAP 角色吗、CC2745R10-Q1 连接到哪种设备吗?
    它连接到 iPhone 16。

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

    你好、Miyatake-San、  

    我创建了一个要复制的项目。 断开电话连接后、我正在擦除绑定信息。 然后、我将重新连接手机并进行配对。 我还没有看到故障。 您能否告诉我、此测试是否与您在复制问题时所做的类似? 此处的流程中是否缺少任何内容?  

    你到底在哪里删除了所有的债券? 该 GAPBOND_PAIRING_STATE_COMPLETE 怎么办? 另外,我可以问你为什么在配对成功后删除债券?  

    此外、芯片擦除是否允许工程在之后工作? 我假设擦除芯片将有助于在短期内恢复功能。  

    请告诉我。

    谢谢、
    Isaac  

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

    你好、Isaac 先生、

    >您到底在哪里删除了所有的债券? 在 GAPBOND_PAIRING_STATE_COMPLETE 事件内?
    GAPBOND_PAIRING_STATE_COMPLETE 事件结束后。

    >还有,我能问你为什么在配对成功后删除债券?
    这是因为我正在测试取消配对和重新注册的用例。

    >此外,芯片擦除是否允许项目在之后工作?
    我还没有尝试过芯片擦除。 请告诉我如何操作。

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

    你好、Miyatake-San、  

    我已经连续测试了这个问题超过 20 次、并且无法重现。 能否请列出您要完成的重现故障的步骤?  

    明天我将提供有关芯片擦除的答案。 对延迟深表歉意。  

    谢谢、  

    Isaac

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

    Miyatake-San、  

    对多个回答表示歉意。 我还想告诉您我是如何尝试复制失败的。  

    1.将 iPhone 连接到 CC2745R10-Q1 器件。  

    2.将 iPhone 与 CC2745R10-Q1 器件配对。  

    3.断开 iPhone 与 CC2745R10-Q1 器件的连接。  

    4. 使用 BLEAPPUTIL_LINK_TERMINATE_EVENT、使用 GAPBond Mgr_Set 参数函数擦除绑定。  

    5.我擦除 iPhone 上的绑定。  

    6.将 iPhone 重新连接到 CC2745R10-Q1 器件、然后再次运行测试。  

    如果这与您的测试类似、请告诉我。 此外、请提供您为引起问题而采取的步骤。  

    谢谢、

    Isaac

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

    你好、Isaac 先生、

    程序正确。
    顺便说一句、我们使用的是 OOB 配对。
    我不确定它是否相关、但 NVS 数据配置为 80KB。

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

    你好、Miyatake-San、  

    我没有很容易获得的 OOB 设置、但我确实知道如何进行测试。 我将告诉你我的进展星期三 (10/29) 下周. 您能否介绍一下您为完成 OOB 配对而调用的函数、以及它们是否成功完成?  

    另外还要检查、是否设置了参数 GAPBOND_OOB_ENABLED? 请告诉我。  

    谢谢、

    Isaac

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

    你好、Isaac 先生、

    调用 SDK 接口执行 OOB 配对的顺序如下:

    初始化期间(u1g_BLE_SM_init 函数)
    GAPBonds Mgr_Register (&CSTS_bondMgrCBs)-配对事件的寄存器回调
    GAPBondMgr_SCSetRemoteOOBParameters (&STS_remoteOobData、0U)-清除远程 OOB 数据

    启动 OOB 配对过程时
    GAPBonds ecKeys()-启动 Mgr_Generate 密钥对生成

    密钥生成完成后(VOS_BLE_SM_evtGenerateEccKeyComplete 函数)
    GAPBondMgr_SCGetLocalOOBParameters (&STS_localOobData)-检索本地 OOB 数据 (RB、CB)

    4.收到 OOB 交换请求时
    GAPBondMgr_SCSetRemoteOOBParameters (&STS_remoteOobData、1U)-设置远程 OOB 数据
    GAPBonds Mgr_Set 参数 (GAPBOND_OOB_ENABLED、sizeof (uint8_t)、&u1s_oobEnabled)-启用 OOB 标志

    配对完成后(VOS_BLE_SM_evtBondComplete 函数)
    GAPBondMgr_SCSetRemoteOOBParameters (&STS_remoteOobData、0U)-清除远程 OOB 数据
    GAPBonds OOB_ENABLED (GAPBOND_OOB_ENABLED、sizeof (uint8_t)、&u1s_oobEnabled)-禁用 Mgr_Set 标志

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

    你好、Miyatake-San、  

     SMP_PAIRING_FAILED_UNSPECIFIED 错误源自什么函数?  

    请告诉我。  

    谢谢、

    Isaac

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

    你好、Isaac 先生、

    状态 SMP_PAIRING_FAILED_UNSPECIFIED 源自事件 GAPBOND_PAIRING_STATE_COMPLETE。
    这可以回答您的问题吗?

    宫宅

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

    您好、Miyatake、  

    我正在进一步调查问题、并正在着手设置测试。 我将在一周内提供回复 (星期三、11/05)。 对延迟深表歉意。  

    谢谢、

    Isaac

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

    你好、Isaac 先生、

    抱歉、它不是 0x08 SMP_PAIRING_FAILED_UNSPECIFIED、而是 0x0B SMP_PAIRING_FAILED_DHKEY_CHECK_FAILED。

    此外、我确认在 iPhone 上执行以下步骤后、可以重新配对:
    Settings→General→Transfer or Reset iPhone→Reset→Reset Network Settings

    鉴于此、该问题是否源于 iPhone 端、无法仅通过 CC2745 端的软件来避免?
    如果可以在 CC2745 上实施任何可能的权变措施或预防措施、如果您告诉我、我将不胜感激。

    宫宅

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

    你好、Miyatake-San、  

    我很感激纠正。  SMP_PAIRING_FAILED_DHKEY_CHECK_FAILED 故障在场景中比 SMP_PAIRING_FAILED_UNSPECIFIED 更有限。  

    在一些情况下会出现此错误。  

    1.如果收到公钥,则与发送的公钥不同。  

    2.如果尝试与 CC27xx 器件配对的器件的 DH (Diffie Hellman) 密钥大于或小于预期的 DH 密钥长度。  

    3.或者如果 CC27xx 上的 DH 密钥生成失败。  

    我会继续研究这个问题。 要问另外几个问题、您是否在 CC27xx 端生成 DH 密钥? iPhone 是否正在生成并向设备发送 DH 密钥? 请告诉我。  

    谢谢、

    Isaac

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

    您好、Isaac、

    我的理解是、两个器件上都生成了 DH 密钥。

    每个器件都生成自己的私钥并交换公钥。
    然后、双方使用自己的私钥和对等公钥在内部计算共享的 DH 密钥。
    从不传输 DH 密钥本身;只交换公钥、随机值和确认值。

    配对请求、配对公钥、随机配对和配对 DHKey 检查等信号由 iPhone 端触发。

    宫宅

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

    你好、Miyatake-San、  

    是的、公钥不同是可能的错误之一。 我需要深入研究为什么会发生这种情况。 幸运的是、我差不多完成了测试设置、所以可以运行一些测试。 遗憾的是、如果这是手机端的问题、我将无法重现该问题、因为我会向 CC27xx 测试 CC27xx。  

    谢谢、

    Isaac