蓝牙通用外接模块实例

上传人:ni****g 文档编号:563342944 上传时间:2023-12-23 格式:DOCX 页数:4 大小:17.51KB
返回 下载 相关 举报
蓝牙通用外接模块实例_第1页
第1页 / 共4页
蓝牙通用外接模块实例_第2页
第2页 / 共4页
蓝牙通用外接模块实例_第3页
第3页 / 共4页
蓝牙通用外接模块实例_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《蓝牙通用外接模块实例》由会员分享,可在线阅读,更多相关《蓝牙通用外接模块实例(4页珍藏版)》请在金锄头文库上搜索。

1、蓝牙是一种短距离无线通信技术。本文从蓝牙协议栈中的HCI层入手,对该层的主要功能 和工作机制进行了剖析,进而阐述了基于 HCI 层的蓝牙应用开发方案,并设计了一个基于 蓝牙技术开发的产品实例蓝牙通用外接模块,最后,还对基于此模块的扩展应用无 线裁判打分系统进行了说明。关键词:HCI ;蓝牙技术;无线通信1 引言蓝牙(Bluetooth),是一种短距离无线通信技术,用于替代数字设备牙设备运行在和计算机 外设间的电缆连接以及实现数字设备间的无线组网。1998年5月由爱立信、IBM、英特尔、 诺基亚、东芝等5家公司成立了蓝牙特殊利益小组(SIG),负责联合制定蓝牙规范。蓝牙 工作在向全球统一开放的2

2、.4GHz工业、科学、医学(Industrial Scientific Medical)频段, 可以同时传输数据和语音,至多8个活动的蓝牙设备可以共享信道带宽,形成所谓的匹克网(piconet)。在每一个piconet中,有1个为蓝牙主设备,其余7个为从设备,同时可容许有 更多的从设备以暂停(park)的方式锁定到主设备。多个piconet 可以相互重叠。形成散射网(scattern-et)。SIG所颁布的蓝牙规范就是蓝牙无线通信协议标准,它规定了蓝牙应用应遵循的标准和需要 达到的要求,包括核心协议(Core)与应用框架(Profiles)两部分。协议规范部分定义了 蓝牙的各层通信协议,遵循开

3、放系统互连参考模型,从低到高地定义了蓝牙协议堆栈的各个 层次,如图 1 所示。按照蓝牙协议的逻辑功能,协议堆栈由下至上分为三个部分:传输协议、中介协议和应用协 议。本文中主机控制接口( HCI)位于传输协议之中,它并不是严格意义上的通信协议,它 仅为应用协议堆栈的高层部分提供了一个访问低层传输协议的指令接口。如果我们从HCI层出发,可以将蓝牙协议堆栈分为硬件与软件2个协议块。硬件部分由射 频部分(RF)、基带部分(BB)、链路管理器部分(LM)和HCI固件构成,我们也可以把硬件部 分称为蓝牙子系统。软件部分由HCI主机驱动程序、逻辑链路控制适配协议(L2CAP)、串口 仿真协议(RFCOMM)

4、、服务发现协议(SDP)、电话控制协议(TCS)及其它应用协议所构成。 在蓝牙协议堆栈模型中的虚线部分为对本文中HCI协议层软件的具体划分。2 HCI 协议剖析在蓝牙协议模型中,HCI软件驱动程序与HCI固件统一归为HCI(主机控制接口),所以要基 于HCI进行开发,首先必须了解HCI涉及的具体内容。主机控制接口为蓝牙硬件中基带控 制器和链路管理器提供了命令接口,从而实现对硬件状态寄存器和控制寄存器的访问,特别 是该接口提供了对蓝牙基带的统一访问模式o HCI分为主机、传输层、主控制器三部分,并 在每一层为HCI系统提供不同的功能。本文把HCI协议层划为HCI软件和HCI硬件两部分 来加以讨论

