这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
cc2640r2f:stack_overivew [2017/08/31 16:30] 127.0.0.1 外部编辑 |
cc2640r2f:stack_overivew [2021/06/22 23:14] (当前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
< | < | ||
+ | |||
# Overview # | # Overview # | ||
- | 从这部分开始详细介绍蓝牙协议栈功能和接口,协议栈工程关联实现协议栈的文件以及实现协议栈的任务,该任务也作为协议栈应用的最高优先级任务。 | + | |
- | TI采用库文件提供方式作为协议栈提供的一个主策略,尽管如此,还是需要开发者了解协议栈各个抽象的功能和相互作用。 | + | 从这部分开始详细介绍蓝牙协议栈功能、接口、协议栈工程关联、实现协议栈的文件和任务,该任务也作为协议栈应用的最高优先级任务。 |
+ | TI 采用库文件的方式作为协议栈的一个主策略,尽管如此,还是需要开发者了解协议栈各个抽象的功能和相互作用。 | ||
## 介绍 ## | ## 介绍 ## | ||
- | [蓝牙5.0核心规范](https:// | + | |
- | BLE5.0核心主要包含以下功能: | + | [蓝牙 5.0 核心规范](https:// |
- | * 2MSym/s PLY层设计(2M Symbol Rate 物理层)。 | + | BLE5.0 核心主要包含以下功能: |
- | * LE 信道选择算法# | + | * 2M Sym/s PLY 层设计(2M Symbol Rate 物理层)。 |
+ | * LE 信道选择算法 #2 | ||
* LE 安全连接 | * LE 安全连接 | ||
* LE 数据长度扩展 | * LE 数据长度扩展 | ||
行 17: | 行 21: | ||
* 连接参数请求 | * 连接参数请求 | ||
- | 以上功能均在蓝牙5.0协议栈实现,并且可以选择编译。 | + | 以上功能均在蓝牙 5.0 协议栈实现,并且可以选择编译。 |
- | ## BLE协议栈基础 ## | + | |
+ | ## BLE 协议栈基础 ## | ||
+ | |||
+ | 如图 1 ,蓝牙协议栈包含一个 Host 和 Controller 两个逻辑实体。这种区分从经典蓝牙的 BR/EDR 就存在了,各种功能独立实现,任务配置文件和应用相关都在 Host 的 GAP、GATT 抽象层。 | ||
![](http:// | ![](http:// | ||
- | 蓝牙协议栈包含一个Host和Controller两个逻辑实体,这种区分从经典蓝牙的BR/ | + | |
- | BLE 工作在无需认证的2.4G免费频段,该频段广泛应用于ISM(工业、科学、医疗)领域。通过跳频通信实现抗干扰特性,GFSK调制,采用1Mbps码元率PHY层设计,可以实现1Mbps波特率通信,BLE5.0优化的物理层设计可以实现2Mbps的PHY层。 | + | 图1. 协议栈基础 |
+ | |||
+ | BLE 工作在无需认证的 2.4G 免费频段,该频段广泛应用于 ISM(工业、科学、医疗)领域。BLE 通过跳频通信实现抗干扰特性,是 GFSK 调制信号,它采用 1Mbps 码元率 PHY 层设计,可以实现 1Mbps 波特率通信。BLE5.0 优化的物理层设计可以实现 2Mbps 的 PHY 层。 | ||
### GAP ### | ### GAP ### | ||
- | GAP工作在以上5个状态机 | + | |
+ | GAP 工作在以上 5 个状态机 | ||
* Standby | * Standby | ||
* Advertising | * Advertising | ||
行 30: | 行 43: | ||
* Connected | * Connected | ||
- | 在`Standby`状态,双方设备都处于未连接状态,`Advertiser`尝试广播数据,`Scanner`接收到广播数据后尝试进行扫描请求,并且得到扫描回复。此时`Scanner`产生连接意图,转变成`Initiator`发送连接请求,成功连接后发送广播的`Advertiser`作为`Master`,进行连接请求的`Initiator`成为`Slave`. | + | 在 `Standby` 状态,双方设备都处于未连接状态。`Advertiser` 尝试广播数据,`Scanner` 接收到广播数据后尝试进行扫描请求,并且得到扫描回复。此时 `Scanner` 产生连接意图,转变成 `Initiator` 发送连接请求,成功连接后发送广播的 `Advertiser` 作为 `Master` ,进行连接请求的 `Initiator` 成为 `Slave`。 |
![](http:// | ![](http:// | ||
- | 以上状态机转变,角色扮演以及中间完成的设备发现、链路建立、链路终止均由GAP完成。 | + | |
+ | 图2. 状态机转变示意图 | ||
+ | |||
+ | 以上状态机转变、角色扮演以及中间完成的设备发现、链路建立、链路终止均由 GAP 完成。 | ||
### HCI ### | ### HCI ### | ||
- | 以上我们讲解过蓝牙系统由Host和Controller两个逻辑实体组成,他们之间的通信、交互通过HCI标准接口完成,基于该标准接口,Host和Controller可以独立在两个MCU实现,通过Uart/ | + | |
+ | 蓝牙系统由 Host 和 Controller 两个逻辑实体组成,他们之间的通信、交互式通过 HCI 标准接口完成的。基于该标准接口,Host 和 Controller 可以依靠 | ||
### L2CAP ### | ### L2CAP ### | ||
- | 逻辑链路控制适配协议层由上层服务提供逻辑链路层访问和进行端对端的数据通信。 | + | |
+ | 逻辑链路控制适配协议层由上层服务提供逻辑链路层访问进行端对端的数据通信。 | ||
### SM ### | ### SM ### | ||
+ | |||
安全管理层完成配对和密钥分布,提供同连接设备各层之间的通信安全。 | 安全管理层完成配对和密钥分布,提供同连接设备各层之间的通信安全。 | ||
+ | |||
### GATT/ATT ### | ### GATT/ATT ### | ||
- | GATT负责主从设备之间的应用数据交换。GATT作为使用的ATT的子流程的一个服务型框架。为主从设备交互数据提供Profile、Service、Characteristic等概念的抽象、管理。 | + | |
+ | GATT 负责主从设备之间的应用数据交换。GATT 作为使用的 ATT 的子流程的一个服务型框架,为主从设备交互数据提供 Profile、Service、Characteristic 等概念的抽象、管理。 | ||
## 加入我们 ## | ## 加入我们 ## | ||
+ | |||
文章所有代码、工具、文档开源。加入我们[**QQ群 591679055**](http:// | 文章所有代码、工具、文档开源。加入我们[**QQ群 591679055**](http:// | ||
<div> | <div> | ||
行 52: | 行 78: | ||
</ | </ | ||
- |