Follow-Up question on Electrical Engineering Stackexchange

我想在短时间内重复编写蓝牙低功耗特性的值(作为可能的用例,想象一下鼠标)。

  • 具有128位UUID的特征是 20字节长。因此,可以在单个低能耗事务中编写它。
  • 写入的速率为50 Hz,等于每20ms一次写入一次
  • 因此,写入20 * 50 * 8 = 8 kbit/s
  • 我正在使用命令/无响应写入模式来写入特征。因此,在属性层上不会发生确认。
  • 没有连接其他蓝牙或低功耗蓝牙设备。 WLAN不执行任何操作。测试期间不会读取或写入其他特征。

  • 我通过从iPhone 4S发送包含序列号的数据包来测试程序。在每个发送的数据包之后,序列号加一。

    在接收方,使用了集成了CSR1000 BLE芯片的可编程开发板来接收数据包,并将接收到的序列号打印到串行连接中。

    我的问题如下:
  • 一段时间后,数据包开始被丢弃。前约100个数据包在50 Hz时工作正常。从那时起,数据包开始被丢弃。
               0x00 - 0x46   received
                0x47, 0x48   missing
    0x49, 0x4a, 0x4b, 0x4c   received
                      0x4d   missing
    0x4e, 0x4f, 0x50, 0x51   received
                      0x52   missing
    0x53, 0x54, 0x55, 0x56   received
                      0x57   missing
    ...
    

    通常,一包四个数据包可以很好地传输(很少有2个数据包)。然后,丢失1-7个数据包。

    当我减小特征值的大小时,问题仍然存在。

    当我以100Hz而不是50Hz写入时,图片是一样的-只是在大约35个数据包之后开始丢弃,并且在成功传输四个数据包之间丢弃了5-7个数据包。

    对于丢失的数据包,无论写入频率如何,最终的传输速率约为5 kbit/s。明显低于蓝牙低功耗技术上可能达到的〜305 kbit/s。
  • 当我将数据包从开发板发送到iPhone 4S时,问题也会朝相反的方向发生。同样,我获得的最大速度为5 kbit/s。通知机制用于此方案。同样,在属性层上没有任何确认发生。
  • 当我尝试同时发送双向消息时,事情开始崩溃,必须重置开发板和iPhone 4S。

  • 问题:
  • 这可能是开发板上使用的Bluetooth Low Energy芯片的问题吗?

    如果是,为什么在iPhone充当接收器的情况下,问题也朝相反的方向发生?

    市场上是否有支持高频访问特性的开发板?
  • 问题的根源可能是什么?

    除假设外,还请尝试引用Bluetooth规范/演示幻灯片/文章的各个部分。

  • 市场上有蓝牙低功耗鼠标。小鼠的典型轮询速率为125 Hz,并且每跳至少必须发送两个16字节值以及额外的HID开销。因此,应该可以解决我的问题。

    更新

    在蓝牙规范版本4.0第2卷E部分第7.7.65.1节中描述了LE连接完成事件。对于不同的连接参数,我收到以下值:
    Parameter               Value      Description
    --------------------------------------------------
    Conn_Interval           0x0054     Time =  105 ms
    Conn_Latency            0x0000     Time =    0 ms
    Supervision_Timeout     0x00fc     Time = 2520 ms
    Master_Clock_Accuracy     0x05              50 ppm
    

    最佳答案

    发出连接参数更新解决了该问题,并将吞吐量从5 kbit/s增加到〜约33 kbit/s 。但是,这仍然低于预期的〜305 kbit/s。

    Conn_Interval = 0x000f = 18.75 ms
    Conn_Latency  = 0x0000
    Supervision_Timeout = 0x00fc
    

    有什么方法可以达到约305 kbit/s的速度?

    Follow-Up question on Electrical Engineering Stackexchange

    10-08 09:24