蓝牙协议体系结构

底层硬件模块、中间协议层和高端应用层三大部分。

  链路管理层(LMP,Link Management Protocol)、基带层(BB)和射频(RF)构成蓝牙的底层模块。RF通过2.4GHz无需授权的ISM频段,实现数据位流的过滤和传输,它主要定义了蓝牙收发器应该满足的要求。BB层负责跳频和蓝牙数据及信息帧的传输。LM层负责连接的建立和拆除以及链路的安全和控制,它们为上层软件模块提供了不同的访问入口,但是两个模块接口之间的消息和数据传递必须通过蓝牙主机控制器接口(HCI)的解释才能进行。也就是说,HCI是蓝牙协议中软硬件之间的接口,它提供了一个调用下层BB、LM、状态和控制寄存器等硬件的统一命令接口。HCI协议以上的协议软件实体运行在主机上,而HCI以下的功能由蓝牙设备来完成,二者之间通过传输层进行交互。

中间协议层包括逻辑链路控制与适配协议(L2CAP)、服务发现协议(SDP)、串口仿真协议(RFCOMM)和电话控制协议规范(TSC)。L2CAP完成数据拆装、服务质量控制、协议复用和组提取等功能,是其他上层协议实现的基础,因此也是蓝牙协议栈的核心成分。SDP为上层应用程序提供了一种机制来发现网络中可用的服务及其特性。RFCOMM依据ETSI标准TS07.10在L2CAP上仿真9针RS-232串口的功能。TCS提供蓝牙设备间话音和数据的呼叫控制信令。

在蓝牙协议栈的最上部是高端应用层,它对应于各种应用模型的剖面(Profile),是剖面(Profile)的一部分。蓝牙1.1定义的profile有13个。SIG认为蓝牙设备有4个最基本的Profile:

  • 普通接入剖面(GAP,General Access Profile):定义两个蓝牙单元如何发现对方并建立连接,保证两个蓝牙单元,无论其生产厂商及进行的应用,可以通过蓝牙交换信息从而发现个单元支持何种应用。所有蓝牙单元都必须支持GAP以保证基本的互操作性和共存性。
  • 业务发现应用剖面(SDAP,Service Discovery Application Profile):定义如何发现蓝牙单元支持的业务,该剖面可以用来搜索已知的特定业务,也可以用来进行普通业务浏览搜索。
  • 串行端口剖面(SPP,Serial Port Profile):定义如何在两个设备之间建立虚拟串行端口,并用蓝牙将其连接。采用串行端口剖面可在蓝牙单元上仿真基于RS-232控制信令的串行线缆,该剖面可保证高达128kbit/s的数据速率。
  • 普通对象交换剖面(GOEP,General Object Exchange Profile):定义处理对象交换的应用需采用的协议和程序,基于GOEP的应用模型(如文件传输、同步等)假定链路和信道已经建立如GAP所述,GOEP描述从一个蓝牙设备Push数据到另一个蓝牙设备的程序,还规定如何在两个单元之间Pull数据。