蓝牙通讯

关于蓝牙协议栈,这里分享两处整理的较为全面和细致的资源:
蜗窝科技
CY大象

前段时间一直在研究蓝牙, 加了一些做蓝牙的群, 可是最终发现,很多从事蓝牙开发的iOS人员,连蓝牙协议栈都不知道, 关于安全机制甚至都没听过, 这主要也是因为苹果的封装实现都比较简单,而更多的一些设置接口并未暴露,这也导致了iOS方面存在诸多限制.

通过这段时间的测试结果,总结了下iPhoneMTU信息:

蓝牙通讯_第1张图片
屏幕快照 2017-07-02 上午11.26.08.png

MTU包括三个部分: OP Code(1Byte)Handler(2Byte)Payload , 通过不同设备的测试, 抛去 OP Code(1Byte)Handler(2Byte), 所以得出了以上的结果, 而 AndroidMTU已经达到了 247, 至于可以手动进行设置这点 , 因为我并不从事 Android开发 , 所以没有尝试过.

下面是一份从ifixit上获取到的iPhoneWiFi-BT蓝牙硬件参数信息:

蓝牙通讯_第2张图片
屏幕快照 2017-07-02 上午11.25.47.png

因为公司项目要保证强实时和高质量通信速率, 所以对通信速度也做了多次的测试, 以下是部分测试结果:

蓝牙通讯_第3张图片
屏幕快照 2017-07-02 上午11.25.59.png

说明: 以上测试结果是在设备波特率为19200下的测试结果, 很多外设目前的波特率最高为115200, 可是我们的设置在修改到了115200波特率下后,iOS就会出现传输速率不稳定,每个包片段长度阶梯型变化的现象, 但Android那边并无影响 , 虽然iOS不能像Android那样有更大的MTU size,但是在苹果论坛中, 有一位苹果工作人员留下这样一段答复:

蓝牙通讯_第4张图片
DLE.png

然而在通信速度上,4.04.2 甚至与 4.2 + DLE三者在通信速度上并没有看到什么明显的提升.

在关于蓝牙后台方面,我曾经做过三次测试(在没有开启后台重连的情况下):
第一次最长,保持了15.5小时
第二次保持了11小时
第三次只保持了8小时左右

测试的环境是,打开应用放置后台锁屏

你可能感兴趣的:(蓝牙通讯)