繁体   English   中英

如何通过BLE传输数据?

[英]How to stream data via BLE?

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

随附的软件功能齐全,可以传输数据。 当然,在更长的时间内只有较小的数据包,例如温度或预先计算的心率值。 我知道BLE不适合并且尚未设计为连续传输数据。 不过,我也想尝试通过BLE接口传输ECG原始数据。 为了开发出以下测试设置,以便我可以检查我的数据是否及时完整,正确地到达(心电图数据的前提):

目前,我将正弦波的数据存储到较大的FIFO中,并将20字节的正弦数据包传输到特性中。 到目前为止,一切正常。 使用Android设备和BLE嗅探器,我捕获了数据包并检查正弦是否有任何中断。 下图是从更长的时间中获取的:(我已经测试了我的FIFO,正弦数据完整无任何干扰):这是我的Android和BLE嗅探器的捕获:数据包丢失。

正弦和频谱图图像

正弦和频谱图图像

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

正弦和频谱图图像2

正弦和频谱图图像2

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

  • 有哪些选项可以通过BLE接口连续发送数据?
  • 是否可以在没有GATT / ATT的情况下直接通过L2CAP发送数据?
  • 是否还有其他允许数据流传输的无线低功耗协议? (因此具有TCP的确认性,以确保完整性和时间正确性)

最好的问候,艾敏

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

BLE v4.1引入了面向LE连接的通道 ,这是一种直接通过L2CAP发送数据而无需GATT / ATT(考虑网络套接字)的方法。 另请参阅“蓝牙核心规范”。 3 A部分第3.4节。

您正在使用的板上有一块EM9301 BLE芯片,该芯片似乎支持BLE v4.1。 但是,您使用的mbed库不允许您使用它们。 看到这里 ,您有一个用于连接/断开回调和GATT特性读/写/通知的接口。 与面向LE连接的通道无关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM