(信号与信息处理专业论文)基于linux的蓝牙协议栈的研究与实现.pdf_第1页
(信号与信息处理专业论文)基于linux的蓝牙协议栈的研究与实现.pdf_第2页
(信号与信息处理专业论文)基于linux的蓝牙协议栈的研究与实现.pdf_第3页
(信号与信息处理专业论文)基于linux的蓝牙协议栈的研究与实现.pdf_第4页
(信号与信息处理专业论文)基于linux的蓝牙协议栈的研究与实现.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

(信号与信息处理专业论文)基于linux的蓝牙协议栈的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南京邮电大学 硕士学位论文摘要 学科、专业:工学信号与信息处理 研究方向:信息网络与多媒体技术 作 者:二塑级研究生 冷文鸿 题目:基于l i n u x 的蓝牙协议栈的研究与实现 英文题茸:s t u d ya r i di m p l e m e n t a t i o no ft h e b l u e t o o t hp r o t o c o l b a s e do nl i n u x 主题词:蓝牙协议l i n u xh c i状态自动机 k e y w o t d s : b l u e t o o t hp r o t o c o l l i n u xh c i f i n i t e s t a t ea u t o m a t a 摘要 本文总结笔者参与摩托罗拉公司蓝牙相关项目的经验,参照蓝牙标准规范与 建议草案,系统的分析了蓝牙协议的框架结构、功能特性和应用前景,在深入研 究l i n u x 核心代码的基础上给出了基于l i n u x 的蓝牙协议栈的实现方法。 论文首先回顾了蓝牙技术的引入和发展现状,并与其它无线通讯技术进行了 比较,说明了蓝牙技术的特点。其次系统描述了蓝牙协议的框架和功能,重点分 析了蓝牙协议中各个主要协议层次的特性。简要介绍了涉及到的一些基本盼数据 定义。接着论文简单介绍了l i n u x 操作系统的优点,解释了l i n u x 核心代码中与 蓝牙核心协议栈设计相关的数据结构和重要函数。在这基础之上,给出了蓝牙核 心协议栈的设计框架和思路,着重阐述了基于l i n u x 的蓝牙核心协议栈的各个功 能层次的具体设计,描述了其中较为重要的程序流程,同时介绍了设计中应用到 的状态自动机、散歹4 技术、缓冲机制、硬件模拟等协议栈优化设计技术。最后, 一方面通过纪录协议层次之间的数据通信信息,将其与预设数掘进行比较;另一 方面通过在蓝牙协议栈之上运行蓝牙应用软件。验证了协议栈的正确性和可行 性。同时在总结以上内容的基础上,对蓝牙技术将来的研究和发展进行了展浆。 南京帅i u 人学坝j :学位论文 擤一棠g i 茸 a b s t r a c t t h i sp a p e r , b a s e do ne x p e r i e n c eo fb l u e t o o t h sp r o j e c ti nm o t o r o l a , a n a l y z e s b l u e t o o t h sp r o f i l e ,c h a r a c t e r i s t i ca n df u t u r eo fa p p l i c a t i o nr e f e r r i n gt ot h eb l u e t o o t h s p e c i f i c a t i o n ,a n dp r e s e n t si m p l e m e n t a t i o nm e t h o do fb l u e t o n t hs t a c ko nl i n u x f i r s t ,t h i sp a p e rr e v i e w so nt h eo r i g i na n dg r o w t ho fb l u e t o o t ht e c h n o l o g y , a n d c o m p a r e si tw i t ho t h e rw i r e l e s st e c h n o l o g i e st oi l l u m i n a t et h ec h a r a c t e ro fb l u e t o o t h s e c o n d ,w i t he m p h a s i z i n go i lm a i np r o t o c o ll a y e r s sc h a r a c t e r i s t i co fb l u e t o o t h ,i t d e s c r i b e sp r o f i l ea n df u n c t i o n so f b l u e t o o t ha n di n t r o d u c e ss o m eb a s i cd a t a d e f i n i t i o n sr e f e r r e d i ns u c c e s s i o n ,i tl i s t sa d v a n t a g e so fl i n u xo p e r a t i o ns y s t e ma n d e x p l a i n ss o m eb a s i cd a t as t u c t u r e sa n di m p o r t a n tf u n c t i o n sr e l a t e dt ot h eb l u e t o o t h p r o t o c 0 1 b a s e do nt h e s e ,i tp r e s e n t sd e s i g nf r a m eo ft h eb l u e t o o t hp r o t o c 0 1 t h e n ,i t a c c e n t u a t e st h ec o d ed e s i g no fb l u e t o o t hp r o t o c o la n dd e s c r i b e si m p o r t a n tp r o g r a m f l o wc h a r t ,i nw h i c hi m p o r t ss o m eo p t i m i z a t i o nt e c h n i q u e sa ss t a t em a c h i n e ,h a s h i n g t a b l e ,b u f f e rm e c h a n i s m ,h a r d w a r ea n o l o ga n de t c a tl a s t ,b yc o m p a r i n gd a t a r e c o r d e r sb e t w e e np r o t o c o ll a y e r sw i t hp r e e s t a b l i s h e dr e s u l t sa n dr u n n i n gb l u c t o o t h a p p l i c a t i o no nt h eb l u e t o o t hp r o t o c o l ,i tv e r i f i e sc o r r e c t n e s sa n df e a s i b i l i t yo ft h e d e s i g no ft h eb l u e t o o t hp r o t o c 0 1 a tt h es a m et i m e ,c o n c l u s i o no nt h i sp a p e ra n d p r o s p e c to f b l u e t o o t h sf u t u r ea r em a d e 2 南京邮 也火学l j i :研究生学位论文第六章结柬语 第一章引言 1 1 技术背景 蓝牙技术是e h c s s o n 、i b m 、i n t e l 、n o k i a 和t o s h i b a 等企业联合推出的一项 短距离无线网络通信技术,是一种无线数据与语音通信的开放性全球规范,它以 低成本的近距离无线连接为基础,为固定设备与移动设备之间的通信建立一个特 别连接。蓝牙技术的实质内容是要建立通用的射频接口及其控制软件的公开标 准,使得不同厂家生产的移动电话、便携式计算机以及各种便携式通信设备在没 有电缆连接的情况下,也能够实现近距离范围内的相互通信和资源共享。它致力 于用微波取代传统网络中错综复杂的电缆,实现l o 米到1 0 0 米空间内的各类移 动及非移动设备之问方便快捷、灵活安全、低成本、低功耗的数据和语音通信。 随着蓝牙技术研发的不断深入,逐渐表明短距离无线解决方案不仅是可行 的。而且其发展前景非常乐观。1 9 9 8 年5 月,e r i c s s o n 、i b m 、i n t e l 、n o k i a 和 t o s h i b a 专门成立了蓝牙特别兴趣小组( b l u e t o o t hs i g ) 来开发这项新技术,目 前已经有2 4 9 0 多家公司加入该组织。b l u e t o o t hs i g 代表了来自各个方面的市场 需求,从而为蓝牙技术的不断发展奠定了基础。同时在与i e e e8 0 2 1 5 工作组的 共同努力下,实现了b l u e t o o t h 技术的标准化。本文所述及的规范都是以1 1 版 为准。 1 2 应用优势与劣势 1 2 1 蓝牙技术的优势: 蓝牙选择无线专用的工业、科学、医疗o s m ) 频段( 2 4 0 ) 作为工作频率,保 证了世界范围内可以任意使用蓝牙产品。通过采用相对较快的跳频速率和 独有的跳频算法。增强了蓝牙产品的抗干扰能力,使得蓝牙设备可以与使 用同一频段的众多产品同时工作。 蓝牙规范同时支持数据和语音通信。 蓝牙芯片体积很小,抗干扰能力强,功耗小,辐射低,是移动无线设备的 南京螂i u 大学颂:i :学位论义第一帝;| 葺 理想解决方案。 蓝牙规范是开放式标准,吸引着越来越多的产品制造商加入到蓝牙技术标 准化的进程中来:结合严格的测试手段,保证了产品间的互连性,缩短了 开发周期。 1 2 2 蓝牙技术的劣势: 与红外线等无线通信设备解决方案相比,蓝牙技术的默认工作范围仅仅只 有1 0 1 0 0 米。 蓝牙每个信道的带宽仅为1 m h z ,对于某些多媒体数据而吉是不够的。 1 3 其他技术及比较 工作在2 4 g h z 频段上的无线网络通信技术还有i e e e s 0 2 1 1 、h o m e r f 等。 本章通过对比分析这兰项技术,阐述了蓝牙技术在竞争激烈的无线领域中的定 位。 l3 1i e e e8 0 2 1 1 在1 9 9 7 年,i e e e 发布了第一个无线局域网标准8 0 2 1 1 ;与其它i e e e8 0 2 标准一样8 0 2 1 l 标准集中在i s o 互连参考模型的物理层和数掘链路层。任何局 域网应用、网络操作系统或协议,如t c p i p 、n o v e l ln e t w a r e 在遵守i e e e8 0 2 1 1 标准的无线局域网络上运行时,会象他们在以太网上运行一样容易。 i e e e8 0 2 1l 在物理层支持红外线、f h s s 以及直接序列扩谱( d s s s ) 方式。数 据链路层由两个子层组成:逻辑链路控制层( l l c ) 干d 访问控制层( m a c ) 。与其它 i e e e8 0 2 标准一样,i e e e8 0 2 1 l 使用i e e e8 0 2 2l l c 和4 8 位寻址,这样可以 非常简单地实现从无线部分到有线网络的桥接。但i e e e8 0 2 11m a c 与i e e e 8 0 2 3 不同,它不能进行冲突检测。这是因为要检测冲突发送方必须同时进行 发射和监听。但在无线系统中,数据发射会影响其检测冲突的能力。为了弥补这 个不足,i e e e8 0 2 1 l 采用载波侦听多路访问,冲突避免( c s m a c a ) 枫制- c s m a c a 采用a c k 应答机制来避免冲突这就要求收方发送a c k 包以确定数 4 南京邮i u 大学硕: :学位论文笫一章q i 蒿 据包是否原封不动地到达了目的地。 c s m a c a 提供了一种以无线方式共享传输介质的方法。a c k 应答机制还可 以非常有效地处理干扰和无线环境中的其他问题。但是,这一冲突避免机制增加 了系统的通信负载,因此。i e e e8 0 2 1 l 无线局域网的性能总要低一些。 由于i e e e8 0 2 11 在速率和传输距离上不能满足人们的需要,1 9 9 9 年i e e e 又相继推出了8 0 2 1 l b 和8 0 2 1 1 a 两种标准。这里主要讨论i e e e8 0 2 1 l b 。 i e e e8 0 2 1 l b 是对i e e e8 0 2 1 l 的修改和补充,其中最重要的改进就是在 i e e e8 0 2 1 1 的基础上增加了两种更高的通信速率5 5 m b p s 和l l m b p s 。要做到这 一点,就必须选择d s s s 作为该标准的唯一物理层技术,因为在不违反规定的前 提下采用跳频技术无法支持更高的速率。这意味着i e e e8 0 2 1 l b 系统可以与速率 为1 m b p s 和2 m b p s 的i e e e8 0 2 1 1d s s s 系统互连,但无法与1 m b p s 和2 m b p s 的i e e e8 0 2 11f h s 系统互连。 为了提高数据传输速率。i e e e8 0 2 1 l b 采用了补充编码键控( c c k ) 编码方式。 c c k 由6 4 个8 位的码字组成。作为一个整体,这些码字具有自己独特的数据特 性,即使在出现噪声和多路于扰的情况下,接收方也能够正确区别。i e e e8 0 2 + 1 l b 规定在速率为5 5 m b p s 时使用c c k ,对每个载波进行4 位编码;当速率为11 m b p s 时,对每个载波进行8 位编码。这两种速率都是使用四相移相键控调制技术 ( q p s k ) ,这就是i e e e8 0 2 。t l b 之所以能够实现更离数据传输速率的原因。 为了支持强噪声环境以及扩展的覆盏范围,i e e e8 0 2 1 l b 采用动态速率漂 移,允许数据传输速率自动调整以适应无线通信条件的变化。在理想的情况下, 用户能够获得l l m b p s 的全速率连接。然而,但设备移动到覆盖范围之外,或者 出现较强干扰时,i e e e8 0 2 1l b 设备将会以较低的速率进行发射。这时,速率会 回落到5 5 m b p s 、2 m b p s 或l m b p s 。类似,如果无线设备从低速率环境进入高速 环境时,数据速率会自动提高。动态速率漂移是一种对用户和上层协议栈透明的 物理层机制。 1 3 2h o m e r f h o m e r f 工作组( h r f w g ) 成立于1 9 9 8 年3 月,它的主旨是便来自不同厂商 的消费类电子产品以及p c 之间可以随时随地相互通信。h r f w g 提出的通信标 南京懈l u 大学硕士学位论文 鳐一章引者 准是共享无线访问协议( s w a p ) 。它致力于在室内及其周围建立无线局域网,使 得p c 、各种外围设备、无绳电话和其他消费类电子产品之间能够进行语音和数 掘通信,并可以接入p s t n 。 s w a p 引用了i s o 的互连参考模型,制定了m a c 层和物理层( p h y ) 的规范。 为逶应语音和数据通信的不同要求,s w a p 在m a c 层分别采用了两种不同 的访问协议。 1 ) 采用i e e e8 0 2 1 1 的c s m a c a 协议以支持异步数据传输; 2 ) 采用欧洲d e c t 标准中的时分复用( t d m a ) 技术以支持同步数据( 交互式 语音) 的传输。 其空中接口设计也是f h s s 方式,主要技术参数如下: 工作频段时2 4 g h z ,传输功率1 0 0 r o w ( 2 0 d b ) ,每秒5 0 跳 适用距离5 0 米 采用3 2 k b p s 自适应差分脉冲编码调制技术,支持4 路高质量的语音连 接 数据吞吐率1 6 m b p s 提供基本,扩展两级数据加密 采用2 4 位网络标识,并支持m a c 层5 6 位密钥加密 1 3 3 技术对比 通过上面的分析,不难发现i e e e8 0 2 1 1 、h o m e r f 都是定义在物理屡的标 准,二者可以直接支持t c p i p 网络协议。h o m e r f 则在i e e e8 0 2 1 1 的基础上。 增加了对话音的支持。丽对于蓝牙而言,它定义在数据链路层,需要增加相应的 转换处理层才能够支持t c p i p 网络协议。 不同标准都是为了适用不同的应用场合,根掘不同的用户需求而制定的。有 的是为了增加带宽和传输距离有的则是考虑移动性和经济性。局部最优并不等 于全局最优。不同的技术都应在无线应用领域找到自己的契合点。而不是全线出 击。 蓝牙技术跳频快。功耗低,灵活性强,因而在移动设备互连方面更具有优势, 在新兴的个人局域网( p a n ) 领域也更具有吸引力。但其在家居环境下的通信质量 6 南京邮i b 大学颂士学位论文第一章弓i 言 并不理想,与h o m e r :相比,抗干扰能力不强,而且受到干扰后,数据速率会 迅速降低。 h o m e r f 技术比较适于家居环境下的通信。因为这种环境的活动半径大于蓝 牙技术规定的活动范围,而且同时又小于无线局域网的半径。 1 e e e8 0 2 1 l b 传输距离长,速度快,相对而言其研发与生产成本的降低速率 也比较快,比较适用于商业环境下的无线网络。 1 4 文章结构 本论文主要围绕基于l i n u x 操作系统的蓝牙核心协议栈的研究与实现角度 展歼。 论文共分为五章,各章的内容安排如下: 第一章绪论主要阐述了蓝牙技术的产生背景和应用的优势劣势,并与i e e e 8 0 2 1 1 、h o m e r f 等其他无线通信技术进行比较。 第二章介绍蓝牙协议本身,详细分析了蓝牙协议的协议功能、协议应用框架 和消息结构。 第三章介绍了l i n u x 操作系统的优点,简要分析了l i n u x 中蓝牙协议栈实现 涉及的几个比较重要的概念和数据结构。 第四章介绍了协议栈的设计思路,具体阐述了蓝牙协议栈的实现方案,应用 了一些协议栈优化设计方法。 第五章通过在蓝牙协议栈之上的运行蓝牙应用软件,验证了协议栈的可行 性。 最后一章对上述各章节的工作进行了总结,并概括了下一步在蓝牙协议栈设 计方面值得深入研究和讨论的问题。 南京邮l u 大学填上学位论文第二二章蓝牙协议拽概述 第二章蓝牙协议栈概述 2 1 体系结构 蓝牙技术规范的体系结构分为核心协议( c o r e ) 和应餍框架( p o r f i l e ) 两大部分, 如圈2 1 所示。其中,纵轴划分了核心协议的各个层次,横轴划分了不同的应用 框架。 c 图2 - 1 蓝牙技术的体系结构 核心协议是蓝牙技术专有的,描述了射频特征、协议层次结构和功能特性。 一个特殊的层次一主机控制接口层( h c i ) 把核心协议分为硬件和软件两部分。射 频( r f ) 、基带( b b ) 和链路管理( l m p ) 这三层通常固化在硬件模块上,构成核心协 议的硬件部分。软传部分则由逻辑链路控制与适配协议( l 2 c a p ) , 服务发现协议 ( s d p ) 、串行端口仿真协议( r f c o m m ) 、电话控制协g s ( c t c s ) 等构成,它们通常运 行于主机端。在蓝牙系统中,主机与硬件模块之f b j 可以选择多种连接方式,如 r s 2 3 2 、u s b 、p c m c i a 等。h c i 是对不同连接方式的抽象,它提供了调用下层 b b 、l m 以及状态和控制寄存器等硬件的一致的命令接口,使得不同的连接方式 对与主机端的协议软件而言是透明的。 应用框架规范格的制定是考虑到不同的蓝牙产品之间的互连性,它所关心的 南京螂j n 大学碗j :学位论文 第二章蓝牙协墩栈概逑 是如何规范的应用蓝牙技术。这其中包括如何支持既有的协议软件,如p p p 、 t c p i p 、w a p 、o b e x 等,从而使蓝牙技术可以尽量沿用已有的软件资源。每一 个应用框架对应于蓝牙技术的一类应用模式,其中不仅定义了蓝牙技术所支持的 功能本身而且迸一步把功能分配到网络单元和协议层,代表了协议层的垂直榄 角。 2 2 核心协议 蓝牙核心协议包含三个层次:网络支持层( 硬件部分) 、传输层和应用适配 层( 软件部分) 。 2 2 1 网络支持层 无线射频、链路控制和链路管理这三层构成蓝牙技术的网络支持层,向上层 提供物理连接,如图2 2 。 豳2 2 网络支持层结构图 下面分别介绍网络支持层的各个组成部分。 1 ) 射频层 射频层是蓝牙技术的物理层,主要负责射频处理和基频调制,实现数据位流 的过滤和传输。在物理屡,工作频段的选择是关键所在。为了使蓝牙技术能够在 全球范围内适用,规范种选择了工业、科学、医疗( i s m ) 频段2 4 g h z 。 2 ) 基带层 基带层负责跳频序列和数据帧的同步和传输。蓝牙技术的信息收发采用 f h s s 技术,即在2 4 g h z 的频段上以1 6 0 0 跳,秒的速率进行跳频来实现信息的发 送和接收。跳频技术是把频段分成若干个跳频信道( 通常分为7 9 个信道在某 些国家只能使用其中的2 3 个) 。连接双方的收发单元按照一定的码序列,邵“伪 9 里璺些! 些点兰堡:兰丝丝兰塑三望墅墨塑坚垡坚整 是如何规范的应用蓝牙技术。这其中包括如何支持既有的协议软件,如p p p 、 t c p i i p 、w a p 、o b e x 等,从而使蓝牙技术可以尽量沿用已有的软件资源。每一 个应用框架对应于蓝牙技术的一类应用模式,其中不仅定义了蓝牙技术所支持的 功能本身,而且避一步把功能分配到网络单元和协议层,代表了锛议层的垂直视 角。 2 2 核心协议 蓝牙核心协议包含三个屡次:网络支持层( 硬件部分) 、传输层和应用适配 层( 软件部分) 。 2 2 1 网络支持层 无线射频、链路控制和链路管理这三层构成蓝牙技术的网络支持层,向上层 提供物理连接,如图2 2 。 图2 2 网络支持层结构图 下丽分别介绍网络支持层的各个组成部分。 1 ) 射频层 射频层是蓝牙技术的物理层,主要负责身4 频处理和基频调制,实现数据位流 的过滤和传输。在物理层,工作频段的选择是关链所在。为了使蓝牙技术能够在 全球范围内适用,规范种选择丁工业、科学、医疗( i s m ) 频段- 24 g h z 。 2 1 基带屡 基带层负责跳频序列和数据帧的同步和传输。蓝牙技术的信息收发采用 f h s s 技术,即在2 4 g h z 的频段上以1 6 0 0 跳f 秒的速率进行跳壤来实现信息的发 送和接收。跳频技术是把频段分成若干个跳频信道( 通常分为7 9 个信道。在某 些国家只能使用其中的2 3 个) 。连接双方的收发单元按照一定的码摩别,即“伪 些国家只能使用其中的2 3 个) 。连接双方的收发单元按照一定的码謦别,即“伪 查塞坚! ! 查兰堡兰鲎竺竺苎笙三茎堡蒌塑堡垒堡整 随机码”不断地从一个信道“跳到”另外一个信道。码序列由主叫方确定,并通 过查询( i n q u i r y ) 和寻呼( p a g i n g ) 过程来同步跳频频率和时钟。这样,收发双方按照 一致的码序列同步跳频。而干扰源又不可能也按照同样的规律变化,从而保证了 信息传输的质量。 蓝牙技术同时支持电路交换和包交换模式,协议规范在基带层中定义了两种 不同的物理链路,即面向连接的同步链路( s c o ) 和无连接的异步链路( a c l ) ,而 且在同一射频频率上可以进行多路数据传输。a c l 链路用于数据和信令传输。 而s c o 链路适用于语音以及数据话音的组合传输。所有的语音与数据分组都附 有不同的前向纠错( f e c ) 或循环冗余校验( c r c ) 码,同时支持加密、授权 ( a u t h o r i z a t i o n ) 、鉴权( a u t h e n t i c a t i o n ) 等安全机制。 蓝牙技术支持点到点和点到多点的连接,在一个小范围内的两个或者多个蓝 牙设备可以通过共享同一信道连结组成一个微微i j 6 9 ( p i c o n e t ) ,但是只能有一个设 备作为主叫方( 一个蓝牙设备在不同的微微网中可以有不同的身份) ,其它的都 称呼为被呼叫方。多个微微网可以互连成为分布网( s c a r e m e o ,它们之间各自独 立,不存在同步。保持自身原有的跳频序列,从而实现了各种设备之间的数据传 输和信息共享。两者关系如图2 3 所示。 q i ; i a 。争 b i t 1 : ; ; c 争、 图2 3 ( a ) 拥有一个被呼叫方( b ) 拥有多个被呼叫方( c ) 分布网 微微网内的数据封装为包的形式,通用数据包格式如图2 - 4 所示。每个数据 包由以下三个实体组成:访问码字( a c c e s sc o d e ) ,基带数据包头( h e a d e r ) 和载 荷( p a y l o a d ) 。 0 , r 叫 1 , r 饼 南京邮 u 大学颈士学位论文 第二章蘸牙协议栈搬述 图2 4 基带层标准数据包格式 为了实现设备识别、d c 偏移补偿和同步,所有在基带中传输的数据包的首 字节中都7 2 或者6 8 比特( 如果不包含数据包包头) 的访问码字,用来标识数据包 的身份。蓝牙靓范定义了三种不同类型的访问码字: 信道访闷码字:用于指明数据包所来源的网络,所有在网络内传输的数 据包都必须包含此字段。 设备访问码字:用于特殊的信令交互过程,例如主叫方呼叫客户端设备 以及被呼日q 方响应等。 查询访问码字:用于发现可寻区域内的其他设备,分为通用查询访问码 字和具体查询访问码字。其中通用查询访问码字用于发现可寻区域内的 所有蓝牙设备,具体查询访问码字则查询可寻区域内的具有特定属性的 蓝牙设备。 数据包包头包含链路控制信息,由以下六个域构成: 活动成员地址( a ma d d r ) :代表数据成员地址,用于区分微微网内 的活动成员。 数据类型( t y p e ) :包含1 6 种格式,表明数据类型( a c l 或者s c o ) , 同时指明数据所占用的时间片的长度。 流量控制( f l o w ) :用于a c l 链路的数据流量控制。如果数据充满设 备接收缓冲区,流量控制位黄零:当接收缓冲区清空时,流量控制位重 新霹1 a c l 数据包可以重新被接收。 确认标志( a r q n ) :用于通知发送方数据包是否成功接收。 序列号( s e q n ) :提供顺序数字序列区分数据包流中的各个部分。 校验码( h e c ) :用于检查数掘包头的完整性。 数据包载荷分为数据和语音两个子域。a c l 数据包只拥有数据子域。同样, s c o 数据包只拥有语音子域。但是要注意的示,微微网内也存在同时包禽两种 子域的特殊数据包。数据子域同样拥有载荷包头包含逻辑信道,数据漉控制位 和载荷长度。 南京郯电大学颈l 上学位论文 第二章菠牙协议栈概述 3 ) 链路管理层 链路管理层负责链接的建立与拆除以及链路控制,包括分组大小的控制和协 商、节能模式的选择、链路的加密和认证、服务质量管理、信号强弱提示等等, 主要以命令方式实现管理。链路管理层命令在所有的信令和消息中享有高优先 级。由于底层已经提供可靠的链接,因此发送的命令不需要对方回馈任何确认信 息,而仅仅需要定义两种命令阐复消息,这两种消息都说明了什么样的命令被接 收或者拒绝,不同的是后一种消息提供了命令拒收的原因。 4 ) 认证和加密 通过认证和加密技术,蓝牙技术保证了用户之间数据传输的安全性。 认证过程中包含两种设备:验证设备和申明设备,两者之间的认证过程有以 下两种途径: 1 申明设备拥有与验证设备相关的链路密钥,这时仅仅需要一个简单的两 步认证:验证设备发送一个随机数,申明设备接收到以后进行计算然后回送 响应消息。如果响应消息包含的内容正确,则认证成功。 2 申明设各不拥有与验证设备相关的链路密钥,两个设备之间必须进行互 验操作:首先申明设备根据p i n 码或者一个随机数产生初始密钥并发送,同 样验证设备作如上的相向操作,如果响应内容正确,则认证成功。 当认证成功后,可以选择应用加密技术进一步保证安全性。对于其它不嗣的 设备,一个设备可以采用不问的加密参数。但对于主叫方而言,如果对广播进行 加密,就必须为整个微微网生成一个暂时的通用链路密钥。 5 ) 节能管理 链路管理层管理着蓝牙设备的四种节能模式;工作模式,观察模式,保持模 式,待命模式。处于工作模式下的设备监听所属的微微网内鲍数据包,如果数据 包的目的活动成员地址为自己,则进行接收和处理;观察模式与工作模式很相似, 区别在于设备只能在与主叫方协商好的时间片内才能够监听数据:在保持模式之 下,设备只能在一个特定的时间段内力能够进行s c o 、数据包的传输,但并不限 制其它的行为;而当设备进入待命模式时,导致设备的活动成员地址失效,取丽 代之为待命成员地址,以便主叫方能够在固定的时间间隔内将其激活。一个设备 在不同的微微网内的链接可以处于不同的模式,但同时只能有一个工作在激活模 南京邮电大学硕士学位论文 笫二章蔬牙协议栈概述 式。 6 ) 链路的创建和链路控制 当两个蓝牙设备之间需要建立链路连接时,由一方发送申请消息,另外一方 接收到消息以后回送确认消息,之后进入链路创建过程。首先完成参数等等设置 工作的一方发送链接建立成功信令然后等待另外一方的回复,当另外一方相同 的信令返回以后,代表设备之间的链路正式成功连接,如图2 5 。 b a s e b a n dp a g ep r o c e d u r e l m pp r o c e d u r e sf o rc l o c ko o f s e t r e q u e s t 。l m pv e r s i o n s u p p o r t e d f e a t u r e s n a m er e q u e s ta n dd e t a c h l m p h o s tc o n n e c t i o n , r e q l m 啮c c e p t e do rl m pn o ta c c e p t e d l m p p r o c e d u r e sf o rp a i r i n g , a u t h e n t i c a t i o na n de n c r y p t i o n l m p _ s e t u p _ c o m p l e l e l m ps e t u p _ c o m p l e t e 图2 - 5 链路链接建立过程 链路管理层中其他链路管理控制功能都以类似的方式实现,就不赘述。 2 2 2 主机控制接口层( h c i ) 主机控制接口层为上层协议和低层协议提供中间层,定义了访问底层硬件的 统一函数接口,上层协议通过主机控制接口层提供的命令实现基带控制,链路管 理,存取状态和控制寄存器。 南京邮电丈学硕士学位论文 第二章蓝牙协议栈概述 p h y s i c a l8 u s h a r d w a | 鼍 图2 - 6 h c i 层结构图 如图2 - 6 ,h c i 固件层( f i r m w a r e ) 实现了h c i 命令用于获取基带命令、链 路管理命令、底层硬件状态。命令和数据交换在主机的h c i 驱动与蓝牙硬件设 备的h c i 固件之间进行。位于h c i 固件层与主机之间的h c i 传输中闯层提供了 各个设备h c i 同层之间数据交换的透明信道,即不需要数据类型的信息。 图2 - 7 演示了拥有蓝牙设备的主机之间数据传输的路径,主机上的h c i 驱动 层负责与h c i 圃件层之间的数据和命令交互,h c i 传输层则负责h c i 对等层之 间的信息交换。不管使用何种传输媒质,主机都会接收到异步提示信息,即h c i 事件用于通知主机某件事件的发生。当h c i 事件触发时。主机必须做出响应, 进行相应的解析以确定事件的类型。 4 南京邮电大学 i ii j 学位论文蚺二章藏牙协议栈概述 h o s l2 固 i q r l h r t 图2 7h c i 层对等端的数据传输 下面详细介绍h c i 层相关的一些概念。 1 ) 低层硬件 蓝牙硬件由逻辑运算单元、射频部分、数字单元、主机控制器组成。主机控 制器包括数字处理单元、链接控制单元和c p u 核心,同时提供对主机的接口。 链接控制单元主要负责执行蓝牙基带信息处理,可靠异步数据传输,同步数 掘传输。控制信息加密,传输类型选择和音频编码等等。c p u 核心的主要任务 是处理查询和指令过滤。 2 ) h c i 数据流控制 h c i 数弱流控制机制是为了防止从主机发送往对方主机的a c l 数掘的无响 应丽造成的主机控制器数据缓冲区溢出的问题。 在此机制中,主机负责控制数据缓冲区的管理。对于每一个连接而吉,主机 发送出的数据包在主机控帛器端必须以糨同的颓序接收。同样主机控制器必须 南京邮电大学硕士学位论文第二二章簸牙协议栈概速 以相同的顺序通过蓝牙硬件设备发送接收数据。最后另一端的蓝牙设备也将接收 到的数据按同样的顺序以h c i 数据包格式发送给对应的主机端。 3 ) h c i 命令和事件 h c i 命令提供了访问蓝牙硬件设备的统一接口,而事件用于主机控制接口通 知主机命令完成,返回连接状态等。 在h c i 层,主要有以下几类命令族及其参数: h c i 链接控制命令:使主机能够控制与其它设备的链踌连接。通过 使用链接控制命令,链路管理层能够管理微微网或者分布网内的链路建 立方式。 h c i 链接策略命令:使主机能够直接控制链路管理屡的工作方式。 h c i 主机控制器和基带控制命令;使主机能够获取和管理蓝牙硬件 设备的一些属性或者参数,同使能够控制和修改主机控制器,链路管理 层和基带层的一些状态。 h c i 硬件信息命令;使主机能够获取固化在蓝牙设备中的生产制造 商固化的一些设备信息和其他一些属性。 h c i 状态参数命令:主机控制器可以修改所有的状态参数。通过调 用状态参数命令,主机可以获得主机控制器,链接管理层和基带层的当 前工作状态。 4 ) h c i 传输层 传输层位于h c i 驱动和主枫控制器之闻。它的目标是提供传输透明性,无 论是通过u s b 、p cc a r d 或者其他的物理介质进行连接,对主机控审4 器而言,这 些因素都是不用考虑的。传输层的通讯媒介主要有以下几种:u s b ,r s 2 3 2 。 u a r t 。 下图为u s b 作为介质的h c i 层示意图2 - 8 。 1 6 南京邮电= = 学碗士学位论文篇二章蘸牙协议栈概述 图2 - 8 主机与蓝牙设备闻的u s b 连接 传输层提供了主机往主机控制器发送h c i 命令、a c l 数据瓢$ c o 数据的能 力,同时支持主机接收来自主机控制器的h c i 事件、a c l 数掘和s c o 数据。 2 2 3 传输层 l 2 c a p 位于基带层之上的数据链路层中,构成蓝牙技术的传输层,向上层 提供面向连接和无连接的数据服务,。它主要完成协议复用、数据拆装、q o s 和 组管理。虽然下层提供了s c o 和a c l 两种连接方式,但l 2 c a p 仅仅使用a c l 链路。所有传输信息的完整性和正确性都是由基带负责,如图2 - 9 。 1 ) 数据包格式 3 。9 l!:;咧m。 i ,j | l , :c a plj 蚵* l a c l $ c 0 b a s e b a n d 图2 - 9l 2 c a p 在协议栈中的位鬻 南京邮电大学硕士学位论文 第二章蓝牙协i ;【_ 浅概进 厂一a p h 。a d e 、 二三二 二三三二 二三三堕互t - - - j - - - - - - - - - - - - - - - - j - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _ 一 l s b 1 61 6 m s b 图2 - 9l 2 c a p 数据包格式 l 2 c a p 层遵循信道通讯模式,以数撂包为单位传输数据。信遭代表设备之 间l 2 c a p 对等实体间的数据流,可以是连接或者无连接的。数据包最大为6 4 k b , 分为单时间段和多时间段两种类型,根据数据包头进行区分,如图2 1 0 。两者的 唯一区别就是“字段长”子域。 l l _ c h ( 2 ) if l o w ( 1 ) l l e n g t h ( s ) l 图2 1 0l 2 c a p 数据包头( 上:单时间段;下:多时间段) 2 ) 关键特征 协议复用:由于基带层协议不提供类型字域以区分上层协议的各种不同 类型的数据,l 2 c a p 必须拥有进行类别区分的能力 数据拆装:相对于其他有线网络物理层介质,基带层协议定义了传输数 据包的最大长度,极大的限制了上层协议带宽的有效利用。l 2 c a p 大数据包 必须分解为多个较小的基带层数据包,然后通过无线方式发送出去。同样, 接收到的多个基带层数据包需要被组装成一个大的l 2 c a p 数据包。圈2 - 1 1 说睨了一个上层协议的大数据包到底层协议的拆分传输过程。 南京邮屯大学硕士学位论文 国 第二章茹穷 :协议栈概述 图2 1 l 数据拆装示例 q o s :l 2 c a p 链接建立过程允许设备之间服务质量信息的交互。l 2 c a p 协议层的实现必须监控协议利用资源的情况以保证满足协商确定的服务质 1 9 10=仑_cou l c j 10留c墨l曼-i m们,io芏 _ i d t a 蚺j m高o们口出口胃m置pc山 国国,靠翌鞋。 m # 毒 一 _匦;h髓旦gsn13: 一u z u n _ l oje掣。们苗。工 南京邮电犬学砸士学位论文 , 羹指标。 第二章藏牙协议柱概述 组播管理:很多协议都包含组播地址的概念。l 2 c a p 将分组抽象为建立 在微微网上的协议组之间的有效映射。如果缺少组播功能,上层协议需要童 接面向基带层协议和链接管理层进行相应处理,以保证有效实现组播功能。 信道管理:信道代表l 2 c a p 协议实体之间的数据流,每一个信道都为信 道标识( c i d ) 所标识。图2 1 2 演示了c i d 在不同设备之上的对等l 2 c a p 实 体之间连接通信的使用。 辱圈哪 c o n n e c t l o n - o r l e n t e d a a t ac 惯n n e l _ c o n n e c t l o n l e s s d a t a 执a n n e l s 墙n a l i n g c h b r g l e i 图2 1 2c i d 应用图例 6 ) l 2 c a p 状态机以及事件和动作 图2 1 3 描述了实现l 2 c a p 层功能必须处理的事件和做出的动作。客户端和 服务端仅仅代表服务请求的发起者和服务请求的接受者。从应用层层次而言,客 户端可以同时作为服务请求的发起者和接受者。 c l l e n ts 日f v e r 南京都电大学硕士学位论文第二章瓿牙协议栈概连 图2 1 3l 2 c a p 层与其他层交互 在蓝牙规范中,所有收到的请求消息称之为事件,而针对与事件做出的响应 称之为动作。 事件包含时间信息。主要分为五种类型: 1 来自底层的通知和确认消息 2 来自上层的请求和响应消息 3 来自对等端或者分组的数据 4 来自对等端信令请求和响应消息 5 ,定时器触发的事件 同样动作也主要分为五种类型,对应于l 2 c a p 层接收到的事件: 1 发送给上层的通知和确认消息 2 发送给下层的请求和响应消息 3 发送给对等端的请求和响应消息 4 发送给对等端的数据 5 设置定时器 事件和消息都以l 2 c a p 信令的数据格式进行发送,如图2 - 1 4 。 l s b 时皓o 埘刚 b 帅巴2b y t e 3 m s b l e n g 啪 0 加1 c 口m 倒# t c o m m a n d 蕾2 l s b 垴把o 虮螂 m s b 图2 1 4 命令格式( 上) 和信令数据格式( 下) 图2 1 5 为l 2 c a p 状态机的简单示意图,演示了客户端和服务端状态变化的 路径以及引起状态变化的事件和状态变化时引发的动作。 2 南京邮电大学硕士学位论文 第二章蓝牙协议栈概述 图2 1 5l 2 c a p 状态机 l 2 c a p 状态机对应的消息流程慝如强2 1 6 ,说明了设备之间墓予消息序列 的对间和动作。可以看出,两设备起始时都处于停止工作( c l o s e d ) 状态。请求 的发起者首先在两设备之间建立l 2 c a p 信道,接收端在收到上层发送的请求消 息之盾,要求底层去建立物理链路。一旦物理链路创建结束,l 2 c a p 信令可以 通过l 2 c a p 链路进行传输 查塞坚垒查兰堡圭兰垡堕奎 笙兰垩墓要坐堡垫墨姿 l pl p 2 2 4 应用适配层 图2 - 1 6l 2 c a p 消息流程图 s d p 、r f c o m m 和t c s 共同构成蓝牙技术的应用适配层。 1 ) s d p s d p 负责在蓝牙设备的邻近区域内发现服务及其属性。服务发现在蓝牙应用 南京邮电大学硕j :学位论文 第二章蓝牙协议拽概述 框架中起着至关重要的作用,通过s d p 可以查询远端设备所支持的服务类型和 相关参数,从而可以在蓝牙设备之间建立服务连接。 s d p 在结构上与一个简单的数据库系统类似,即采用客

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论