炬芯(Actions)BLE ATB110X BLE协议栈简介

BLE 协议栈层次架构

BLE 协议栈层次框图

• 基于 GATT 的应用规范 (Application)
– 即时报警服务、FindMe 规范、链路丢失服务、健康体温计规范、电池服务等
• 通用接入规范 (Generic Access Profile, GAP)
– 蓝牙设备如何发现、建立连接及绑定远端蓝牙设备的通用程序
• 通用属性协议 (Generic Attribute Protocol, GATT)
– 定义了服务的流程、格式及其所包含的特征,包含特征的发现、读取、写入、 通知、指示
– Client/Server Model
• 属性协议 (Attribute Protocol, ATT)
– 用于发现、读取和写入对端设备上的属性的规范
– Attribute database
• 安全管理协协议 (Security Manager, SMP)
– 配对和密钥分发
• 链路控制和适配协议 (Logical Link Control and Adaption Protocol, L2CAP)
– 数据分组交换
• 主机接口规范 (Host controller Interface, HCI)
– 主机和控制器之间的接口
• 链路层 (Link layer, MAC)
– 链路管理,执行基带协议和其它低级的链路程序
• 物理层 (physical layer, RF&BandBand)
– 空中包的收发

physical layer
• 低功耗蓝牙设备工作在 2.4 GHz ISM 频段
• 1 Mbps PHY 吞吐量
• 40 信道, 3 个广播信道,37 个数据信道
• 自适应调频


Link layer
• 角色
– Master
– Slave
• 主要责任
– 信道管理
– 广播和扫描
– 创建和保持连接
– 空中包收发
– 加密链路
• 状态机
– Standby:低功耗模式
– Advertising: 在 3 个广播信道发送广播包
– Scaning:主动和被动扫描
– Initiating:创建连接 – Connection:数据通讯
链路层状态机:

• 空中接口包的格式
– 前导数据
– 地址
– PDU 头
– PDU 长度
– PDU 数据
– CRC
空中包格式:


• 广播和扫描
广播和扫描过程


• 数据通讯
数据通讯过程


HCI
• 主机和控制器之间的接口
– 一种标准的通讯的机制
– 允许主机将命令和数据发送到控制器
– 允许控制器将事件和数据发送到主机
HCI 双芯片架构:


GAP
• 角色
– 广播角色:发送广播包
– 观察者角色: 接收广播包
– 中心角色:建立连接的发起者 (LL Master)
– 外围角色:接受连接的建立 (LL Slave)
广播者角色和观察者角色:

中心角色和外围角色:


• 连接管理
– 配对:交换安全特征
– 绑定:long term key 保存
– 发现:服务和特征的发现
• 设备管理
– 广播
– 扫描
• 安全
– 加密
– 授权

L2CAP
• 数据分割和重合
– 支持最大传输单元来提供传输效率,最大传送单元长度可以大于基带数据支 持的长度
• 信道复用
– 属性协议,即 CID=0x0004
– 安全协议,即 CID=0x0006
– L2CAP signal 信道,即 CID=0x0005
L2CAP 层框图:



SMP
配对和密钥分发
• 加密和授权
• 配对过程
1. 共享双方设备的 I/O 能力
2. 生成 Short Term Key(STK)
3. 特定的密钥分发
• 配对方法
– Just works
– Passkey entry
–Out of band
– Numeric comparion(for LE Secure connections)
• 绑定
– 把配对过程中生成的 long term key 存储起来,这个过程叫绑定
配对中的 IO 组合情况:


ATT
• 角色
– 客户端
– 服务端
• 属性
– 属性类型:UUID(16bit or 128 bit)
– 属性句柄:服务器上的所有属性都会分配一个唯一非零的属性句柄
– 属性许可:使用许可、认证许可、授权许可
– 属性值:0-512 byte
att 属性储存数据库结构:

• 方法类型
– 请求 (客户端到服务端)
– 应答 (服务端到客户端,是对请求的回应)
– 命令 (客户端到服务端,不需要应答)
– 通知 (服务端到客户端,不要确认)
– 指示 (服务端到客户端)
– 确认 (客户端到服务端,是对指示的回应)

GATT
• 角色
– GATT 客户端:Read,write,notify,or indicate operations
– GATT 服务端:储存数据和提供访问数据的方法
– 独立于 LL Master/Slave
– GATT 客户端和服务端能够同时存在
• 为应用提供属性支持
– 发现所有服务、特征及特征描述符
– 客户端发起过程 (writing values)
– 服务端发起过程 (notifications, indications)
BLE 连接示图:

Profiles
• 基础概念
– 描述 2 个或者更多设备的行为规范
– 描述设备的可发现性和可连接性
– Profile 客户端实现如何使用服务 (管理)
– Profile 服务端实现具体服务 (数据库)
• 例子: 心跳 Profile
– 产品 (心跳监视)
– 角色:心跳数据采集者和收集者
– 用途:心跳采集设备测量心跳和其它信息,收集者接收采集者测量的数据
心率 profile :


 

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论