




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 / 11基于 HCI 协议层的蓝牙通用外接模块的研究开发摘要:蓝牙是一种短距离无线通信技术。从蓝牙协议栈中的 HCI 层入手,对该层的主要功能和工作机制进行了剖析,进而阐述了基于 HCI 层的蓝牙应用开发方案,并设计了一个基于蓝牙技术开发的产品实例蓝牙通用外接模块,最后,还对基于此模块的扩展应用无线裁判打分系统进行了说明。关键词:HCI;蓝牙技术;无线通信 1 引言 蓝牙,是一种短距离无线通信技术,用于替代数字设备牙设备运行在和计算机外设间的电缆连接以及实现数字设备间的无线组网。1998 年 5 月由爱立信、IBM、英特尔、诺基亚、东芝等 5 家公司成立了蓝牙特殊利益小组,负责联合制定蓝牙规范。蓝牙工作在向全球统一开放的工业、科学、医学频段,可以同时传输数据和语音,至多 8 个活动的蓝牙设备可以共享信道带宽,形成所谓的匹克网。在每一个 piconet 中,有 1 个为蓝牙主设备,其余 7 个为从设备,同时可容许有更多的从设备以暂停(park)的方式锁定2 / 11到主设备。多个 picon-et 可以相互重叠。形成散射网(scattern-et)。SIG 所颁布的蓝牙规范就是蓝牙无线通信协议标准,它规定了蓝牙应用应遵循的标准和需要达到的要求,包括核心协议与应用框架两部分。协议规范部分定义了蓝牙的各层通信协议,遵循开放系统互连参考模型,从低到高地定义了蓝牙协议堆栈的各个层次,如图 1 所示。按照蓝牙协议的逻辑功能,协议堆栈由下至上分为三个部分:传输协议、中介协议和应用协议。中主机控制接口位于传输协议之中,它并不是严格意义上的通信协议,它仅为应用协议堆栈的高层部分提供了一个访问低层传输协议的指令接口。如果我们从 HCI 层出发,可以将蓝牙协议堆栈分为硬件与软件 2 个协议块。硬件部分由射频部分(RF)、基带部分(BB)、链路管理器部分(LM)和 HCI 固件构成,我们也可以把硬件部分称为蓝牙子系统。软件部分由 HCI 主机驱动程序、逻辑链路控制适配协议(L2CAP)、串口仿真协议(RFCOMM)、服务发现协议(SDP)、电话控制协议(TCS)及其它应用协议所构成。在蓝牙协议堆栈模型中的虚线部分为对中 HCI 协议层软件的具体划分。3 / 112 HCI 协议剖析在蓝牙协议模型中,HCI 软件驱动程序与 HCI 固件统一归为 HCI(主机控制接口),所以要基于 HCI 进行开发,首先必须了解 HCI 涉及的具体内容。主机控制接口为蓝牙硬件中基带控制器和链路管理器提供了命令接口,从而实现对硬件状态寄存器和控制寄存器的访问,特别是该接口提供了对蓝牙基带的统一访问模式。HCI 分为主机、传输层、主控制器三部分,并在每一层为 HCI 系统提供不同的功能。把 HCI 协议层划为 HCI 软件和 HCI 硬件两部分来加以讨论。HCI 软件HCI 软件部分可分为 HCI 固件和 HCI 驱动两个部分。HCI 固件位于主控制器。HCI 固件通过对基带命令、链路管理器命令、硬件状态寄存器、控制寄存器和事件寄存器的访问,实现蓝牙硬件 HCI 指令。主控制器(Host Controller)意味着具有主控制接口功能的蓝牙器件。与 HCI 固件不同,HCI 驱动位于主机,即协议模型中的HCI 软件驱动部分。若某事件发生,用 HCI 事件通知主机,而主机将收到 HCI 事件的异步通知。当主机发现有事件发生时,它将分析收到的事件包并决定何种事件发生。主机端的 HCI 驱动程序,一方面通过接口被蓝牙应用程序调用(所提到的蓝牙应用程序是相对于 HCI 层而言的,指的是构4 / 11建于通用外接模块上的扩展应用程序),实现对上层应用的承载;另一方面实现了协议中的 HCI 功能集,使主机可以向蓝牙子系统发送 HCI 指令,或接收子系统返回的 HCI 事件。 HCI 的硬件HCI 驱动和 HCI 固件是通过主控制器传输层(位于主控制器与主机之间的中间层)进行通信的,这些中间层和主控制传输层提供了在没有数据描述信息情况下传输数据的能力。在蓝牙规范的描述中,蓝牙子系统与主机之间共有 3类数据转移的方式、每一种数据在硬件接口均具有一定的封装格式,分别是由 3 种传输层支持,分别为 UART/RS232和 USB。采用不同的主控制器传输层对主机所接收的 HCI 事件异步通知不会产生影响。 3 蓝牙应用开发方案在图 1 中所提到的主机是一个广义的概念,可以是以 MPU为核心的计算机、也可以是以 MCU 为核心的控制电路,二者用途各异。其中以 MCU 为核心的控制电路适用于嵌入式应用开发,而以 MPU 为核心的计算机则适合于人机接口的软件开发。蓝牙协议为建立于蓝牙技术之上的多种应用提供了完整的解决办法,但对于不同应用一般只用到蓝牙协议中的某5 / 11几个,而且对于每部分协议也不用它所提供的全部功能。进而,在蓝牙应用开发中可以从不同的协议层入手。在开发蓝牙系统时,一般采用两种方式进行开发,一种是采用只提供无线接口的简单模块,从蓝牙子系统做起,再针对应用自行开发主芯片,该主芯片包括从基带层到应用层的完整蓝牙协议栈,这种开发方式较为复杂,但不一定需要HCI 层;另一种方法是购买由供应商提供的完整的蓝牙模块,这些模块实现了蓝牙子系统的全部或部分功能,屏蔽了射频和基带两个硬件协议层,可以直接在 HCI 基础上进行开发。目前供应商提供的蓝牙模块大致可分为 2 类,第 1 类为只实现了蓝牙链路控制功能的模块,第 2 类为蓝牙链路控制与嵌入式 HCI 驱动功能均已实现的模块。这 2 类模块的主要不同之处在于第 2 类包括一个 RISC(精简指令集计算机)处理器,实现链路控制和 HCI 功能,而第 1 类的 RISC 则不具有 HCI 功能。在实际应用中,要根据实际情况而选择不同类型的模块。如果选用集成了链路控制与 HCI 驱动功能的蓝牙模块,那么就可以在一个比较完整的平台上进行开发。如果主机具有 USB 或 UART 接口,在蓝牙模块与主机信号电平兼容的情况下,接口连接可以不需要其它辅助硬件电路。许多情况下,USB 或 UART 接口集成在主机的核心芯片上,所以可6 / 11以实现蓝牙模块与主机的无缝接口。这种模型下的蓝牙技术应用开发,主要工作集中在蓝牙主机端软件的实现上,包括 HCI 驱动程序与传输层驱动程序。正是由于这种蓝牙模块实现了嵌入式 HCI 协议,所以应用开发可以直接从 HCI层开始,避免了基带与射频的硬件实现,是一种全软件式的开发模式,开发成果具有很好的可移植性。中正是采用了这一开发方案进行的蓝牙通用外接模块的开发。通过封装 HCI 协议层,可以生成标准的 HCI 接口函数,为上层的应用开发提供一个完整的平台。制功能的蓝牙模块,由于它不提供 HCI 传输层接口和嵌入式 HCI 驱动程序。此时,嵌入式 HCI 驱动程序的功能将转嫁给主机来实现。这样,与前一种开发模式相比,主机的 HCI 层驱动程序将变得十分复杂,开发周期也将是比较长的。蓝牙通用外接模块设计开发实例笔者基于 HCI 成功地开发了一种在现有的供应商提供的蓝牙模块基础上进行指令重新解释与结构封装的通用外接模块。本模块最终面向基于此通用模块的扩展应用,提供了 USB 接口、UART/RS232 接口、耳机接口、麦克 MIC 接口、键盘等多种接口,可同时进行数据和语音信息的传输。该通用外接模块既可以单独构成蓝牙应用系统使用,也可以7 / 11与主机连接使用,使用应用者很方便地借助于蓝牙技术来实现应用产品的无线通讯。为了对此通用外接模块进行功能测试,在实验开发阶段,笔者使用了两台 PC 作为通用外接模块之上的扩展应用的主体,2 个通用外接模块分别作为蓝牙 piconet 中的主、从设备,蓝牙设备通过 UART 或 USB 口由 PC 处接收命令和数据信息,通用外接模块对此信息进行处理后,以无线传输方式将信息发至另一蓝牙设备的应用主体 PC 处。下面从硬件和软件两个方面加以介绍,论及的设计主要包括蓝牙通用模块及作为扩展应用主体的 PC 两大部分。硬件设计蓝牙通用模块部分硬件电路主要由语音芯片、微控制器部分及蓝牙模块等组成。硬件结构如图 2 所示:其中采用了支持双串口的 DALLAS 公司生产的 DS89C420微控制器作为蓝牙主机,两串口分别与蓝牙模块及构建于通用模块之上的扩展应用的主体进行通信;使用 MSM7560L语音芯片;蓝牙模块采用的是 Ericsson 公司生产的模块,型号为 ROK 101 007,属于提到的第 2 类模块,采用 ARM7芯片作为 RISC 处理器。 在硬件实现上,微控制器部分主要由 DS89C420 微控制器、8 / 11电源系统、振荡电路、复位电路、接口电平转换电路等几部分组成,微控制单元是核心部分。电平转换电路用于在蓝牙模块与 PC 通信接口之间进行电平的转换。另外还包括一些不同类型的接口电路、跳线开关电路以及若干状态 LED等外围器件,以备建立于通用外接模块之上的扩展应用及通讯状态监测的需要。 软件设计PC 部分软件设计PC 部分测试程序主要是开发蓝牙应用组件,测试程序运行于 Windows 操作系统之上,提供了 USB 和串口驱动程序,应用程序函数接口等,具体可分为 PC 串口初始化、蓝牙通信参数设定、蓝牙通用外接模块控制、HCI 指令封装、数据信息处理等几个部分。其中第一步要做的工作是初始化计算机串口,串口参数可以根据实际需要进行选择。第二步要进行的是蓝牙模块参数的设定,其中包括蓝牙设备主从设定、蓝牙模块初始化参数的设定、程序监测设定等几部分。以上所有这些动态设定,是通过扩展应用主体往通用外接模块串口发送公共变量而实现的。当收到参数设定成功消息后,进行下一步,即向通用外接模块串口发送命令消息来实现蓝牙设备的初始化、查询、链接建立过程,在收到通用模块发回的链接建立完成的反馈信息后,即可按一定的格式将数据信9 / 11息发往通用外接模块接口,完成数据信息的无线传输。通用外接模块软件设计通用外接模块一方面从 PC 方的 RS-232 串口接收 PC 端的公共参数信息、命令信息及数据信息,另一方面发送相应的 HCI 指令给蓝牙模块 ROK 101 007,然后将返回的事件进行分析处理,最终将有关程序状态、通讯数据信息返回给本地 PC。软件实现的全部功能是通过 C51 语言进行开发的,由专用寄存器设置子程序、中断处理程序、定时器中断程序、看门狗程序、链路初始化子程序、链路建立子程序、通信数据处理子程序、断开链路子程序、蓝牙测试子程序等功能块来完成。所有程序信息对于通用外接模块以外的扩展应用主体而言都是不可见的,扩展应用只需按一定的格式发送相应的信息给通用外接模块即可完成整个通信过程,在此就不对程序进行具体的说明了。 至此,通用外接模块开发实验阶段软件设计完成,通过测试本模块完全达到了预期的要求,数据传输正常,性能良好。本封装模块之所以被加以“通用”二字来界定,是因为本模块在功能上很好地做到了以下几点:(1)本模块提供了对多种扩展应用接口的支持,包括UART/USB 以及语音传输接口。(2)本模块既支持以 MPC 为扩展应用主体的计算机上的10 / 11扩展应用,又支持以 MCU 为扩展主体的控制器件上的扩展应用;(3)本模块提供对多种操作系统的支持,目前为止,支持Windows95/98/2000/xp 及 Linux 操作系统。5 一种构建于通用外接模块之上无线通讯扩展应用裁判系统目前,在很多大型赛事中比赛所采用的裁判打分系统大都是采用有缆连接的方式进行的,各位裁判将各自的评定的比赛成绩通过有线的电缆传输到主控机上进行综合评定,然后产生最终的结果。但这一系统存在着一个很明显的不足之外,就是有缆连接所带来的不便性,而通过采用笔者所设计的通用外接模块后, 通过在通用外接模块的基
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 游戏行业全景解析
- 手指课件内容
- 智能采收能耗优化-洞察及研究
- 不锈钢楼梯安装安全协议书7篇
- 统编版2025-2026学年语文六年级上册第一、二单元综合测试卷(有答案)
- 内蒙古锡林郭勒盟二连浩特市第一中学2024-2025学年九年级上学期期末检测化学试卷(无答案)
- 2025届安徽省安庆市安庆九一六高级中学高三下学期第5次强化训练物理试卷(含答案)
- 欧美医耗市场准入策略-洞察及研究
- 学生手机安全培训心得课件
- 扇形统计图说课稿课件
- 2025湖南生物机电职业技术学院单招《语文》考试历年机考真题集【必考】附答案详解
- 2024年齐齐哈尔市公安局招聘警务辅助人员真题
- 4.2《让家更美好》 课件 2025-2026道德与法治七年级上册 统编版
- 2025耿马傣族佤族自治县司法局面向社会公开招聘司法协理员(10人)考试参考题库及答案解析
- 北师大版三年级上册第八单元8.1《评选吉祥物》课时练(含答案)
- ERCP护理题库及答案解析
- 2025年百里香酚行业研究报告及未来行业发展趋势预测
- 2025年网络信息安全技术岗位专业知识试卷及答案解析
- 2025四川广元市园区建设投资集团有限公司招聘13人考试模拟试题及答案解析
- 检验员技能测试题及答案
- 化学原电池教学课件
评论
0/150
提交评论