BLE 简介

介绍:BLE 的全称叫做 Bluetooth Low Energy,也称之为低功耗蓝牙,属于蓝牙技术中的一种。与之对应的是 Classic Bluetooth,经典蓝牙,低功耗蓝牙虽工作原理与经典蓝牙类似,但是有着独特的架构体系,所以LE独立出来成为一种蓝牙形态。不过LE和经典蓝牙使用相同的2.4G无线电频率,可以共享同一个天线,组成双模蓝牙。

BLE频段与信道:BLE和传统蓝牙不同,把传统蓝牙的79个信道分为40个,带宽也有1MHz变为2MHz。其中37、38、39作为主广播信道,其余的既可以作数据信道也可以作备用广播信道。如下图所示:

其中信道的频率由下图所示方法计算:

由图可得最小频率是2402MHz,最大频率是 2480MHz。

BLE芯片的组成:由软硬件共同构成,软件部分主要是协议栈,硬件部分包括蓝牙基带(Baseband)、调制解调部分(Modem)、无线接收部分(RF)。

BLE协议栈:

BLE的协议栈如下图所示:

协议栈主要是三部分组成,Controller、Host和profiles。其中硬件部分像蓝牙基带、RF等都在Controller中实现,软件部分则主要通过Host来控制,软硬件通过HCL来进行交互。我们设计BLE芯片的话,要设计它的Controller和Host,我们所有的设计都要遵循蓝牙协议规范。

软硬件以及软硬件交互分明的协议栈的设计,可以大大的提高设计效率,我们可以同时进行软件和硬件的设计,只要按照标准来设计,我们的设计就可以同步进行了。

下面首先来大致看一下每一部分的功能和作用:

  1. 物理层(Physical Layer,简写 PHY):PHY层用来指定BLE所用的无线频段,调制解调方式和方法等。由于我们使用的频段2.4G是大家都可以免费使用的,也就是说蓝牙必定会面临干扰,简单来说物理层的作用正是要尽可能的屏蔽掉我们不需要的信号,排除干扰,使物理层上面的数据链路层可以正常运作。
  2. 链路层(Link Layer,简写LL):可以说LL层是整个蓝牙数据传输的核心,要做的事情非常多,包括频道的选择,空中数据识别,数据的比特流处理等等。不过LL层只是对接收到的或者要发送的数据进行处理,对于数据的解析还是要看Host的软件部分。链路层可以理解为一个状态机,控制着各种状态,在蓝牙协议4.0中,如下图所示:


一共有以下五种状态:就绪态(Stanby)、扫描态(Scanning)、广播态(Advertsing)、发起态(Initiating)、连接态(Connection)。
在蓝牙5.x中,又增加了几种状态,如下图所示:


一共有以下七种状态:Standby State(待机)、Advertising State(广播)、Scanning State(扫描)、Initiating State (初始发起)、Connection State(连接)、Synchronization State(同步)、Isochronous Broadcasting State(等待连接)。具体链路层细节会在后续文章继续介绍。

  1. 主机控制接口层(Host Controller Interface,简写 HCI):它的作用就如名字所示,是一个主机和控制器的接口,主要用于主机通过向控制器发送命令数据包来执行命令或者控制器反馈之前输入的命令等等。HCI主要包括逻辑接口(数据包)和物理接口(UART、USB等等),HCI不是必须要有的,如果是双芯片的BLE,通常用HCI来规范两者之间的通信协议和通信命令等。
  2. 属性协议层(Attribute protocol,简写 ATT):ATT是GATT和GAP的基础。简单来说,ATT层用来定义用户命令及命令操作的数据,比如读取某个数据或者写某个数据。在ATT中主要用到的就是attribute概念,attribute本身可以简单地理解为一条数据,或者说一种操作,Attribute定义数据,同时定义该数据可以使用的ATT命令。软件开发者们最多接触的就是ATT层面的设计与开发。
  3. 通用访问配置文件层(Generic access profile,简写GAP):GAP可以对LL层payload进行解析,主要用来控制设备连接和广播, 使你的设备被其他设备可见,并决定了你的设备是否可以或者怎样与交互设备进行通讯。GAP层有4种不同类型的广播:通用的、定向的、不可连接的以及可发现的。设备每次广播时,会在3个广播信道上发送相同的报文。这些报文被称为一个广播事件,例如 Beacon 设备就只是向外广播,不支持连接。
  4. 通用属性配置文件层(Generic Attribute profile,简写 GATT):GATT更像是一种SPEC和一种桥梁,用来规范attribute中的数据内容,并运用对attribute进行分类管理。一旦两个设备建立起了连接,GATT 就开始起作用了,也就是说要想经过GATT,必须先符合GAP协议。
  5. 逻辑链路控制及自适应协议层(Logical Link Control and Adaptation Protocol,简写 L2CAP):L2CAP在经典蓝牙中的作用更为强大,在BLE中主要负责协议复用的功能,无论是SM还是ATT等协议栈的数据都可以通过L2CAP连接HCL传输到控制器里面,并向上连接应用的接口。LL只关心传输的数据本身,L2CAP就要区分是加密通道还是普通通道,在BLE中不是主要模块。
  6. 安全管理层(Security Manager,简写 SM):此模块用来保证数据安全的加密模块,数据加密需要一个密钥key,密钥key的一系列处理就在SM中进行。

本文对于BLE蓝牙的基本内容进行了简单的介绍,之后会对每一部分详细的展开分析。


本文章仅供学习交流,如有引用请标注出处。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值