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

上传人:逍*** 文档编号:186651749 上传时间:2021-07-19 格式:DOC 页数:5 大小:22.50KB
返回 下载 相关 举报
自-基于HCI协议层的蓝牙通用外接模块的研究开发_第1页
第1页 / 共5页
自-基于HCI协议层的蓝牙通用外接模块的研究开发_第2页
第2页 / 共5页
自-基于HCI协议层的蓝牙通用外接模块的研究开发_第3页
第3页 / 共5页
自-基于HCI协议层的蓝牙通用外接模块的研究开发_第4页
第4页 / 共5页
自-基于HCI协议层的蓝牙通用外接模块的研究开发_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《自-基于HCI协议层的蓝牙通用外接模块的研究开发》由会员分享,可在线阅读,更多相关《自-基于HCI协议层的蓝牙通用外接模块的研究开发(5页珍藏版)》请在金锄头文库上搜索。

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

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

3、蓝牙无线通信协议标准,它规定了蓝牙应用应遵循的标准和需要达到的要求,包括核心协议(Core)与应用框架(rofile)两部分。协议规范部分定义了蓝牙的各层通信协议,遵循开放系统互连参考模型,从低到高地定义了蓝牙协议堆栈的各个层次,如图1所示。按照蓝牙协议的逻辑功能,协议堆栈由下至上分为三个部分:传输协议、中介协议和应用协议。本文中主机控制接口(C)位于传输协议之中,它并不是严格意义上的通信协议,它仅为应用协议堆栈的高层部分提供了一个访问低层传输协议的指令接口。如果我们从CI层出发,可以将蓝牙协议堆栈分为硬件与软件2个协议块。硬件部分由射频部分(RF)、基带部分(B)、链路管理器部分(L)和HC

4、I固件构成,我们也可以把硬件部分称为蓝牙子系统。软件部分由HCI主机驱动程序、逻辑链路控制适配协议(L2CAP)、串口仿真协议(RMM)、服务发现协议(SDP)、电话控制协议(TC)及其它应用协议所构成。在蓝牙协议堆栈模型中的虚线部分为对本文中CI协议层软件的具体划分。 HCI协议剖析 在蓝牙协议模型中,CI软件驱动程序与HCI固件统一归为HC(主机控制接口),所以要基于HCI进行开发,首先必须了解HCI涉及的具体内容。主机控制接口为蓝牙硬件中基带控制器和链路管理器提供了命令接口,从而实现对硬件状态寄存器和控制寄存器的访问,特别是该接口提供了对蓝牙基带的统一访问模式。HCI分为主机、传输层、主

5、控制器三部分,并在每一层为I系统提供不同的功能。本文把H协议层划为CI软件和HC硬件两部分来加以讨论。2.1HCI软件HCI软件部分可分为HCI固件和I驱动两个部分。HC固件位于主控制器。I固件通过对基带命令、链路管理器命令、硬件状态寄存器、控制寄存器和事件寄存器的访问,实现蓝牙硬件H指令。主控制器(HostContole)意味着具有主控制接口功能的蓝牙器件。与HCI固件不同,HC驱动位于主机,即协议模型中的C软件驱动部分。若某事件发生,用HCI事件通知主机,而主机将收到HI事件的异步通知。当主机发现有事件发生时,它将分析收到的事件包并决定何种事件发生。主机端的HCI驱动程序,一方面通过接口被

6、蓝牙应用程序调用(本文所提到的蓝牙应用程序是相对于HCI层而言的,指的是构建于通用外接模块上的扩展应用程序),实现对上层应用的承载;另一方面实现了协议中的I功能集,使主机可以向蓝牙子系统发送HCI指令,或接收子系统返回的HC事件。2.2HCI的硬件 HI驱动和HCI固件是通过主控制器传输层(位于主控制器与主机之间的中间层)进行通信的,这些中间层和主控制传输层提供了在没有数据描述信息情况下传输数据的能力。在蓝牙规范的描述中,蓝牙子系统与主机之间共有3类数据转移的方式、每一种数据在硬件接口均具有一定的封装格式,分别是由3种传输层支持,分别为UART/RS232和US。采用不同的主控制器传输层对主机

7、所接收的HCI事件异步通知不会产生影响。3 蓝牙应用开发方案在图中所提到的主机是一个广义的概念,可以是以MP为核心的计算机、也可以是以MU为核心的控制电路,二者用途各异。其中以MU为核心的控制电路适用于嵌入式应用开发,而以MPU为核心的计算机则适合于人机接口的软件开发。蓝牙协议为建立于蓝牙技术之上的多种应用提供了完整的解决办法,但对于不同应用一般只用到蓝牙协议中的某几个,而且对于每部分协议也不用它所提供的全部功能。进而,在蓝牙应用开发中可以从不同的协议层入手。在开发蓝牙系统时,一般采用两种方式进行开发,一种是采用只提供无线接口的简单模块,从蓝牙子系统做起,再针对应用自行开发主芯片,该主芯片包括

8、从基带层到应用层的完整蓝牙协议栈,这种开发方式较为复杂,但不一定需要HCI层;另一种方法是购买由供应商提供的完整的蓝牙模块,这些模块实现了蓝牙子系统的全部或部分功能,屏蔽了射频和基带两个硬件协议层,可以直接在H基础上进行开发。目前供应商提供的蓝牙模块大致可分为2类,第类为只实现了蓝牙链路控制功能的模块,第2类为蓝牙链路控制与嵌入式HI驱动功能均已实现的模块。这2类模块的主要不同之处在于第2类包括一个RIS(精简指令集计算机)处理器,实现链路控制和H功能,而第1类的RISC则不具有I功能。在实际应用中,要根据实际情况而选择不同类型的模块。如果选用集成了链路控制与HCI驱动功能的蓝牙模块,那么就可