5、。2.1 HCI软件HCI软件部分可分为HCI固件和HCI驱动两个部分。HCI固件位于主控制器。HCI固件通过对基带命令、链路管理器命令、硬件状态寄存器、控 制寄存器和事件寄存器的访问,实现蓝牙硬件HCI指令。主控制器(Host Controller)意味着 具有主控制接口功能的蓝牙器件。与HCI固件不同,HCI驱动位于主机,即协议模型中的HCI软件驱动部分。若某事件发生, 用HCI事件通知主机,而主机将收到HCI事件的异步通知。当主机发现有事件发生时,它 将分析收到的事件包并决定何种事件发生。主机端的 HCI 驱动程序,一方面通过接口被蓝 牙应用程序调用(本文所提到的蓝牙应用程序是相对于HC

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

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

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

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

10、模块的开发。通过封装HCI协议层,可以生成标准的 HCI接口函数,为上层的应用开发(在本文指的是蓝牙通用模块)提供一个完整的平台。制功能的蓝牙模块,由于它不提供HCI传输层接口和嵌入式HCI驱动程序。此时,嵌入式 HCI驱动程序的功能将转嫁给主机来实现。这样,与前一种开发模式相比,主机的HCI层 驱动程序将变得十分复杂,开发周期也将是比较长的。4 蓝牙通用外接模块设计开发实例笔者基于 HCI 成功地开发了一种在现有的供应商提供的蓝牙模块基础上进行指令重新解释 与结构封装的通用外接模块。本模块最终面向基于此通用模块的扩展应用,提供了USB接 口、UART/RS232接口、耳机接口、麦克MIC接口

11、、键盘等多种接口,可同时进行数据和 语音信息的传输。该通用外接模块既可以单独构成蓝牙应用系统使用,也可以与主机连接使 用,使用应用者很方便地借助于蓝牙技术来实现应用产品的无线通讯。为了对此通用外接模块进行功能测试,在实验开发阶段(本文中对此通用模块说明均是针对 开发阶段的),笔者使用了两台PC作为通用外接模块之上的扩展应用的主体,2个通用外接 模块分别作为蓝牙piconet中的主、从设备,蓝牙设备通过UART或USB 口由PC处接收命 令和数据信息,通用外接模块对此信息进行处理后,以无线传输方式将信息发至另一蓝牙设 备的应用主体PC处。下面从硬件和软件两个方面加以介绍,本文论及的设计主要包括蓝

12、牙通用模块及作为扩展应 用主体的PC两大部分。4.1 硬件设计 蓝牙通用模块部分硬件电路主要由语音芯片、微控制器部分(即蓝牙主机部分)及蓝牙模块 等组成。硬件结构如图2所示:其中采用了支持双串口的DALLAS公司生产的DS89C420微控制器作为蓝牙主机,两串口 分别与蓝牙模块及构建于通用模块之上的扩展应用的主体进行通信;使用MSM7560L语音 芯片;蓝牙模块采用的是Ericsson公司生产的模块,型号为ROK 101 007,属于本文提到的 第2类模块,采用ARM7芯片作为RISC处理器。在硬件实现上,微控制器部分主要由DS89C420微控制器、电源系统、振荡电路、复位电路、 接口电平转换

13、电路等几部分组成,微控制单元是核心部分。电平转换电路用于在蓝牙模块与 PC 通信接口之间进行电平的转换。另外还包括一些不同类型的接口电路、跳线开关电路以 及若干状态LED等外围器件,以备建立于通用外接模块之上的扩展应用及通讯状态监测的 需要。4.2 软件设计4.2.1 PC 部分软件设计PC部分测试程序主要是开发蓝牙应用组件,测试程序运行于Windows操作系统之上,提供了 USB和串口驱动程序,应用程序函数接口(API)等,具体可分为PC串口初始化、蓝 牙通信参数设定、蓝牙通用外接模块控制、HCI指令封装、数据信息处理等几个部分。 其中第一步要做的工作是初始化计算机串口,串口参数可以根据实际

14、需要进行选择。第二步 要进行的是蓝牙模块参数的设定,其中包括蓝牙设备主从设定、蓝牙模块初始化参数的设定、 程序监测设定等几部分。以上所有这些动态设定,是通过扩展应用主体(此外为PC)往通 用外接模块串口发送公共变量而实现的。当收到参数设定成功消息后,进行下一步,即向通 用外接模块串口发送命令消息来实现蓝牙设备的初始化、查询、链接建立过程,在收到通用 模块发回的链接建立完成的反馈信息后,即可按一定的格式将数据信息发往通用外接模块接 口,完成数据信息的无线传输。4.2.2 通用外接模块软件设计通用外接模块一方面从PC方的RS-232串口接收PC端的公共参数信息(用于串口初始化及 蓝牙模块参数设定)

15、、命令信息及数据信息,另一方面发送相应的HCI指令给蓝牙模块ROK 101 007,然后将返回的事件进行分析处理,最终将有关程序状态、通讯数据信息返回给本 地PC。软件实现的全部功能是通过C51语言进行开发的,由专用寄存器设置子程序、中断 处理程序、定时器中断程序、看门狗程序、链路初始化子程序、链路建立子程序、通信数据 处理子程序、断开链路子程序、蓝牙测试子程序等功能块来完成。所有程序信息对于通用外 接模块以外的扩展应用主体而言都是不可见的,扩展应用只需按一定的格式发送相应的信息 给通用外接模块即可完成整个通信过程,在此就不对程序进行具体的说明了。至此,通用外接模块开发实验阶段软件设计完成,通

16、过测试本模块完全达到了预期的要求, 数据传输正常,性能良好。本封装模块之所以被加以“通用”二字来界定,是因为本模块在功能上很好地做到了以下几点:八、(1) 本模块提供了对多种扩展应用接口的支持,包括UART/USB以及语音传输接口。(2) 本模块既支持以MPC为扩展应用主体的计算机上的扩展应用,又支持以MCU为扩展主 体的控制器件上的扩展应用;(3) 本模块提供对多种操作系统的支持,目前为止,支持Windows95/98/2000/xp 及 Linux 操作系统。5 一种构建于通用外接模块之上无线通讯扩展应用裁判系统 目前,在很多大型赛事中比赛所采用的裁判打分系统大都是采用有缆连接的方式进行的,各 位裁判将各自的评定的比赛成绩通过有线的电缆传输到主控机上进行综合评定,然后产生最 终的结果。但这一系统存在着一个很明显的不足之外,就是有缆连接所带来的不便性,而通 过采用笔者所设计的通用外接模块后,通

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

当前位置:首页 > 学术论文 > 其它学术论文

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