基于HCI协议层的蓝牙通用外接模块的研究开发.rtf

上传人:qwe****56 文档编号:74642389 上传时间:2023-02-27 格式:RTF 页数:5 大小:94.54KB
返回 下载 相关 举报
基于HCI协议层的蓝牙通用外接模块的研究开发.rtf_第1页
第1页 / 共5页
基于HCI协议层的蓝牙通用外接模块的研究开发.rtf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《基于HCI协议层的蓝牙通用外接模块的研究开发.rtf》由会员分享,可在线阅读,更多相关《基于HCI协议层的蓝牙通用外接模块的研究开发.rtf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、基于 HCI 协议层的蓝牙通用外接模块的研究开发.txt 大悲无泪,大悟无言,大笑无声。我们手里的金钱是保持自由的一种工具。女人在约会前,一定先去美容院;男人约会前,一定先去银行。基于 HCI 协议层的蓝牙通用外接模块的研究开发摘要:蓝牙是一种短距离无线通信技术。本文从蓝牙协议栈中的 HCI 层入手,对该层的主要功能和工作机制进行了剖析,进而阐述了基于 HCI 层的蓝牙应用开发方案,并设计了一个基于蓝牙技术开发的产品实例蓝牙通用外接模块,最后,还对基于此模块的扩展应用无线裁判打分系统进行了说明。关键词:HCI;蓝牙技术;无线通信 1 引言蓝牙(Bluetooth),是一种短距离无线通信技术,用

2、于替代数字设备牙设备运行在和计算机外设间的电缆连接以及实现数字设备间的无线组网。1998 年 5 月由爱立信、IBM、英特尔、诺基亚、东芝等 5 家公司成立了蓝牙特殊利益小组(SIG),负责联合制定蓝牙规范。蓝牙工作在向全球统一开放的 2.4GHz 工业、科学、医学(IndustrialScientificMedical)频段,可以同时传输数据和语音,至多 8 个活动的蓝牙设备可以共享信道带宽,形成所谓的匹克网(piconet)。在每一个 piconet 中,有 1 个为蓝牙主设备,其余 7 个为从设备,同时可容许有更多的从设备以暂停(park)的方式锁定到主设备。多个 picon-et 可以

3、相互重叠。形成散射网(scattern-et)。SIG 所颁布的蓝牙规范就是蓝牙无线通信协议标准,它规定了蓝牙应用应遵循的标准和需要达到的要求,包括核心协议(Core)与应用框架(Profiles)两部分。协议规范部分定义了蓝牙的各层通信协议,遵循开放系统互连参考模型,从低到高地定义了蓝牙协议堆栈的各个层次,如图 1 所示。按照蓝牙协议的逻辑功能,协议堆栈由下至上分为三个部分:传输协议、中介协议和应用协议。本文中主机控制接口(HCI)位于传输协议之中,它并不是严格意义上的通信协议,它仅为应用协议堆栈的高层部分提供了一个访问低层传输协议的指令接口。如果我们从 HCI 层出发,可以将蓝牙协议堆栈分

4、为硬件与软件 2 个协议块。硬件部分由射频部分(RF)、基带部分(BB)、链路管理器部分(LM)和 HCI 固件构成,我们也可以把硬件部分称为蓝牙子系统。软件部分由 HCI 主机驱动程序、逻辑链路控制适配协议(L2CAP)、串口仿真协议(RFCOMM)、服务发现协议(SDP)、电话控制协议(TCS)及其它应用协议所构成。在蓝牙协议堆栈模型中的虚线部分为对本文中 HCI 协议层软件的具体划分。2 HCI 协议剖析 在蓝牙协议模型中,HCI 软件驱动程序与 HCI 固件统一归为 HCI(主机控制接口),所以要基于 HCI 进行开发,首先必须了解 HCI 涉及的具体内容。主机控制接口为蓝牙硬件中基带

