相关疑难解决方法(0)

蓝牙低功耗 - 重复更新特征值

关于电气工程Stackexchange的后续问题

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

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

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

在接收端,使用包含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
    ...
    
    Run Code Online (Sandbox Code Playgroud)

    大多数情况下,一包四个数据包被很好地传输(很少,只有2个数据包).然后,丢失了1-7个数据包.

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

    当我以100Hz而不是50Hz写入时,图像是相同的 - 只有在大约35个数据包之后开始出现丢弃,并且在成功传输四个数据包之间丢弃了5-7个数据包.

    对于丢失的数据包,无论写入的频率如何,所得到的传输速率都约为5 kbit/s.这显然低于~305 kbit/s,这在技术上可能超过蓝牙低功耗.

  • 当我从开发板向iPhone 4S发送数据包时,问题也发生在相反的方向.同样,5 kbit/s是我得到的最大值.通知机制用于此方案.同样,属性层上不会发生确认.

  • 当我尝试同时向两个方向发送时,事情开始爆发,我必须重置开发板和iPhone 4S.

问题:

  • 这可能是开发板上使用的蓝牙低功耗芯片的问题吗?

    如果是的话,为什么问题也会发生在相反的方向,即iPhone作为接收器?

    市场上是否有支持高频特性的开发板?

  • 问题的根源可能是什么? …

performance bluetooth packet ios bluetooth-lowenergy

21
推荐指数
1
解决办法
1万
查看次数

iOS 设备和蓝牙

有谁知道外部蓝牙设备和 iPhone / iPad(4S 及以上)之间的最大数据传输速率。

我读到 BT3.0 中的增强数据速率为 24Mbs - iPhone 可以支持吗?

使用 BT4.0 LTE 的最大数据量是多少?

多谢你们!

iphone bluetooth ipad mfi

5
推荐指数
1
解决办法
4849
查看次数

标签 统计

bluetooth ×2

bluetooth-lowenergy ×1

ios ×1

ipad ×1

iphone ×1

mfi ×1

packet ×1

performance ×1