预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于HCI协议层的蓝牙通用外接模块的研究开发.txt大悲无泪,大悟无言,大笑无声。我们手里的金钱是保持自由的一种工具。女人在约会前,一定先去美容院;男人约会前,一定先去银行。 基于HCI协议层的蓝牙通用外接模块的研究开发 <DIV id=content><script src="/mx/baid.js"><DIV id=viewad><script src="/a/lw.js"> 摘要:蓝牙是一种短距离无线通信技术。本文从蓝牙协议栈中的HCI层入手,对该层的主要功能和工作机制进行了剖析,进而阐述了基于HCI层的蓝牙 应用 开发方案,并设计了一个基于蓝牙技术开发的产品实例——蓝牙通用外接模块,最后,还对基于此模块的扩展应用——无线裁判打分系统进行了说明。 关键词:HCI;蓝牙技术;无线通信 1 引言 蓝牙(Bluetooth),是一种短距离无线通信技术,用于替代数字设备牙设备运行在和 计算 机外设间的电缆连接以及实现数字设备间的无线组网。1998年5月由爱立信、IBM、英特尔、诺基亚、东芝等5家公司成立了蓝牙特殊利益小组(SIG),负责联合制定蓝牙规范。蓝牙工作在向全球统一开放的2.4GHz 工业 、 科学 、医学(Industrial Scientific Medical)频段,可以同时传输数据和语音,至多8个活动的蓝牙设备可以共享信道带宽,形成所谓的匹克网(piconet)。在每一个piconet中,有1个为蓝牙主设备,其余7个为从设备,同时可容许有更多的从设备以暂停(park)的方式锁定到主设备。多个picon- et可以相互重叠。形成散射网(scattern- et)。 SIG所颁布的蓝牙规范就是蓝牙无线通信协议标准,它规定了蓝牙应用应遵循的标准和需要达到的要求,包括核心协议(Core)与应用框架(Profiles)两部分。协议规范部分定义了蓝牙的各层通信协议,遵循开放系统互连 参考 模型,从低到高地定义了蓝牙协议堆栈的各个层次,如图1所示。 按照蓝牙协议的逻辑功能,协议堆栈由下至上分为三个部分:传输协议、中介协议和应用协议。本文中主机控制接口(HCI)位于传输协议之中,它并不是严格意义上的通信协议,它仅为应用协议堆栈的高层部分提供了一个访问低层传输协议的指令接口。 如果我们从HCI层出发,可以将蓝牙协议堆栈分为硬件与软件2个协议块。硬件部分由射频部分(RF)、基带部分(BB)、链路管理器部分(LM)和HCI固件构成,我们也可以把硬件部分称为蓝牙子系统。软件部分由HCI主机驱动程序、逻辑链路控制适配协议(L2CAP)、串口仿真协议(RFCOMM)、服务发现协议(SDP)、电话控制协议(TCS)及其它应用协议所构成。在蓝牙协议堆栈模型中的虚线部分为对本文中HCI协议层软件的具体划分。 2 HCI协议剖析 在蓝牙协议模型中,HCI软件驱动程序与HCI固件统一归为HCI(主机控制接口),所以要基于HCI进行开发,首先必须了解HCI涉及的具体 内容 。主机控制接口为蓝牙硬件中基带控制器和链路管理器提供了命令接口,从而实现对硬件状态寄存器和控制寄存器的访问,特别是该接口提供了对蓝牙基带的统一访问模式。HCI分为主机、传输层、主控制器三部分,并在每一层为HCI系统提供不同的功能。本文把HCI协议层划为HCI软件和HCI硬件两部分来加以讨论。 2.1 HCI软件 HCI软件部分可分为HCI固件和HCI驱动两个部分。 HCI固件位于主控制器。HCI固件通过对基带命令、链路管理器命令、硬件状态寄存器、控制寄存器和事件寄存器的访问,实现蓝牙硬件HCI指令。主控制器(Host Controller)意味着具有主控制接口功能的蓝牙器件。 与HCI固件不同,HCI驱动位于主机,即协议模型中的HCI软件驱动部分。若某事件发生,用HCI事件通知主机,而主机将收到HCI事件的异步通知。当主机发现有事件发生时,它将 分析 收到的事件包并决定何种事件发生。主机端的HCI驱动程序,一方面通过接口被蓝牙应用程序调用(本文所提到的蓝牙应用程序是相对于HCI层而言的,指的是构建于通用外接模块上的扩展应用程序),实现对上层应用的承载;另一方面实现了协议中的HCI功能集,使主机可以向蓝牙子系统发送HCI指令,或接收子系统返回的HCI事件。 2.2 HCI的硬件 HCI驱动和HCI固件是通过主控制器传输层(位于主控制器与主机之间的中间层)进行通信的,这些中间层和主控制传输层提供了在没有数据描述信息情况下传输数据的能力。在蓝牙规范的描述中,蓝牙子系统与主机之间共有3类数据转移的方式、每一种数据在硬件接口均具有一定的封装格式,分别是由3种传输层支持,分别为UART/RS232和USB。采用不同的主控制器传输层对主机所接收的HCI事件异步通知不会产