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.

[参考译文] CC2650:simplePeripheral BLE 延迟

Guru**** 2558250 points
Other Parts Discussed in Thread: CC2650MODA

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1012374/cc2650-simpleperipheral-ble-latency

器件型号:CC2650
Thread 中讨论的其他器件: 数据包监听器

您好!

我正在使用 CC2650MODA 开发应用(最终将迁移到 CC2640R2)、并且在 SCIF 检测到的传感器事件与在 Android 应用上接收 BLE 通知之间、我会看到巨大的(250ms)延迟。

我查看了 SimpleBLEPeripheral_createTask 函数、但看不到 SimpleBLEPeripheral_taskFxn 的运行频率。

void SimpleBLEPeripheral_createTask(void)
{
  Task_Params taskParams;

  // Configure task
  Task_Params_init(&taskParams);
  taskParams.stack = sbpTaskStack;
  taskParams.stackSize = SBP_TASK_STACK_SIZE;
  taskParams.priority = SBP_TASK_PRIORITY;

  Task_construct(&sbpTask, SimpleBLEPeripheral_taskFxn, &taskParams, NULL);
}

对于低延迟响应、我希望它每1ms 左右运行一次以处理通知。  如果不指定任务周期、它将默认为什么?  或者、它是否始终运行、除非被更高优先级的东西阻止?

谢谢、

Jim

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

    您好、Jim、

    任务 SimpleBLEPeripheral_taskFxn 由事件驱动-这意味着每次 BLE 堆栈发布事件时都会执行代码。

    您遇到的延迟不是由 SimpleBLEPeripheral_taskFxn 任务的延迟造成的。 延迟来自低功耗蓝牙协议本身。  

    当处于连接状态时、设备仅在连接事件期间交换数据。 "连接间隔"是两个连接事件之间的时间、在两个器件之间进行协商。 连接间隔的最短时间为7.5ms - Android 可能不允许选择这样小的连接间隔。

    simple_peripheral 定义了以下代码可接受的最小和最大连接间隔:

    // Minimum connection interval (units of 1.25ms, 80=100ms) if automatic
    // parameter update request is enabled
    #define DEFAULT_DESIRED_MIN_CONN_INTERVAL     80
    
    // Maximum connection interval (units of 1.25ms, 800=1000ms) if automatic
    // parameter update request is enabled
    #define DEFAULT_DESIRED_MAX_CONN_INTERVAL     800

    我希望这将有所帮助、

    此致、

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

    谢谢 Clement。

    我已经将所需的最小和最大连接间隔值设置为6 (7.5ms)和16 (20ms)。  (我已了解到 iOS 设备不支持少于20ms 的时间。)  在调试我的应用程序时、我可以看到协商的连接间隔为10ms、但我的端到端延迟为250ms、因此我很难找到它的来源。  当然、它可能在应用程序中...

    任何进一步的建议都不胜感激。  TI 是否有将显示消息时序的数据包分析器?

    谢谢、

    Jim

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

    您好!

    您可能需要查看我们的数据包监听器(https://www.ti.com/tool/download/PACKET-SNIFFER-2)。

    您可以在 此处找到一些文档

    此致、

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

    您好!

    由于不活动、我正在关闭此主题。

    如果需要、请打开一个新主题。

    此致、