其实LE和BR/EDR完全是两种不同的东西,物理层的channel数减少了一半,AFH调频算法有了新的改进,
应用场景也不同,LE主要是应用于物联网,所以从设计上来讲,有以下考虑:
- 功耗低,数据量少,基于这个考虑,和传统蓝牙不同的是,很多场景下,BLE并不依赖于有连接的方式,无连接的方式具备功耗低,使用时间更长的优点,比如BLE的beacon技术就是一个设备定时发非连接广播包,通常要求这样一个节点,可以工作一到两年左右。虽然BR也有广播的内容,但是在BLE的领域里,广播的重要性被强化了。
- 因为都是蓝牙体系的东西,能最大限度地复用BR/EDR的东西,所以虽然LE的物理层和BR不一样,LE的controller在core spec中是单独的第六章,但是协议栈的架构并没有变,LE host和LE controller的交互还是通过HCI接口,数据包也是使用acl data格式,只是其中的CID是fixed channel的,也就是ATT的固定的channel值4。
- LE协议在HOST加入了ATT和GATT的内容,为什么要加呢?还是因为LE的工作场景,主要是server/client架构的,比如说温湿度传感器,需要定期向服务器上传数据,数据量很小,时延不敏感,诸如此类的场景是很多的。所以需要抽象出ATT这样一个通用的规范来变得很有必要。
ATT全称是attribute protocol,attribute翻译过来是属性,这个和GATT的characteristic(特性)的概念很容易搞起来。
简单来说,属性是一种数据的基本组织形式,包含handle,type,value,任何一条属性都可以通过handle去唯一寻址。Type是蓝牙协会定义好的一些UUID,取值范围是0x2800-0x28ff,比如说,电池服务这个属性,其属性类型是ATT_DECL_PRIMARY_SERVICE(0x2800)。

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



