今年底将会推出蓝牙标准的新版本,将提供更高的带宽和更大的覆盖范围,因此可以预计蓝牙技术支持的应用范围会进一步扩展。这也意味着不仅消费电子或计算机外设会采用蓝牙进行通信,许多其它的家用和办公电器,甚至工业设备也会采用蓝牙技术。因此众多的现有电子设备都需要支持或利用蓝牙。
蓝牙标准定义了需要用户最小干预的一个设备通信接口。然而目前多数标准蓝牙芯片解决方案仅提供了一个UART(通用异步收发报机)和USB主机控制器接口(HCI)。显然,将现有的电子设备完全重新设计来提供UART或USB接口有点动作太大了。因此,采用系统上的现有接口作为连接蓝牙子系统的桥接接口有重要的意义。
蓝牙标准将实现蓝牙接口所需要的功能分成三个如图1所示的功能模块。这些功能模块可直接与蓝牙标准中的功能划分相对应。
射频部分实现蓝牙设备的宽带无线接口。典型情况下,射频单元以多芯片模块实现,包括一个天线开关、阻抗匹配器、放大器、基于数字锁相环路(PLL)的时钟恢复、调制和解调电路。
蓝牙基带链路控制器功能包括底层的链路层功能。基带功能包括:
* CVSD语音编码
* 头错误校验(HEC)生成及校验
* 前向纠错(FEC)生成及校验
* 循环冗余校验码(CRC)生成及校验
* 数据扰码
* 有效数据加密和解密
* 跳频序列
链路管理模块实现链路管理器协议(LMP),负责处理底层控制方面的功能,包括:
* 设备间链路的建立
* 生成、交换并检查加密密钥
* 协调基带分组大小
* 功率模式及射频负载因数
* 一个微微网中设备的连接状态
由于这些功能本身所具有的复杂性,因此需要采用软件来实现。软件通常运行在一个嵌入式RISC处理器上。这一软件方法导致其它功能也可采用处理器实现,同时还包括实现到主机系统接口所需要的固件。
蓝牙标准对主机控制器接口(HCI)的定义如下:
HCI提供了一个调用和访问基带控制器和链路控制器,以及硬件状态和控制寄存器的命令接口。这一接口提供了一个访问蓝牙基带功能的统一方法。
HCI由两部分组成,实现命令接口的软件和用来连接蓝牙子系统和主机的物理硬件。HCI软件的目的是使构成接口的硬件对系统高层软件来说看起来是透明的。
蓝牙软件结构包括两种类型的部件。数据相关部件负责数据通过链路的传输。控制相关部件则负责链路的控制和管理。就本文的目的来说,我们将集中讨论构成HCI的控制和数据相关的部件。图2 示出了HCI软件结构以及与蓝牙主机接口硬件的关系。
主机通过HCI驱动程序提供的一系列命令来控制蓝牙网络接口。除这些命令外,蓝牙标准还定义了一级由蓝牙网络接口中的HCI固件产生的事件,用来指示接口的状态变化。
HCI命令和事件与来自无连接和同步连接的数据一起通过HCI传输接口硬件进行传输。这些数据的复用方式对接口来说是确定的。
HCI的传输层定义了三类数据如何在蓝牙网络接口和蓝牙主机间进行传输。HCI传输层定义了每一类数据如何封装和通过接口硬件进行复用。蓝牙规范目前定义了三个HCI传输层。
* UART传输层
* RS232传输层
* USB传输层