(通信与信息系统专业论文)蓝牙车载免提系统的开发及其跳频算法的研究.pdf_第1页
(通信与信息系统专业论文)蓝牙车载免提系统的开发及其跳频算法的研究.pdf_第2页
(通信与信息系统专业论文)蓝牙车载免提系统的开发及其跳频算法的研究.pdf_第3页
(通信与信息系统专业论文)蓝牙车载免提系统的开发及其跳频算法的研究.pdf_第4页
(通信与信息系统专业论文)蓝牙车载免提系统的开发及其跳频算法的研究.pdf_第5页
已阅读5页,还剩78页未读 继续免费阅读

(通信与信息系统专业论文)蓝牙车载免提系统的开发及其跳频算法的研究.pdf.pdf 免费下载

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

文档简介

蓝牙车载免提系统的开发 及其跳频算法的研究 r 摘要心蓝牙是一种短距离的无线通信,它可以实现短距离数据和语音的无线传输, 为人们提供了方便。本文以作者在m o t o r o l a 所做的项目蓝牙车载免提系统为基础,对整个 蓝牙的软件协议栈的运行以及蓝牙应用的实现作了一个详细的分析,给出了蓝牙开发的思 v 想。最后对蓝牙的核心技术之一跳频技术作了研究。j 本文共分五章。第一章为综述,介绍了蓝牙的发展和趋势,以及与无线局域网的另个 标准8 0 2 u b 进行了比较。第二章阐述了一般蓝牙系统的软件体系的结构,并且详细讨论了 整个蓝牙协议栈的运行过程。第三章探讨了蓝牙系统的硬件构架,各种可行的蓝牙硬件结构 方案以及它们各自的优劣。第四章特别针对本文作者所参与的项目蓝牙h a n d f r e e ,分析了 一般蓝牙应用的原理与实现过程。第五章研究了蓝牙基带层的跳频方案并给出了跳频仿真的 结果。 关键词:蓝牙,车载免提,音频网关,锄致协议栈,硬件驱动程序,协寒,应用模型 煞 浙江大学硕士毕业论文 t h e d e v e l o p m e n t o fb l u e t o o t hh a n d f r e ea n d t h er e s e a r c ho fi t sh o p a l g o r i t h m 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 yo fc l o s ed i s t a n c e i tc a l l p r o v i d ep e o p l ec o n v e n i e n c et h r o u g h w i r e l e s st r a n s m i s s i o no f t h ed a t aa n dv o i c eo f n e a rd i s t a n c e t h i sp a p e ri sb a s e do nt h ep r o j e c to fb l u e t o o t hh a n d f r e et h a tt h ea u t h o rh a v ep a r t i c i p a t e di n m o t o r o l aa n da n a l y s e st h eb l u e t o o t h p r o t o c o l s t a c k s r u n n i n ga n dt h ei m p l e m e n t a t i o n o f b l u e t o o t ha p p l i c a t i o ni nd e t a i l i tg i v e st h em e t h o do f d e v e l o p i n gb l u e t o o t ha p p l i c a t i o nf i n a l l y r e s e a r c ho n eo f t h ek e yb l o e t o o t ht e c h n o l o g yo f h o p a l g o r i t h m t h i sp a p e ri sc o n s i s to ff i v ec h a p t e r s _ _ t h ef i r s tc h a p t e ri sas u m m a r i z a t i o na n di n t r o d u c e st h e d e v e l o p m e n ta n dt r e n do fb l u e t o o t h i tc o m p a r e st h eb l u e t o u t ha n da n o t h e rw i r e l e s sl o c a la r e a n e t w o r k s s t a n d a r do f8 0 2 1 l b i nt h es e c o n dc h a p t e r , t h es o f t w a r es t r u c t u r eo ft h e g e n e r a l b l u e t o o t hs y s t e mi sd e s c r i b e da n dd i s c u s s e st h eb l u e t o o t hp r o t o c o ls t a c k sr u n n i n gp r o c e d u r e i n t h et h i r dc h a p t e r ,t h eh a r d w a r ef r a m eo ft h eb l u e t o o t hs y s t e mi sd i s c u s s e da n dg i v e st h ed i f f e r e n t f e a s i b l eb l u e t o o t hh a r d w a r es c h e m e sa n dt h e i re a c he x c e l l e n c ea n dd i s a d v a n t a g e i nt h ef o r t h c h a p m r b a s e do nt h ep r o j e c to fh a n d f r e et h a tt h ea u t h o rh a v ep a r t i c i p a t e di n ,a n a l y s e st h e m e c h a n i s ma n di m p l e m e n t a t i o no f g e n e r a lb l u e t o o t ha p p l i c a t i o n i nt h ef i f d ac h a p t e r ,r e s e a r c ht h e h o ps c h e m eo f t h eb l u e t o o t hb a s e b a n dp a r ta n dg i v eo u tt h er e s u l to ft h ee m u l a t i o no fh o p a l g o r i t h m k e y w o r d s :b l u e t o o t h ,h a n d f r e c ,a gh o p , p r o t o c o ls t a c k ,h a r d w a r ed e v i c e d f i v e r e m u l a t i o n ,p r o f i l e ,p o r t i n g - 2 浙江大学硕士毕业论文 第一章绪论 1 。1 蓝牙发展概况 蓝牙技术是1 9 9 4 年由爱立信公司最先提出的一种短距离无线通信,那时爱立信移动通 信正开始研究用无线来代替有线连接他们的移动手机和附加设备。这项研究直接看上了无线 发射连接,在手机和附加设各之间使用无线发射比红外连接有着明显的优点,正是由于这项 研究直接产生了蓝牙无线规范。【3 】 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 s i g ) 。其后,微软、3 c o m 、朗 讯、摩托罗拉和原有的五家公司一起成为蓝牙特别兴趣小组的九个领导成员,共同致力于在 全球范围内将此项技术标准推向市场。 尽管蓝牙从确立技术标准到商业化已有数年发展时间,但由于应用层面有限、不同产品 互连兼容性差,使得它在短距离无线通信领域的发展势头远不如w l a n 强劲。不过,蓝牙 芯片制造商们表明,如果蓝牙芯片价格滑落至5 美元以下,蓝牙产品将开始流行。而且,它 将给近距离通信带来一场革命,是种真正可实现廉价无线网络的方案。 1 。2 蓝牙技术的特点和应用 蓝牙作为一个全球公开的无线应用标准,是通过无线链路把各种语音和数据设备连接起 来,使人们能随时随地进行数据信息的交换与传输。有了它,人们可以彻底摆脱各种设备的 连线,只靠一块芯片就可以实现控制,它是一个极其有用的网络技术。 蓝牙将i s m 频段分成7 9 个频道,在这些频道之间以伪随机的方式每秒转换1 6 0 0 次, 比其它跳频系统要快得多,跳频是蓝牙的核心技术之一,也是蓝牙的一个决定性的优势。 蓝牙的实质是建立通用的无线电空中接口及其控制软件的公开标准。蓝牙采用分散式网 络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用的2 4 5 g h z i s i v i ( 即工业、科学、医学) 频段。其数据速率为1 m b p s 。采用时分双工传输方案实现全 双工传输,具有很好的可靠性。并且,蓝牙提供了几个层次的系统安全:首先是每个蓝牙单 5 - 浙江大学硕士毕业论文 元拥有一个全球唯一的4 8 位物理地址,数据只能由对应的蓝牙单元接收;其次,蓝牙提供 了基于8 - 1 2 8 位密钥的数据加密机制,保证数据传输的可靠性。蓝牙单元的数据加密密钥的 长度是可配置的,长度为8 - 1 2 8 位,并由生产厂商在出厂前指定,用户无法指定密钥的长度。 蓝牙的上述特点决定了它拥有广泛的应用,在不久的将来蓝牙技术将无处不在。 1 替代传统的数据电缆连接。从而能够有效地简化计算机产品之间,及其和外设之间 的通信。例如,移动电话和p c 间的通讯、键盘和主机间的通讯。 2 应用到各种家电产品、消费电子产品和汽车等信息家电中。为各种电子产品的网络 互连提供一种廉价而实用方案。 3 为i n t e r n e t 网提供短距离无线接入点,从而为各种电子产品溶入 n t e r n e t 提供丁方 便。 4 为个人局域网提供网络连接手段,个人身上佩戴的各种电子设备,如移动电话、寻 呼机、掌上电脑、耳机等,可通过蓝牙构成一个相对独立的个人局域网,从而使各 种设备间可以相互通信和相互利用对方的资源。 5 应用到电子商务领域,蓝牙可靠的安全特陛既可以保证通信双方的身份的可靠性, 又能保证通信数据的安全性,这一特点使得蓝牙在电子商务领域拥有很大的应用。 1 3蓝牙技术与8 0 2 1 1 的比较 无线网络的有效传输距离在2 5 0 英尺左右,不需要固定设各的具体位置,表现出很大的 优势。以蓝牙i e e e 8 0 2 1 1 等为代表的批无线网络连接技术因此正得到日益普及的应用。 下面简要比较一下无线局域网的两个标准i e e e s 0 2 1 1 b 和蓝牙之间异同,及各自的优劣。 i e e e 8 0 2 1 1 是i e e e 最初制定的一个无线局域网标准,主要用于解决办公室局域网和 校园网中,用户与用户终端的无线接入,业务主要限于数据存取,速率最高只能达到2 m b s 。 由于i e e e 8 0 2 1 1 在速率和传输距离上都不能满足人们的需要,因此,i e e e 小组又相继推 出了皿e e 8 0 2 1 1 b 和i e e e 8 0 2 1 l a 两个新标准 对比一下两种无线技术可知,蓝牙与i e e e s 0 2 1 1 b 协议都工作在2 4 g h z 同一频段,但 在速度与范围半径方面有不小的差距,i e e e 8 0 2 1 1 b 的最长资料传送距离的范围在室外为 3 0 0 米,在办公环境中最长为1 0 0 米。而蓝牙的传送距离一般是1 0 米,虽说蓝牙的优势不着 重表现在通信距离和带宽,但是作为一项被寄予厚望的技术。它理应更加完善和成熟。 i e e e 8 0 2 1 l b 采用直接序列扩频技术。最大数据传输速率为1 1 m b s ,无须直线传播。而蓝 6 - 浙江大学硕士毕业论文 牙则采用跳频技术,最大数据速率只有i m b s 。i e e e 8 0 2 1 l b 的输出功率达到1 0 0 毫瓦,而 蓝牙的输出功率只有1 毫瓦。频带内之频道数目i e e e 8 0 2 1 l b 有1 4 个,每个频道的频宽为 2 2 1 肛i z ,而蓝牙则达到7 9 个,每个频道的频宽为1 m h z 。 当它们二者在同一房间内共同工作时,由于i e e e 8 0 2 u b 标准完全没有跳频应用,它 的原理是在同一时间以几个频率发送数据,以备至少有一个拷贝能到达目标。这让8 0 2 1 l b 比一个慢速跳频系统抵抗蓝牙的能力要稍强一些。但当蓝牙芯片近旁时,8 0 2 1 l b 收发器的 性能仍会变得很差。与蓝牙相比,8 0 2 1 1 b 被设计用来在相对范围较大,速度更高一些的网 络。 据一般数据显示,这二种技术面向不同的目的,蓝牙在成本和耗电方面比i e e e 8 0 2 1 l b 有一定的优势,但它不适合在办公室无线网络中应用,它更适合于手机、无线互联网网关, 并越来越多地作为移动电话、笔记本电脑、耳机、手提计算机和其它设备的内置或外部模块 而实现蓝牙功能。 1 4本文作者所做的项目 本文作者所做的项目是蓝牙在车载免提系统上的应用,它是把h a n d s e t 的音频呼入通过 蓝牙模块的无线功能转移到车载免提系统h a n d f r e e 上,其中,h a n d s e t 在此系统中起音频 网关的作用。我们整个工作组的任务是实现上层h a n d f r e e 应用层的设计,中间软件层是把 原来面向微机的蓝牙协议栈移植到单片机上,其间要构架底层单片机m c 9 s 1 2 d p 2 5 6 的串 口驱动,存储器驱动,定时器驱动,及实现与蓝牙h c i 层的光滑连接。 此外在蓝牙免提h a n d f r e e 的对等端,利用微机模拟一个具有蓝牙功能的手机,与蓝 牙h a n d f r e e 进行无线通信,从而实现音频网关的作用。 而我在此项目中的工作是实现蓝牙协议栈的移植,把原来面向微机的蓝牙协议栈移入到 m o t o r o l a 单片机m c 9 s 1 2 d p 2 5 6 上最后研究了蓝牙基带层的跳频方案并且做了蓝牙跳频 算法的仿真。 7 - 浙江大学硕士毕业论文 第二章蓝牙的软件体系结构 2 1蓝牙协议 蓝牙技术软件文档主要包括两部分,一部分为s p e c i f i c a t i o no f t h eb l u e t o o t h s y s t e m s c o r e ) ) ,此部分对蓝牙技术的射频,基带,音频传输,h c i 接口,l m p ,l 2 c a p , s d p ,r f c o m m ,与i r d a 协议的互操作性,蓝牙产品的认证等进行了定义。另一部分 s p e c i f i c a t i o no f t h e b i u e t o o t hs y s t e m s p r o f i l e ) ) 对蓝牙的各种p r o f i l e ( 应用模型) 进行了 详细的定义。【3 8 规范中将所有的协议分四类: 1 蓝牙核心协议。基带控制部分,包括语音处理,链路管理协议( l m p ) ,逻辑链路 适配协议( l 2 c a p ) ,以及服务发现协议( s d p ) 。 2 电缆替代协议。串口仿真协议( r f c o m m ) ,基于e t s l 0 7 1 0 规范。 3电话控制协议。t c sb i n 基于u t 的q 9 3 1 规范,a tc o m m a n d s 基于i t u t 的推荐v 2 5 0 和e t s3 0 09 1 6 ( g s m 0 7 0 7 ) 规范。 4 吸收的协议,如p p p ,t c p i p ,o b e x ( 对象交换协议) ,基于红外协议栈的i r o b e x 和w a p 。 8 浙江大学硕士毕业论文 二玉巫五叵 图2 - 1标准蓝牙软件结构协议图 图2 - 1 是一般蓝牙应用中的整体软件结构图,下面将分析一下蓝牙的各个协议层的主要 作用。 2 1 1 蓝牙核心协议层 基带( b a s e b a n d ) : 基带是蓝牙的物理层,它负责管理物理信道和链路中除了错误纠正、数据处理、调频选 择和蓝牙安全之外的所有业务。基带在蓝牙协议栈中位于蓝牙无线电之上,基本上起链路控 制和链路管理的作用,比如承载链路连接和功率控制这类链路级路由等。基带还管理异步和 同步链路、处理数据包、寻呼、查询接入和查询蓝牙设备等。基带收发器采用时分复用t d d 方案( 交替发送和接收) ,因此除了不同的跳频之外( 频分) ,时间都被划分为时隙。在正常 的连接模式下,主单元会总是以偶数时隙启动,而从单元则总是从奇数时隙启动( 尽管他们 可以不考虑时隙的序数而持续传输) 。 链路管理( l m p ) : 用于管理安全、链路建立及其控制。链路管理器可以同其他链路管理器交谈以交换信 息,此外,链路管理器还可以使用某些预定义链路级命令控制通过链路管理器的消息。链路 - 9 浙江大学硕士毕业论丈 管理器对上层协议的支持有点模糊,但换个角度看,也许用上层接口来执行模式管理、安全 管理、q o s 管理等算法更好些。这些算法可以从用户那里获得输入信息。比方说,如果用 户请求某个低级操作,那么链路管理器就会和其他链路管理器交涉功率控制,这样交涉的双 方都可以根据预先设置的算法进入某种类型的低功耗模式。还有,如果通信中安全不是一个 大问题,那么用户就可以通过选择某些降低加密强度的选项来确定所采用的安全层次,然后 系统即可通知链路管理器执行该操作。 逻辑链路控制协议( l 2 c a p ) : 采用协议复用、分段和重组操作以及组抽象等方式向高层协议提供了连接和无连接数 据服务。l 2 c a p 允许高层协议和应用程序发送、接收l 2 c a p 数据包( 长度最高可达到 6 4 k b ) 。l 2 c a p 只支持a c l 链路。l 2 c a p 采用了信道的概念在蓝牙设备不同应用之间建 立不同的路径。这些信道都由信道标识符( c m ) 表示,代表设备上每个应用程序连接的逻 辑端点。c i d 是一个1 6 位长的数字,其中0 x 0 0 0 1 到0 x 0 0 3 f 一段保留给特定l 2 c a p 功能 使用( 0 x 0 0 0 1 是信令信道,0 x 0 0 0 2 是无连接接收信道,其它都被保留或者禁用) 。 l 2 c a p 主要向上层提供以下功能。 协议复用:( p r o t o c o lm u l t i p l e x i n g ) :多个高层协议共享一个公共的物理连接,从逻辑 上看每个协议都有自己的通道,但由于基带协议不能识别任何高层协议,所以l 2 c a p 必须 支持上层协议复用,它应能区别诸如s d p ,r f c o m m ,t c s 等高层协议,并正确地收发相 应的包。 分段和重组( s e g m e n ta n dr e a s s e m b l y ) :与其它有线的物理连接相比,蓝牙对基带包 的大小有一定的限制。最大的基带包只能传输3 4 1 字节的信息,而这限制了高层协议有效地 利用带宽以传输更大的包。l 2 c a p 允许高层和应用层协议收发大小为6 4 k 字节的l 2 c a p 数据包,所以,l 2 c a p 必须在传往基带前将其包进行分段,以适应基带的要求。同样的, 在接收方,l 2 c a p 必须能将多个基带包重组为一个l 2 c a p 包传往高层。如图2 - 2 所示。 1 0 浙江大学硕士毕业论文 中间传输屡 如h c i 基带包 请求方接收方 图2 2 分段和重组过程 服务质量( q o s ,q u a l i t yo fs e r v i c e ) :在l 2 c a p 建立链接的过程中允许改变两台设 备间的服务质量。每个l 2 c a p 实体应确保服务质量的实现并管理所使用的资源。 组管理( g r o u p m a n a g e r ) :很多协议支持组地址的概念,蓝牙的基带协议支持微微网, 即一组设备使用同一时钟同步跳频。l 2 c a p 的组提取功能可以有效地将协议的组映射为基 带的微微网,以避免高层协议为了有效地管理组而必须与基带协议直接联系。 l 2 c a p 只是利用基带的机制来提供可靠的信道,其本身不提供任何重传和校验功能, 它能正确地传送包也是建立在基带能有序地传送同一包的不同分组基础上的。 业务搜寻协议( s d n : s d p 协议是极其重要的部分,它提供了一种s d p 客户向s d p 服务器查询关于服务信 息的方式。服务器维护一个服务记录列表,服务记录列表描述与该服务器有关的服务的特征。 每个服务列表包括了一个服务的信息。客户端可以通过发送一个s d p 请求从服务器记录中 索取服务信息、业务及业务特征,并在查询之后建立两个或多个蓝牙设备间的连接。s d p 支持3 种查询方式:按业务类别搜寻、按业务属性搜寻和业务浏览( b r o w s i n g ) 。如图2 - 3 所示。 浙江大学硕士毕业论文 2 1 2 电缆替代协议 图2 3 服务发现协议结梅 r f c o m m 提供串口仿真,蓝牙的低层负责提供无线的连接方式,但在此之前已经存 在很多传统的应用都是基于有线方式开发的,蓝牙如果不能解决对传统协议的适配问题,就 很难成为一个广泛应用的标准。为此,蓝牙制定了象r f c o m m 的适配协议来实现对传统 应用的支持。 2 1 3 其它协议 在蓝牙协议中,还有其他一些协议,如p p p ,i p 和t c p u d p 等协议归属与t c p i p 协 议簇,已经相当成熟,并且被绝大多数操作系统实现,属于操作系统的一部分。在这儿就不 详细介绍。 应用层是针对各种应用的不同软件层,其中蓝牙p r o f i l e ( 应用模型) 部分进行了详细 的定义。并非每一个应用程序都用到协议栈中的所有协议,它们可能只运行在栈中的一个或 几个纵向的协议切片。在设计应用层的时候,应该尽可能利用现有的高层协议,而不是重复 地去创造协议。这样有助于保证应用程序之间地互操作性。 例如在我们的项目h a n d f r e e 中,建链过程走的协议栈是s d p 链路与a tc o m m a n d s 链 路,而音频走的是a u d i o 链路。 应用层进程是我们进行蓝牙应用开发的重点部分,在这章后面将以我们的项目蓝牙 h a n d f r e e 为例子详细说明一下应用层进程及其状态机的设计。 2 2协议栈的建链过程 一般的蓝牙应用建于蓝牙的软件协议栈之上,它们需要下面蓝牙协议栈提供可靠的信 - 1 2 - 浙江大学硕士毕业论文 道链路,以供它们传送信令和音频。总之,整个蓝牙协议栈的功能是为上层应用提供通信的 信道。下面详细分析一下协议栈信道链路的建立过程。 例如在h a n d f r e e 的应用中,由于a g 接收到一个呼叫,将发起与h f 的链接,并且传 输振铃信号到h f 端。这样,根据蓝牙协议栈运作,从低层到高层的建链一般要经过以下几 个过程: 1 建基带层a c l 链接 2 建l 2 c a p 层的链接。 3 进行s d p 的查询过程。 4 建r f c o m m 层的链路。 5 r f c o m m 链路建好后,将通过r f c o m m 信道传输h a n d f r e e 控制层的一些a t 命令。 6 建立s c o 链接。 7 根据应用层的动作就可以执行蓝牙h f 与a g 之间的音频通信。 下面将根据从低层到高层的顺序分析蓝牙协议栈的建链过程。 2 2 1 建基带层a c l 链路 h a n d s f r e e 湍a g 端 圈2 - 4基带层建链过程 浙江大学硕士毕业论文 当a g 接到一个电话时,首先第一步它将建立与h f 之间的a c l 链接,这是通过p a g e 命令完成的,或者把原来处于休眠状态下的h f 解除休眠状态,由于休眠状态的h f 已经是 同主时钟同步,所以解除休眠建立a c l 的速度要比p a g e 快。 由于定义a g 是m a s t e r 角色,它首先将发一个包含查询访问码的m 包,h f 接收到此 i d 包后将返回一个f h s 包给a g ,此f h s 包携带有使a g 的跳频序列与h f 的跳频同步所 需要的信息。这样,a g 将获得h f 的蓝牙地址。然后a g 将向查询到的h f 发一个d 包, 此口d 包中含有被呼叫设备的蓝牙地址,当被呼叫的h f 侦听到这个d 包后,也返回一个 i d 包,此包中含有它本身的蓝牙地址。这时a g 与h f 已经链接上,下面a g 将发一个 f i t s 用来跳频同步。p o l l 包的发送是为了检测跳频序列是否正确地切换,若正确则表示 a c l 链接已经成功建立,h f 将返回一个n u l l 包用来应答表明a c l 链接已经成功建立。 当a c l 链接建立时,它可以被用来发送振铃信号。振铃信号的发送是通过a t 命令 r i n g 来完成的。但是振铃信号也可以放在s c o 链路上发送。【3 】 2 2 2 建l 2 c a p 层链路 a g 端 i - i a n d s f r e e 揣 图2 - 5l 2 c a p 层的建链过程 当a c l 建立好之后,就可以建l 2 c a p 链路。首先是a g 在c i d 为0 x 0 0 0 1 的l 2 c a p 信令信道上发送一个c o n n e c tr e q u e s t ,要求建立信道标号为0 x 0 0 4 0 的l 2 c a p 信道 ( 0 x 0 0 0 1 0 x 0 0 3 f 是协议保留不可动态分配的,0 x 0 0 4 0 0 x f f f f 可以自由分配) ,此信道的 - 1 4 - 浙江大学硕士毕业论文 p s m 为0 0 0 1 ,即表示信道建好之后是用来s d p 查询所用。当接收到对方返回的c o n n e c t r e s p o n s e 时,表明0 x 0 0 4 0 这条信道已经建好,接下来是对此信道进行配置。a g 将在c i d 为o x 0 0 0 1 的l 2 c a p 信令信道上接收到h f 的一个c o n f l gr e q u e s t 请求,若a g 拒绝此配 置请求,将返回一个c o n f i g n e gr e s p o n s e 。当h f 收到c o n f l g n e gr e s p o n s e 时,将重发c o n f i g r e q u e s t 请求,这样一直反复循环直到h f 收到a g 的c o n f i gr e s p o n s e 为止,此时表明已 经完全建好了c i d 为0 x 0 0 4 0 的l 2 c a p 信道,从而可以进行s d p 查询。 2 2 3 进行s d p 的查询过程 c l i e n ts n 吧r s e t u p l 2 c a p s d v i c e s e a r c h a t t r i b r e q s e r v l c e s e a r c r s p a g 端 图2 - 6s d p 的查询过程 h a n d s f r v e 端 图2 - 6 是s d p 的查询过程图,接下来的任务是利用c i d 为0 x 0 0 4 0 的l 2 c a p 信道进行 s d p 的查询的过程,首先a g 将在此l 2 c a p 信道上发送一个s d p 查询包 s e r v i c e s e a r c h a t t r i b r e q ,s d p 查询包s e r v i c e s e a r c h a t t r i b r e q 包括s e r v i c e s e a r c h p a t t e r n , m a x a t t r i b u t e b ) r e c o u n t , a t t r i b u t e l i s t i d ,c o n t i n u a t i o n s t a t e四个参数。 s e r v i c e s e a r c h p a t t e r n 中是一系列u u i d 的数据元参数。包括l 2 c a p ,r f c o m m ,h a n d f r e e a u d i og a t e w a y 等等协议的u u i d 。m a x a t t r i b u t e b 3 ,e c o u n t 用于指定服务器端在一个p d u 中可返回的最大属性数据包的长度。a t t r i b u t e l i s t i d 用于指定服务器端要返回的服务属性, c o n t i n u a t i o n s t a t e 用于指定此查询包的连续状态。 接着a g 将收到l i f 返回的s d p 响应包s e r v i c e s e a r e h a t t r i b r s p 。此数据包包括三个参 数:a t t r i b u t e l i s t b y t e c o u n t ,a t t r i b u t e l i s t ,c o n t i n u a t i o n s t a t e 。参数的含义与查询包中参 数含义相同。 浙江大学硕士毕业论文 2 2 4 建r f c o m m 层链路 i n i t i a t o r 蝴。鼢r l 建用户数据信道d l c x f c s p o n d d s 咖pl 2 c a p ( o x 0 0 4 1 ) 一 $abmh m e ( d l c 口) u a 如e ( d l c 0 ) p nc o m m a n df d l c 0 3 p nc o m m a n d ( d l c 0 ) s a b m 丘a m e ( d l c x ) u a 舾m e ( d l c x ) , u s 日d a t a ( u i hf h m e o i id l c x ) a g 端 图2 7r f c o m m 的建链过程 h a n d d r 端 在s d p 查询成功完成之后,将在a c l 链路上建一条标号为0 x 0 0 4 1 的l 2 c a p 链路 此信道的p s m 为0 0 0 3 ,表示此l 2 c a p 信道是用来传输r f c o m m 数据流的。同时将断开 用来s d p 查询的标号为0 x 0 0 4 0 的l 2 c a p 链路,建l 2 c a p 的过程同上面所描述的过程相 似。 当c i d 为0 x 0 0 4 1 的l 2 c a p 信道建好之后,接下来是r f c o m m 的建链过程。首先建 链发起方a g 将在信道上发一个s a b m 帧,即要求建r f c o m m 层上的c h a n n e l 0 ,这是一 个起始异步平衡模式帧,如果响应方h f 希望建立链接,将返回一个u a 帧,否则将返回一 个d m 帧,之后若接收到一个返回u a 帧,这表明已经建立好了c h a n n e l 0 这条r f c o m m 信道。此信道为控制信道,必须在其它信道建立之前建立。它是用来传送携带控制消息和命 令的u i h 帧。为了进行数据传输,必需建立数据传送信道,首先将对数据传送信道的参数 进行协商,协商命令p n 包括对将要建立的信道c h a n n e l l 的优先级,最大帧长进行协商, 当双方协商好后将建立传输数据的信道c h a n n e l l ,此数据信道建立好之后,接着,为了判 断设备是否已经准备好进行通信,以及信道上数据的有效性,将发送m o d e m 状态命令m s c , 此命令中携带与r s 2 3 2 的控制信号对应的信息。 当建好r f c o m m 层的数据传送信道之后,将进行一些h a n d f r e e 控制层控制命令的传 1 6 浙江大学硕士毕业论文 输。即在数据传送信道c h a n n e l l 利用u i h 帧传送a t 命令,当接收到对方的应答之后,接 着将开始建立s c o 链接。 2 2 5 建立s c o 链路 初始g 时h c 将发送一个w r l l r e v o i c e s e t t 玳g 命令,对音频状态进行一些设置, 当收到a g 的建立s c o 链接的c o n n e c t _ r e q u e s t 请求时,若h f 允许,将发送一个 a c c e p t _ c o n _ r e q 的h c i 命令,在命令完成事件之后,传输音频信号的s c o 链路建立 完成,接着就可以进行语音通信。 2 。3蓝牙协议栈应用 下面以本文作者所做的项目h a n d f r e e 为例,详细分析一下蓝牙应用层的进程设计,因 为应用层进程都是根据应用p r o f i l e 规范进行设计的,现在先介绍一下免提h a n d f r e e 的应用 层所必须支持的进程。 图2 - 8 详细列出了应用层定义的符合免提p r o f i l e 单元的特性要求。【4 】 特性f e a t u r e s u p p o r ts u p p o r t i h fi u a g 1 连接管理mm 2 电话状态信息mm 3 语音通道的处理mm 4 接受呼入的电话mm 5 拒绝呼入的电话mo 6 结束一路电话mm 7 呼出电话时语音通道的转移mm 8 h f 发起的呼叫om 9 从电话本发起的呼叫om 1 0 重拨最后一次的呼出om 1 1 呼叫等待通知om 1 7 浙江大学硕士毕业论文 1 2 三方通话oo 1 3来电显示( c l i )o m 1 4 回波抵消( e c ) 和噪音抑制( n r )oo 1 5 语音识别( v r )oo 1 6 声控拨号oo 1 7 传输双音频( d t m f ) 信号om 1 8 远程音量控制om 图2 - 8 应用层特性 图2 - 9 将应用层特征映射到对应的应用层进程,如果在p r o f i l e 中规定支持某特征,在 我们开发的应用层程序中必须有对应的进程。【4 】 特征f e a t u r e程序p r o c e d u r e 服务层连接( s e r v i c el e v e l 1 连接管理c o n n e c t i o n ) 建立 服务层连接释放 注册状态的传输 2 电话状态信息 呼叫状态的传输 语音通道的建立 3 语音通道的处理 语音通道的释放 4 接受呼入的电话回答一个呼入的电话 5 拒绝呼入的电话拒绝一个呼入的电话 6 结束一路电话终止一路电话的进程 呼出电话时语音通道语音通道转移到免提面板 7 的转移语音通道转移到语音网关 根据h f 提供的电话号码发起一 8 h f 发起的呼叫 路呼叫 9 从电话本发起的呼叫h f 发起的从电话本的呼叫 1 0 重拨最后一次的呼出 重拨最后一次的呼出号码 1 8 - 浙江大学硕士毕业论文 呼叫等待的启动 1 1 呼叫等待通知 呼叫等待的关闭 1 2 三方通话 处理三方通话 1 3来电显示 通知呼入电话的电话号码 h f 要求开启或关闭a g 的e c 和 1 4 回波抵消和噪音抑制 n r 1 5 语音识别语音识别的开启或关闭 给存于话簿内的电话号码添加语 1 6 声控拨号 音标识 1 7 传输双音频信号传输双音频信号 a g 控制h f 的m i c 和s p e a k e r 1 8 远程音量控制音量,h f 向a g 报告当前的音量 值。 图2 - 9 应用层特征到进程的对应 在明确应用层所需支持的应用级进程之后,就可以进行应用层进程的设计。下面以 h a n d f r e e 端的“接受呼入的电话”为例,阐述一下应用层进程设计。 首先假设个前提条件,免提端与a g 端已经建立了服务级的连接链路,若此链路事先 不存在,a g 将建立此链路。进程图2 1 0 中假设振铃信号r i n g 是通过信令信道传输的。 4 1 - 1 9 - 浙江大学硕士毕业论文 圈2 1 0 揍收入呼电话进程图d 带内搌铃) 在入呼电话进程中,一般音频网关a g 响应用户请求,当服务层链路r f c o m m 链接 建立好之后,音频网关发送一个或多个基于a t 的振铃指示以提醒本地用户,并且显示主叫 线路标识,使用户可以浏览主叫方的号码,当然也可选用可选的方案,音频网关提供带内振 铃音。这种情况下一般要先建立s c o 链路。接着,蓝牙免提将按o k 键来接收入呼音频连 接。并且发送接收呼叫的应答命令a t a 给音频网关,当网关回送o k 命令时,双方就建立 好了信令和音频链路,此时彼此就可以通话了。 2 3 1 应用层各状态分析 针对应用层p r o f i l e 的进程要求,应用层程序各个进程之间的切换将设置一个主状态机 通过状态机与m m i 以及下层的协议栈进行交互。其中,状态机的状态图如图2 - 1 1 所示。 - 2 0 - 浙江大学硕士毕业论文 图2 - 1 l 应用层状态图 在协议栈的通信链路建立后,就可以进行应用层通信。应用层有一个主状态机在运行, 如图2 - 1 1 所示。根据用户的动作以及a g 发送的命令,h f 应用进程将在各状态之间跑动。 下面首先对各状态进行一下介绍: p o w e r _ o n : 当上电复位之后,有限状态机将进入到这个状态,处于这个状态时,h a n d s f r e e 应用层 将等待m m i _ c o n t r o l 发送一个复位命令c m d _ r e s e t 作为握手信号。 i d l e : 处于这个状态时,没有a g 与h a n d s f r e e 连接,h a n d s f r e e 应用层被m m i 控制可以加 入一个a g ,登记一个a g ,浏览a g 记录,改变h a n d s f r e e 的登录密码,改变h a n d s f r e e 的名字,从h a n d s f r e e 发起一个呼叫等等。 r e g i s t e r : 处于这个状态时,h a n d s f r e e 应用层将初始化c a r p _ i 中的一个登记进程。 s l c _ c f g : 在这个状态时,h a n d s f r e e 应用层将尝试在h f 与a g 之间建立s l c 连接。 s l c0 k : 2 1 浙江大学硕士毕业论文 在这个状态时,已经有一个a g 被加入到h f 中,h a u d s f r e e 将被m m i 控制从h f 发 起一个呼叫,接受a g 端的呼叫,浏览a g 记录,绑定个a g ,删除一个a g 等等。 a u d i oc f g : 在这个状态时,h a n d s f r e e 将尝试在h f 与a g 之间建立音频连接。 a u d i oo k : 在这个状态时,h f 与a g 之间已经建立音频连接,终端免提控制面板已经能接收一个 来电呼叫,拒绝一个来电呼叫,终止一个呼叫,浏览a g 记录等等。 s l c _ a u d i o _ c f g : 在这个状态时,h a n d s f r e e 应用层将尝试在h f 与a g 之间建立一个音频连接。 l i n k _ l o s t : 在这个状悉时,h a n d s f r e e 应用层将尝试重新建立断开的链接。 2 3 2 应用层状态转换条件 图2 1 2m m i 与m c u 的通信图 图2 1 2 是m m i 与c a r p1 之间的命令与事件通信图。 在状态转换图中以数字表示的转换条件分析如下: 1 当接收到m m i 的命令c m dr e s e t 。 打开p a g es c a n 开关。 当发送r e sc a r p e v e n g ( p o w e r _ o n ,i d l e ) 到m m i 时。 2 m m i 初始化h a n d s f r e e 中的数据记录为0 ,即存储缺省设置。 - 2 2 - 一 一 塑坚盔兰堡主望些造壅 m m i 触发查询a g 记录的操作,即访问a g 数据库。 m m i 触发查询h f 记录的操作,即访问h f 数据库。 3 接收到m m i 发送的登记a g 的命令c m d _ r e g a g 。即初始化匹配进程,将回送 r e s _ c a r p e v e n t ( i d l e ,r e g i s t e r ) 到m m i 。 4 成功的匹配,绑定了一个a g ,将回送r e s _ c a r p e v e n t ( r e g i s t e r ,m l e # i j m m i 。 匹配,绑定a g 失败,发送r e s _ c a r p e r r o r 和r e s _ c a r p e v e n t ( r e g i s t e r 。i d l e ) 到m m i 。 当接收到c m d _ a b o r t 命令,放弃匹配,绑定进程,发送r e s _ c a r p e v e n t ( r e g i s t e r i d l e ) 到m m i 。 5 收到m m i 发送的命令c m dp l u g a g ,这将使h f 与所选定的a g 建立一s l c 链接,并 发送事件r e l c a r p e v e n t ( i d l e ,s l c c f g ) 至m m i 。 a g 初始化要求建立一s l c 链接,h f 将建立一与a g 的s l c 链接,并发送事件 r e s c a r p e v e n t ( i d l e ,s l c c f g ) 到m m i 。

温馨提示

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

评论

0/150

提交评论