




已阅读5页,还剩79页未读, 继续免费阅读
(计算机应用技术专业论文)蓝牙核心协议研究及蓝牙耳机应用的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
y5 8 g 1-2 0 0 摘要 随着无线移动通信技术飞速发展,人们越来越迫切的感觉到实现 移动设备 ( 如移动电话、掌上电脑、p d a等)的短程互联的必要性, 蓝牙技术应运而生。蓝牙技术是一种新的短距离无线通信技术,是无 线数据与语音通信的开放性全球规范,它以低成本的近距离无线连接 为基础,为固定与移动设备通信环境建立一个特别连接,组建临时局 域网。蓝牙技术把各种便携式电脑与蜂窝电话用无线电连接起来,使 计算机与通信更加密切结合,使人们能随时随地进行数据信息的交换 与传输。蓝牙应用产品有着广阔的应用前景。 本文首先介绍了 蓝牙技术的提出背景以及本文工程背景和组织结 构,介绍了 蓝牙协议栈及其应用模型,即蓝牙协议栈模型以及基于协 议栈而开发的蓝牙具体应用模型。 接下来详细论述了 蓝牙核心协议栈的具体实现,蓝牙核心协议栈 主要由四大模块组成: 服务发现协议s d p 模块, 逻辑链路与适配协议 l 2 c a p 模块, 串口 仿真协议r f c o m m模块, 主机控制接口h c i 模块。 并详细讨论了s d p , r f c o mm, l 2 c a p的实现。 然后详细讨论并实现了主机控制接u h c i 模块以及传输层模块, 在设计过程中, 我们尽量使得蓝牙协议栈较少的依赖于硬件驱动程序, 尽量独立于具体的操作系统,这样我们的协议栈就能够较容易的移植 到各种操作系统。在前几章实现的协议栈的基础上,自 行设计并开发 了蓝牙耳机应用,实现了无线耳机的功能,并用蓝牙耳机应用测试了 协议栈,给出了测试过程和测试结果。 最后,将蓝牙技术与其他短程无线通信技术相比较,提出了蓝牙 技术面临的问题以及进一步研究的方向。 关键词:蓝牙、服务发现协议、逻辑链路与适配协议、串口仿真 协议、主机控制接口、传输层、蓝牙耳机 水州泊 、 、 汀州 , 患 如 工_召介万 ab s t r a c t wi t h t h e r a p i d d e v e l o p m e n t o f w i r e l e s s c o m m u n i c a t i o n t e c h n o l o g y a n d m o b i l e c o m m u n i c a t i o n t e c h n o l o g y , p e o p l e f i n d i t m o r e a n d m o r e n e c e s s a r y t o m a k e m o b i l e d e v i c e s ; s u c h as mo b i l e p h o n e , h a n d p c a n d p d a , i n t e r c o n n e c t e d w i r e l e s s l y , w h i c h b r i n g s f o r th b l u e t o o t h t e c h n o l o g y . b l u e t o o t h i s a k i n d o f s h o rt - r a n g e w i r e l e s s c o m m u n i c a t i o n , a w o r l d w i d e l y o p e n s t a n d a r d f o r w i r e l e s s d a t a a n d v o i c e c o m m u n i c a t i o n , w h i c h c a n s e t u p a n a d h o c l a n b e t w e e n f i x e d d e v i c e s a n d m o b i l e d e v i c e s w i t h l o w c o s t , s h o r t - r a n g e w i r e l e s s c o n n e c t i o n . b lu e t o o t h t e c h n o l o g y m a k e s p o rt a b l e d e v i c e s c o n n e c t e d a n d e n a b l e s p e o p l e t o e x c h a n g e i n f o r m a t i o n a n y t i m e a n d a n y w h e r e . a n d b l u e t o o t h w i l l b r i n g a p r o m i s i n g m a r k e t . t h i s p a p e r f i r s t i n t r o d u c e s b l u e t o o t h t e c h n o l o g y i n b r i e f , t h e p r o j e c t b a c k g r o u n d , th e s t r u c t u r e o f t h i s p a p e r , t h e n b l u e t o o t h p r o t o c o l s t a c k a n d p r o f i l e s . t h e f o l lo w i n g c h a p t e r s i n t r o d u c e b l u e t o o t h c o r e s t a c k i n d e t a il s , i n c l u d in g f o u r k e y m o d u l e s : s d p , l 2 c a p , r f c o mm, h c i . a n d t h e n g i v e s t h e i m p l e m e n t i o n o f t h e m r e s p e c t i v e l y . d u r i n g t h e d e s i g n a n d d e v e l o p m e n t , w e m a k e t h e m l i tt l e d e p e n d e n t o f s p e c i f i c a l o p e r a t i n g s y s t e m , t h u s w e c a n t r a n s p l a n t t o s u c h o s s a s wi n d o w s , l i n u x a n d o t h e r p l a t f o r m e a s i l y w i t h l i tt l e m o d i fi c a t i o n f o r s y s t e m r e l a t e d p a r t . t h e n , b a s e d o n t h e a b o v e d e s i g n o f p r o t o c o l s t a c k , i p e r s o n a l ly i m p l e m e n t b l u e t o o t h h e a d s e t p r o f il e o n v +% i n d o w s , a n d u s e r s c a n u s e b l u e t o o t h w i r e l e s s h e a d s e t fr e e l y . f i n a l l y t h i s p a p e r p u t s f o r w a r d s o m e c u r r e n t p r o b l e m s a b o u t b l u e t o o t h t e c h n o l o g y , c o m p e t i t i o n t h a t b l u e t o o t h f a c e s w i t h a n d t h e n e x t r e s e a r c h g o a l k e y w o r d s : b l u e t o o t h , s d p , l 2 c a p , r f c o mm, h c i , t r a n p o rt l a y e r , b l u e t o o t h h e a d s e t m 北京交通大学硕士论文 第一章 前言 1 . 1 蓝牙技术的提出 随着计算机网络和移动通信技术的迅猛发展,人们越来越感到发 展微小范围内的无线数据与语音通信的必要性。于是,1 9 9 8年, e r i c c 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 h )技术。随后这五家公司组建了一个 特殊组织 ( s i g )来负责此项技术的开发。1 9 9 9 年 7月,蓝牙协议的 1 . 0 版, 从而将其推向应用阶段。 2 0 0 3 年 1 2 月, 推出蓝牙协议 1 .2 版, 蓝牙应用前景越来越好。 蓝牙技术解决了小型移动设备间的无线互连问题。蓝牙不同于另 一 种无线局域网 ( wl a n) 技术, wl a n通过一个公用的主干可以有 效地连接相对庞大的人群,但蓝牙技术面向的却是移动终端设备间的 小范围连接,因而本质上说它是一种代替电缆的技术。 为了真正使用户实现个人信息服务,经常需要把诸如移动电话和 其它外围设备或计算机连接起来,传输数据、语音和静止或动态的图 像。这些设备通常都是可随身携带的,可能以各种形式存在。为了把 它们连接在一起,同时避免电缆线缠绕之苦,可以采用 “ 无线电缆” ( wi r e l e s s c a b l e )的方案, 不需要很长的距离,只需要组成小范围的 无线局域网即可。 无线电缆将为大量设备提供有效、廉价的无线连接方案,人们可 以方便地将计算机、外围设备、用户电子设备、医疗设备和自 动控制 应用等各种产品连接起来,形成个人网络,并可通过无线局域网 ( w i r e l e s s l a n ) 与i n t e rn e t 连接,实 现信息的无线传输。 蓝牙技术属于一种低成本、短距离的无线电连接技术,它的无线 收发器可以做在很小的一块芯片上,有的样品大约只有 9 m m * 9 m m, 因此可万便地嵌入到各类便携式设备中。蓝牙技术基于无线电缆的概 念,实现了设备间的无线连接和接入数据网的功能,具有外围设备接 口,可以组成一个特定的个人网络。 北京交通大学硕士论文 蓝牙系统采用g f s k调制,抗信号衰落的性能较好;采用快跳频 和短包技术以减少同频干扰, 保证传输的可靠性; 使用2 a g h z 的 i s m 频段,无需申请许可证。蓝牙的调制信号速率为 1 mb / s ,以时分方式 进行全双工通信,其基带协议是电路交换和分组交换的组合。 蓝牙技术支持无线多媒体 ( 包括数据、 话音和静止图象) 的传输 每一对蓝牙设备之间可以有一个异步数据通道,或三个同步话音的通 道,或一个同时传送异步数据和同步话音的通道。每一个话音通道支 持 6 4 k b / s 的同步话音;异步通道支持的最大速率为 7 2 1 k b / s ,反向应 答速率为 5 7 .6 k b / s 的非对称连接,或者是4 3 2 . 6 k b / s 的对称连接。话 音编码采用连续可变斜率增量调制,具有抗衰落性强的特点,即使误 码率到达 4 %,话音质量仍可以接受。 1 .2工程背景及组织结构 蓝牙技术在国外提出伊始,人们就意识到这项技术将是未来短距 离无线通信的方向之一,有其特有的市场前景。我们开发了蓝牙的协 议栈,将协议栈实现为与系统相关和系统无关两个部分,这样方便了 在各种系统平台上的移植。为了搭建具体的应用,我们需要把蓝牙协 议栈与具体的系统相结合起来。 本人在论文期间认真研究了蓝牙核心协议,理解了蓝牙核心协议 栈的各个模块,主要开发了主机控制接口部分的模块,并实现了蓝牙 耳机应用。 本文第一章首先简单介绍蓝牙技术的提出和本文的工程背景及组 织结构,第二章描述了蓝牙协议栈及其具体应用模型。第三章分别介 绍了s d p , r f c o mm, l 2 c a p的实现。第四章详细介绍了h c i 的实 现。 第五章详细介绍蓝牙耳机应用并在wi n d o w s 上实现了该应用, 并 用蓝牙耳机应用测试核心协议栈,给出了测试过程和测试结果。第六 章介绍了蓝牙面临的问题及进一步发展研究的方向。 北京交通大学硕士论文 第二章蓝牙协议简介 2 1 蓝牙协议体系结构 蓝牙( b l u e t o o t h ) 技术规范由蓝牙特别兴趣小组( s i g ) 制订, 在使用通用无线传输模块和数据通信协议的基础上,开发交互式服务 和应用,多用于便携式通信设备。 图2 - 1b l u e t o o t h 协议层模型 蓝牙技术规范的目的是使符合该规范的各种应用之间能够互通, 本地设备与远端设备需要使用相同的协议,不同的应用需要不同的协 议,但是,所有的应用都要使用蓝牙技术规范中的数据链路层和物理 层。完整的蓝牙协议层如图2 1 所示,不是任何应用都必须使用全部 协议。图2 1 显示了数据经过无线传输时,所有协议之间的相互关系, 但在某些应用中这种关系是有变化的,也就是说,具体应用只会使用 其中的一列或者多列。 完整的协议包括蓝牙专利协议( l m p 和l 2 c a p ) 和非专利协议 ( 如对象交换协议o b e x 和用户数据报协议u d p ) 。设计协议和协议 栈的主要原则是尽可能利用现有的各种高层协议,保证现有协议与蓝 牙技术的融合以及各种应用之间的互通性,充分利用兼容蓝牙技术规 范的软硬件系统。蓝牙技术规范的的开放性保证了设备制造商可自由 地选用其专利协议或常用的公共协议,在蓝牙技术规范基础上开发新 北京交通大学硕士论文 的应用。 2 2 蓝牙协议体系中的协议 蓝牙协议体系中的协议可分为四层:核心协议,b a s e b a n d 、l m p 、 l 2 c a p 、s d p ;电缆替代协议,r f c o m m :电话传送控制协议,t c s b i n a r y 、a t 命令集;可选协议,p p p 、u d p t c p i p 、o b e x 、w a p 、 v c a r d 、v c a l 、i r m c 、w a e 。 除上述协议层外,规范还定义了主机控制器接口( h c i ) ,它为基 带控制器、连接管理器、硬件状态和控制寄存器提供命令接口。在图 2 1 中,h c i 位于l 2 c a p 的下层。 蓝牙核心协议由s i g 制定的蓝牙专利协议组成,绝大部分蓝牙设 备都需要核心协议( 加上无线部分) ,而其它协议根据应用的需要而定。 总之,电缆替代协议、电话控制协议和被采用的协议在核心协议基础 上构成了面向应用的协议。 2 2 1 蓝牙核心协议 ( 一) 基带协议( b b ) 基带和链路控制层确保微微网内各蓝牙设备单元之间由射频构成 的物理连接。蓝牙的射频系统是一个跳频系统,其任一分组在指定时 隙、指定频率上发送,它使用查询和寻呼进程同步不同设备间的发送 频率和时钟,可为基带数据分组提供两种物理连接方式:面向连接 ( s c o ) 和无连接( a c l ) ,而且在同一射频上可实现多路数据传送。 a c l 适用于数据分组,s c o 适用于话音及话音与数据的组合,所有话 音与数据分组都附有不同级别的正向纠错( f e c ) 或循环冗余校验 ( c r c ) ,而且可进行加密。此外,不同数据类型( 包括连接管理信 息和控制信息) 都分配一个特殊通道。 可使用各种应用在蓝牙设备间传送话音,面向连接的话音分组只 需经过基带传输,而不到达l 2 c a p 。话音应用在蓝牙系统内相对简单, 只需开通话音连接,就可传送话音。 ( 二) 连接管理协议( l m p ) 连接管理协议( l m p ) 负责蓝牙各设备间连接的建立。它通过连 ! ! 堕窒望盔堂旦圭堡苎 接的发起、交换、核实,进行身份验证和加密,通过协商确定基带数 据分组大小;它还控制无线设备的电源模式和工作周期,以及微微网 内设备单元的连接状态。 ( 三) 主机控制接门( h c i ) 在b b 和l m 上与l 2 c a p 之间还有一个主机控制接口层h o s t c o n t r o l l e r i n t e r f a c e ( h c i ) 。h c i 是蓝牙协议中软硬件之间的接口,它提 供了- - + n n t n b b 、l m 、状态和控制寄存器等硬件的统一命令接 口。蓝牙设备之间通信时的系统结构如f 图2 - 2 所示。h c i 协议以上 的协议软件实体运行在主机上,而h c i 以下的功能一般由蓝牙设备来 完成,二者之间通过一个对两端透明的传输层进行交互。 图2 2h c i 模块在协议栈中的位置 北京交通大学硕士论文 如图2 2 所示,h c i 模块包括主机端驱动h c id r i v e r 和蓝牙设备 上的固件h c if i r m w a r e ( 即h o s tc o n t r o l l e r ) ,二者之间由一个h c i 传输层提供数据的透明传输。通过此传输层,主机端驱动将从高层得 到的待传输数据和命令送到蓝牙硬件设备中,同时接收从设备提交的 数据和事件。 通过h c i 传出的信息可包括命令、事件、数据三类。命令由主机 端发给硬件设备,事件由设备提交给主机,数据则是双向的。下面简 要介绍这三类信启、。 由主机发给设备的命令按执行方式可分为同步命令和异步命令。 同步命令主要用于本地查询和设置参数,完成后立即返回类似于 c o m m a n dc o m p l e t ee v e n t 的命令完成事件;异步命令一般涉及到双 方的通信,比如建立连接等,h c t 固件接收到命令后,先返回一个命 令状态事件c o m m a n ds t a t u se v e n t ,表示命令参数的正确与否,完成 后再返回一个命令完成事件。 两个蓝牙设备之间只能建立一条a c l ( a s y n c h r o n o u s c o n n e c t i o r d e s s ) 信道, 但可以建立多条s c o ( s y n c h r o n o u s c o n n e c t i o n o r i e n t e d ) 信道。a c l 主要用来收发数据,s c o 主要用于话 音通信。连接建立起来后,主机控制器( h c ) 将从主机端收到的数据通 过l m 、b b 和r f 发送出去,当收到数据时则过程相反。 ( 四) 逻辑链路控制和适配协议( l 2 c a p ) 逻辑链路控制适配层协议( l o g i c a ll i n kc o n t r o la n da d a p t a t i o n l a y e rp r o t o c o l 简称l 2 c a p ) ,是个为高层传输层和应用层协议屏蔽 基带协议的适配协议。l 2 c a p 位于基带协议层之上,属于数据链路层, 它在整个协议层体系中的地位如图2 1 。l 2 c a p 为高层提供数据服务, 允许高层和应用层协议收发大小为6 4 k b 字节的l 2 c a p 数据包。虽然 基带协议提供了s c o 和a c l 两种连接类型,但是l 2 c a p 只支持面 向无连接的异步传输( a c l ) ,不支持面向连接的同步传输( s c o ) , s c o 链路主要用预留的带宽进行实时语音传输。 ( 五) 电缆替代协议( r f c o m m ) r f c o m m 是基于e t s l0 7 1 0 规范的串行线仿真协议。“电缆替 北京交通大学硕士论文 代”协议在蓝牙基带协议上仿真r s 2 3 2 控制和数据信号,为使用串行 线传送机制的上层协议( 如o b e x ) 提供服务。b l u e t o o t h 特别兴趣小 组提出r f c o m m 的目的在于以下几点:提供对现有使用串行线接口 的应用软件的支持;利用已有的g s m0 7 1 0 标准;支持b l u e t o o t h 设 备之间点对点的通信。 r f c o m m 完成了对r s 2 3 2 串口的仿真,这样就可以尽可能利用 现有的各种高层应用程序,保证b l u e t o o t h 技术与现有技术的融合以及 各种应用之间的互通性,充分利用兼容b l u e t o o t h 技术规范的软硬件体 系。其中最常用的是如图2 - 1 所示的基于串行线传送机制的高层协议, 如:o b e x 、p p p 和a t 命令集。其中p p p 完成点对点的连接:o b e x ( 对象交换协议) 是由红外数据协会( i r d a ) 制定的会话层协议,它 采用简单的和自发的方式交换目标数据,它是一种类似于h t t p ( h y p e r t e x tt r a n s f e rp r o t o c 0 1 ) 的协议,假设传输层是可靠的,采用客 户机- r 务器模式,独立于传输机制和传输应用程序接口;a t 命令集 是专门为调制解调器设计的接口,用来提供拨号上网和收发传真的功 能。 根据实现方式不同,存在两种不同的b t 设备。类型1 的b t 设 备本身具有完整的b l u e t o o t h ( b t ) 硬件和软件,能独立完成b l u e t o o t h 的功能,实现通信设备之间的短距离无线连接。类型2 的b t 设备仅 仅起到类似于m o d e m 的功能,负责将普通设备所要传输的信息与 b l u e t o o t h 格式的码流的相互转换。当采用类型2 的b t 设备时,数据 传输的瓶颈在于实际的串口之间的有线连接,即受到标准串口最高速 率9 2 1 6 0 0 b i v s 的限制:而采用类型1 的b t 设备时,数据传输的速率 则不受到串口速率的限制。 ( 六) 服务发现协议( s d p ) 发现服务在蓝牙技术框架中起到至关重要的作用,它是所有用户 应用的基础。使用s d p ,可以查询到设备信息和服务类型,从而在蓝 牙设备1 4 建立相应的连接。 北京交通大学硕士论文 2 .2 .2 电话控制协议 ( 一)二元电话控制协议 二元电话控制协议 ( t c s b i n a r ,或丁 c s b i n)是面向比 特的 协议,它定义了蓝牙设备间建立语音和数据呼叫的控制信令,定义了 处理蓝牙丁 c s 设备群的移动管理进程。 基于i t u 一 丁 q .9 3 1 建议的t c s b i n a r y 被指定为蓝牙的二元电 话控制协议规范。 ( 二)a t命令集电话控制协议 s i g根据i t u -t v 2 5 0 建议和g s m 0 7 . 0 7 定义了控制多用户 模式下移动电话和调制解调器和可用于传真业务的a 7命令集。 2 . 2 . 3 选用协议 ( 一)点对点协议 ( p p p ) 在蓝牙技术中,p p p 位于r f c o mm上层,完成点对点的连接。 ( 二 )t c p / udp / i p t c p / u d p / i p协议是由i e 丁 f 制定的, 广泛应用于互联网通信的协 议,在蓝牙设备中使用这些协议是为了与互联网相连接的设备进行通 信。 三)对象交换协议 ( o b e x) i r o b e x ( 简写为o b e x ) 是由 红外数据协会 ( i r d a ) 制定的 会话层 协议,它采用简单的和自发的方式交换目 标。o b e x 是一种类似于 h t t p的协议,这假设传输层是可靠的,采用客户机/ 服务器模式,独 立于 传输机制和传输应用程序接口 ( a p i ) o 电子名片交换格式 ( v c a r d ) 、电子日历及日 程交换格式 ( v c a l ) 都是开放性规范,它们都没有定义传输机制,而只是定义了数据传输 模式。 s i g采用v c a r d / v c a l 规范,是为了 进一步促进个人信息交换。 ( 四)无线应用协议 ( w a n 无线应用协议是由无线应用协议论坛制定的,它融合了各种广域 无线网络技术,其目的是将互联网内容和电话债券的业务传送到数字 蜂窝电话和其它无线终端上。 选用 w a p , 可以充分利用为无线应用环 境 ( wa e)开发的高层应用软件。 乾豪交运大学硕论文 2 3 蓝牙应用及协议栈 2 3 。1 蜀域耀访潮应爱 黼2 3 局城阏访鳓夔精 在此威用下,数据终端( d t ) 经局域网访问点( l a p ) 无线接入 鼹域丽,接入后d t 的操作与通过拨号方式接入掰域网设备的操作 样,其协议栈如图2 3 所示。 2 3 2 按鼍网络陂带 黼2 4 拨号嬲络应用 在这种应用下,由手机或无线调制解调器向p c 提供无线拨号上 网和牧发传真豹功能,恧不必与p c 建立貔理连接。援号上嚣爨樊嚣 个协议栈( 不包括s d p ) ,如图2 - 4 所示。a t 命令集用来控制移动电 北京交通大学硕士论文 话或调制解调器以及传送其它业务数据的协议栈。传真采用类似协议 栈,但不使用p p p 及基于p p p 的其它网络协议,而由应用软件利用 r f c o m m 直接发送。 2 3 3 蓝牙耳机应用 图2 - 5 蓝牙耳机应用 使用该应用,用户打电话时可自由移动。通过无线连接,蓝牙耳 机通常作为蜂窝电话、无线电话或个人微机的音频输入输出设备。蓝 牙耳机的协议栈如图2 5 所示,语音数据流不经过l 2 c a p 层而直接接 入基带协议层。蓝牙耳机必须能收发并处理a t 命令。 2 3 4 文件传输应用 图2 - 6 文件传输应用 文件传输应用提供两个终端之间的数据通信功能,可传 北京交通大学硕士论文 输x is 、p p t 、v 、j p g 和d o c 文件( 及其它文件) ,以及完整的文 件央或目录或多媒体数据流等并提供远端文件央浏览功能。文件传输 协议栈如图2 - 6 所示。 2 3 5 同步应用 图2 - 7 蓝牙j 司步应用 同步应用提供设备到设备的个人资料管理( p i m :p e r s o n a l i n f o r m a t i o nm a n a g e m e n t ) 的同步更新功能,其典型应用如电话簿、日 历、通知和记录等,它要求微机、蜂窝电话和个人数字助理( p d a ) 在传输和处理名片、日历及任务通知时,使用通用的协议和格式。协 议栈如图2 - 7 所示,其中同步应用代表红外移动通信( i r m c ) 客户机 或服务器。 j e 豪交通大学硕+ 论文 2 3 。6 藏牙老谣应霜 图2 8 蓝牙电话应用 蓝牙电话奉凡有三种使用方法:接入公用电话阀,作为普通电话使 用;作为不计赞的内部电话使用;作为蜂窝移动电话使用。无线电话 和内部电话使用相同的协议栈;语音数据直接与基带协议连接。不经 过l 2 c a p 层,如图2 - 8 所示。 北京交通大学硕士论文 第三章 蓝牙核心协议栈的实现 3 . 1蓝牙系统运作原理研究 下面我们将构造一个客户机用 r 务器交互的模型, 并基于此模型详 细讨论和研究蓝牙系统的内部运作原理。 3 . 1 . 1 客户端发起连接请求 一个作为客户端的蓝牙设备首先向一个作为服务器端的蓝牙设备 发送连接请求,如图3 - 1 所示,其具体过程如下; sd户 事 件l 2 c a c a n a e e t r o q 作 *yn s u p k ip $ i$ 1 嘛 酬伽 l 2 cap 协议层 丫 祝到服务瑞蓝牙设各的墓带地址 c . 比 亡 小相re 的0.l 筹 - - .c u. r 印 王1 c 14 不 可 用 信 冷 :二 y 行 为 l p_ c a a a x tr aq 图 3 - 1蓝牙运作原理图 客户端蓝牙设备的l 2 c a p 层接收到上层应用程序如s d p发出的 连接请求事件l 2 c a c o n n e c t r e q 后, l 2 c a p根据得到的 蓝牙服务器 -1 1 - 北京交通大学硕士论文 端的地址 ( b d a d d r ) ,直接向下层 h c i 层发送底层连接请求行为 l p _ c o n n e c t r e q ,通知蓝牙基带与蓝牙服务器端建立一条物理信道, h c i 层接收到 l 2 c a p的建立底层物理信道连接请求后,将会对 l mp 层发送连接请求命令 h c i c r e a t e c o n n e c t i o n . l mp接收到该命令后, 将会在本地 ( 客户端)与远程 ( 服务器端)之间建立一条 l mp信道。 首先, 两端进行无线物理连接, 连接成功之后, l mp向基带传送一个 l m p _ h o s t c o n n e c t i o n r e q p d u( 协议数据单 元) , 此报文将会通过无 线物理信道传送到服务器端。 3 . 1 . 2 无线物理信道的建立 无线物理信道的建立比较复杂,是由蓝牙硬件模块实现的,此处 不作介绍。 3 . 1 .3 服务器端对连接请求的确认 当服务器端基带收到客户端发来的 l m p 一o s t c o n n e c t i o n es r e q 时, 首先将请求上递给 l mp 层。 l mp 层识别到连接请求后, 将对 h c i 层产生一个连接请求事件。 当h c i 收到连接请求事件后, 再对 l 2 c a p 层产生一个 l p _ c o n n e c t i n d事件。l 2 c a p层对应用层产生一个 l 2 c a _ c o n n e c t i n d 行为, 并 将 控 制 权 交 给 应 用 层, 由 应 用层 决定 是 否 接受客户端的连接请求。应用层使用 l 2 c a c o n n e c t r s p或者 l 2 c a p _ c o n n e c tr s p n e g 来 通知l 2 c a p 接 收 或 者 拒 绝 客 户 端的 连接 请 求。 如果同意连接, l 2 c a p 收到上层发来的l 2 c a 一o n n e c t r s p , 那么 它将给 h c i一个 l p c o n n e c t r s p行为,h c i再给 l m p一个 h c i _ a c c e p t c o n n e c t io n _ r e q u e s t 命令。 l m p收到后将给基带一个 l m p _ a c c e p t e d p d u 。 基带通过无 线物理 信道将此p d u传 送给客户 端。 如 果 不 同 意 连 接 , 即 l 2 c a p 收 到 上 层 发 来 的 l 2 c a _ c o n n e c t r s p n e g , 那么就给h c i 一个l p _ c o n n e c t r s p n e g 行为, h c i 再给l m p 一个h c i 一o f a c c e p t c o n n e c t i o n 一e q u e s t 命令。 l m p 收到后 将给 基带一个l m p n o t a c c e p t e d p d u , 基带 通过无线物理信道 将此 p d u传送给客户端。 北京交通大学硕士论文 3 . 1 . 4 l 2 c a p层中逻辑信道的建立 当客户端与服务器端之际的物理信道完全建立成功后,两者直接 可以通过 l 2 c a p层建立逻辑信道。两端的建立大多数是通过信令完 成的。具体过程如图3 - 2 所示。 客户端 l t c a p 层 cl os e d _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 卫 服务端 l 2 c a p层 亡i .oski 1 wa lz c a p _ c a n n mo u , l 2 c a p c mm z l r 叫 w b l 2 u o n ne h r a p 一 2 cap cn n n r c t r , _ _ 汽 二 9 r 7 p s l s m l 2 c+ e c o o n e x g l l 2 c a c t mrs n c onfi c 匕c n 了 n n n 如果状态为 c o n f i g ,则l 2 c a p向 服务器端发送信令l 2 c a i 飞 c o n f i g r e q , 并启动 r t x计时器; 如果状态为o p e n, 则挂起当前工作( 一般是数据传输) , 进入状态c o n f i g , 向 服务器端发送信令l 2 c a p _ c o n f i g r e q , 并启动 r t x计时 器。 信令l 2 c a p _ c o n f i g r e q 是 用于客户端和服务 器端协商 一些具体参数,如 m t u( 最大传输单元) 、 超时信息、q o s ( 服务质 量)等 服务器端 l 2 c a p收到配置请求信令后,将向 上层发送一个动作 l 2 c a p _ c o n f i g i n d ,向 上层表明收 到客户端送来的 配置 请求, 并由 上 层来决定具体的配置参数。处理完毕后,服务器端 l 2 c a p等待上层 的配置回复事件l 2 c a p c o n f i g r s p , 用于回 应客户端的配置请求。 如 果回应是肯定的,则服务器端将对对方发送信令l 2 c a p - c o n f i g r s p , 并进入 o p e n 。否则,向 客户端发送 l 2 c a p c o n f i g r s p n e g ,保持 c o n f i g状态。 客 户 端接收 到 配置 回 复 信 令l 2 c a p _ c o n f ig r s p 后, 将向 上 发 送配 置 确认动作l 2 c a p _ c o n f i g c f m , 以 向 上层 确认所发送的 配置请求己 经 北京交通大学硕士论文 被远端所接收。 这样, 客户端向服务器端的配置过程结束。 截至, 以同样的顺序, 服务器端开始它与客户端的配置协商过程。具体的流程与客户端向服 务器端的配置过程一样。 当服务器端和客户端之间的配置协商过程完成之后,两者都进入 o p e n状态。此时,两端可以直接通过l 2 c a p实体进行数据通信了。 3 . 1 . 5 上层协议中连接的建立 l 2 c a p 信道建立后, 上层协议如 s d p , r f c o mm可以在 l 2 c a p 通道上传递协议相关的数据和命令, 用于上层协议连接的建立。上层 协议之间的连接可以复用一个l 2 c a p 连接心 3 . 2蓝牙协议栈的实现介绍 我们实 现了 蓝牙主机协议栈的 所有协议: t c s , s d p , r f c o m m, l 2 c a p 和h c i 。 协议栈代码是高效和可靠的, 并且代码量很小, 可以 符合一个嵌入式应用的需要。 这个协议栈开发时先采用了s d l( 规范 描述语言)进行描述与验证,保证了可靠性,之后再用c代码重写, 保证了它的高效行。整个协议栈分成四个部分,如图3 - 3 所示: 第一部分是蓝牙系统模块。每个协议在启动时要向蓝牙系统模块 注册。蓝牙系统模块维护了蓝牙主机协议的 f s m 实例表。一个蓝牙 主机协议栈可以使用这些信息和其它的蓝牙主机协议栈进行通信。这 个模块在各个平台上是不同的,因为并不是所有的系统都需要其它所 有的模块。 第二个部分是蓝牙通用函数库模块。这个模块包含了为每个协议 模块维护f s m( 有限状态机) 所需要的通用代码, 比如定时器的管理、 进程间通信等等。它还包括了那些平台相关的代码。如果有来自不同 的蓝牙主机协议的 f s m 实例对于公用资源的请求,这个模块会负责 为这些请求进行调度。 第三个部分是蓝牙协议栈中的各个协议模块。所有的这些协议模 块都是用a n s i c 编写的, 可以 不用进行改动即可在各个平台上移植。 第四个部分是用户接口 ( u 工 ) 。这个部分是一个系统相关的模块。 北京交通大学硕士论文 用户可以为专门的需要开发自己的u i o 图3 - 3蓝牙协议模块结构 3 . 2 . 1 蓝牙调度模块 每个蓝牙主机协议被实现为一个 f s m ( 有限状态机) 。当协议初 始化时,它会为相应的f s m生成一个跳转矩阵,这个f s m是由状态 和事件索引的。在跳转矩阵的每一项代表了对一个特定状态下的特定 事件的处理函数。在协议初始化时,f s m会被置成初始状态。 当协议的f s m接收到一个事件,它首先检查是否是f s m此时正 在处理事件。如果 f s m 忙,则将这个事件插入到事件队列中等待处 理,否则,f s m 会立即进行处理。当一个事件处理结束,f s m 会检 查事件队列, 并逐个处理事件队列里的每个事件, 如果事件队列不空。 所有的事件按先进先出 ( f i f o) 的次序进行处理。 现在所有的事件不 分优先级。 在处理事件时, f s m a可能会改变状态并产生新的事件给另一个 f s m b处理。如果产生了对f s m b的新事件,f s m a的处理函数将 会立即调用 f s m b来处理这个事件。 3 .2 .2 定时器实现 对于网络通信协议来说,定时器是很重要的。定时器功能在系统 相关的。不同的系统对定时器的支持不尽相同。我们提供了一系列的 北京交通大学硕士论文 接口来调用定时器函数, 在不同的操作系统中要实现这些定时器函数。 这些函数如一 f : 几n七 in七 int : ni t 丁 工 me re s t r u c t f s . 口工 mer addti mer( s tr uc t f s mti mer - f t ) -ft) ; de工 ti mer; s tr nc t f s mti mer - ft); 3 . 2 . 3 内存管理 当蓝牙主机协议栈启动好后,应用程序可以在不同的进程里调用 蓝牙协议栈。 在很多3 2 位的操作系统里, 不同的进程有不同的内存空 间。当协议栈实现在内核模式下,通常操作系统可以将主机协议栈的 数据段映射到该进程的内存空间。当我们将协议栈实现在用户模式下 时,就通常不是这样。当协议试图访问某些全局数据时,这可能会带 来一些问题。 我们既可以将协议栈实现在内核模式,也可以将其实现在用户模 式,这要求我们提供对全局数据的映射方法。在协议栈中,对所有的 应用程序提供共享的数据段。这会将所有定义的全局数据映射为静态 的。动态分配的内存仍然不能共享。因此如果需要全局数据,它就不 能是动态分配的内存。 3 .2 .4 操作系统平台 协议通常是系统无关的。然而,如果要在一个操作系统上运行协 议栈,就必须提供一些系统相关的支持,以将协议栈集成到操作系统 中。我们将协议软件中系统相关的部分提取出来,这样在向不同的操 作系统移植的时候,就只需改这些系统相关部分代码就可以。 系统相关部分包括进程调度和同步模块,定时器模块,以及一些 运行库。 由于协议栈是用a n s i c写的, 我们只使用了标准 c运行库。 协议栈的用户接口也是系统相关的。如果要移植协议栈到一个新的操 作系统上,需要检查所有的系统相关部分,将这些系统相关的函数重 写并链接到不同的运行库上。从代码量来看,系统相关部分只占整个 协议模块代码量的5 % 左右。 北京交通大学硕士论文 3 .2 .5 系统相关部分的定义 前面讲到,蓝牙协议栈分成系统相关部分和系统无关部分。前者 在每个系统上都要重写,而后者是符合 a n s i - c标准的,可以在各种 平台上移植而不必进行修改。具体地看,系统相关部分主要是涉及定 时器的管理,调试信息的打印,临界区、事件、线程的创建和销毁等 等。要在wi n d o w s上 运行协议栈,就必须实现这些系统相关的函数。 通过定义宏来封装系统相关部分的具体实现,这样就可以让系统 无关部分不经修改就在各个平台上通用。这些宏的定义和实现在文件 b t c o m m o n / b t w i n 3 2 / w i n 3 2 d e p .h 和w i n 3 2 d e p 中, 这些宏主要有: # d e f i n e s y s t e m l o c k h a n d l e # d e f i n e c r e a t e c r i t i c al( s ) c r e a t e m u t e x( n u l l , f a l s e. s ) # d e f i n e e n t e r _ c r i t 工 c a l ( s ) w a i t f o r s i n g l e o b j e c t ( s 工 nf 工 ni t e) # d e f i n e l e a v e c r i t i c a l( s ) r e l e a s e m u t e x( s ) 壮 d e f i n e f r e e c r 工 t 工 c a l( s ) c l o s e h a n d l e( s ) # d e f i n e w a i t f o r _ s 工 n g l e o b j e c t ( a ) w a i t f o r s i n g l e o b j e c t ( a i nf 工 ni t e) # d e f i n e b t c l o s e 托a nd l e( a) c l o s e h a n d l e( a) # d e f i n e c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 竣工决算编制合同范本
- 游乐园合同范本
- 多个商标转让合同范本
- 企业采购水果合同范本
- 企业推拿服务合同范本
- 村镇餐饮配送合同范本
- 圆通快递服务合同范本
- 红砖厂供货合同范本
- 店面简易租赁合同范本
- 双眼皮合同范本
- 图书管理员考试的注意事项和建议试题及答案
- 警校区队管理制度规定
- 郑州银行总行信息科技岗位招聘考试真题2024
- 新发展英语(第二版)综合教程2 课件 Unit 6 Cultural Difference
- 脑卒中失语症的康复护理
- 消防联动调试方案
- 2025年安徽中医药高等专科学校单招职业技能测试题库审定版
- 自动化仪表施工方案
- 注射用重组人TNK组织型纤溶酶原激活剂-药品临床应用解读
- DBJ04T 289-2020 建筑工程施工安全资料管理标准
- 小儿泄泻(小儿腹泻病)中医临床路径
评论
0/150
提交评论