9、以在一个比较完整的平台上进行开发。如果主机具有USB或UART接口,在蓝牙模块与主机信号电平兼容的情况下,接口连接可以不需要其它辅助硬件电路。许多情况下,SB或UA接口集成在主机的核心芯片上,所以可以实现蓝牙模块与主机的无缝接口。这种模型下的蓝牙技术应用开发,主要工作集中在蓝牙主机端软件的实现上,包括HCI驱动程序与传输层驱动程序。正是由于这种蓝牙模块实现了嵌入式C协议,所以应用开发可以直接从HCI层开始,避免了基带与射频的硬件实现,是一种全软件式的开发模式,开发成果具有很好的可移植性。本文中正是采用了这一开发方案进行的蓝牙通用外接模块的开发。通过封装HCI协议层,可以生成标准的HCI接口函数

10、,为上层的应用开发(在本文指的是蓝牙通用模块)提供一个完整的平台。 制功能的蓝牙模块,由于它不提供HCI传输层接口和嵌入式HC驱动程序。此时,嵌入式HCI驱动程序的功能将转嫁给主机来实现。这样,与前一种开发模式相比,主机的HCI层驱动程序将变得十分复杂,开发周期也将是比较长的。蓝牙通用外接模块设计开发实例笔者基于CI成功地开发了一种在现有的供应商提供的蓝牙模块基础上进行指令重新解释与结构封装的通用外接模块。本模块最终面向基于此通用模块的扩展应用,提供了UB接口、UATRS22接口、耳机接口、麦克MIC接口、键盘等多种接口,可同时进行数据和语音信息的传输。该通用外接模块既可以单独构成蓝牙应用系统

11、使用,也可以与主机连接使用,使用应用者很方便地借助于蓝牙技术来实现应用产品的无线通讯。为了对此通用外接模块进行功能测试,在实验开发阶段(本文中对此通用模块说明均是针对开发阶段的),笔者使用了两台C作为通用外接模块之上的扩展应用的主体,2个通用外接模块分别作为蓝牙pionet中的主、从设备,蓝牙设备通过RT或UB口由PC处接收命令和数据信息,通用外接模块对此信息进行处理后,以无线传输方式将信息发至另一蓝牙设备的应用主体PC处。下面从硬件和软件两个方面加以介绍,本文论及的设计主要包括蓝牙通用模块及作为扩展应用主体的两大部分。41硬件设计蓝牙通用模块部分硬件电路主要由语音芯片、微控制器部分(即蓝牙主

12、机部分)及蓝牙模块等组成。硬件结构如图2所示:其中采用了支持双串口的DALAS公司生产的DS80微控制器作为蓝牙主机,两串口分别与蓝牙模块及构建于通用模块之上的扩展应用的主体进行通信;使用S7560L语音芯片;蓝牙模块采用的是Ericon公司生产的模块,型号为O1000,属于本文提到的第类模块,采用R7芯片作为C处理器。在硬件实现上,微控制器部分主要由DS9C20微控制器、电源系统、振荡电路、复位电路、接口电平转换电路等几部分组成,微控制单元是核心部分。电平转换电路用于在蓝牙模块与PC通信接口之间进行电平的转换。另外还包括一些不同类型的接口电路、跳线开关电路以及若干状态LED等外围器件,以备建

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

14、当收到参数设定成功消息后,进行下一步,即向通用外接模块串口发送命令消息来实现蓝牙设备的初始化、查询、链接建立过程,在收到通用模块发回的链接建立完成的反馈信息后,即可按一定的格式将数据信息发往通用外接模块接口,完成数据信息的无线传输。4.2通用外接模块软件设计 通用外接模块一方面从P方的S-32串口接收PC端的公共参数信息(用于串口初始化及蓝牙模块参数设定)、命令信息及数据信息,另一方面发送相应的HI指令给蓝牙模块RK01007,然后将返回的事件进行分析处理,最终将有关程序状态、通讯数据信息返回给本地PC。软件实现的全部功能是通过C1语言进行开发的,由专用寄存器设置子程序、中断处理程序、定时器中

15、断程序、看门狗程序、链路初始化子程序、链路建立子程序、通信数据处理子程序、断开链路子程序、蓝牙测试子程序等功能块来完成。所有程序信息对于通用外接模块以外的扩展应用主体而言都是不可见的,扩展应用只需按一定的格式发送相应的信息给通用外接模块即可完成整个通信过程,在此就不对程序进行具体的说明了。 至此,通用外接模块开发实验阶段软件设计完成,通过测试本模块完全达到了预期的要求,数据传输正常,性能良好。 本封装模块之所以被加以“通用”二字来界定,是因为本模块在功能上很好地做到了以下几点:本模块提供了对多种扩展应用接口的支持,包括ART/USB以及语音传输接口。 (2)本模块既支持以P为扩展应用主体的计算机上的扩展应用,又支持以MCU为扩展主体的控制器件上的扩展应用;()本模块提供对多种操作系统的支持,目前为止,支持indow9

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

当前位置:首页 > 行业资料 > 社会学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号