蓝牙的学习

本文深入探讨了蓝牙技术,包括经典蓝牙和低功耗蓝牙(BLE)的区别,蓝牙协议栈的架构,如双芯片、单芯片和自定义双芯片方案,以及BLE协议栈的各个层次,如PHY、LL、GAP、L2CAP、SMP、ATT和GATT。此外,介绍了BLE协议中的广播和连接方式,以及如何在应用中使用蓝牙协议栈。最后,讨论了蓝牙通信的距离、协议架构和BLE链路层数据包格式,以及BLE主机的服务、特性和行为。
摘要由CSDN通过智能技术生成

A、BT和BLE概述

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、经典蓝牙和低功耗蓝牙两者物理层调制解调方式是不一样

B、蓝牙架构实现方案(蓝牙协议栈方案)

一般把整个蓝牙实现方案叫做蓝牙协议栈,蓝牙协议栈有哪些具体的架构方案?
架构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接口进行通信

C、低功耗蓝牙(BLE)协议栈

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层(Generic access profile)。GAP是对LL层payload(有效数据包)如何进行解析的两

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值