TI中文支持网
TI专业的中文技术问题搜集分享网站

BLE传输速率的问题

根据TI的文档说明,BLE的传输速率可以达到5.9Kb/s。

现在我使用SimpleBLECentral于SimpleBLEPerpheral通讯。

建立了一个具有GATT_PROP_NOTIFY|GATT_PROP_READ|GATT_PROP_WRITE属性的Char。

UPDATE_CONN_INTERVAL 都设置为 4*1.25/ms

SimpleBLEPerpheral ->  SimpleBLECentral数据通过Notify的方式进行,每次20Byte。

连续发送,发现当发送速率小于1.5KB/s时,数据可以完全传输成功。但是当速率大于1.5KB/s时,数据丢失就相当的严重。

反过来传输:

SimpleBLECentral-> SimpleBLEPerpheral  数据通过GATT_WriteCharValue的方式进行,每次20Byte。

连续发送,发现当发送速率小于0.5KB/s时,数据可以完全传输成功。但是当速率大于0.5KB/s时,数据丢失就相当的严重。

针对这种现象,我有两个疑问。

1、为何相互之间的传输速率不一样,一个快,一个慢?

2、如何提升主从设备间的数据传输速率?

谢谢!!!!!

Yan:

xianbin,

1. 这个是由于notification 和 write 的机制不一样。notification 是只管发送,不需要回应,write的话需要等slave回复才能继续往下走。write 也有write without response的方式,这个会快一点,还有blob write的方式(long write),这些都可以在代码里面找到。

2. 提升传输数据,如果你用的是1.4的协议栈,可以参考一下这个http://processors.wiki.ti.com/index.php/OverlappedProcessing

xianbin xie:

回复 Yan:

1、write without response的方式能否保证数据传输的可靠性

2、OverlappedProcessing里面的方法已经试过了,没有什么明显的改善

Yan:

回复 xianbin xie:

xianbin,

1. 是的,能保证数据传输完成。

2. 你需要的目标速度是多少呢?

xianbin xie:

回复 Yan:

我希望能够达到4K的速度。

Yan:

回复 xianbin xie:

xianbin,

这个速度完全没问题。

你的connection interval 和 slave latency设置了多少?

xianbin xie:

回复 Yan:

connection interval设置为最小值  6

slave latency设置为 0

实际测试的效果最大速率只有1.5k

Yan:

回复 xianbin xie:

xianbin,

你用的是iOS设备吧?

苹果限制了1.5K。。。

haunt:

回复 Yan:

Hi Yan,

你好,请问Android对BLE的速度有限制吗?

我用Android 4.4的程序和simpleBLEPeripheral从机程序做测试,速度只有大约0.6KB/s,再高就大量丢包。

我用的是GATT_Notification函数,每个包20B,最大和最小连接间隔都设置的是10ms。不知是何问题?

谢谢你!

wang Jack3:

回复 Yan:

你好 Y,

我有个疑问想请教您,可以联系我吗?短信到:17730129235,我Ti账号用的少,不好意思。如果耽误您时间肯定有报酬,大家都不容易。

Jixiang Guo:

回复 wang Jack3:

理论上 8K Bytes/S没问题, 我使用5K  没发现丢数据

赞(0)
未经允许不得转载:TI中文支持网 » BLE传输速率的问题
分享到: 更多 (0)