目前我看到的demo最多20K bytes, 3.35 seconds。
这也太差了一点吧。我8个通道1k采样率的心电数据都传不了!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
心电需要 1K 采样率吗?有研究表明1K 采样率不是必须的。另外TI 有高Data Rate的解决方案!比如BT, BLE都支持的CC2560。BLE主要用于低数据率的应用。
抱歉!请Data Rate 跟实际Over the air的Throughput是有差别的。Data Rate主要由调制方式决定,Throughput跟协议, 通信环境等相关,。比如WiFi的无线路由器上所标明的Data Rate跟 Throughput是不一样的。以后选IC请考虑周全一点。
1. 测试环境
我的办公室,周围无强无线干扰。硬件采用TI的CC2540评估板。
2. 方法
使用TI的演示项目SimpleBLEPeripheral,将simpleBLEPeripheral.c换成wiki上的throughput_10ms_20byte_notifications演示代码。原演示代码发送1000个包停止发送。我改为了连续发送不停止。
使用我自己写的串口程序接收数据包(这个程序应该不会有问题,921.6k波特率2k采样率的心电数据接收都能搞定的)。包头为“04,0xFF,0x1C,0x1B,0x05,0x00,0x00,0x00,0x16,0x14,0x00”。识别到一次错误包头则“包头错误”+1。
每个包前16个字节为8通道虚拟的心电数据。后4个字节为包顺序号,每识别到一个错误的顺序号则“顺序号错误”+1。
3. 设置
连续发4个sendData();。发送间隔时间设置17ms(原设置为7ms,;经测试会导致我的数据大量出错)。
其它设置没有改变(我有改过Min和Max 连接间隔为6ms,没有发现有什么变化)。
ps.
原wiki上的demo,我觉得有个矛盾。他7ms发4次应该有80字节。那么就大约可以发11.1kbtye/s。但是他却说最大只能发5.9kbtye/s。我估计他就是丢包了。
Liao Wei 你好,
感谢你对2540的热衷 :)
有一点, 越短的connection interval, 越大的功耗.
事实是, 根据蓝牙协议栈的规定, 7.5ms是最小的connection interval. 这是BLE通信双方都必须遵从的规定. 最大是4s.
数据传输方面, 同时也要考虑到接收方的实际情况, 事实上是, 在实际产品中, 接收方也都是有限制的. 在一个connection interval里面, 一般也都只能接收3到4个包, 比如说iPhone.
如果无限制发包, 那就失去BLE的意义了.
您好!请问CC2540可以用来传送文件吗?有没有这样的例程参考?我现在看到的基本是传送数据的例子。谢谢。。。。
请问你是怎么实现一次发20字节的,参考官网的sendData,不知道是怎么赋值给characteristic的,小白请赐教