(通信与信息系统专业论文)蓝牙语音接入系统的设计与实现.pdf_第1页
(通信与信息系统专业论文)蓝牙语音接入系统的设计与实现.pdf_第2页
(通信与信息系统专业论文)蓝牙语音接入系统的设计与实现.pdf_第3页
(通信与信息系统专业论文)蓝牙语音接入系统的设计与实现.pdf_第4页
(通信与信息系统专业论文)蓝牙语音接入系统的设计与实现.pdf_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

摘要 蓝牙技术是一种小范围无线传输系统,具有自动接入可移动网络、抗干扰性 强、性价比高、体积小及功耗低等优点,它尤其在语音方面性能表现突出,因而 成为无线耳机和无线手持终端的首选解决方案。 为解决使用廉价的v o i p ( v o i c eo v e ri n t e r a c tp r o t o c 0 1 ) 网络电话所造成的移 动限制问题,本文通过m s n s k y p c q q - - - 款聊天软件提供的v o i p 语音服务,引入 蓝牙技术作为语音无线传输,设计和开发了手机蓝牙v o i p 语音接入系统。 论文首先分析和设计了目标系统的应用模型和软件结构,确定了系统包含两 个部分的工作:基于p c 的蓝牙协议栈开发和基于s y m b i a no s 手机平台的蓝牙耳机 应用开发。在基于w i n d o w s 平台的蓝牙协议栈方面,提出了一种实时性高、扩展性 强、结构清晰、实现简单的蓝牙协议栈实现方案,设计实现了协议栈的部分协议 和模块,包括u s b 驱动堆栈模块、基于h c i ( h o s tc o n t r o l l e ri n t e r f a c e ) 层的事务管 理模块和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 np r o t o c 0 1 ) 协议;另一方面, 在s y m b i a n 手机平台上开发了适用于n o k i an 7 0 系列手机的蓝牙应用程序。最后, 论文测试与评估了整合后的p c 、手机和市售耳机之间的互通性和操作性。测试的 结果表明提出的蓝牙协议栈方案达到了预期的要求,目标系统是可实现的,其语 音质量达到了g s m 网络水平。 关键词:蓝牙耳机协议v o i ps y m b i a n 手机平台 a b s t r a c t b l u e t o o t hi sat e c h n o l o g yf o rs h o r t d i s t a n c ew i r e l e s sa c c e s sw i t l le x c e l l e n t p e r f o r m a n c e i th a sm a n ya d v a n t a g e ss u c ha sh i g hi n t e r f e r e n c er e j e c t i o n , l o w - c o s ta n d l o w - p o w e r , e l c r e c e n t l y v o i p ( v o i c eo v e r1 p ) h a sb e e nu s e dw i d e l yf o ri t sf r e eo r l o w c o s t i no r d e rt oe l i m i n a t ei t sl i m i t a t i o no nm o v a b i l i t y , b l u e t o o t hi sa p p l i e da s w i r e l e s sa u d i ot r a n s m i s s i o nt od e s i g na n dd e v e l o pas m a r tp h o n eb i u e t o o t hv o i pa u d i o a c c e s ss y s t e m t h e t a r g e ts y s t e mi sa n a l y z e da n dd e s i g n e di ng e n e r a la tf i r s t t h e r ea l et w op a r t s i nt h es y s t e m ,o n ei st od e v e l o pab l u e t o o t hs t a c ko nw i n d o w sp l a t f o r m ,a n dt h eo t h e r i st od e v e l o pab l u e t o o t hh e a d s e ta p p l i c a t i o no ns y m b i a no sp l a t f o r m f o rw i n d o w s p l a t f o r m ,an e w b l u e t o o t hs t a c ks o l u t i o ni sp r o p o s e da n ds o m eo fm o d u l e sh a v eb e e n r e a l i z e db yo b j e c t - o r i e n t e dm e t h o d t h e ya r eu s bd r i v e rs t a c k ,e v e n tm a n a g e m e n t c o m p o n e n t s o nh c il a y e ra n dl 2 c a pp r o t o c 0 1 f o rs y m b i a no sp l a t f o r m ,a d o w n l o a d a b l eb l u e t o o t hh e a d s e ta p p l i c a t i o no nn o k i an 7 0s m a r tp h o n ei sd e v e l o p e da s w e l l f i n a l l y ,t h ep r o c e d u r e sa n d r e s u l t so fi n t e r o p e r a b i l i t yt e s ta m o n gp c ,h e a d s e ta n d n o l 【i an 7 0s m a r tp h o n ea r es h o w nr e s p e c t i v e l y i th a sp r o v e dt h ep r o p o s e ds o l u t i o ni s e f f i c i e n ta n da p p l i c a b l e m o r e o v e r ,t h et a r g e t s y s t e mh a ss a t i s f i e d a l le x p e c t e d r e q u i r e m e n t s k e y w o r d s :b l u e t o o t h h e a d s e tp r o t o c o lv o i ps y m b i a n 独创性( 或创新性) 声明 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 本人签名日期盈! :竖 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内 容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后 结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。 ( 保密的论文在解密后遵守此规定) 本学位论文属于保密,在一年解密后适用本授权书。 本人签名 导师签名 妞 丝 日期堡2 :型 日期型2 型 第一章绪论 第一章绪论 1 1 蓝牙技术概述 蓝牙技术源自1 9 9 4 年爱立信移动通信部门研究的在移动电话机及其附件之间 实现低功耗、低成本无线接口的可行性,鉴于对该技术乐观的市场前景,爱立信 命名其为蓝牙( b l u e t o o t h ) ,随后于1 9 9 8 年5 月联合诺基亚、英特尔、i b m 和东 芝成立了蓝牙特别兴趣小组( b l u e t o o t hs p e c i a li n t e r e s tg r o u p ,b l u e t o o t hs i g ) ,负 责蓝牙技术标准的制定和产品测试,并协调各国蓝牙的具体使用。 蓝牙技术是一种无线数据与语音通信的开放性全球规范,其实质内容是要建 立通用的无线电空中接口( r a d i oa i ri n t e r f a c e ) 及其控制软件的公开标准,使不同 厂家生产的便携式设备在没有电线或电缆相互连接的情况下,能在近距离范围内 具有相互操作的性能( i n t e r o p e r a b i l i t y ) 。蓝牙技术简化了小型网络设备( 如移动 p c 、掌上电脑、手机) 之间以及这些设备与i n t e r n e t 之间的通信,免除了在无绳电 话或移动电话、调制解调器、头戴式耳机、p d a 、计算机、打印机、投影仪、局 域网等之间加装电线、电缆和连接器。除此之外,蓝牙技术还为己存在的数字网 络和外设提供通用连接以组建一个微微网( p i e o n e t ) ,再由多个独立的非同步的 微微网组成一个独立的散网( s e a n n e m e t ) 。在微微网内部,只有一个主单元,其 他从单元最多7 个,主单元利用其自身的时钟和跳频序列同步其他的从单元。微微 网内部的各设备之间依据一个3 位二进制的活动成员地址来相互区分,散网中各微 微网之间通过不同的时钟和跳频序列相互区分n 1 。 自1 9 9 9 年7 月s i g 公布了蓝牙规范1 0 版以来,蓝牙技术以其在语音方面的优良 性能和自动接入可移动网络、抗干扰性强、性价比高、体积小及功耗低等优点得 到了迅猛发展,几乎覆盖全球各行业。s i g 着眼于全球的发展与应用,先后于2 0 0 1 年4 月公布蓝牙1 1 版,2 0 0 3 年1 1 月公布1 2 版,2 0 0 4 年1 1 月公布2 0 + e d r 版。 在蓝牙未来发展的过程中仍将受到以下4 个方面因素的制约比1 : ( 1 ) 互操作性,由于蓝牙协议的不完善性,而且不同厂商对协议的理解误差, 因而造成开发出来的芯片或者协议栈无法互通。 ( 2 ) 干扰问题,蓝牙工作的免费i s m 频段将受到8 0 2 1 l b 、h o m e r f 以及其他 家用电器,无绳电话、遥控器、微波炉、医疗器械甚至国防设备的干扰。 ( 3 ) 数据速率,蓝牙的速率从最初1 0 版本的1 m b p s 提升到了2 o + e d r 版本的 3 m b p s ,但仍不能满足用户对视频业务的需求。 ( 4 ) 安全问题,蓝牙在其标准中采取了诸如快速跳频、鉴权、加密等安全措 施,但仍有一些漏洞存在。譬如蓝牙只对设备鉴权,不对用户鉴权。 2 蓝牙语音接入系统的设计与实现 随着以上问题的进一步解决以及人们对蓝牙技术的正确定位,蓝牙势必会逐 渐渗透到我们生活的各个方面。 1 2 课题的提出及意义 近年来,基于v o i p 的廉价网络电话节省了昂贵的通话费用,但其缺点之一在 于用户必须坐在计算机旁通话,这种移动限制造成很多不便。针对这种电缆束缚, 课题要求开发一个手机蓝牙v o i p 语音接入系统,即利用一款蓝牙手机获得个人电 脑上m s n s k y p e q q 聊天软件的用户列表,并选择某个好友进行v o i p 语音通话。 目标系统期望给用户带束更大的便利和自由,由于蓝牙技术覆盖面很广,包 括很多先进的通信和网络软件技术,技术上的复杂性决定了实现蓝牙协议是一项 复杂的工程。目前,没有公开的基于w i n d o w s 平台的h c i 层以上的协议栈源码可供 参考,因而有必要对蓝牙核心协议栈进行深入研究。 1 3 论文的主要工作 本文依据系统的要求从大的方面对手机蓝牙v o i p 语音接入系统进行分析和设 计,在p c 端蓝牙协议栈方面,提出了一种实时性高、扩展性强、结构清晰、实现 简单的w i n d o w s 平台实现方案,设计并实现了协议栈的部分协议和模块,包括u s b 驱动堆栈模块、基于h c i 层的事务管理模块和l 2 c a p 协议;在手机端方面,实现了 基于s y m b i a n 手机平台的蓝牙耳机应用程序。最后,测试与评估了整合后的p c 、手 机和市售耳机之间的互通性和操作性。 论文按照项目分析和解决的全过程进行编排,将各章节内容安排如下: 第一章:介绍本文课题的研究背景、目的及意义。 第二章:基于蓝牙耳机框架的v o i p 语音接入系统部分。在对项目可行性分析 的基础上,设计和论证了系统的实现方案;阐述了蓝牙耳机框架规范及其在通用 访问框架中的互操作过程。 第三章:基于p c 端的蓝牙协议栈部分。详细分析了本文所完成的u s b 驱动 堆栈、基于h c i 层的事务管理模块和l 2 c a p 层协议的实现方法和技术细节;介绍 了协议栈其他组件模块的基本功能及其整合的要点。 第四章:s y m b i a n 手机平台的耳机应用部分。研究了在s e r i e s6 0s d k 中开发、 下载、调试蓝牙手机应用程序的方法。 第五章:系统测试部分。介绍了p c 端与市售蓝牙耳机的互操作性测试过程和 手机v o i p 语音接入系统的整合及测试过程。 第二章基于蓝牙耳机框架的v o i p 语音接入系统 第二章基于蓝牙耳机框架的v 0 ip 语音接入系统 本章介绍如何针对课题要求设计应用模型,分析技术要求,确定实现方案。 通过可行性分析,确定利用一款可开发的n o m an 7 0 蓝牙手机通过m s n s k y p c q q 三款聊天软件提供的v o i p 语音服务,设计和实现手机蓝牙v o i p 语音接入系统。 2 i 系统功能要求及分析设计 课题期望利用一款蓝牙手机获得个人电脑上m s n s k y p e q q 聊天软件的用户 列表,并选择某个好友进行v o i p 语音通话。如图2 1 所示,课题要求手机i 与手机2 之间不通过常规的移动基站,而是利用接在互联网上两台p c 上特定物理接口的蓝 牙模块,实现v o i p 语音呼叫、消息收发等功能。 i n t e r n e t 乡 p c m s n s k y p e q q 功堡旦 蓝才模块3 图2 iv o i p 语音接入模型 根据市售蓝牙手机本身已经支持的应用框架,本文选择了蓝牙耳机框架作为 本系统的应用模型:p c 端的蓝牙协议栈和手机端均实现语音网关和耳机的功能。 为了减少系统的局限性,系统应能够和市售的蓝牙耳机保持良好的互通性。根据 系统功能要求确定了如下几个关键部分的可行性: ( 1 ) m s n s k y p c q q 公共应用程序接口( a p i :a p p l i c a t i o np u b l i ci n t e r f a c e ) 的 可用性,经调查这三款聊天软件均可供第三方应用程序使用,都能够实现聊天软 件的启动、关闭,用户列表获得,网络消息收发,电话拨打,语音输入输出设置 等功能,从而可以轻松使用这些软件提供的v o i p 服务。 ( 2 ) 语音转发的可实现性,由于m s n s k y p e q o 均提供其语音输入输出设备 的设置,因此为获得m s n s k y p e q q 的语音,只需要在w i n d o w s 系统中开发一个虚 拟声卡驱动作为蓝牙语音和聊天软件语音的转换器,就可实现v o i p 语音向蓝牙 p c m 语音的过渡。 ( 3 ) 蓝牙手机开发平台的选型,通过对市面上各款蓝牙手机及其开发平台的 对比,最终选择在比较成熟的s y m b i a n 手机开发平台上开发手机应用程序。这里考 4 蓝牙语音接入系统的设计与实现 虑到手机的受话器和听筒的语音数据流是否支持软件导向蓝牙模块。 ( 4 ) 个人电脑蓝牙接口的选择,四种主要的物理接口有通用串行总线u s b , 串行端口r s 2 3 2 ,通用异步收发器u a r t 和个人计算机存储卡p c m c i a 。考虑到蓝 牙语音速率的要求( r s 2 3 2 ,u a r t 均不能满足8 位语音的传输速率) 和易用性, 本文选择蓝牙u s b 适配器作为p c 端的蓝牙发射设备。为此需要在w i n d o w s 系统中 开发一个u s b 驱动,用于上层协议l 2 c a p 与蓝牙u s b 适配器之间的h c i 层命令与数 据交互。 ( 5 ) 语音质量和实时性方面的要求,鉴于m s n s k y p e q q 聊天软件具有不同 的语音速率和编码方式,同时蓝牙的空中接口只支持6 4 k b p s 的同步语音,故本文 统一转换成适合蓝牙u s b 适配器输入的8 位非线性p c m 编码。 ( 6 ) 蓝牙功率优化,蓝牙本身具有低功耗的特点,进一步减少功耗主要在协 议上采取自适应的方法来使蓝牙在满足正常工作的前提下功耗最低,为此要在软 件层从以下两个方面实行电源管理: 通过检测蓝牙芯片的射频信号强度来做自适应调整发射功率大小。 在蓝牙核心协议上做优化处理,减少通信双方协商时间,根据当前用户操 作状态自适应调节蓝牙芯片的工作模式。 在蓝牙协议栈的实现上通常有三种模型,取决于产品所具有的不用功能和资 源,图2 2 所示依次为:寄居式、嵌入式和完全嵌入式口】。 应用程序 、 s d pr f c o m m l 2 c a p h c i 、主机 物理接刮l 7 主机控制器固件 、 链路管理器 链路控制器 无线电 、蓝牙芯片 寄居式 芯片上的底层栈 主机上的高层栈 应用程序 、主机么, 物理接叫b 链接管理器 s d pr f c o m m l 2 c a p 链路管理器 链路控制器 尤线电 、蓝牙芯片 嵌入式 芯片上的完全栈 主机上的应用层 应用稃序 、 s d pr f c o m m l 2 c a p 链路管理器 链路控制器 无线电 j 牙芯片 完全嵌入式 芯片上的协议栈和 应用程序 图2 2 蓝牙协议栈实现模型 在寄居式模型中,底层栈位于蓝牙设备中,而高层栈位于主机中。它们通过 h c i 接口进行通信,该接口形成了协议栈上下层之间的桥梁,其两种常见的物理传 输方式是u a r t ( h 4 ) 和u s b ( h 2 ) 。寄居式模型最适合于已经具有强大的主机 第二章基于蓝牙耳机框架的v o i p 语音接入系统 处理器和足够内存的应用,诸如蓝牙u s b 适配器、p c m c i a 卡,c f 卡、高密度快 闪记忆卡、v 9 0 调制解调器、i n t e m e t 网关和p c 主板。 嵌入式模型中,整个协议栈都位于蓝牙设备中,而用户程序则单独运行在主 机上。这个模型对智能手机、售票或贩卖机以及p c 外设等处理能力和可用内存都 很有限的设备来说是理想的选择。 在完全嵌入式模型中,整个协议栈和用户程序都在蓝牙设备中。由于蓝牙设 备中内存资源有限,所以应用程序相对简单。该模型最好的例子就是蓝牙耳机应 用,它不需要进行复杂处理,所以整个蓝牙协议栈都可以在蓝牙芯片内的单个微 处理器上运行。 基于以上分析,设计如图2 3 所示的系统软件结构:在p c 端的蓝牙高层协议与 蓝牙u s b 适配器组成寄居式模型,而蓝牙手机则属于嵌入式模型。 p c 端软件结构手机端软件结构 语 音 m s n s k y p e q qv o i p 应用 广1 i 死而酉 r f c o m ms d p l 2 c a p u s b 驱动 鬲磊了酉磊磊 u s b 同件 一革 蓝牙耳机框架 自定义协议控制 s d p| r f c o m m l 2 c a p l m p 语 音 b a s e b a n d & l i n kc o n t r o l l e r r a d i o 蓝牙u s b 适配器 图2 3v o i p 语音接入系统软件结构框图 p c 端与蓝牙u s b 适配器基于h c i 接口进行通信,通过与手机端软件结构对比, 图中虚线所示部分完成了主机p c 与外部蓝牙u s b 适配器在l 2 c a p 与l m p ( l i n k m a n a g e r p r o t o c 0 1 ) 层之间的h c i 接口过渡。p c 端基于v i s u a lc + + 6 0 开发,由于h c i 层以上的协议没有公开的代码可供参考,故需要自行设计协议栈并实现。手机端 有s y m b i a n 平台封装好的蓝牙相关接口供第三方用户直接开发应用层程序,故只需 要熟悉s y m b i a n 平台应用程序结构及开发流程,因而实现手机端程序相对p c 端来说 要简单得多。在协议的实现上与一般的协议之间的通信概念和机制相同:层内通 信依据本层的协议规定进行交互,层间通信使用请求、确认、指示、响应四种原 语实现。层内与层间通信依据信道状态机进行协调。 基于以上分析,系统主要任务是基于w i n d o w s 平台和s y m b i a no s 手机平台进 行蓝牙协议栈和相关驱动的软件开发。为此需要进行以下两个方面的工作: 6 蓝牙语音接入系统的设计与实现 ( 1 ) 基于p c 的w i n d o w s2 0 0 0 x p 平台开发蓝牙核心协议栈、m s n s k y p e q q 接口程序、蓝牙u s b 驱动和虚拟声卡驱动,最后根据蓝牙耳机框架和自定义应用 协议实现p c 端服务。 ( 2 ) 基于手机的s y m b i a no s 平台开发手机端应用程序。 2 2 蓝牙耳机框架介绍 蓝牙规范( s p e c i f i c a t i o n ) 包括协议规范( p r o t o c 0 1 ) 和应用框架( p r o f i l e ) 两 个部分。蓝牙耳机框架属于应用框架部分,其在协议规范的基础上定义了实现耳 机应用模型所涉及的各层协议的具体功能要求以及之间的运转协同机制。 2 2 1 蓝牙协议规范体系结构 蓝牙协议规范定义了蓝牙各层的通信协议工作方式,其分为四类: ( 1 ) 核心协议:b a s e b a n d ,l m p ,l 2 c a p ,s d p ; ( 2 ) 电缆替代协议:r f c o m m ; ( 3 ) 电话传送控制协议:t c sb i n a r y ,a t 命令集; ( 4 ) 可选协议p p p ,u d p t c p i p ,o b e x ,w a p , v c a r d , i r m c ,w a e ,a v d t p 等。 h e a d s e t j 旺五赢五丽订厂_ 西面瓦石 n 币7 万磊磊司 高层应用协议层 二二二二= :曼堑塑坐墨型! 】 图2 4 蓝牙协议栈结构 整个蓝牙协议体系包括底层硬件协议层、中间传输协议层和高层应用协议层 三大部分。如图2 4 所示,底层硬件协议层由链路管理层( l m ) 、基带层( b b ) 和射频( r f ) 构成。中间传输协议层包括逻辑链路控制与适配协议( l 2 c a p ) 、 服务发现协议( s d p ) 、串口仿真协议( r f c o m m ) 和电话控制协议规范( t c s ) 。 在蓝牙协议栈的最上部是各种高层应用框架,包括拨号网络( d i a l u p n e t w o r k i n g ) 、 耳机( h e a d s e t ) 、局域网访问( l a na c c e s s ) 、文件传输( f i l et r a m f e r ) 等。 第二章基于蓝牙耳机框架的v o i p 语音接入系统 在这个分层模式的蓝牙协议结构中,主机控制接口( h c i ) 为上层协议提供了 一个高层l 2 c a p 管理控制链路管理和基带的过渡接口,根据蓝牙协议具体应用环 境的不同,它可以位于l 2 c a p 之下,也可以为与其之上拍1 。 蓝牙核心协议包括以下六个部分: ( 1 ) 基带和链路控制协议( b a s e b a n d & l i n kc o n t r 0 1 ) 基带和链路控制层( b b & l c :b a s e b a n d & l i n kc o n t r 0 1 ) 确保微微网内各蓝牙设 备单元之间由射频构成的物理连接。其提供两种物理连接方式:面向连接( s c o : s y n c h ro n o u sc o n n e c t i o n - o r i e n t e d ) 和无连接( a c l :a s y n c h r o n o u sc o n n e c t i o n l e s s ) , 而且可实现多路数据传送。a c l 根据带宽情况进行动态信道分配,适用于数据业 务;s c o 用预留的时隙带宽进行数据传输,具有较好的实时性,适用于话音及话 音与数据的业务。 ( 2 ) 连接管理协议( l m p ) 连接管理协议( l m p :l i n k m a n a g e r p r o t o c 0 1 ) 负责蓝牙链路的建立和管理工作。 包括链接的发起,交换、核实、进行身份验证和加密,通过协商确定基带数据分 组大小和分组重发延时等。同时还控制硬件设备的电源节能模式( 保持、休眠、 呼吸和活动) 和工作周期。 ( 3 ) 主机控制接口( h c i ) 主机控制器接口( h c i :h o s tc o n t r o l l e ri n t e r f a c e ) 是蓝牙协议中软硬件之间的 接口,负责上层的软件协议与下层b b 、l m p 等硬件协议之问的通讯。它对上层协 议提供了下层b b 、l m p 、状态和控制寄存器等硬件的统一命令接口。h c i 以上的 协议软件实体运行在主机上,其以下的协议一般由蓝牙设备硬件来完成,二者之 间通过一个对两端透明的传输层进行交互。 ( 4 ) 逻辑链路控制和适配协议( l 2 c a p ) 逻辑链路控制适配层协议( 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 nl a y e r p r o t o c 0 1 ) ,是一个为高层传输层和应用层协议屏蔽基带协议的适配协议。它在唯 一的a c l 链路基础上对信道进行逻辑划分,从而为高层的多个不同协议( s d p 、 r f c o m m 、t c s ) 提供同等质量的数据服务。 ( 5 ) 服务发现协议( s d p ) 服务发现协议( s d p :s e r v i c ed i s c o v e r yp r o t o c 0 1 ) 是基于l 2 c a p 协议上的所有 同等协议之间彼此查询、访问的手段。由服务发现获得设备信息和服务信息,并 依此来建立与对等服务间的链接。 ( 6 ) 电缆替代协议( r f c o m m ) 电缆替代协议是基于欧洲电信标准协会的技术标准( e t s it s ) 0 7 1 0 的一个串 口仿真协议。它在l 2 c a p 逻辑信道上仿真r s 2 3 2 串口,用于保证蓝牙技术与现有 技术的融合以及各种应用之间的互通性。 蓝牙语音接入系统的设计与实现 2 2 2 蓝牙耳机框架的约束 蓝牙耳机应用框架定义了一套基本协议标准实现互操作性的约束,是蓝牙协 议规范的垂直切片组合。其通过以下三种措施保证互操作性“: ( 1 ) 减少协议选择和缩小协议中参数范围 ( 2 ) 规定程序组合的顺序 ( 3 ) 定义统一的用户应用交互过程 蓝牙耳机框架( h e a d s e tp r o f i l e ) 所依赖的框架有通用访问接入框架 ( g a p :g e n e r i ca c c e s sp r o f i l e ) 、服务发现应用框架( s d a p :s e r v i c ed i s c o v e r y a p p l i c a t i o n p r o f i l e ) 和串行端口框架( s p p :s e r i a l p o r t p r o f i l e ) 。如图2 5 所示,g a p 是所有应用框架的基础,其定义了两个蓝牙单元发现对方并建立a c l 物理链接的 操作。s d a p 作为一个单独的体系,在g a p 基础上完成服务注册、发现、查询等功 能。s p p 也在g a p 基础上提供端到端r f c o m m 连接服务,用于传送拨打、挂断、 音量调节等控制信息的a t 命令。 通用访祠接入框架 门羁弼羽啊丽 框架 j 图2 5蓝牙框架间关系图”1 g a p 、s d a p 和s p p 对其所依赖的协议都进行了功能约束,从总体上来看,耳 机框架需要用到的蓝牙协议如图2 4 q b a t 命令部分所示,包括h c i 、l 2 c a p 、s d p 和r f c o m m 协议,使用这些协议主要目的是为耳机应用框架提供一个发送控制信 息的可靠r f c o m m 信道。 2 2 3 蓝牙耳机框架的角色与功能及互操作过程 耳机应用工作时总是以语音网关( a g :a u d i og a t e w a y ) 和耳机( h s :h e a d s e t ) 成对出现,其q j a g 是语音信号的控制器和网关,h s 是远程音频输入输出设备。它 第二章基丁蓝牙耳机框架的v o i p 语音接入系统 9 们既可以作服务端( s e r v e r ) 又可以作客户端( c l i e n t ) 。服务端是提供服务的设 备,其拥有一个服务属性记录供客户端查询并连接;客户端具有主动性,其主动 链接服务端并使用其上的服务,同时客户端也可提供一定的服务,供服务端或其 他设备查询并连接。一般说来,若p c 作a g ,手机为h s 时,p c 可以主动连接手机 并进行配对;若手机作a g ,p c 为h s 时,用户可以利用手机主动连接p c 并进行配 对。 若a g ( 客户端) 想要使用h s ( 服务端) 所提供的服务就要经历通用访问框 架( g a p ) 中所描述的以下互操作过程: ( 1 ) 查找设备查询( i n q u i r y ) a g 查询h s 的蓝牙地址,h s 处于可被发现状态( 查询扫描状态) 。 ( 2 ) 连接设备寻呼( p a g e ) a g 利用h s 的蓝牙地址寻呼h s ( h s 处于寻呼扫描状态) 。由于现行耳机通 用的安全模式为3 ,故当h s 收到a g 的链接请求时,会对a g 发起鉴权,若鉴权 成功,则a c l 物理链路就能成功建立了,随后就可以进行s d p 查询并访问相关服 务。 ( 3 ) 搜索服务s d p a g 端发送s d p 请求,收到h s 端的s d p 服务器响应后,就可以确认h s 是否 真的支持第( 1 ) 步查询中所获得的蓝牙设备类所描述的服务,同时也可以得知连 接耳机服务的r f c o m m 信道号。 ( 4 ) 连接服务r f c o m m a g 通过r f c o m m 协议连接到h s 服务记录中的r f c o m m 信道号( d l c i ) , 一旦r f c o m m 信道建立并开始通信,就可以使用a t 命令来发送控制消息了。a g 通过a t + r i n g 通知h s 来电,h s 收到呼叫请求后,如果同意就返回一个a t + c k p d = 2 0 0 。a g 收到h s 的肯定指示后,就可以建立一条s c o 链路用于语音通话了。 若h s 支持远程音量控制,可以通过相应的a t 命令调节音量的大小。最后h s 若 想断开语音连接,只需再次发送a t + c k p d = 2 0 0 拆除s c o 链路( a g 收到命令后 断开s c o 链路) 。 2 3 小结 本章从系统的角度介绍了基于蓝牙耳机框架的手机蓝牙v o i p 语音接入系统 的设计思路,在对项目可行性分析的基础上,设计和论证了系统的实现方案。根 据方案需求介绍了常用的蓝牙耳机框架规范,并分析了通用访问框架中的互操作 过程。 第三章基于p c 端的蓝牙协议栈 第三章基于p c 端的蓝牙协议栈 p c 端蓝牙协议栈的设计基础源自c s r 公司c a s i r a 开发包中提供的一个简单的 b l u c c h a t 例子程序,该例子展示了一个简单的基于h c i 层的聊天和文件传输方法。 由于其采用层层传递的方式递交h c i 层分组,因而对事件的响应不具实时性。 本文采用了例子中将物理接口统一的思想,基于w i n d o w s 操作系统的特点设 计并实现了收发两个或两个以上任务的同步协议栈方案,该方案采用两个独立的 任务进行收和发,接口以同步方式实现。发送时,上层直接调用下层协议的接口: 接收时,分别有多个线程对数据进行接收,并通过回调函数通知上层相关事件。 此方案减少了各层协议任务的上下文切换次数,对外部信息具有较快的响应速度。 但由于协议栈不是处于一个任务的上下文中,为防止程序死锁,需建立互斥区; 同时各层采用的直接调用使任务的堆栈比较深,从而消耗了更多的内存n 1 。 p c 端协议栈软件结构如图3 1 所示。蓝牙协议栈b l u e s t a c k 利用u s b 驱动模 块与蓝牙u s b 适配器进行h c i 层指令、事件和数据交互。l 2 c a p 、s d p 和r f c o m m 模块基于h c i a c l 分组为蓝牙耳机应用框架和自定义控制信令提供a t 命令通道。 a c l & s c o 链路管理模块保证蓝牙a c l 和s c o 链路的建立、拆除。安全管理模块 完成不同安全需求的用户对链路信息的加密和认证管理。在实际进行语音通话时, 虚拟声卡及音频驱动模块作为h c is c o 分组和m s n s k y p e q q 语音的转换桥梁。 通过以上这些模块的划分使协议栈结构清晰简单,方便了系统整合和测试。另外, 蓝牙协议栈与u s b 驱动分开的结构保证了程序的稳定性,不会因为底层硬件故障 而使蓝牙堆栈崩溃。 聊天软件接口a p i + 蓝牙耳机应用框架和自定义控制信令 l l u e s t a c k 千 之乒乏宝 安全管理模块 s d pr f c o m m 零 j 虚拟声卡及 a c l & s c o 链路管理模块 羝登 l il a h c l 命令封装与事件拆解模i f c ic l u f c ic o u s b 驱 控点 h c i 事组h c i 命 点c l ac组 图1p c 端软 同点c is c 1 2 蓝牙语音接入系统的设计与实现 图3 1 中各模块功能如下: u s b 驱动模块:基于蓝牙u s b 接口核心规范1 1 版,用于p c 与蓝牙u s b 适配 器之间的h c i 层分组交互。 h c i 命令封装与事件拆解模块:对h c i 接口的1 0 0 多条h c i 指令封装以及3 0 多 条h c i 事件拆解,便于h c i 层以上其他模块调用和事件的及时反馈。 l 2 c a p 模块;基于唯一的a c l 链路,为上层r f c o m m 、s d p 模块提供逻辑 上的可靠信道。 s d p 模块:基于l 2 c a p 提供的逻辑信道为耳机应用完成简单的服务注册和查 询功能。 r f c o m m 模块:基于l 2 c a p 提供的逻辑信道为耳机应用提供a t 命令通道。 a c l & s c o 链路管理模块:对a c l 和s c o 链路的建立、拆除进行管理。 安全管理模块:基于蓝牙安全规范,有选择地为上层应用提供三种安全模式。 虚拟声卡及音频驱动模块:通过对物理声卡的模拟,以获得p c 应用程序和 聊天软件的音频流,并进行相应转换。 蓝牙耳机应用框架和自定义控制信令模块:用于保持与市售耳机良好互操作 性的同时,实现对聊天软件接口a p i 的控制。 聊天软件接 = i a p i :聊天软件提供的公共应用程序接口,包括语音聊天操作、 即时消息收发、好友列表获得、振铃声音设置、语音输入输出设置等。 在以上模块中s d p 、r f c o m m 模块由项目中其他两位同学实现,具体细节可 参考文献 1 6 1 1 7 ,下面就本人完成的u s b 驱动堆栈、基于h c i 层的事务管理模 块( h c i 命令封装与事件拆解模块、a c l & s c o 链路管理模块、安全管理模块) 和l 2 c a p 协议的基本原理、技术细节以及协议中从高层到底层数据传送递交的机 制和模块间的协调方法等做详细介绍。同时,针对此系统的语音导向的关键性, 还将简要介绍虚拟声卡和聊天软件接口部分的整合方法及要点。 3 1u s b 驱动模块 u s b 驱动模块的主要任务是将蓝牙u s b 底层固件和p c 端h c i 层之间提供透明 的数据通道。该模块中数据传送方式依据蓝牙u s b 规范中的定义进行。模块分为 驱动程序和驱动堆栈两个部分: ( 1 ) 驱动程序是利用w i n d o w s 驱动开发工具依据蓝牙u s b 规范开发的设备类 驱动,其在w i n d o w s 设备管理器中可以手动卸载和安装。为使不同制造商制造的蓝 牙u s b 适配器互相协同工作,s i g $ 0 定了蓝牙u s b 规范用于约束u s b 总线上数据的 收发规则,厂商可以根据蓝牙u s b 规范编写自己的驱动程序。 第三章基于p c 端的蓝牙协议栈 ( 2 ) 驱动堆栈是指利用驱动程序提供的i o 控制字为w i n d o w s 应用程序服务,通 常一个蓝牙应用软件能够支持多种物理接口,因而有必要设计一个堆栈将各种物 理接口向上层提供的服务以统一的接口形式呈现。倘若只有一款u s b 驱动程序, 则可将驱动堆栈与h c i 层合并成一层。 在驱动程序方面,本文使用t c s r 公司c a s i r a 开发包中提供的c s ru s b 驱动。 在驱动堆栈方面,本文将h c i 层与u s b 驱动堆栈分开实现。蓝牙u s b 规范规定, u s b 控制端点用于配置和控制u s b 设备,还可以用于允许主机向蓝牙u s b 适配器发 送h c i 命令,块端点用于接收h c i 层a c l 数据,中断端点用于传送h c i 事件,同步 端点则传送h c i 层s c o 分组啪1 。每个u s b 块传输的a c l 分组总为6 4 个字节。s c o 分组大小会随着s c o 链路的个数( 最多3 条) 的增加而增大,同时s c o 链路的个数 也是u s b 驱动确定占用总线带宽大小的依据。 根据h c i 层数据的特点,本文使用文献【3 0 】中的i v t ( c s r ) u s b 驱动控制字和 d c v i c c l o c o n t r o l 方法实现以下接口: ( 1 ) 通过控制端点发送h c i 命令( i o c t lc s r b c 0 1s e n dh c ic o m a n d ) d e v i e e l o c o n t r o l ( h a n d l e ,i o c t l _ c s r b c 0 1 一s e n d h c i c o m a n d ,b u f f e r , l e n g t h ,0 , 0 ,& w r i t t e n ,& o v e r l a p p e d ) ; 其中h a n d l e 为i v t ( c s r ) u s b 驱动的设备句柄。o v e r l a p p e d 方法是w i n d o w s 提 供的一种同步机制,通过初始化一个事件,操作系统会在i o 操作成功后将激活事 件并通知主程序,从而不用等待i o 完成就可以在第一时间作出对事件的响应。 ( 2 ) 通过中断端点接收h c i 事件( i o c t lc s r b c o lb l o c kh c ie v e n t ) d e v i c e l o c o n t r o l ( h a n d l e ,i o c t l _ c s r b c 0 1 - b l o c k h c ie v e n t , b u f f e r , l e n g t h , 0 , 0 ,& w r i t t e n ,& o v e r l a p p e d ) ; 在此需要开启一个线程监视事件分组,线程中根据h c i 事件分组中长度字段来 判断是否已经从u s b 驱动中读取到一个完整的h c i 事件分组,然后递交给上层处 理。这个递交过程可以采用继承类来实现,但这样使得层之间的界限模糊,这里 采用回调函数的方法,为此则需要为上层提供设置回调函数入口的函数接口。 例如:v o i du s b s t a c k :s e t e v t c a l l b a c k ( v o i d ( + f u n c ) ( v o i d ,u n s i g n e dl o n g ,v o i d ) , v o i d + c o n t e x t ) ; 其中函数指针f u n c l ! p 为处理h c i 事件的入口地址。 ( 3 ) 通过块端点发送和接收h c i 层a c l 分组 发送a c l 分组: w i n d o w s a p i 函数w r i t e f i l e ( h a n d l e ,d a t a ,l e n g t h ,& w r i t t e n & o v e r l a p p e d ) 。 心 接收a c l 分组( i o c t lc s r b c 0 1b l o c k a c ld a t a ) : d e v i c e l o c o n t r o l ( h a n d

温馨提示

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

最新文档

评论

0/150

提交评论