5、控制器和链路管理器提供了命令接口,从而实现对硬件状态寄存器和控制寄存器的访问,特别是该接口提供了对蓝牙基带的统一访问模式。HCI 分为主机、传输层、主控制器三部分,并在每一层为 HCI 系统提供不同的功能。本文把 HCI 协议层划为 HCI 软件和 HCI 硬件两部分来加以讨论。2.1HCI 软件HCI 软件部分可分为 HCI 固件和 HCI 驱动两个部分。HCI 固件位于主控制器。HCI 固件通过对基带命令、链路管理器命令、硬件状态寄存器、控制寄存器和事件寄存器的访问,实现蓝牙硬件 HCI 指令。主控制器(HostController)意味着具有主控制接口功能的蓝牙器件。与 HCI 固件不同

6、,HCI 驱动位于主机,即协议模型中的 HCI 软件驱动部分。若某事件发生,用 HCI 事件通知主机,而主机将收到 HCI 事件的异步通知。当主机发现有事件发生时,它将分析收到的事件包并决定何种事件发生。主机端的 HCI 驱动程序,一方面通过接口被蓝牙应用程序调用(本文所提到的蓝牙应用程序是相对于 HCI 层而言的,指的是构建于通用外接模块上的扩展应用程序),实现对上层应用的承载;另一方面实现了协议中的 HCI 功能集,使主机可以向蓝牙子系统发送 HCI 指令,或接收子系统返回的 HCI 事件。2.2HCI 的硬件 HCI 驱动和 HCI 固件是通过主控制器传输层(位于主控制器与主机之间的中间

7、层)进行通信的,这些中间层和主控制传输层提供了在没有数据描述信息情况下传输数据的能力。在蓝牙规范的描述中,蓝牙子系统与主机之间共有 3 类数据转移的方式、每一种数据在硬件接口均具有一定的封装格式,分别是由 3 种传输层支持,分别为 UART/RS232 和 USB。采用不同的主控制器传输层对主机所接收的 HCI 事件异步通知不会产生影响。3 蓝牙应用开发方案在图 1 中所提到的主机是一个广义的概念,可以是以 MPU 为核心的计算机、也可以是以 MCU为核心的控制电路,二者用途各异。其中以 MCU 为核心的控制电路适用于嵌入式应用开发,而以 MPU 为核心的计算机则适合于人机接口的软件开发。蓝牙

8、协议为建立于蓝牙技术之上的多种应用提供了完整的解决办法,但对于不同应用一般只用到蓝牙协议中的某几个,而且对于每部分协议也不用它所提供的全部功能。进而,在蓝牙应用开发中可以从不同的协议层入手。在开发蓝牙系统时,一般采用两种方式进行开发,一种是采用只提供无线接口的简单模块,从蓝牙子系统做起,再针对应用自行开发主芯片,该主芯片包括从基带层到应用层的完整蓝牙协议栈,这种开发方式较为复杂,但不一定需要 HCI层;另一种方法是购买由供应商提供的完整的蓝牙模块,这些模块实现了蓝牙子系统的全部或部分功能,屏蔽了射频和基带两个硬件协议层,可以直接在 HCI 基础上进行开发。目前供应商提供的蓝牙模块大致可分为 2

9、 类,第 1 类为只实现了蓝牙链路控制功能的模块,第 2 类为蓝牙链路控制与嵌入式 HCI 驱动功能均已实现的模块。这 2 类模块的主要不同之处在于第 2 类包括一个 RISC(精简指令集计算机)处理器,实现链路控制和 HCI 功能,而第 1 类的 RISC 则不具有 HCI 功能。在实际应用中,要根据实际情况而选择不同类型的模块。如果选用集成了链路控制与 HCI 驱动功能的蓝牙模块,那么就可以在一个比较完整的平台上进行开发。如果主机具有 USB 或 UART 接口,在蓝牙模块与主机信号电平兼容的情况下,接口连接可以不需要其它辅助硬件电路。许多情况下,USB 或 UART 接口集成在主机的核心

