设为首页 加入收藏

TOP

蓝牙协议分析(2)_协议架构(三)
2019-09-01 23:08:38 】 浏览:101
Tags:蓝牙 协议 分析 架构
、PSB(Parked Slave Broadcast),基于BR/EDR技术的、面向连接的广播传输链路,为ACL-U、PSB-U、PSB-C提供服务。

CSB(Connectionless Slave Broadcast),基于BR/EDR技术的、无连接的广播链路,为PBD提供服务。

LE ACL,基于LE技术的、面前连接的、异步传输链路,为LE-U、LE-C提供服务。

ADVB(Advertising Broadcast),基于LE技术的、广告/广播链路,为ADVB-U、ADVB-C提供服务。

注2:AMP-C没有对应的Logical Transport,而是直接控制AMP Physical Link完成所需功能。

注3:蓝牙逻辑层的抽象也是让人醉了!还是那句话,不要逼自己去理解一个疯子的行为,不然自己也会疯的。

2.3 L2CAP Channels

L2CAP是Logical Link Control and Adaptation Protocol(逻辑链路控制和适配协议)的缩写,蓝牙协议到这个层次的时候,就清爽多了:

对下,它在用户类XXX-U Logical Link的基础上,抽象出和具体技术无关的数据传输通道(包括单播和广播两类),至此用户就不再需要关心繁杂的蓝牙技术细节。

对上,它以L2CAP channel endpoints的概念(类似TCP/IP中的端口),为具体的应用程序(profile)提供独立的数据传输通道(当然,也是一个逻辑通道)。

2.4 Profiles

profile是蓝牙Application的代指,也可以翻译为服务,为了实现不同平台下的不同设备的互联互通,蓝牙协议为各种可能的、有通用意义的应用场景,都制定的了规范,如SPP、HSP、HFP、FTP、IPv6/6LoWPAN等等。

Profiles基于L2CAP提供的L2CAP channel endpoints实现,在它们对应的层次上进行数据通信,以完成所需功能。有关蓝牙profile的介绍,会在后续文章中陆续给出,这里就不再详细说明了。

2.5 总结

下面图片包含上面各个层次(除了APP layer)中涉及到的一些实体、概念以及相互关系,供大家参考。

Overview of transport architecture entities and hierarchy

摘录自:Core_v4.2.pdf---->Vol1: Architecture & Terminology Overview---->Part A: Architecture---->3 DATA TRANSPORT ARCHITECTURE---->3.2 TRANSPORT ARCHITECTURE ENTITIES

3. 蓝牙核心框架

蓝牙规范有两类:一类是蓝牙核心规范,由Bluetooth Core Specification定义,囊括到L2CAP层,以及相关的核心profile;另一类是蓝牙Application规范,包含了各种各样的profile规范(具体可参考“https://www.bluetooth.com/specifications/adopted-specifications”中的列表)。

蓝牙核心规范所定义的框架如下:

Bluetooth core system architecture摘录自:Core_v4.2.pdf ---->Vol1: Architecture & Terminology Overview---->Part A: Architecture---->2 CORE SYSTEM ARCHITECTURE

经过第2章协议层次的介绍,蓝牙核心框架已经比较容易理解了,这里对层次中各个模块做一个简单的说明,更为详细的分析,请参考后续的文章。

1)BR/EDR Radio & LE Radio & AMP PHY

蓝牙RF层(物理层),包括BR/EDR、LE以及AMP三种。负责在物理channel上收发蓝牙packet。

对BR/EDR和LE RF来说,还会接收来自Baseband的控制命令来控制RF频率的选择和timing。

AMP PHY使用802.11(WIFI)的规范,本文不再详细介绍,后续有关AMP的内容,也不过多涉及。

2)Link Controller & Baseband resource management

Link Controller和Baseband resource management组成了蓝牙的基带(baseband)。

Link Controller负责链路控制,主要是根据当前物理channel的参数、逻辑channel的参数、逻辑transport的参数将数据payload组装成bluetooth packet。另外,通过Link Control Protocol(对LE来说是LL Layer Protocol),可以实现流控、ack、重传等机制。

Baseband resource management,主要用于管理RF资源。


3)Link Manager

Link Manager主要负责创建、修改、释放蓝牙逻辑连接(Logical Link),同时也负责维护蓝牙设备之间物理连接(Physical Link)的参数。它的功能主要是通过Link Management Protocol(LMP,for BR/EDR)和Link Layer Protocol(LL,for LE)完成。

4)Device Manager

Device Manager主要负责控制蓝牙设备的通用行为(蓝牙数据传输除外的行为),主要是:

搜索附近的蓝牙设备

连接到其他的蓝牙设备

使得本地的蓝牙设备connectable和discoverable

控制本地蓝牙设备的属性(例如本地蓝牙设备的名字、link key等)

5)HCI(Host Controller Interface)

我们在“蓝牙协议分析(1)_基本概念”介绍过,蓝牙系统分为Bluetooth Controller和Bluetooth Host两个大的block。它们之间通过HCI接口以HCI协议进行通信。

6)L2CAP

L2CAP位于Bluetooth Host中,包括两个子模块:

Channel Manager主要负责创建、管理、释放L2CAP channel。

L2CAP Resource Manager负责统一管理、调度L2CAP channel上传递的PDU(Packet Data Unit),以确保那些高QoS的packet可以获得对物理信道的控制权。

7)SMP(Security Manager Protocol)

SMP是一个点对点的协议,基于专用的L2CAP channel,用于生成加密(encryption)和识别(identity)用的密匙(keys)。

8)SDP(Service Discover Protocol)

SDP也是一个点对点的协议,基于专用的L2CAP channel,用于发现其它蓝牙设备能提供哪些profile以及这些profile有何特性。在了解清楚了其他蓝牙设备的profile以及特性之后,本蓝牙设备可以发起对自己感兴趣的蓝牙profile的连接动作。

9)AMP Manager

基于L2CAP channel,和对端的AMP manager交互,用于发现对方是否具备AMP功能,以及收集用于建立AMP物理链路的信息。

10)GAP(Generi

首页 上一页 1 2 3 4 下一页 尾页 3/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Cortext-A7_i.MX 6ULL——多模式D.. 下一篇linux 网络套接字

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目