基于BlueCore2External蓝牙芯片的USB接口设计

2007-06-29 11:24:48来源: 现代电子技术

1前言

蓝牙是一种全新的无线数据交换技术,他的应用省却了各种数字设备之间需要经过 复杂的软件安装与调试的有线连接过程,做到紧紧咬合、无缝连接,使各种电子设备与家用 电器融为一体,给人们的生活和工作带来全新的感受。

蓝牙技术集成到各种数字设备中的方式有2种:一种是单微控制器方式,即所有的蓝牙低层传输协议(包括蓝牙射频、基带与链路控制器、链路管理器)与高层传输协议(包括逻辑链 路控制与适配协议、服务发现协议、串口仿真协议、网络封装协议等)以及用户应用程序都 集成到一个模块当中,整个处理过程由一个微处理器来完成;另一种是双微控制器方式,即 蓝牙协议与用户应用程序分别由主机和主机控制器来实现(低层传输协议一般通过蓝牙硬件模块实现,模块内部嵌入的微处理器称为主机控制器,高层传输协议和用户应用程序在个人计算机或嵌入的单片机DSP等上运行,称为主机),主机和主机控制器之间通过标 准的物理总线接口(USB,RS 232等)连接。

在蓝牙的主机-主机控制器连接模型中,主机接口HCI(Host Controller Interface)作为蓝牙软件协议堆栈中软硬件之间的接口,他提供了一个控制基带与链路控制器、链路管理器、状态寄存器等硬件的统一接口。目前,蓝牙HCI传输层的物理接口有通用串行总线USB,串行端口RS 232、通用异步收发器UART等。当主机和主机控制器通信时,HCI层以上的协议 在主机上运行,而HCI层以下的协议由蓝牙主机控制器硬件完成,他们通过HCI传输层进行通信。主机和主机控制器中都有HCI,他们具有相同的接口标准。主机控制器中的HCI解释来自主机的信息并将信息发向相应的硬件模块单元,同时还将模块中的信息(包括数据和硬件/固件信息)根据需要向上转发给主机。如图1所示为蓝牙主机-主机控制器模型。

蓝牙主机-主机控制器模型方案采用了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所示。

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所示。

3软件程序实现

对于USB硬件驱动程序可以使用微软提供的软件开发包DDK,该软件包为驱动程序开发者提供 了用于开发驱动程序所需的资源文件、编译连接程序、开发技术文档等。蓝牙协议没有为US B接口开发新的协议,而是使用已有的USB协议,限于篇幅,对于USB接口硬件驱动程序部分不 再详述。只着重介绍通过蓝牙HCI传输层USB的物理接口来实现蓝牙连接和数据通信。以VC++6.0为软件开发平台,由于条件所限,只给出点对点的蓝牙连接和通信的程序,至于点对多点的只需对某些参数稍做修改。点对点的软件的流程框图如图4所示。

代码如下:

(1) 打开设备,同时要开启HCI事件,HCI ACL,HCI SCO三个从主机控制器返回到主机上的事件的线程:




(2) 对本地蓝牙设备配置



通过调用此函数来实现对蓝牙设备的配置,包括连接建立最大的响应时间、寻呼最大响应时间、加密、鉴权、流量控制、读取本地蓝牙设备的名字以及本地蓝牙设备地址BD_ADDR等。

(3) 查询有效范围内的其他蓝牙设备



在查询成功的同时通过HCI事件线程Get_HCI_Event()获取对方蓝牙设备的地址和双方的时钟偏差,这2个是决定在下一步是否能建立ACL连接的关键参数。

(4) 建立ACL连接




在建立ACL连接成功的同时,通过HCI事件线程Get_HCI_Event()获取ACL连接句柄,在以后建立SCO连接以及发送ACL数据都将使用这个句柄来完成相应的操作。

(5) 建立SCO连接



在建立SCO连接成功的同时,通过HCI事件线程Get_HCI_Event()获取SCO连接句柄,在以后进行发送SCO数据时要使用这个句柄来完成相应的操作。

(6) 建立完ACL和SCO连接后,就可以进行ACL和SCO数据发送和接收,通过线程Get_ACL_Data(),Get_SCO_Data()获取ACL和SCO数据

 

(7) 断开连接

 

参考文献

[1]Bluetooth SIG Specification of Bluetooth System Version 1. 1[S].2001
[2]马建仓,罗亚军,赵玉亭.蓝牙核心技术及应用[M].北京:科学出版社,2003
[3]http://www.csr.comBlueCore2External Product Data Sheet ?2004
[4]宋春荣.通用集成电路速查手册[M].济南:山东科学技术出版社,1995
[5]梁廷贵.现代集成电路实用手册 译码器 编码器 数据选择器 电子开关电源分册[M].北京:科学技术文献出版社,2002

关键字:封装  协议  主机  DSP

编辑: 引用地址:http://www.eeworld.com.cn/designarticles/rfandwireless/200706/14450.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
封装
协议
主机
DSP

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved