如何通过BLE流式传输数据?

时间:2017-11-13 19:32:43

标签: c arm embedded bluetooth-lowenergy mbed

我目前正在评估Maxim Integrated MAXREFDES100#的董事会。作为论文的一部分,我想研究是否有可能使用BLE进行数据流传输。

supplied software功能齐全,可以传输数据。当然,只有较小的数据包在较长的时间内如温度或预先计算的心率值。我知道BLE不适合并且没有被设计为连续传输数据。不过,我想尝试通过BLE接口传输ECG原始数据。因此,我可以检查我的数据是否已及时完全到达(ECG数据的先决条件),我开发了以下测试设置:

目前,我将正弦波数据存储到大型FIFO中,并将20字节正弦数据包传输到特性。到目前为止,一切都很有效。使用Android设备和BLE嗅探器,我捕获数据包并检查正弦是否有任何中断。下面的图片来自更长的测量:(我已经测试了我的FIFO并且正弦数据完整而没有任何中断):这是我的Android和我的BLE嗅探器的捕获:数据包丢失。

正弦& Spektrogram Image

Sine & Spektrogram Image

进一步的测量表明,错误不是按顺序发生的,它们总是可以在不同的时间找到。 (Fifo实施必须正确)

正弦& Spektrogram Image 2

Sine & Spektrogram Image 2

由于我的手机和我的Adafruit BLE嗅探器在同一个地方有相同的错误,因此主板端的数据包必须已损坏。我怀疑他们在一些协议级别丢失了(GAP可能?)。有趣的是,错误影响至少200个后续字节(256字节数据是完整的正弦)。这意味着每个20字节至少需要10个数据包才能获得这样的图形。

  • 通过BLE接口连续发送数据有哪些选择?
  • 是否可以在没有GATT / ATT的情况下直接通过L2CAP发送数据?
  • 是否有更多无线,低功耗协议允许数据流? (因此,对于完整性和按时间顺序的正确性,请确认TCP)

最好的问候,Emin

1 个答案:

答案 0 :(得分:1)

  
      
  • 通过BLE接口连续发送数据有哪些选项?
  •   
  • 是否可以在没有GATT / ATT的情况下直接通过L2CAP发送数据?
  •   

BLE v4.1引入了LE Connection-Oriented Channels,这是一种在没有GATT / ATT的情况下直接通过L2CAP发送数据的方法(想想网络套接字)。另请参阅蓝牙核心规范卷。 3 A部分3.4。

您正在使用的主板有一个EM9301 BLE芯片,似乎支持BLE v4.1。但是,您使用的mbed库不允许您使用它们。请参阅here,您有一个用于连接/断开回调的接口和GATT特性读/写/通知。 LE连接导向频道没什么。