蓝牙协议栈Р蓝牙协议栈体系结构为分层结构,具体如图2.1所示。Р图2.1蓝牙协议栈体系结构Р 蓝牙技术规范的目的是使符合该规范的各种应用之间能够实现互操作15J。互操Р作的远端设备需要使用相同的协议栈,不同的应用需要不同的协议栈。并不是任何应用都必须使用全部协议,而是可以只使用其中的一层或多层。但是,所有的应用都要使用蓝牙技术规范中的数据链路层和物理层。Р2.3 蓝牙控制器接口(HCI)分析Р 2.3.1 HCI概述Р主机控制器接口(HCI)处于蓝牙协议栈的中间层,它提供了蓝牙主机访问蓝牙主机控制器的基带与链路控制器、链路管理器、状态寄存器等硬件的统一接口。Р蓝牙主机控制器(Bluctooth Host Controller)是蓝牙芯片的主要组成部分,其内部硬件结构如图2.2所示。链路控制器提供了蓝牙基带功能以及物理层协议的硬件和软件实现;CPU核提供了链路管理器和链路控制器的固件部分的运行环境,使得主机控制器可独立于主机进行查询和过滤呼叫请求。Р图2.2蓝牙主机控制器内部硬件结构图Р硬件方面,主机控制器集成了无线电收发器、基带控制器、Flash存储器等部分,其中基带控制器大多是以ARM为基础的芯片,通过接口控制无线电收发器,提供物理接H(USB/UART/PCM等)。蓝牙模块通过这些接口与主机上对应的接口相连接,构成蓝牙系统的硬件连接。HCI就是基于这些物理接口定义相应的传输层实现主机与主机控制器间的数据交换。Р两个蓝牙设备通过HCI层进行数据传输的过程如图2.3所示。Р图2.3蓝牙设备通过HCI层数据传输过程Р 2.3.2 HCI传输层РHCI传输层是指在蓝牙主机与主机控制器间相连的物理接口,它介于主机控制器驱动程序和主机控制器之间,主要目的是实现传输的透明性,即从蓝牙模块外看HCI看到的是HCI传输层,物理总线是屏蔽的,从而使得HCI固件能在不影响传输层的情况下升级。