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

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved