![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
BLE协议栈
iizQ
Orange juice
展开
-
BLE协议栈 – 介绍
在BLE技术领域里有三个方向:BLE APP,BLE固件和BLE协议栈。其中BLE协议栈是基础,BLE芯片内部提供的固件程序充当驱动,手机上的APP作为控制端。做APP开发无需要太多的专业背景,而做固件开发则需要深入理解协议栈。BLE协议栈的官方文档可以自由下载阅读,该文档排版优良,颇具可读性。可是该文档仅有英文版,整个文档多达2000多页,这无疑增加了非英语读者的阅读困难。网上能够找到一...转载 2019-08-12 09:26:45 · 889 阅读 · 0 评论 -
BLE协议栈 – 物理层(Physical Layer)
BLE物理层解决了最基础的通信问题,比如调制解调、信号放大与滤波等。在实际使用中,几乎不会关注物理层的情况,但是在BLE产品测试阶段,要测试频偏,信号强度等项目,只有对物理机制有所了解,才能理解测试项目的目的。调制通信领域,有模拟调制和数字调制,BLE使用数字调制。数字调制也分为幅值调制和频率调制,BLE使用频率调制,该技术名称叫:频移键控(Frequency Shift Keying...转载 2019-08-12 09:37:05 · 2647 阅读 · 0 评论 -
BLE协议栈 – 链路层(Link Layer)
链路层位于BLE协议栈的控制器(Controller)部分,在物理层(Physical Layer)之上,接口层(HCI)之下。物理层比较抽象,除了BLE信道,许多地方都是通用的通信技术,不能反映BLE通信协议的特点,而HCI之上的部分,大多在软件中实现,因此,理解BLE协议栈的底层实现,一定要对链路层有所认识。链路层定义了协议栈中最为基础的状态机、数据包格式、广播和连接流程等问题。《低功耗蓝...转载 2019-08-12 10:00:47 · 2978 阅读 · 2 评论 -
BLE协议栈 – HCI
HCI(Host Controller Interface)层中文称为主机与控制器接口,它连接主机(Host)和控制器(Controller),将主机的操作转化成HCI指令传给控制器,BLE协议规定了HCI的指令集。单芯片与双芯片在BLE协议栈的层模型中,位于下部的物理层、链路层、DTM属于控制器,位于上部的L2Cap、ATT、GATT、GAP、SM层则属于主机,在主机之上用户自己的程序称...转载 2019-08-12 10:05:51 · 3062 阅读 · 1 评论 -
BLE协议栈 – L2CAP
L2CAP(Logical Link Control and Adaptation Protocol)中文名为逻辑链路控制和适配协议,它位于BLE协议的主机(Host)部分,承担着协议复用(Protocol Multiplex)的任务。蓝牙协议官方手册的章节首页提到L2CAP还承担上层(ATT,SM)发来的数据的分割/重组(Segmentation/Reassembly)任务。这里需要澄清一点,这...转载 2019-08-12 10:10:49 · 1871 阅读 · 0 评论 -
BLE协议栈 – SM
SM(Security Manager)安全管理层定义了BLE通信两端设备的配对方法和密钥分发的工作模式,提供了一系列加密算法,为BLE通信提供了加密、认证等安全保障。它与GAP层密切相关,关于安全需求的一些配置是在GAP层中完成的。对数据进行加密,BLE使用AES加密算法,通过复杂的认证过程,保证该加密算法的密钥能够被安全的传递到通信链路两端的设备中。一旦有了密钥,就可以对通信过程中的数据进...转载 2019-08-12 10:17:46 · 1424 阅读 · 2 评论 -
BLE协议栈 – ATT
ATT(Attribute Protocol)属性层是GATT和GAP的基础,它定义了BLE协议栈上层的数据结构和组织方式。属性(Attribute)概念是ATT层的核心,ATT层定义了属性的内容,规定了访问属性的方法和权限。以编程的眼光来看,属性是一个数据结构,它包括了数据类型和数据值,就如同C语言结构体的概念,开发者可以设计独特的结构,来描述外部世界实体。属性包括三种类型:服务项、特征值和描...转载 2019-08-12 10:20:22 · 656 阅读 · 0 评论 -
BLE协议栈 – GATT
GATT(Generic Attribute Profile)是BLE协议栈中比较靠上的一层,它基于ATT层的属性(Attribute),对BLE连接的主从双方具体的通信行为进行规范。GATT规定了主机如何给从机发消息,以及从机如何给主机发消息。前面ATT层里面介绍了属性分组,即一个Profile下面有多个服务项,一个服务项下面有多个特征值,一个特征值下面有多个描述符,特征值是承载用户数据的载...转载 2019-08-12 10:26:34 · 1521 阅读 · 0 评论 -
BLE协议栈 – GAP
GAP(Generic Access Profile)通用访问规范层算是BLE协议栈中最顶部的一层,它定义了设备如何广播、扫描、发现和建立连接,以及配置工作角色(Role)、可发现性、广播数据内容和安全相关的参数。从编程视角来看,GAP中的内容就像是一个config文件,BLE协议栈其他层的工作,都要从GAP中获取初始化参数和配置信息。GAP中定义了一系列模式(Mode)和规程(Procedure...转载 2019-08-12 10:28:31 · 1356 阅读 · 2 评论