2.2 蓝牙高层协议栈的组成
蓝牙的高层协议栈通常设计成一个软件部件,而运行在主机设备上,所以,有时又称为主机栈(Host Stack)。它的结构如上图3 所示。它主要是由高层协议模块、硬件支持模块、协议管理器模块、剖面接口模块等组成。
高层协议模块主要由服务发现协议(SDP)、射频通信协议(RFCOMM)、逻辑链路控制与适配协议(L2CAP)、电话控制规范(TCS )、服务发现应用程序规范(SDAP)、对象交换协议(OBEX)以及串行应用规范(SPP)组成(而这些规范是任何蓝牙协议栈都必须实现的);
硬件支持模块主要是由主机控制接口如 HCI USB、HCI URAT、HCI RS232D等组成(这些模块不一定全部实现,可只选其中之一);
协议管理器模块的主要作用是负责对蓝牙协议栈根据使用环境进行配置,根据不同的操作系统和用户模型选用不同的配置方案(这是必须包括的模块);
剖面接口模块是由对象上载应用规范(OPP)、文件传输协议(FTP)、Sync、CTP、DUN、HS、FAX、LAN组成,它们是蓝牙规范规定的蓝牙剖面,还可以包括其它一些特有的剖面结构(这些模块不一定全部实现)。蓝牙高层协议栈各模块的功能已在 1.3 节中论述过,这里就不再详解。
2.3 模块及应用程序接口
(1) 主机控制接口(HCI)
蓝牙作为一种短距离的无线网络技术,为设备之间的互联提供了方面。使用蓝牙互联的主机大都具有处理器、总线和操作系统,蓝牙必须与它们有机地融合在一起才能很好地发挥作用。主机控制接口(HCI)为主机提供了直接控制蓝牙模块的方法和途径。通过 HCI 把蓝牙模块和主机连接在一起。HCI 模块由HCI 事件管理、HCI 命令管理、HCI AC/SCO 数据传输、HCI 传输层API、向上层输出的 API 模块组成。HCI 固件通过访问基带命令、链路管理器命令、硬件状态寄存器、控制寄存器、事件寄存器实现对蓝牙硬件的 HCI 命令。
(2) RFCOMM 及其接口
前面曾提到 RFCOMM 是一个基于ETST 标准 TS 07.10的传输协议,提供了对 RS-232串行接口的仿真。它在两个蓝牙设备之间同时最多提供60条连接,最大可以接收/发送 32KB大小的数据分组。RFCOMM 的目的是使运行在两个不同设备上的通信路径具有一个通信段,这个通信段可以是终端用户的应用,亦可以是高层协议或表示终端用户应用的一些服务。RFCOMM 能够提供 DLC 的建立与释放、DLC 参数协商、数据发送、流量控制开/关命令、调制状态命令、远端端口协商、远端线路状态与测试命令等功能;而 RFCOMM 协议层接口能够提供启动过程、连接过程、聚合接口、数据交换接口、串行仿真接口功能。
(3) SDP及其接口
服务发现协议(SDP)是蓝牙框架的一个关键部分,它由服务发现代理(SDA)、服务发现服务器(SDS)、服务管理器(SDM)三个模块组成。SDA 负责查询存在的服务及其属性,代表客户应用发送请求;SDS 负责对 SDA请求进行响应,根据 SDA 的请求,从 SDM 中取出相关的数据送给 SDA;SDM负责管理服务和栈。可以说 SDP 是所有应用模型的一个基础,它同时为应用提供了一种使用 L2CAP 连接发现可用服务以及决定这些可用服务的特征手段。利用 SDP 获得信息,蓝牙的设备就可以建立适当的连接。服务发现的应用程序接口( API ) 能够提供 L2CAP连接、服务查询会话、服务属性会话、服务查询属性会话、服务浏览、L2CAP连接断开功能。

(4) L2CAP接口
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-31731-3.html
加油加油
逻辑真假他全然不管的