已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 蓝牙是一种低功耗的近距离无线通信技术,作为无线数据和语音通信的开放 性标准,目的是取代现有的p c ,打印机和移动电话等设备上的连线。利用“蓝牙” 技术,使得现代一些轻易携带的移动通信设各和电脑设备,不必借助电缆就能联 网,并且能够实现无线上因特网,其实际应用范围还可以拓展到各种家电产品、 消费电子产品和汽车等信息家电,组成一个巨大的无线通信网络。 逻辑链路控制和适配协议( l 2 c a p ) 是蓝牙( b l u e t o o t h ) 协议栈中数据链路 层的一部分。l 2 c a p 采用协议复用、分段和重组操作以及组抽象等方式向高层协 议提供了连接和无连接数据服务,允许高层协议和应用程序发送、接收l 2 c a p 数 据包( 长度最高可达至1 j 6 4k b ) ,只支持a c l 链路,并采用信道的概念在蓝牙设 备不同应用之间建立不同的路径。 面向对象的分析与设计是当前软件开发中相当流行的开发方法,并且已经有 了许多成功的应用和实践。标准建模语音( u m l ) 是一种通用的可视化建模语言, 用于对软件进行描述、可视化处理、构造和建立软件系统的文档。 本文利用面向对象的分析和设计思想,应用标准建模语言( u m l ) 的建模 技术,对l 2 c a p 协议进行了设计和实现。 关键词:蓝牙;l 2 c a p ;面向对象;u m l a b s t r a c t b l u e t o o t hi saw i r e l e s sc o m m u n i c a t i o nt e c h n o l o g yw i t hl o wp o w e rd i s s i p a t i o n a n dc l o s eq u a r t e r s a so p e ns t a n d a r df o rw i r e l e s sd a t aa n dv o i c ec o m m u n i c a t i o n , b l u e t o o t h sg o a li st os u b s t i t u t ef o rt h ew i r e so f e x i s t i n gd e v i c e ss u c ha sp c p r i n t e r , m o b i l ep h o n ea n ds oo n m a k eu s eo f b l u et o o t ht e c h n i q u e ,m a k es o m em o d e r n a m b u l a t i o nc o r r e s p o n d e n c ee q u i p m e n t sa n dt h ec o m p u t e r , d on o ta s kf o re l e c t r i c c a b l e ,b u tc a nc a r r yo u tt h ew i r e l e s st oi n t e m e t ,i t sa c t u a la p p l i c a t i o nc a na l s oe x p a n d t ov a r i o u sa p p l i a n c ep r o d u c ta n dc o n s u i n et h ei n f o r m a t i o na p p l i a n c e s s u c ha st h e e l e c t r o n i c sp r o d u c t ,a u t o m o b i l ea n de t e ,c o n s t i t u t i n gah u g ew i r e l e s sn e t w o r k 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 nl a y e rp r o t o c o l ( l 2 c a p ) r e s i d e si nt h ed a t a l i n kl a y e ro f b l u e t o o t h t h i sp a p e rp r e s e n t sar e p o r t0 1 1t h ed e v e l o p m e n to f l 2 c a p u s i n ga no b j e c to r i e n t e df o r m a lm e t h o d u n i f i e dm o d e l i n gl a n g u a g e ( u m l ) i s u s e d i nt h i sw o r k k e yw o r d s :b l u e t o o t h ;l 2 c a p ;o b j e c to r i e n t a t i o n ;u m l 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得苤鲞盘堂或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者躲纫耙签字嗍“瑚7 日 学位论文版权使用授权书 本学位论文作者完全了解苤盗盘茎有关保留、使用学位论文的规定。 特授权盘洼盘堂可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位做储躲刁弘 签字日期咖( 年力月审 导师签名: 签字日期“年y 月7 日 第一章绪论 1 1 课题提出的背景 第一章绪论 1 9 9 8 年5 月,爱立信、诺基亚、东芝、i b m 和英特尔公司等五家著名厂 商,在联合开展短程无线通信技术的标准化活动时提出了蓝牙技术 ( b l u e t o o t h ) ,其宗旨是提供一种短距离、低成本的无线传输应用技术。这 五家厂商还成立了蓝牙特别兴趣集团( s i g :s e p e c i a li n t e r e s tg r o u p ) ,以 使蓝牙技术能够成为未来的无线通信标准。其主要优点是:可以随时随地的 用无线接口来代替有线电缆连接;具有很强的可移植性,可应用于多种通信 场合,引入身份识别后可以灵活实现漫游;功耗低,对人体危害小;蓝牙集 成电路应用简单,成本低廉,实现容易,易于推广。同时蓝牙技术是一种无 线数据通信与语音通信的开放性全球规范,它可以随时随地用无线接口来代 替有线电缆连接,具有很强的移植性,可应用于多种通信场合。因为蓝牙技 术可以方便地嵌入到单一芯片中,因此它特别适用于小型设备。 由于它可以在较短的距离内取代目前多种电缆连接方案,跨越障碍,在 各种设备之间实现方便快捷、灵活安全、低成本、小功耗的话音和数据通信, 因而蓝牙技术的出现是对传统通信和计算机终端设备通信的挑战,具有广阔 的发展前景,备受i t 行业的关注,短短几年时间,关于蓝牙技术的研究和开 发在世界范围广泛展开,并取得众多可喜成果。 目前蓝牙s i g ( s p e c i a li n t e r e s tg r o u p ) 中包括大多数著名i t 和通信 公司,如朗讯,摩托罗拉,微软等。其中爱立信,i b m ,摩托罗拉,东芝,i n t e l 等都已经推出了自己的蓝牙产品,实现了蓝牙技术产品化。国内外的许多著 名大学如美国的u c l a ,m i t ,新加坡国立大学、香港中文大学、东南大学、北 京邮电大学等都在蓝牙领域进行积极研究。目前,主要存在着两种无线通信 标准,除了s i g 制定的蓝牙协议,还有i e e e 制定的8 0 2 1 1 协议。由于这两 种标准存在部分竞争关系,在此对这两种技术作一下比较: 1 ) 对标准的支持i e e e 8 0 2 1l b 有无线以太网兼容性联盟( w e c a ) 的支 持,蓝牙有蓝牙特殊利益集团( s i g ) 的支持; 2 ) 工作频段i e e e 8 0 2 1 l b 和蓝牙都工作在2 4 g h z 频段上; 3 ) 在协议模型上i e e e 8 0 2 1 1 只规定了开放式系统互联参考模型 第一章绪论 ( 0 s i r m ) 的物理层和m a c 层,其m a c 层利用载波监听多重访问冲突避免 ( c s m a c a ) 协议,而在物理层,8 0 2 1 1 定义了三种不同的物理介质:红外线、 跳频扩谱方式( f h s s ) 以及直扩方式( o s s s ) 。8 0 2 11 支持1 11 m b s 的数据速 率,但是它只支持数据通信,要进行无线数据通信,数据设备先要安装有无 线网卡。 蓝牙技术具有一整套全新的协议,可以应用于更多的场合。蓝牙技术中 的跳频更快,因而更加稳定,同时它还具有低功耗、低代价和比较灵活等特 点。i e e e 8 0 2 1 1 b 实现的是无线计算机网络,而由蓝牙形成的网络是a d h o c 网络。 4 ) 在应用上i e e e 8 0 2 1 l b 的传输距离长、速度快,可以满足用户运 行大量占用带宽的网络操作,就像在有线局域网上一样。而蓝牙技术面向的 却是移动设备间的小范围连接,因而本质上说,它是一种代替电缆的技术。 i e e e 8 0 2 1 l b 比较适于办公室中的企业无线网络,较适合用在影像等高速 无线传输,有效距离长达1 0 0 米;而速率小于1 m b s 的蓝牙技术则可以应用 于任何可以用无线方式替代线缆的场合,适合用在手机、笔记本电脑等简易 数据传递。 从上面的比较中可以看出8 0 2 1 l b 与蓝牙既有类似的地方,也有不同之 处。由于8 0 2 1 l b 可以替代一部分蓝牙应用,因而两者出现竞争。 作为两个无线通信标准,有人认为:蓝牙已经很难成为主流技术,而 8 0 2 1 1 将会取而代之。所持的理由在于蓝牙目前所面临的主要问题:蓝牙模 块难生产,蓝牙芯片相对价格太高,全面测试( 包括一致性测试,互连测试 及性能测试) 困难。离它的设计目标差距很远,这主要源于在研究与制造技 术方面的不成熟。目前,蓝牙通常配置在高品质、高价格的移动电话以及汽 车上。而8 0 2 1 l b 则是在以太网基础上无线扩展,在研发与制造方面更具有 优势。 蓝牙设计的首要目标是替代电缆,而8 0 2 1 l b 首要目标则是用无线互连 取代传统的网络,其次才是商业和消费应用,在技术上更具有可扩展性。蓝 牙是先确定了应用方向,后尽可能寻找现有技术,但现在的问题是受限于技 术的集成;而8 0 2 1 l b 则相反,现在的问题是盈利模式并不清晰。 我们认为蓝牙与8 0 2 1 l b 并不是一种非彼即此的竞争关系,而是一种相 辅相成的合作关系。我们可以从各厂商对两种标准实际支持来看:英国c s r 公司发布了基于蓝牙规范1 2 的蓝牙芯片,微软在w i n d o w sx p 中同时支持蓝 牙与8 0 2 1 l b ,i n t e l 最近收购了能够把两种技术结合到一个芯片组的 m o b i l i a n 公司,德卅i 仪器推出了解决蓝牙8 0 2 1 l b 相互干扰的b r f 6 1 5 0 。从 第一章绪论 蓝牙芯片的出货量上看,虽然没有出现预料的那样爆炸性增长,但仍然在快 速增长。 考虑到若要使开发出的蓝牙协议象t c p i p 协议那样成为蓝牙技术的通用 通讯协议,就需要将该协议运行在一个通用的系统环境下。 面向对象的分析与设计是当前软件开发中相当流行的开发方法,并且已 经有了许多成功的应用和实践。标准建模语言( u m l ) 是一种通用的可视化建 模语言,用于对软件进行描述、可视化处理、构造和建立软件系统的文档。 本课题就是在上述背景下提出的。本课题采用面向对象思想,应用u m l 建模技术,目标是开发出蓝牙协议栈中的l 2 c a p 协议软件。 1 2 课题研究内容及技术路线 为了实现蓝牙的互操作性,s i g 发布了蓝牙协议规范。s i g 虽然制定出了 详细的蓝牙技术规范,但是却没有对蓝牙技术在实现上进行说明。因此若想 将蓝牙协议真正应用到实际产品中去,就必须将蓝牙技术规范中描述的功能 加以实现。 到目前为止,已有的蓝牙芯片只集成了无线和基带功能,链路管理层的 功能既可以由蓝牙芯片实现也可以由软件来实现,而其他高层协议还不能通 过硬件实现,所以实现蓝牙协议体系中的其他高层协议,研制出符合蓝牙互 操作性标准的蓝牙协议栈是蓝牙产品开发的关键。 本课题的研究内容是:根据蓝牙协议规范,研制出蓝牙协议栈中l 2 c a p 协议。 主要包括: 1 ) l 2 c a p ( 逻辑链路控制与适配协议) 的功能实现; 2 ) 诸多蓝牙标准实现中的问题。 采用的基本技术路线是:利用面向对象的分析和设计思想,采用u m l 建 模技术,基于l i n u x 操作系统,使用c + + 语言对l 2 c a p 协议进行了开发。通过 单元测试、集成测试以及确认测试,被开发得l 2 c a p 协议软件能够实现蓝牙 的协议要求。 本文主要从软件角度对蓝牙协议( 主要是针对l 2 c a p 协议) 进行探讨。 第一章绪论 1 3 本论文内容安排 具体内容安排如下: 第一章,介绍了课题研究的背景与内容; 第二章,介绍了蓝牙协议栈体系结构以及体系结构中各层协议的简介; 第三章,对统一建模语言u m l 进行简单介绍; 第四章,对l 2 c a p 协议及运行进行分析; 第五章,介绍了u m l 设计和实现l 2 c a p 协议; 第六章,实验与测试。 最后,总结与展望。 第二章蓝牙协议的体系结构 第二章蓝牙协议的体系结构 2 1 蓝牙协议的体系结构 蓝牙技术属于一种低功耗、短距离的无线连接技术,可实现设备间的无线 连接和接入数据网的功能。蓝牙系统采用g f s k 调制,抗信号衰落的性能较好; 采用快跳频和短包技术以减少同频干扰,保证传输的可靠性;使用2 4 g h z 的 i s m 频段,无需申请许可证。蓝牙的调制信号速率为l m b s ,以时分方式进行 全双工通信( t d d ) ,其基带协议是电路交换和分组交换的组合。蓝牙系统通 信半径通常小于l o m ,但如果增加发射功率,可以将半径扩展到l o o m 。 完整的蓝牙协议包括蓝牙专利协议( 如链路管理器协议( l m p ) 和逻辑链 路控制及适配协议( l 2 c a p ) ) 和非专利协议( 如对象交换协议( o b e x ) 和用 户数据报协议( u d p ) ) 。设计协议和协议栈的主要原则是尽可能利用现有的 各种高层协议,保证现有协议与蓝牙技术的融合以及各种应用之间的互通性, 充分利用兼容蓝牙技术规范的软硬件系统。蓝牙技术规范的开放性保证了设备 制造商可自由地选用其专利协议或常用的公共协议,在蓝牙技术规范基础上开 发新的应用。蓝牙协议栈如图l 所示。 暖1 薤瑶锛议援 第二章蓝牙协议的体系结构 蓝牙协议栈中的协议按s i g ( s p e c i a li n t e r e s tg r o u u p ) 的需要可分为 四类: 1 ) 核心协议:基带( b a s e b a n d ) ,链路管理器( l m p ) ,逻辑链路控制和 适配协议( l 2 c a p ) ,服务发现协议( s d p ) ; 2 ) 电缆替代协议:串行仿真协议( r f c 0 删) ; 3 ) 电话传送控制协议:t c s - b i n ,a t 指令集; 4 ) 可选协议:p p p 、u d p t c p i p 、o b e x 、w a p 、w a e 、o b e x 、v c a r d v c a l 。 除上述协议层外,规范还定义了主机控制器接口( h c i ) ,它为基带控制 器、连接管理器、硬件状态和控制寄存器提供命令接口。h c i 位于l 2 c a p 的底 层,但h c i 也可位于l 2 c a p 的上层。蓝牙核心协议由s i g 制定的蓝牙专利协议 组成,绝大部分蓝牙设备都需要核心协议( 加上无线部分) ,而其他协议根据 应用的需要而定。较典型的应用有拨号网络、无线耳机、局域网访问、文件传 输等。总之,电缆替代协议、电话控制协议和被采用的协议在核心协议基础上 构成了面向应用的协议。 2 2 蓝牙协议各层简介 1 ) 基带协议( b a s e b a n d ) 基带协议确保网内各蓝牙设备单元之间由射频构成物理连接。蓝牙的射频 系统是一个跳频系统,其任一分组在指定时隙、指定频率上发送;它使用查询 和寻呼来同步不同设备间的频率和时间。基带提供两种物理连接方式:面向连 接( s c o ) 和无连接( a c l ) ,而且在同一射频上可实现多路数据传送。a c l 适 用于数据业务,s c o 适用于语音业务。所有语音与数据分组都附有不同级别的 前向纠错( f e c ) 或循环冗余校验( c r c ) ,而且可以加密。此外,不同数据类 型( 包括控制信息) 都分配一个独立通道。 面向连接的语音业务只需经过基带传输,而不到达l 2 c a p 协议,因而语音 模式在蓝牙系统内相对简单。 2 ) 链路管理协议( l m p ) 链路管理协议负责蓝牙各设备之问连接的建立和设置。它控制连接的发 起,交换,核实;进行身份验证和加密;通过协商确定基带数据分组的大小; 它还控制无线设备的节能模式、工作周期及微微网内设备单元的连接状态。 3 ) 逻辑链路控制与适配协议( l 2 c a p ) 逻辑链路控制和适配协议( l 2 c a p ) 是数据链路层的一部分,它处于基带 层协议的上一层,并与蓝牙服务发现协议( s d p ) 、r f c o m i 、电话控制( t c s ) 第二章蓝牙协议的体系结构 等其他上层通信协议之间存在通信接口,如图1 所示。 逻辑链路控制与适配协议( l 2 c a p ) 的运行分析将在第四章里详细阐述。 4 ) 服务发现协议( s d p ) 服务在蓝牙技术框架中起到至关重要的作用,它是所有用户模式的基础。 使用服务发现协议,可以查询到设备信息和服务类型,从而在蓝牙设备之间建 立相应的连接。 5 ) 电缆替代协议( r f c o 删) 电缆替代协议是基于e t s l0 7 1 0 规范的串行仿真协议。r f c o m m 在 l 2 c a p 协议上仿真r s 2 3 2 控制和数据信号,为使用串行线传送机制的上层协 议( 比如:p p p ) 提供服务。 第三章统一建模语言u m l 第三章统一建模语言u m l 3 1 通用建模语言u m l 基础 面向对象的分析与设计( o o a & d ) 方法的发展在8 0 年代末至9 0 年代中出现 了一个高潮,u m l 是这个高潮的产物。它不仅统一了b o o c h 、r u m b a u g h 和 j a c o b s o n 的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受 的标准建模语言。 1 9 9 4 年1 0 月,g r a d yb o o c h 和j i mr u m b a u g h 开始致力于这一工作。他们 首先将b o o e h 93 和o m t 一2 统一起来,并于1 9 9 5 年1 0 月发布了第一个公开版 本,称之为统一方法u mo 8 ( u n i t i e dm e t h o d ) 。1 9 9 5 年秋,o o s e 的创始人 i v a rj a c o b s o n 加盟到这一工作。经过三人的共同努力,于1 9 9 6 年6 月和1 0 月分别发布了两个新的版本,即u m l0 9 和u m l0 9 1 ,并将u m 重新命名为 u m l ( u n i f i e dm o d e l i n gl a n g u a g e ) 。1 9 9 6 年,一些机构将u m l 作为其商业策略 已日趋明显。u m l 的开发者得到了来自公众的正面反应,并倡议成立了u m l 成 员协会,以完善、加强和促进u m l 的定义工作。当时的成员有d e c 、h p 、i l o g i x 、 i t e l l i c o r p ,i b m ,i c o nc o m p u t i n g ,m c is y s t e m h o u s e ,m i c r o s o f t ,o r a c l e , r a t i o n a ls o f t w a r e 、t i 以及u n i s y s 。这一机构对u m l1 0 ( 1 9 9 7 年1 月) 及 u m l1 1 ( 1 9 9 7 年1 1 月1 7 日) 的定义和发布起了重要的促进作用。 u m l 是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶 入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对 象的分析与设计,还支持从需求分析开始的软件开发的全过程。在美国,截止 1 9 9 6 年1 0 月,u m l 获得了工业界、科技界和应用界的广泛支持,已有7 0 0 多个 公司表示支持采用u m l 作为建模语言。1 9 9 6 年底,u m l 已稳占面向对象技术市 场的8 5 ,成为可视化建模语言事实上的工业标准。1 9 9 7 年1 1 月1 7 日,o m g 采 纳u m l1 1 作为基于面向对象技术的标准建模语言。u m l 代表了面向对象方法 的软件开发技术的发展方向,具有巨大的市场前景,也具有重大的经济价值和 国防价值。 作为一种建模语言,u m l 的定义包括u m l 语义和u m l 表示法两个部分。 1 ) u m l 语义:描述基于u m l 的精确元模型定义。元模型为u m l 的所有元 素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义 第三章统一建模语言u m l 上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外u m l 还支持 对元模型的扩展定义。 2 ) u m l 表示法:定义u m l 符号的表示法,为开发者或开发工具使用这些图 形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应 用级的模型,在语义上它是u m l 元模型的实例。 标准建模语言u m l 的重要内容可以由下列五类图( 共9 种图形) 来定义: 第一类是用例图,从用户角度描述系统功能,并指出各功能的操作者。 第二类是静态图( s t a t i cd i a g r a m ) ,包括类图、对象图和包图。其中类 图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、 依赖、聚合等,也包括类的内部结构( 类的属性和操作) 。类图描述的是一种静 态关系,在系统的整个生命周期都是有效的。对象图是类图的实例,几乎使用与 类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不 是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对 象图只能在系统某一时间段存在。包由包或类组成,表示包与包之间的关系。 包图用于描述系统的分层结构。 第三类是行为图( b e h a v i o rd i a g r a m ) ,描述系统的动态模型和组成对象 间的交互关系。其中状态图描述类的对象所有可能的状态以及事件发生时状态 的转移条件。通常,状态图是对类图的补充。在实用上并不需要为所有的类画 状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状 态图。而活动图描述满足用例要求所要进行的活动以及活动问的约束关系,有 利于识别并行活动。 第四类是交互图( i n t e r a c t i v ed i a g r a m ) ,描述对象间的交互关系。其中 顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时 显示对象之间的交互:合作图描述对象间的协作关系,合作图跟顺序图相似,显 示对象问的动态合作关系。除显示信息交换外,合作图还显示对象以及它们之 间的关系。如果强调时间和顺序,则使用顺序图:如果强调上下级关系,则选择 合作图。这两种图合称为交互图。 第五类是实现图( i m p l e m e n t a t i o nd i a g r a m ) 。其中构件图描述代码部件 的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一 个二进制部件或一个可执行部件。它包含逻辑类或实现类的有关信息。部件图 有助于分析和理解部件之间的相互影响程度。 配置图定义系统中软硬件的物理体系结构。它可以显示实际的计算机和设 备( 用节点表示) 以及它们之问的连接关系,也可显示连接的类型及部件之间 的依赖性。在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元 第三章统一建模语言u m l 的对应关系。 从应用的角度看,当采用面向对象技术设计系统时,首先是描述需求:其次 根据需求建立系统的静态模型,以构造系统的结构:第三步是描述系统的行为。 其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图( 包含 包) 、对象图、组件图和配置图等五个图形,是标准建模语言u m l 的静态建模 机制。其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态 或交互关系。它包括状态图、活动图、顺序图和合作图等四个图形,是标准建 模语言u m l 的动态建模机制。因此,标准建模语言u m l 的主要内容也可以归纳 为静态建模机制和动态建模机制两大类。 标准建模语言u m l 的主要特点可以归结为三点: 1 ) u m l 统一了b o o c h 、o m t 和o o s e 等方法中的基本概念。 2 ) u m l 吸取了面向对象技术领域中其他流派的长处,其中也包括非o o 方 法的影响。u m l 符号表示考虑了各种方法的图形表示,删掉了大量易引起混乱 的、多余的和极少使用的符号,也添加了一些新符号。因此,在u m l 中汇入了面 向对象领域中很多人的思想。这些思想并不是u m l 的开发者们发明的,而是开 发者们依据最优秀的0 0 方法和丰富的计算机科学实践经验综合提炼而成的。 3 ) u m l 在演变过程中还提出了一些新的概念。在u m l 标准中新加了模板 ( s t e r e o t y pe s ) 、职责( r e s p o n s i b i l i t i e s ) 、扩展机制( e x t e n s i b i l i t y m e c h a n i s m s ) 、线程( t h r e a ds ) 、过程( p r o c e s s e s ) 、分布式( d i s t r i b u t i o n ) 、 并发( c o n c u r r e n c y ) 、模式( p a t t e r n s ) 、合作( c 0 1 1 a b o r a t i o n s ) 、活动图 ( a c t i v i t yd i a g r a m ) 等新概念,并清晰地区分类型( t yp e ) 、类( c l a s s ) 和实例 ( i n s t a n c e ) 、细化( r e f i n e m e n t ) 、接口( i n t e r f a c e s ) 和组件( c o mp o n e n t s ) 等 概念。 3 2u m l 开发过程分析 当前存在多种开发软件的方法。其中,r u p ( r a t i o n a lu n i f i e dp r o c e s s ) 是相当流行的软件开发过程。本文使用r u p 方法开发蓝牙协议栈中的l 2 c a p 协议软件。具体工作流程包含以下步骤: 需求分析。需求分析得到所有重要的用例( u s ec a s e ) ,并将这些用例和 它们之间的关系通过用例图描述出来; 问题域分析。问题域分析找出包含在l 2 c a p 设计和开发问题域中所有重要 的类和对象的静态模型和动态模型。此外,问题域分析还包括找出对应类和对 象的行为以及相应的数据结构等; 第三章统一建模语言u m l 设计阶段。此阶段包含对软件的体系结构的设计以及用于具体实现l 2 c a p 协议的详细设计。在这个阶段下列问题应被考虑:提供给管理员的用户接口; 用于存储信息( 连接个数等) 的数据库组件; 实现和测试。实现和测试包含通过模拟蓝牙协议栈的下层和上层协议,测 试l 2 c a p 协议功能的实现是否与需求一致。 第四章l 2 c a p 协议分析及运行分析 第四章l 2 c a p 协议分析及运行分析 4 1l 2 c a p 协议分析 逻辑链路控制与适配协议( l 2 c a p ) 是蓝牙系统中的核心协议,是基带的 上层协议,可以认为它与u v i p 并行工作。它们的区别在于当业务数据不经过 l m p 时,l 2 c a p 为上层提供数据服务,允许上层协议和应用层协议收发大小为 6 4 k 的l 2 c a p 数据包。 l 2 c a p 通过协议多路复用、分段重组( s a r ) 操作、服务质量和组的概念, 向上层提供面向连接的和无连接的数据服务。基带定义了两种链路类型:同步 面向连接链路( s c o ) 和异步无连接链路( a c l ) 。l 2 c a p 只支持异步无连接链 路( a c l ) ,不支持同步面向连接链路( s c 0 ) ,因为s c o 链路主要用预留的带宽 进行实时语音传输,并且在a c l 链路上禁止使用a u x l 分组。 从图2 可以看出,l 2 c a p 层与上下协议层之间的操作: 1 ) 请求1 : 2 ) 请求2 : 3 ) 指示1 : 4 ) 指示2 : 5 ) 应答1 : 图2l 2 c a p 与其他协议层之间的通信 本地上层对本地l 2 c a p 层发出请求; 本地l 2 c a p 层对本地下层发出请求; 远端下层向远端l 2 c a p 层发出指示; 远端l 2 c a p 层向远端上层发出指示; 远端上层向远端l 2 c a p 层发出应答; 第四章l 2 c a p 协议分析及运行分析 6 ) 应答2 :远端l 2 c a p 层向远端下层发出应答; 7 ) 确认1 :本地下层向本地l 2 c a p 层发出确认; 8 ) 确认2 :本地l 2 c a p 层向上层发出确认。 a c l 有效载荷的格式如图3 所示。二者的唯一差别是长度段的大小,分组 类型用于区分单时隙分组和多时隙分组。基带根据2 位的l - c h ( l o g i c a l c h a n n e l ) 。标志来区分l 2 c a p 或l m p 包。l m p 包的l _ c h 为1 l ,而l 2 c a p 包的 lc h 为0 1 ( 起始包) 、l o ( 后续包) 。1 位的流标志由链路控制器( l c ) 管理。 该标志位缺省值为1 ,表示正常传输;如果该标志位为0 ,则意味着不再有l 2 c a p 包会在该a c l 链路上传输。 匡三臣匝 ( a ) 单时隙分组 ( b ) 多时隙分组 4 2l 2 c a p 协议的功能 4 2 1 协议复用 图3a c l 有效载荷格式 l 2 c a p 通过定义信道来支持多协议复用功能。信道和协议间是多对一映 射。一个协议可用于多个信道,而一个信道只能采用一个协议。和l 2 c a p 接口 的通信协议有s d p 、r f c o m m 和t c s ,因为蓝牙基带协议不能识别所有类型的上 层协议,所以l2 c ap 必须能够在上层协议间区分出s d p 、r f c o m m 和t c s 等 通信协议,并正确地收发相应的数据包。 4 2 2 分组的分段与重组 与其他有线的物理连接相比,蓝牙基带包的大小有一定的限制,最大的基 第四章l 2 c a p 协议分析及运行分析 带包只能传输3 4 1 字节的信息,而这限制了上层协议有效地利用带宽以传输更 大的数据包。l 2 c a p 允许上层和应用层协议收发最大为6 4 k b 的l 2 c a p 数据包, 所以l 2 c a p 必须在传往基带前将该包进行分段,以适应基带的要求。在发送之 前,较大的l 2 c a p 包必须分成多个较小的基带包。同样,在接收端,基带收到 的多个较小的包后首先要进行组合和进行完整性检查,之后再送到上层。基带 为了支持具有较大包的协议绝对需要s a r 功能。 4 2 3 服务质量 l 2 c a p 连接建立过程允许交换服务质量( q o s ) 信息。因此每个蓝牙节点 必须进行资源的监视,以便向协议提供可靠的q o s 信息。 4 2 4 组管理 很多协议包括组地址的概念。蓝牙协议支持微微网p i c o n e t 的概念,即一 组采用同一个时钟的多个同步跳频设备。l 2 c a p 的组抽象功能可以高效的将协 议组映射到微微网p i c o n e t ,以避免上层协议为了有效地管理组而必须与基带 协议直接联系。值得注意的是,l 2 c a p 只是利用基带的机制来提供可靠的信道, 其本身不提供任何重传和校验功能,它能正确地传送包也是建立在基带能有序 地传送同一包的不同分组基础上的。如果没有组的抽象,就必须存在上层与基 带以及链路管理功能的接口,以便有效的管理。 4 3 蓝牙协议流程分析 4 3 1 协议设计基本思路 蓝牙协议栈的设计目标之一就是向高层应用程序提供一个a p i 接口支持, 而网络a p i 的标准形式就是向用户提供一个套接口,而在下面的蓝牙协议栈流 程分析中,涉及到了套接口编程,因而在这儿简单介绍一下。 用户在编写网络应用程序时,一定离不开套接口。在l i n u x 下,所有的 i 0 操作都是通过文件系统的进行的,即对一个由操作系统提供的文件描述符 进行读写操作。文件描述符是一个和打开的文件相关联的整数,这个文件并不 第四章l 2 c a p 协议分析及运行分析 只包括真正存储在磁盘上的文件,还包括一个网络连接、一个命名管道、一个 终端等。 套接口的存在,为用户编写网络应用程序提供了极大的方便。这时,编写 一个网络应用程序与编写一个一般应用程序并没有什么本质的不同。但是由于 一个网络应用至少需要两个进程合作才能完成一个通信,所以一般都采用客户 机服务器方式,因此对于网络应用的客户端与服务器端设计还是有一定的模 式。使用套接口编写网络应用的流程图如图4 所示: s e r v e r r e c v m s g 图4套接口编程流程图 套接口( s o c k e t ) 系统调用说明如下: 1 ) s o c k e t ( ) :创建s o c k e t ( 对用户程序而言,s o c k e t 就是打开一个特殊的 文件) ,在参数指定通信域( 即地址族和协议族) ,s o c k e t 类型,s o c k e t 使用的协议; 2 ) b i n d ( ) :指定s o c k e t 地址( 包括本地主机地址和本地端口地址) ; 3 ) l i s t e n ( ) :设定为服务器端s o c k e t ; 4 ) a c c e p t ( ) :接受连接请求。在服务器端被动通过a c c e p t ( ) 接受来自客 户端的连接请求。实际上,对a c c e p t0 的调用是阻塞性的。 5 ) c o n n e c t ( ) :请求连接。只有客户端才可以通过c o n n e c t ( ) 向一个服务器 端s o c k e t 提出连接请求。 6 ) s e n d m s g ( ) :发送报文; 7 ) r e c v m s g ( ) :接收报文; 8 ) s e l e c t ( ) :检测s o c k e t 状态( 支持输入输出复用) ; 第四章l 2 c a p 协议分析及运行分析 9 ) c l o s e ( ) :关闭s o c k e t ; 蓝牙协议栈在l i n u x 中是一种网络接口子系统,属于系统程序。作为一个 系统程序,尤其是内核代码的设计,函数之间经常没有明显的调用与被调用关 系,许多函数属于系统回调函数( 即函数是由内核进行调用的) 。设计的系统 程序并不能单独运行,必须与内核的其他部分才能协调工作,这就要求在这两 者之间设计精良的标准接口以满足通信的需要。 在l i n u x 内核设计中经常采用抽象接口( a b s t r a c ti n t e r f a c e s ) 技术将 其接口抽象化。接口是以特定方式工作的一系列例程和数据结构。采用抽象接 口技术实现了软件分层,这样就可以用通用的代码层来使用底层特殊代码所提 供的服务( 接口) 。 通常这些底层在启动时向高层登记。这个登记过程常通过在链接表中增加 一个数据结构来实现。登记所用的数据结构通常包括指向函数的指针。这是执 行特定任务的软件函数的地址。当外界中断或者用户程序请求发生时,l i n u x 进入内核状态,调用注册的接口函数进行响应。 作为系统服务的蓝牙协议软件设计,也主要分为初始化部分和服务器部分 ( 等待请求,响应中断) 。初始化部分主要完成设备检查,申请资源( 比如内 存,中断,i 0 端口等) ,相应数据结构的初始赋值,以及完成接口函数的注 册等。服务器部分主要完成的任务是:内核根据外部请求( 比如:中断) ,调 用相应的注册函数来提供所需要的服务支持。图4 显示了蓝牙协议栈在l i n u x 下的实现的层次结构图。 工具 a p p l i c a t i o n s ilb c r k l e y l s o c k e t i n t e r f a c e i h c i 协议l 2 c a p 协议s c o 协议 : p m o 。0 1 p “e n a c 。i c o r e ;d r i v e r;i n t e r f a c e; v h c iu a r tu s bd r i v e r其它d r i v e r d r i v e l ed r i v e t h o s tc o n t r p l l e r i n t e r l a c e ,h f lz b l u e t o o t hh a r d w a r e 图5蓝牙协议栈在l i n u x 中的实现 通过前面的分析可知协议软件分为初始化与服务器两部分。由于服务器部 第四章l 2 c a p 协议分析及运行分析 分是由内核驱动的,因而文中将内核与协议软件的协同工作统一进行分析。本 节通过用户数据在协议中的处理过程来分析协议是如何运行的。 4 3 2 套接字的建立 在数据发送之前,要先建立一个套接字( s o c k e t ) ,会调用如下类似语句: e t l = s o c k e t ( a f _ b l u e t o o t h ,s o c k _ r a w ,b t p r o t o _ h c i ) ; 这是个系统调用,因此会通过o x 8 0 中断进入系统内核,调用内核中的相 应函数。对应一般系统调用在内核中的对应例程,就是在系统调用名称i i i 加 “s y s ”的函数( 比如f i o r k ,就是调用s y s 。但是 相关调用有些特f o r k ) s o c k e t 殊,所有的这类调用都是通过一个入口,即s y ss o c k e t c a l l 进入系统内核,然 后再通过参数调用具体的s y ss o c k e t ,s o c k e t等函数。bind s y s会调用产生一个结构_socket s o c kc r e a t es t r u e ts o c k e t ( i n c l u d e l i n u x n e t h ,具体定义后面会详述) ,每个s o c k e t 在内核中都有一个 这样的结构对应,在初始化了此结构的一些通用成员后( 如分配i n o d e 等) , 会根据第一个参数作相应的调度( 即下旬) ,来完成整个s o c k e t 系统调用: n e t _ f a m i l i e s f a m i l y - c r e a t e ( s o c k ,p r o t o c 0 1 ) : n e tf a m i l i e s 是在n e t s o c k e t c 中系统定义的一个静态指针数组,用来存储 所支持的所有协议栈。 目前在l i n u x 下的网络a p i 是基于b s d 套接口的。套接口是网络编程中 一个非常重要的概念,l i n u x 以文件的形式实现套接口,与套接口相应的文件 属于s o c k f s 特殊文件系统。创建一个套接口就是在s o c k f s 中创建一个特殊文 件,并建立起为实现套接口功能的相关数据结构。 由于套接口在文件系统中的特殊性,需要对s o c k 作个简单的说明。每个 套接口都有一个s o c k e t 数据结构,同时还有一个s o c k 数据结构,后者是前者 的扩充,两者间是一对一的对应关系。在s o c k e t 结构中有一个指针指向其所 对应的s o c k 结构,而在s o c k 结构中也有一个指针指向其所对应的s o c k e t 结构。 如果说s o c k e t 结构是面向进程和系统调用的,与文件系统关系比较密切,那 么s o e k 结构就是是面向底层驱动程序的,与通信关系比较密切。 在实际的设计中,一个协议栈一般包含许多协议,而协议是分层的,每一 个协议都有可能使用另一个协议所提供的服务。针对蓝牙协议栈而言,就包括 主机控制器接口( h c i ) ,逻辑链路控制和适配协议( l 2 c a p ) ,电缆替代协 议( r f c o m m ) 等多种协议j 。作为一个蓝牙应用,可能只需要其中的几 第四章l 2 c a p 协议分析及运行分析 个协议就可以正常工作。但作为系统而言,却需要提供尽可能多的协议服务以 满足用户不同的蓝牙应用。因此一方面需要利用系统服务向系统注册所设计的 蓝牙协议栈,另一方面又需要实现对各层蓝牙协议的管理。利用在n e v s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 渠道修理及维护工职业技能资格知识考试题与答案
- 帮困助学资助协议书
- 扬尘治理费用协议书
- 扶贫房屋改造协议书
- 扶贫衣物寄送协议书
- 批量商铺运营协议书
- 找转让店铺合同范本
- 承包小区会所协议书
- 承包挖荒山合同范本
- 承包水田旱地协议书
- 2025年中国加固计算机行业市场全景分析及前景机遇研判报告
- 健康管理职业导论教学课件
- DBJT15-211-2021 回弹法检测泵送混凝土抗压强度技术规程
- 医院感染工作课件
- 日本孟盆兰节介绍
- 中国人民银行数字货币研究所2024年度公开招聘工作人员笔试备考题库附答案详解
- 2025年国才考试试题及答案中级
- 2025年车辆营运考试题库
- 拒绝课间打闹班会课件
- VW-60211-2013-内螺纹密封试验要求(CH)
- 四川省建设工程施工现场安全资料管理标准
评论
0/150
提交评论