2:BLE体系架构说明

2:BLE体系架构说明_第1张图片2:BLE体系架构说明_第2张图片

  • 1.控制器:蓝牙控制器由同时包含了数字和模拟部分射频器件和负责收发数据包的硬件组成。控制器和外界通过天线相连,与主机通过主机控制接口(HCI)相连。
    • 1.1. 物理层(PHY):物理层负责传输和接收电磁辐射,无线电波通常可以在给定的某个频段内通过改变幅度、频率、相位携带信息。在低功耗蓝牙中,采用高斯频移键控(GFSK)的调制方式改变无线电波的频率,传输0或1的信息。频移键控是指把1和0通过轻微升高或者降低信号频率进行编码。调制指示表示围绕信道的中心频率的上下频率之间的宽度。传输无线电信号时,从中心频率出发超过185KHz的正向偏移代表值为1的比特;超过185KHz的负向偏移代表值为0的比特。
    • 1.2. 直接测试模式(DTM):允许测试者让控制器的物理层发送一系列测试数据包或接收一系列数据包。测试者随后可以分析接收到的数据包,或根据接收的数据包数量判断物理层是否遵循RF规范。
    • 1.3. 链路层(LL):链路层是低功耗蓝牙最复杂的部分。它负责广播、扫描、建立和维护连接,以及确保数据包按照正确的方式组织、正确地计算校验值以及加密序列等。为了实现上述功能,定义下列三个基本概念:信道、报文和过程
    • 1.4. 主机/控制器接口(HCI):提供主机和控制器的标准接口。HCI实际由两个独立的部分组成:逻辑接口和物理接口;逻辑接口定义命令和事件及其相关的行为,逻辑接口可以交付给任何物理传输或者通过位于控制器上的本地应用程序编程接口(API)交付给控制器;物理接口定义命令、事件和数据如何通过不同的连接技术来传输,已定义的物理接口包括USB、SDIO和两个UART的变种
  • 2.主机:主机包括复用层、协议和用来实现许多有用而且有趣的过程
    • 2.1. 逻辑链路控制和适配协议(L2CAP):低功耗蓝牙的复用层。定义了两个基本概念:L2CAP信道和L2CAP信令;L2CAP信道是一个双向数据通道,通向对端设备上的某一特定的协议或规范。低功耗蓝牙中只使用固定信道:一个用于信令信道,一个用于安全管理器,一个用于属性协议。
    • 2.2. 安全管理(SM):定义了一个简单的配对和秘钥分发协议。配对是一个获取对方设备信任的过程,通常采取认证的方式实现。配对之后,接着是链路加密和密钥分发过程。在秘钥分发过程中从设备把秘密共享给主设备,当这两台设备在未来的某个时候重连时,他们可以使用先去分发的共享秘钥进行加密,从而迅速认证彼此的身份。安全管理器还提供一个安全工具箱,负责生产数据的哈希值、确认值以及配对过程中使用的短期秘钥。
    • 2.3. 属性协议(ATT):定义访问对端设备上的数据的一组规则。数据存储在属性服务器的”属性”里,供属性客户端执行读写操作。客户端将请求发送至服务器,后者回复响应消息。客户端可以使用这些请求在服务器上找到所有的属性并且读写这些属性。
      • 属性协议定义了6种类型消息:1):从客户端发送至服务器的请求;2):从服务器发送至客户端的回复请求的响应;3):从客户端发送至服务器的无需响应的命令;4):从服务器发送至客户端的无需确认的通知;5):从服务器发送至客户端的指示;6):从客户端发送至服务器的回复指示的确认。所以客户端和服务器两者都可以发起通信,发送需要对方回复的消息或者无需回复的消息。
      • 属性:是被编址并打上标签的一小块数据。每个属性均包含一个用来标识该属性的唯一的句柄、一个用于标识存储数据的类型以及一个值。例如,一个类型是”温度”、值为20.5°的属性可以放在句柄为0x01CE的属性里
      • 属性协议还定义了一些属性的权限:如果客户端验证了自身身份或得到了服务器的授权,客户端将获得读写属性值的权限或是只允许访问属性值的权限。客户端无法显式地获得属性的权限,只能隐式地通过发送请求并且接收错误的响应来尝试获得,该错误响应会说明不能完成请求的原因。
      • 属性协议本身大多是无状态的。每一次事务处理(比如读取请求和读取响应等)并不会让服务器保持其状态,这使得协议本身只需要很少的内存即可工作。不过仍然有个例外:准备和执行写入请求会将一组数据首先存储在服务器上,然后在一次事务处理中顺序执行所有操作。
    • 2.4. 通用属性规范(GATT):通用属性规范位于属性协议之上,定义了属性的类型及其使用方法。通用属性规范引入了一些概念,包括”特性”、”服务”、服务之间的”包含”关系、特性”描述符”等。它还定义了一些规程,用来发现服务、特性、服务之间的关系,以及用来读取和写入特性值。
      • 服务:是设备上若干原子行为的不可变封装。听上去挺复杂,但却不难理解。不可变意味着一旦服务发布就不能再改变。
      • 封装:是指简洁地表达事物的功能。一项服务的所有的相关信息都置于属性服务器的一组属性中并通过其来表达。
      • 行为:是指事物响应特定情况或刺激的方式。就服务而言,行为意味着当你读取或写入某属性是都发生了些什么,或是什么原因导致了想客户端发送属性通知。
      • 服务间的关系:是实现设备公开的复杂行为的关键。服务本质上是原子的;复杂的行为不应该仅仅通过某一个服务来公开。
    • 2.5. 通用访问规范(GAP):通用访问规范定义了设备如何发现、连接、以及用户提供有用的信息。它还定义了设备之间如何建立长久的关系,称为绑定(Bonding)。要启用此功能,规范定义设备如何实现可发现、可连接和可绑定。还介绍了设备如何使用规程以发现其他设备、连接到其他设备、读取他们的设备名并和他们进行绑定。
  • 3.应用层:应用层规约定义了三种类型:特性、服务、规范。这些规约均构建在通用属性规范上。通用属性规范为特性和服务定义属性分组,应用程序为使用这些属性组定义规约。
    • 3.1. 特性:是采用已知格式、以通用唯一识别码(UUID)作为标记的一小块数据
    • 3.2. 服务:是人类可读的一组特征及相关的行为规范。服务只定义了位于服务器上的相关特性的行为,而不定义客户端的行为。
    • 3.3. 规范:是用来或应用的最终体现。规范是描述两个或多个设备的说明,每个设备提供了一个或多个服务。规范描述了如何发现并连接设备,从而为每台设备确定所需要的拓扑结构。规范还描述了客服端行为,用于发现服务和服务特性,以及使用该服务实现用例或应用所要求的功能。
  • 4.新的使用模型:低功耗蓝牙提供一种使用无线技术的新的方式。一些主要的新模型都基于广播模式,包括存在检测、数据广播、无连接模型等
    • 4.1. 存在检测:使用广播模型,设备可以在后台被动扫描哪些正在广播的设备。广播设备可以仅仅通告其地址,也可以通告一些基于存在的数据。扫描模式可以分成两类:主动扫描和被动扫描。主动扫描者从广播者请求更多信息,以获得额外的静态数据;被动扫描时,扫描者仅仅侦听广播报文,并不发送请求。
    • 4.2. 广播数据:广播模式还可以广播少量的数据-寥寥可数的数据,仅有几十个字节-但是能将少量信息广播给区域内所有的侦听设备的能力还是非常有价值的。广播数据有助于提升用户体验的三个主要方面为:发起连接建立、公告、广播信息
    • 4.3. 无连接模式:无连接模式定义的是设备的状态,而不是连接状态,从而解决上述问题。通过无状态的协议(如协议属性)公开状态,允许在任意时刻断开连接,并在重新连接时直接从对端设备获得当前状态。例:一个监控装置连接到另一个由电池供电的设备,读取当前的电池电量,并设置其在电量改变是发出通知,然后断开连接。当电池电量发生变化,由电池供电的设备把自身设为可连接状态,而电池监控装置注意到它似乎有情况,向其发起连接。一旦建立连接,电池供电设备立刻将新的电池电平值通知监控装置,并随即终止该连接。这一切大约在3ms内完成。

你可能感兴趣的:(BLE,蓝牙)