赞
踩
1、经典蓝牙(classic Bluetooth)和低功耗蓝牙(Bluetooth low energy,简称BLE或者LE)
2、蓝牙3.0规格书,经典蓝牙包括BR,EDR和HS(AMP)三种模式。
3、蓝牙技术联盟(SIG),从蓝牙4.0之后,蓝牙才分经典蓝牙和低功耗蓝牙
4、在蓝牙4.0规格中,SIG定义了四种蓝牙controller技术:BR,EDR,AMP和LE,蓝牙4.0发布之初,SIG还特意将Bluetooth low engery对外宣传为Bluetooth smart,而“Bluetooth”继续用来指代经典蓝牙,Bluetooth smart ready则用来表示双模蓝牙
5、经典蓝牙和低功耗蓝牙两者物理层调制解调方式是不一样
一般把整个蓝牙实现方案叫做蓝牙协议栈,蓝牙协议栈有哪些具体的架构方案?
架构1:host+controller双芯片标准架构
在蓝牙协议栈中,host是什么?controller是什么?HCI又是什么?
这个标准把蓝牙协议栈分成host和controller两部分,其中host跑在AP(大多数手机都含有两个处理器,操作系统,用户界面和应用程序都在Application Processor AP上执行,AP一般采用ARM的CPU;而手机射频通讯控制软件,则运行在另一个分开的CPU上,这个CPU称为Baseband Processor(BP/基带芯片))上,controller跑在蓝牙模块上,两者之间通过HCI协议进行通信,而且host具体包含协议栈哪些部分,controller具体包含协议栈哪些部分,两者之间通信的HCI(host controller interface主机控制器接口)协议如何定义,这些在蓝牙核心规格中都有详细定义,因此我把它称为双芯片标准方案。
架构2:单芯片整体方案
手机周边设备功能简单,成本敏感,因此采用一颗芯片来实现整个蓝牙协议栈,即把蓝牙协议栈所有功能都放在一颗芯片上,host和controller都放在同一颗芯片上,host和controller之间直接通过API来交互,
架构3:自定义双芯片架构
还有一些蓝牙设备功能强大,它需要一颗功能非常强大的MCU来做主应用,而蓝牙SoC只是整个系统的一部分,这种情况下,大部分蓝牙协议栈功能或者整个蓝牙协议栈功能都是跑在蓝牙SoC中,而蓝牙应用则跑在主MCU中,主MCU和蓝牙SoC之间的通信协议由厂商自己定义,因此称为自定义双芯片架构方案。架构3里面有一种非常特殊的情况,即主MCU和蓝牙SoC之间采用了HCI接口进行通信
BLE协议栈为什么要分层?怎么理解BLE“连接”?如果BLE协议只有ATT层没有GATT层会发生什么?
我们把某个协议的实现代码称为协议栈(protocol stack),理解和掌握BLE协议是实现BLE协议栈的前提。BLE协议栈就是实现低功耗蓝牙协议的代码,理解和掌握BLE协议是实现BLE协议栈的前提。BLE协议栈整体架构
如上图所示,需要一个支持BLE射频的芯片,还需要一个与此芯片配套的BLE协议栈,最后在协议栈上开发应用。BLE协议栈是连接芯片和应用的桥梁,BLE协议栈主要用来对应用数据进行层层封包,生成一个满足BLE协议的空中数据包。BLE主要由以下几部分组成。
1、PHY层(Physical layer物理层)。PHY层用来指定BLE所用的无线频段,调制解调方式和方法等。PHY层直接决定整个BLE芯片的功耗,灵敏度以及selectivity等射频指标。
2、LL层(Link Layer链路层)。LL层是整个BLE协议栈的核心,也是BLE协议栈的难点和重点。像Nordic的BLE协议栈能同时支持20个link(连接),就是LL层的功劳。LL层要做的事情非常多,比如具体选择哪个射频通道进行通信,怎么识别空中数据包,具体在哪个时间点把数据包发送出去,怎么保证数据的完整性,ACK如何接收,如何重传,以及如何对链路进行管理和控制等等。LL层只负责把数据发出去或者收回来,对数据进行怎样的解析则交给上面的GAP或者GATT。
3、HCI(Host controller interface)是可选的,HCI主要用于2颗芯片(双芯片架构)实现BLE协议栈的场合,用来规范两者之间的通信协议和通信命令等。
4、GAP层(Generi
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。