我是靠谱客的博主 英勇雪碧,最近开发中收集的这篇文章主要介绍关于BLE的体系结构学习,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

蓝牙低功耗包含三个部分:控制器、主机和应用程序。

1.物理层(Physical Layer, PHY)

  • 调制方式:GFSK,高斯频移键控
  • 工作在2.4GHz ISM频段。频率范围:2.4-2.4835 GHz
  • 40个RF信道(f=2402+k*2MHz, k=0,...,39),信道间隔2MHz,其中包括3个固定的广播信道,37个自适应跳频的数据信道
  • 无线速率:1Mbps、2Mbps
  • 负责从物理信道传输和接收信息数据包

2.链路层(Link Layer, LL)

   链路层负责广播、扫描、建立和维护连接,以及确保数据包按照正确的方式组织、正确地校验值和加密序列等。

  (1)链路层状态机

链路层设备有5种状态:

  • 就绪态:上电后,链路层进入并保持就绪态,知道接收到主机的命令。是状态机的中心状态,处于其他状态下都可以进入到此状态。
  • 广播态:发送广播报文和扫描响应。
  • 扫描态:侦听广播设备。
  • 发起态:发起连接。
  • 连接态:唯一一个用到数据信道的状态,两个设备只有在连接态中才能互相传送数据。

    链路层可能同时存在多个链路,同时拥有多个独立的状态机,但是链路层永远不能同时成为主从机。

  (2)链路层信道映射

   广播信道:37、38、39,对应的中心频率是2402MHz、2426MHz、2480MHz。广播信道之间至少相差24MHz.每次广播。都会在3个信道上将广播数据发送一次,这能有效地避免干扰,即使一个信道存在干扰,另外的信道也可以很好地工作,而三个信道同时被干扰的情况极少。

3.主机控制器接口(Host Controller Interface, HCI)

主机控制器接口HCI在Host和Controller之间提供一个标准化的接口,该层可以由应用程序接口API实现或者使用硬件接口UART、SPI或USB来控制。控制器通过HCI发送数据和事件给主机,主机通过HCI发送命令和数据给控制器。

4.逻辑链路控制和适配协议(L2CAP)

L2CAP层向上层提供数据封装服务,从而使逻辑上允许端到端的数据通信。L2CAP提供可复用,分割和重组的面向连接或者无连接的数据服务。L2CAP数据包可以达到64K,L2CAP允许每个L2CAP通道流控和重传。

5.安全管理器(SM)

安全管理层(Security Manager)提供配对和密钥的分发。

6.属性协议(ATT)

属性协议规定了怎么去访问对端设备的数据,数据存储在属性服务器的“属性”里,供属性客户端进行读写操作。

7.通用属性配置文件(Generic Attribute profile, GATT)

通用属性配置文件(GATT)建立在属性协议的基础上,GATT通过使用ATT协议层定义了如何发现与使用服务、特征和描述符的标准方法。

GATT层是传输真正数据所在的层。包括了一个数据传输和存储框架以及其基本操作。GATT定义了两类角色:

服务器(server)和客户端(client)

         1.角色

          除了GAP定义了角色之外,BLE还定义了另外2种角色:GATT服务器和GATT客户端,它们完全独立于GAP的角色。提供数据的设备称为GATT服务器,访问GATT服务器而获得数据的设备称为GATT客户端。

          2.规范层次

          一个GATT服务器通过一个称为属性表的表格组织数据,这些数据就是用于真正发送的数据。

           属性:一个属性包含句柄、UUID、值。句柄是属性在GATT表中的索引,在一个设备中每一个属性的句柄都是唯一的。UUID包含属性表中数据类型的信息,它是理解属性表中的值的每一个字节的意义的关键信息。在一个GATT表中可能有很多属性,这些属性可能有相同的UUID。

           特性:一个特性至少包含2个属性,一个属性用于声明,另一个属性用于存放特性的值。所有通过GATT服务传输的数据必须映射成一系列的特性,可以把特性中的这些数据看成是一个个捆绑起来的数据,每个特性就是一个自我包容而独立的数据点。

           3.描述符

            任何在特性中的属性不是定义为属性值就是为描述符。描述符是一个额外的属性以提供更多特性的信息,它提供一个人类可识别的特性描述的实例。

             客户端特性配置描述符(Client Characteristic Configuration Descriptor, CCCD),这个描述符是给任何支持通知或指示功能的特性额外增加的。在CCCD中写入“1”使能通知功能,写入“2”使能指示功能,写入“0”同时禁止通知和指示功能。

           4.服务

            一个服务包含一个或多个特性,这些特性是逻辑上相关的集合体。

            GATT服务一般包含几块相关的功能,比如特定传感器的读取和设置,人机接口的输入输出。组织具有相关的特性到服务中既实用又有效,因为它使得逻辑上和用户数据上的边界变得更加清晰,同时它也有助于不同应用程序间代码的重用。

8.通用访问配置文件(Generic Accsee Profile, GAP)

通用访问配置文件(GAP)层负责处理设备的接入方式和过程,包括设备发现、链路建立、链路终止以及实现绑定。GAP是应用层能够直接访问BLE协议栈的最底层,它包括管理广播和连接事件的有关参数。

9.应用层

应用层定义了三种类型:特性(characteristic)、服务(service)和配置文件(profile).

最后

以上就是英勇雪碧为你收集整理的关于BLE的体系结构学习的全部内容,希望文章能够帮你解决关于BLE的体系结构学习所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部