《蓝牙技术与协议的开发应用与实现_彭丽.docx》由会员分享,可在线阅读,更多相关《蓝牙技术与协议的开发应用与实现_彭丽.docx(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 蓝牙技术与协议的开发应用与实现 彭 丽 吴 叙 伟 郗 亚 平 程 磊 杨 晓 莉 (解放军西安通信学院西安 710106) 【摘要】围绕最新的蓝牙 1.1版本规范,概括了蓝牙的产生背景、技术特点和市场潜力、萑牙开发等方面,最后 介绍了有关的产品。 【关键词】蓝牙技术蓝牙规范 The Development and Implementation of Bluetooth Technology and Specification Peng Li Wu Xuwei Xi Yaping Cheng Lei Yang Xiaoli (The PLA Communication College of
2、Xi*an, Xian 710106) 【 Abstract Based on bluetooth specification V. 1, 1, this paper summarizes bluetooth technology, including background, tech- nical characteristics, market prospect and development. At last, some relative products are introduced. 【 Keywords】 bluetooth technology, bluelooth specifi
3、cation 1什么是蓝牙技术 所谓蓝牙技术,实际上是一种短距离无线电技术,利用 “ 蓝牙技术 ” 能眵有效地简化掌上电脑、笔记本电脑和移动电 话手机等移动通信终端设备,并且能够成功地简化以上这些 设备与因特网之间的通信,从而使这些现代通信设备与因特 网之间的数据传输变得更加迅速高效,为无线通信拓宽道 路。通俗地讲,蓝牙技术使得现代一些轻易携带的移动通信 设备和电脑设备,不必借助电缆就能联网,并且能够实现无 线上因特网。其实际应用范围还可以拓展到各种家电产品、 消费电子产品和汽车等信息家电,组成一个巨大的无线通信 网络。 2蓝牙技术特点 2.1蓝牙协议体系结构 整个蓝牙协议体系结构可分为底层硬
4、件模块、中间协议 层和髙端应用层三大部分,如图 1所示。链路管理层 (LMP)、 基带层( BBP)和蓝牙无线电信道构成蓝牙的底层模块 。 BBP 层负责跳频和蓝牙数据及信息桢的传输。 LMP层负责连接的 建立和拆除以及链路的安全和控制,它们为上层软件模块提 供了不同的访问入口,但是两个模块接口之间的消息和数据 传递必须通过蓝牙主机控制器接口的解释才能进行。也就是 说,中间协议层包括逻辑链路控制与适配协议 ( L2CAP)、 服 务发现协议 ( SDP)、 串口仿真协议 ( RFC0MM)和电话控制协 议规范 (TCS)。 L2CAP完成数据拆装、服务质量控制、协议复 用和组提取等功能,是其他
5、上层协议实现的基础,因此也是 蓝牙协议栈的核心成分。 SDP为上层应用程序提供 一 种机制 来发现网络中可用的服务及其特性。在蓝牙协议栈的最上部 是高端应用层,它对应于各种应用模型的剖面,是剖面的一 部分。目前定义了 13种剖面。 图 1蓝牙协议体尔 2.2蓝牙低层棋块 蓝牙的低层模块是蓝牙技术的核心,是任何蓝牙设备都 必须包括的部分。 蓝牙工作在 2. 4GHZ的 ISM频段。采用了蓝牙技术的设 备将能够提供高达 720kbii/8的数据交换速率。 收稿 R 期: 2002-11 -26。 蓝牙支持电路交换和分组交换两种技术,分别定义了两 种链路类型,即面向连接的同步链路 ( SCO)和面向
6、无连接的 异步链路 (ACL)。 为了在很低的功率状态下也能使蓝牙设备处于连接状 态,蓝牙规定了三种节能状态,即停等 ( Park)状态、保持 ( Hold)状态和呼吸 ( Sniff)状态。这几种工作模式按照节能效 率以升序排依次是 :Sniff模式、 HOW模式和 Park模式。 蓝牙采用三种纠错方案: 1/3前向纠错 (FEC)、 2/3前向 纠错和自动重发 (ARQ)。 前向纠错的目的是减少重发的可能 性,但同时也增加了额外开销。然而在一个合理的无错误率 环境中,多余的头标会减少输出,故分组定义的本身也保持 灵活的方式,因此,在软件中可定义是否采用 FEC。 一般而 言,在信道的噪声干
7、扰比较大时蓝牙系统会使用前向纠错方 案,以保证通信质量:对于 SCO链路,使用 1 /3前向纠错 ;对 于 ACL链路,使用 2/3前向纠错。在无编号的自动请求重发 方案中 ,一 个时隙传送的 数据必须在下一个时隙得到收到的 确认。只有数据在收端通过了报头错误检测和循环冗余校验 (CRC)后认为无错时,才向发端发回确认消息,否则返回一 t 错误消息。 蓝牙系统的移动性和开放性使得安全问题变得极其重 要。虽然蓝牙系统所采用的跳频技术就已经提供了一定的安 全保障,但是蓝牙系统仍然需要链路层和应用层的安全管 理。在链路层中,蓝牙系统提供了认证、加密和密钥管理等功 能。每个用户都有一个个人标识码 (P
8、IN),它会被译成 128bii 的链路密钥 ( Link Key)来进行单双向认证。一旦认证完毕,链 路就会以不同长度的密码 (Encryphon Key)来加密(此密码以 shit为单位增减,最大的长度为 128bit)链路层安全机制提供 了大量的认证方案和一个灵活的加密方案(即允许协商密码 长度 )。当来自不同国家的设备互相通信时,这种机制是极其 重要的,因为某些国家会指定最大密码长度。蓝牙系统会选 取微微网中各个设备的最小的最大允许密码长度。例如,美 国允许 128bh的密码长度,而西班牙仅允许 48bit,这样当两 国的设备互通时 ,将选择 48bit来加密。蓝牙系统也支持髙层 协议
9、栈的不同应用体内的待殊的安全机 制。例如两台计算机 在进行商业卡信息交流时,一台计算机就只能访问另一台计 算机的该项业务,而无权访问其他业务。蓝牙安全机制依赖 PIN在设备间建立信任关系,一旦这种关系建立起来了,这些 PIN就可以存储在设备中以便将来更便捷地连接。 2.3软件模块 L2CAP是数据链路层的一部分,位于基带协议之上。 L2CAP向上层提供面向连接的和无连接的数据服务,它的功 能包括:协议的复用能力、分组的分割和重新组装 (SegmentationAnd Reaassembly)以及组提取 ( Group Abstraction) L2CAP 允许髙层协议和应用发送和接收高达 64
10、K Byte 的数据分组。 SDP为应用提供了一个发现可用协议和决定这些可用 协议的特性的方法。蓝牙环境下的服务发现与传统的网络环 境下的服务发现有很大的不同,在蓝牙环境下 ,移动的 RF环 境变化很大,因此业务的参数也是不断变化的。 SDP将强调 蓝牙环境的独特的特性。蓝牙使用基于客户 /服务器机制定 义了根据蓝牙服务类型和属性发现服务的方法,还提供了服 务浏览的方法。 RFCOMM是射频通信协议,它可以仿真串行电缆接口协 议,符合 ETSI0710串口仿真协议。通过 RFCOMM,蓝牙可以 在无线环境下实现对高层协议,如 PPP、 TCP/IP、 WAP等的 支持。另外, RFCOMM可以
11、支持 AT命令集,从而可以实现移 动电话机和传真机及调制解调器之间的无线连接。 蓝牙对语音的支持是它与 WLAN相区别的一个重要的 标志。蓝牙电话控制规范是一个基于 ITU-T建议 Q.931 的采用面向比特的协议,它定义了用于蓝牙设备间建立语音 和数据呼叫的呼叫控制信令以及用于处理蓝牙 TCS设备的 移动性管理过程。 3蓝牙开发概述 3. 1蓝牙开发的意义 鉴于蓝牙在未来信息产品中的重要地位,开发具有我国 自主知识产权的蓝牙产品具有非常重要的意义。对一些信息 家电厂家,其主要目的是将蓝牙作为通信模块集成到自己的 产品中,它们可以使用其他厂家的蓝牙产品,自己只需着力 于开发应用部分;而对那些专
12、门从事蓝牙研发生产的厂家, 就需要进行从底层到高层的全面开发,只有这样才能掌握蓝 牙的核心技术,才能生产出具有自主知识产权的产品。 3. 1.1开发前的准备工作 (1) 对蓝牙相关的规范和协议有一个初步的了解,对要 开发的部分进行细致的研究,协议的要求必须明确,对产品 的应用环境也 必须非常清楚。 蓝牙的规范包括协议的核心部分和蓝牙的应用剖面(用 户模型 ), 内容应该非常丰富,对整个协议进行全面地了解 , 但是由于客观上难以实现,因此,可以先从一些简单的介绍 开始,从整体上对蓝牙的结构体系有一个较为全面的了解, 再从用户的角度了解蓝牙系统的概况,这样,根据自己准备 开发的产品 ,有目的地选择
13、相关的协议进行专门研究。 (2) 对同类产品做细致的调研。可以根据分类査看相关 的产品,以及产品的性能和使用方法,还能够得到有关厂商 的信息。 (3) 另外也可以申请加人蓝牙 SIG,成为 SIG的成员。 (4) 制定一个详尽的产品开发计划,尽可能做到周全。 因为产品开发有很多不可预测的因素。且产品开发涉及 的内容很多,需要做好详尽地规划,留有一定的时间。 (5) 建立一个开发工作平台、开发环境,准备和选择相应 的开发工具。 在蓝牙开发工具中,应包括一个蓝牙硬件的接口部件和 需要的软件部件,至少要有一对节点,这样,才能建立一条链 路,如果要开发更为复杂的应用 ,可能需要更多的节点。硬件 可以是
14、各种形式,像 PC卡 、 USB dongle、 开发工具、 UART附 件等 ,也可以是自己开发的或专门定制的硬件。 在选择硬件时需要注意,首先必 须明确待开发的应用是 什么,是用于嵌人式系统还是用于计算机系统?如果是用于 计算机系统,使用 PC卡或 USB dongle就足够了,这时选用简 单的开发工具。如果是用于嵌人式系统,就需要更为复杂的 开发工具,要求开发工具允许进行固件的开发和允许下载到 开发工具中,或者如果希望能够对微处理器或 FPGA进行直 接的测试,可以制造一块开发板,这需要购买一块包括蓝牙 模块和微处理器或 FPGA的 PCB板,同时还需要对微处理 器 /FPGA进行编程的
15、外围设备。其次 ,要注意的问题是应用 中是否包括语音?因为有一些开发系统不包栝语音接口,如 果应用只有数据传输,应该考虑数据的速率,对于 lOOKbitA 以下的数据速率,可以使用 UART连接器,对于全速率的数 据应用,需要使用 USB。 在决定了使用什么硬件之后需要考虑的就是软件栈。如 果要开发的应用可以使用蓝牙规范中某个剖面,那么就只需 要实现与该剖面有关的软件栈。这种情况往往要开发自己定 制的栈,这样更能符合应用的要求。如果要开发的应用不能 使用现有的剖面结构,它就必须与属于恃定剖面的设备进行 交 互。在进行协议栈需求设计时必须牢记兼容性。在决定使 用一个协议栈之前,还必须仔细地检査协
16、议栈能够提供的能 力,并不是所有的协议栈都实现了规范中所列出的所有功 能,有一些功能可能还没有实现。另外除了比较价格 ,文档的 质量和以及公司的售后支持也是需要特别考虑的。 (6) 开发之前还必须了解蓝牙 SIG规定的相关认证和测 试规范,以及与之有关的程序,以便在开发过程中留出测试 的接口。 3. 1.2蓝牙软件与硬件的独立实现 蓝牙在实现的时候,一般分成两部分实现,一是硬件部 分,它包括蓝牙协议栈的下三个层次,即无线收发、基带和 链 路管理器层 ( LMP);是软件部分,它包括蓝牙协议栈的上层, 包括 L2CAP、 RFC0MM、 SDP和 TCS以及一些蓝牙应用。 3.2蓝压硬件模块开发
17、 3.2.1硬件模块设计的目标 蓝牙的硬件部分包括三个层次:无线层、基带层和链路管理 器层。无线层主要完成频率的合成、比特到符号的转换和过 滤,以及符号的收发操作;基带层主要完成编码 /解码、加 密 /解密、分组处理和跳频频率的生成和选择 ;键路管理器层 主要完成连接的建立和链路的管理。蓝牙设计的初衷是实现 所有电子产品之间的无线互联,这些设想中的设备大都是便 携的 和移动的,因此在体积、重量、功耗和安全性方面具有较 髙的要求,这也成为对蓝牙硬件设计的主要目标。 硬件设计的目标是: 最大限度地降低硬件实现模块的 体积; 实现的费用要低; 实现的功耗要低; 在开放的 ISM频段上实现安全性和顽健
18、性。 需注意解决主要技术是: 快速跳频技术; 单芯片集 成技术。 3. 2. 2模块的构成 在单个芯片中把蓝牙低三层的功能都包括进去确实是 个困难,不过现在已经有了一些现成的产品。这些产品一 般都使用片上系统 ( SOC: System - On - Chip)技术,把几个功 能模块集成到一个芯片上。这样的一个 SOC 般包括几个模 块:蓝牙基带核心模块、微处理器模块、 HCI模块、语音处理 模块和一些可选的测试模块,在这些模块中,有些模块可以 比较独立地开发实现,也可以购买成熟的产品,例如蓝牙基 带核心模块和语苷处理模块。这样有的开发者便可以利用独 立的模块集成自己的蓝压硬件实现方案。 3.
19、2.3离 层协议找开发 蓝牙的 SIG定义了蓝牙的协议栈,但这是一个不可见的 软件,用户是看不到的,必须开发一个可以为用户使用的可 见的用户接口 UI,用户使用这个接口可以对蓝牙进行配置, 实现通信功能。蓝牙的协议栈中没有给出 API,开发人员很难 开发基于蓝牙的应用 ,所以协议找必须提供相应的 API。 开发 人员使用这些 API就可以开发基于蓝牙的应用,而不必对蓝 牙的具体技术进行深入的研究。 一般地,蓝牙高层协议栈设计成一个软件部件,由于是 运行在主机设备上的,所以在很多场合是以主机栈 ( Host Stack)的名宇出现的。作为主机应用的一个部分,它依赖于使 用的操作系统和硬件平台。为
20、了使设计的协议栈具有很好的 可移植性 ,必须尽量减少它对平台和操作系统的依赖。另外, 虽然蓝牙技术在一个实际系统中只是 提供一个无线通信的 功能,但是它也是一项非常复杂的技术,对于应用层的设计 人员来说可能对蓝牙了解得不是很清楚。为了使这些应用开 发人员也能够开发基于蓝牙的应用,高层协议栈必须提供丰 富的和详细的 API。 目前的系统具有很多非蓝牙的应用,这些 应用使用非常广泛,要把这些应用统一地改成基于蓝牙的应 用是非常困难的,所以需要提供一个与传统应用之间的接 口。总的来说,高层协议栈的设计目标是 支持确定目标的 用户模型 ; 支持多种硬件平台; 良好的用户使用接口,能 够使用传统的应用,
21、在可能的情况下使用现有的协议; 最 小的源码数量 ; 最大的重用 ; 可维护。 另外,在开发过程中还应该尽量满足如下的要求: 使 用ANSIC进行编码,实现编译器的独立性; 使用基于规范 描述语言 ( SDL); 强化的检査,在功能规范、结构、设计、设 计确认、编码和模块测试、主机集成和目标集成的各个环节 都进行详细的检査 ; 使用文档化的软件。 4结束语 近年来移动通信发展迅速,便携式计箅机如膝上型电 脑、笔记本电脑、手持式电脑以及个人数字辅助器等也迅速 发展起来,还有因特网的迅速发展,使人们对电话通信以外 的各种数据信息传递的需求日益增长。 “ 蓝牙 ” 技 术把各种 便携式电脑与蜂窝移动
22、电话用无线电链路连接起来,使计 算机与通信更加密切结合起来,使人们能随时随地进行数 据信息的交换与传输。因此计算机行业、移动通信行业都对 “ 蓝牙 ” 技术很重视,认为将对未来的无线移动数据通信业 务有巨大的促进作用,预计在最近几年内无线数据通信业 务将迅速增长。 “ 蓝牙 ” 技术被认为是无线数据通信最为重 大的进展之一。 参考文献 1金纯 ,许光辰,孙睿编著 .蓝牙技术 .北京:电子工业出版社, 2001 2张禄林,雷雪娟,郎晓红 .蓝牙协议及其实现 .北京 :人民邮电出 版社 ,2001 3 Bluetooth Specification Profilel. Ob, SIG, http: / /www. bluetoogh. com