蓝牙芯片的SDM是服务数据库管理器模块
蓝牙作为一种短距离的无线网络技术,为设备之间的互联提供了方面。使
用蓝牙互联的主机大都具有处理器、总线和操作系统,蓝牙必须与它们有机地融
合在一起才能很好地发挥作用。主机控制接口(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 接口
逻辑链路控制与适配协议(L2CAP)是数据链路层的一部分,它向上层提
供面向连接和无连接的服务。L2CAP 部件向一个或多个适配协议输出务。L2CAP 接口实际上是一个消息接口,每个关于适配实体的消息都有一个可用的
函数,用这个函数耒生成相应的消息并向正确的目的地发送该消息,而且适配实体的的用户还可以自由地组织这些消息。总的耒说,L2CAP 对面向连接的信道控制模块必须能实现:面向连接的信道连接、信道配置、信道数据传输、信道连
接的断开、回送处理及实现对特定信息的交换;而对无连接的信道控制模块必须 5实现:无连接信道数据的发送、组处理及开启/关闭无连接信道的数据接收。
(5) 栈连接管理器(SCM)及其接口在图 3 蓝牙协议栈的组成模块中虽然没有这一部分,但是所有蓝牙协议栈的实现都必须包括这样一个部件,该部件由数据和语音链接管理模块及安全管理模块组成,负责处理和管理蓝牙的基带连接。且必须完成以下功能:生成数据链路和语音链路;在链路配对的情况下,保持链路密钥;确保蓝牙栈建立的数据和语音链路之上的多个应用之间的相互独立;SMC在L2CAP层起本地路由功能,
使用本地地址建立一个本地数据链路时生成的本地名柄。(6) 蓝牙应用程序接口(API)蓝牙应用程序接口(API)就是要解决层与层之间的通信问题。通常是通过正确调用请求消息函数耒进行层 A 与 B 之间的通信。请求函数将为一个特定的请求消息分配内存,消息中可以填入函数的输入参数,然后消息根据使用的要
求送到 B 层。消息的处理和为消息分配内存一般是通过虚拟操作系统(VOS)的服务例程耒完成。在蓝牙协议栈中层与层之间的通信与一般的协议之间的通信概念和机制相同,都是使用请求、确认、指示和响应四种原语耒实现。