10、芯片上,所以可以实现蓝牙模块与主机的无缝接口。这种模型下的蓝牙技术应用开发,主要工作集中在蓝牙主机端软件的实现上,包括 HCI 驱动程序与传输层驱动程序。正是由于这种蓝牙模块实现了嵌入式 HCI 协议,所以应用开发可以直接从 HCI 层开始,避免了基带与射频的硬件实现,是一种全软件式的开发模式,开发成果具有很好的可移植性。本文中正是采用了这一开发方案进行的蓝牙通用外接模块的开发。通过封装 HCI 协议层,可以生成标准的 HCI 接口函数,为上层的应用开发(在本文指的是蓝牙通用模块)提供一个完整的平台。制功能的蓝牙模块,由于它不提供 HCI 传输层接口和嵌入式 HCI 驱动程序。此时,嵌入式 H

11、CI驱动程序的功能将转嫁给主机来实现。这样,与前一种开发模式相比,主机的 HCI 层驱动程序将变得十分复杂,开发周期也将是比较长的。蓝牙通用外接模块设计开发实例笔者基于 HCI 成功地开发了一种在现有的供应商提供的蓝牙模块基础上进行指令重新解释与结构封装的通用外接模块。本模块最终面向基于此通用模块的扩展应用,提供了 USB 接口、UART/RS232 接口、耳机接口、麦克 MIC 接口、键盘等多种接口,可同时进行数据和语音信息的传输。该通用外接模块既可以单独构成蓝牙应用系统使用,也可以与主机连接使用,使用应用者很方便地借助于蓝牙技术来实现应用产品的无线通讯。为了对此通用外接模块进行功能测试,在

12、实验开发阶段(本文中对此通用模块说明均是针对开发阶段的),笔者使用了两台 PC 作为通用外接模块之上的扩展应用的主体,2 个通用外接模块分别作为蓝牙 piconet 中的主、从设备,蓝牙设备通过 UART 或 USB 口由 PC 处接收命令和数据信息,通用外接模块对此信息进行处理后,以无线传输方式将信息发至另一蓝牙设备的应用主体 PC 处。下面从硬件和软件两个方面加以介绍,本文论及的设计主要包括蓝牙通用模块及作为扩展应用主体的 PC 两大部分。4.1 硬件设计蓝牙通用模块部分硬件电路主要由语音芯片、微控制器部分(即蓝牙主机部分)及蓝牙模块等组成。硬件结构如图 2 所示:其中采用了支持双串口的

13、DALLAS 公司生产的 DS89C420 微控制器作为蓝牙主机,两串口分别与蓝牙模块及构建于通用模块之上的扩展应用的主体进行通信;使用 MSM7560L 语音芯片;蓝牙模块采用的是 Ericsson 公司生产的模块,型号为 ROK101007,属于本文提到的第 2 类模块,采用 ARM7 芯片作为 RISC 处理器。在硬件实现上,微控制器部分主要由 DS89C420 微控制器、电源系统、振荡电路、复位电路、接口电平转换电路等几部分组成,微控制单元是核心部分。电平转换电路用于在蓝牙模块与 PC通信接口之间进行电平的转换。另外还包括一些不同类型的接口电路、跳线开关电路以及若干状态 LED 等外围

