蓝牙技术集成到各种数字设备中的方式有2种:一种是单微控制器方式,即所有的蓝牙低层传输协议(包括蓝牙射频、基带与链路控制器、链路管理器)与高层传输协议(包括逻辑链 路控制与适配协议、服务发现协议、串口仿真协议、网络封装协议等)以及用户应用程序都 集成到一个模块当中,整个处理过程由一个微处理器来完成;另一种是双微控制器方式,即 蓝牙协议与用户应用程序分别由主机和主机控制器来实现(低层传输协议一般通过蓝牙硬件模块实现,模块内部嵌入的微处理器称为主机控制器,高层传输协议和用户应用程序在个人计算机或嵌入的单片机、DSP等上运行,称为主机),主机和主机控制器之间通过标 准的物理总线接口(USB,RS 232等)连接。
在蓝牙的主机-主机控制器连接模型中,主机接口HCI(Host Controller Interface)作为蓝牙软件协议堆栈中软硬件之间的接口,他提供了一个控制基带与链路控制器、链路管理器、状态寄存器等硬件的统一接口。目前,蓝牙HCI传输层的物理接口有通用串行总线USB,串行端口RS 232、通用异步收发器UART等。当主机和主机控制器通信时,HCI层以上的协议 在主机上运行,而HCI层以下的协议由蓝牙主机控制器硬件完成,他们通过HCI传输层进行通信。主机和主机控制器中都有HCI,他们具有相同的接口标准。主机控制器中的HCI解释来自主机的信息并将信息发向相应的硬件模块单元,同时还将模块中的信息(包括数据和硬件/固件信息)根据需要向上转发给主机。
蓝牙主机-主机控制器模型方案采用了CSR公司的BlueCore2External蓝牙芯片的蓝牙模块、附加模块和对接对象模块来实现蓝牙的USB接口。
2、蓝牙模块、附加模块和对接对象模块概述
2.1蓝牙模块
2.1.1BlueCore2External芯片
BlueCore2External是一个单一芯片无线电和基带链路控制器的BlueTooth 2.4 GH z系统,他采用0.18 μmCMOS技术集成了射频、基带和带有全部集成蓝牙协议栈的MCU以 及收发器。工作电源为1.8 V,相对该公司的第一代蓝牙产品BlueCore1提高了内部的RAM(3 2 kB),对扩展的外部FLASH提高到了8 Mb,且能量消耗更低。采用BlueCore2Extern al芯片进行设计减少了外部射频元件的数目,确保产品模块的成本减到最小。装置合并自动校正和建立内部的自我测试程序使发展简单化,类型一致和实现生产测试。所有的硬件和装 置固件都与BlueTooth规格v1.1完全适用。若配合使用包含有CSR蓝牙协议栈的外部闪存,就可以实现数据和语音通信。该芯片除了蓝牙规范v1.1中定义的USB接口和UART接口,以及PCMCODEC音频接口外,还定义了串行外设接口,并行可编程I/O端口和I2C总线接口,这些接口使得编程仿真、调试和测试更加方便,也大大加强了与外部设备的接口能力。
2.1.2MBM29LV800BA90PBT闪存器芯片
MBM29LV800BA90PBT是FUJITSU公司生产的8 Mb闪速存储器。他是通过每8 b1 MB方式或者每16 b512 kB组织起来的,3.3 V单电源供电,具有编程和擦 除功能,可将系统电源需求减到最小,支持JEDEC控制标准,与E2PROM使用相同的控制软件。
2.2附加模块
附加模块由2块芯片组成即MAX878芯片和XC6209B182MR芯片,这是2块电压转换芯片,主要 为蓝牙模块中的BlueCore2External芯片及闪存芯片MBM29LV800BA90PBT提 供电压。这2块芯片的电压由对接对象模块USB设备提供,由于USB插座均由PC机内部获得5 V电源,而BlueCore2External芯片需1.8 V和3.3 V两种电源,闪存芯片MBM29LV 800BA90PBT需3.3 V单电源,故电压转换芯片需完成由5 V转换到1.8 V和3.3 V。MAX878芯片完成由5 V到3.3 V的转换,XC6209B182MR芯片完成由3.3 V到1.8 V的转换。
2.3对接对象模块USB
USB是由“通用串行总线实施论坛”组织公开发布推广的一种串行接口标准。蓝牙没有为USB 接口开发新的协议,而是使用已有的USB协议。USB接口支持符合蓝牙规范v1.1,可以和其他数字设备兼容通信,USB设备硬件能够以2种方式装入设备中,一种是形状类似于U盘的US B dongle;另一种是集成到电脑的主板上面。具体蓝牙USB接口端点的配置请参考蓝牙规范1.1。
3、软件程序实现
对于USB硬件驱动程序可以使用微软提供的软件开发包DDK,该软件包为驱动程序开发者提供 了用于开发驱动程序所需的资源文件、编译连接程序、开发技术文档等。蓝牙协议没有为US B接口开发新的协议,而是使用已有的USB协议,限于篇幅,对于USB接口硬件驱动程序部分不 再详述。只着重介绍通过蓝牙HCI传输层USB的物理接口来实现蓝牙连接和数据通信。以VC++6.0为软件开发平台,由于条件所限,只给出点对点的蓝牙连接和通信的程序,至于点对多点的只需对某些参数稍做修改。