14、器件,以备建立于通用外接模块之上的扩展应用及通讯状态监测的需要。4.2 软件设计4.2.1PC 部分软件设计PC 部分测试程序主要是开发蓝牙应用组件,测试程序运行于 Windows 操作系统之上,提供了USB 和串口驱动程序,应用程序函数接口(API)等,具体可分为 PC 串口初始化、蓝牙通信参数设定、蓝牙通用外接模块控制、HCI 指令封装、数据信息处理等几个部分。其中第一步要做的工作是初始化计算机串口,串口参数可以根据实际需要进行选择。第二步要进行的是蓝牙模块参数的设定,其中包括蓝牙设备主从设定、蓝牙模块初始化参数的设定、程序监测设定等几部分。以上所有这些动态设定,是通过扩展应用主体(此外为

15、 PC)往通用外接模块串口发送公共变量而实现的。当收到参数设定成功消息后,进行下一步,即向通用外接模块串口发送命令消息来实现蓝牙设备的初始化、查询、链接建立过程,在收到通用模块发回的链接建立完成的反馈信息后,即可按一定的格式将数据信息发往通用外接模块接口,完成数据信息的无线传输。4.2.2 通用外接模块软件设计 通用外接模块一方面从 PC 方的 RS-232 串口接收 PC 端的公共参数信息(用于串口初始化及蓝牙模块参数设定)、命令信息及数据信息,另一方面发送相应的 HCI 指令给蓝牙模块ROK101007,然后将返回的事件进行分析处理,最终将有关程序状态、通讯数据信息返回给本地 PC。软件实

16、现的全部功能是通过 C51 语言进行开发的,由专用寄存器设置子程序、中断处理程序、定时器中断程序、看门狗程序、链路初始化子程序、链路建立子程序、通信数据处理子程序、断开链路子程序、蓝牙测试子程序等功能块来完成。所有程序信息对于通用外接模块以外的扩展应用主体而言都是不可见的,扩展应用只需按一定的格式发送相应的信息给通用外接模块即可完成整个通信过程,在此就不对程序进行具体的说明了。至此,通用外接模块开发实验阶段软件设计完成,通过测试本模块完全达到了预期的要求,数据传输正常,性能良好。本封装模块之所以被加以“通用”二字来界定,是因为本模块在功能上很好地做到了以下几点:本模块提供了对多种扩展应用接口的

17、支持,包括 UART/USB 以及语音传输接口。(2)本模块既支持以 MPC 为扩展应用主体的计算机上的扩展应用,又支持以 MCU 为扩展主体的控制器件上的扩展应用;(3)本模块提供对多种操作系统的支持,目前为止,支持 Windows95/98/2000/xp 及 Linux 操作系统。5 一种构建于通用外接模块之上无线通讯扩展应用裁判系统 目前,在很多大型赛事中比赛所采用的裁判打分系统大都是采用有缆连接的方式进行的,各位裁判将各自的评定的比赛成绩通过有线的电缆传输到主控机上进行综合评定,然后产生最终的结果。但这一系统存在着一个很明显的不足之外,就是有缆连接所带来的不便性,而通过采用笔者所设计

18、的通用外接模块后,通过在通用外接模块的基础上相应地增加 LCD、键盘和 MCU 后,只要对外加的 MCU 进行简单的编程既可实现裁判打分系统的无线通讯化。日前,笔者参与设计的蓝牙无线打分系统已被成功地用于很多大型比赛之中。6 结束语蓝牙产品的开发重在有特色的应用,在通用模块的基础上进行外围设备的开发和上层软件的编写,可以大大地缩短产品的开发周期,为各种蓝牙应用奠定了基础,从而方便地实现产品的蓝牙无线通讯,使人们摆脱各种线缆的束缚。目前基于蓝牙技术的产品开发,正在短距离无线通信中显示出一股强劲的势头,蓝牙技术的大发展期必将很快的到来。基于 HCI 协议层的蓝牙通用外接模块的研究开发(2)参考文献:1 BluetoothSpecialInterestGroup,SpecificationofBluetoothSystem Corev1.1s,20012马兴,梁剑,陈前斌.基于 HCI 协议层 的蓝牙技术应用开发J.重庆邮电学 院学报,2002,14(4):78-82.3金钝,许光辰等蓝牙技术北京:电子工业出版社,20014 马建仓等蓝牙核心技术及应用北 京:科学出版社,2003

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