(微电子学与固体电子学专业论文)linux系统蓝牙usb设备等时传输驱动设计与实现.pdf_第1页
(微电子学与固体电子学专业论文)linux系统蓝牙usb设备等时传输驱动设计与实现.pdf_第2页
(微电子学与固体电子学专业论文)linux系统蓝牙usb设备等时传输驱动设计与实现.pdf_第3页
(微电子学与固体电子学专业论文)linux系统蓝牙usb设备等时传输驱动设计与实现.pdf_第4页
(微电子学与固体电子学专业论文)linux系统蓝牙usb设备等时传输驱动设计与实现.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(微电子学与固体电子学专业论文)linux系统蓝牙usb设备等时传输驱动设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 i i i i iii 1 1 1 1 1 i i i i1 1 1 1 1 ili y 2 0 6 7 5 2 5 摘要 蓝牙u s b 设备作为蓝牙技术的重要应用之一,其使用必须依赖设备驱动程序 的支持。为了解决已有设备驱动程序无法支持自有蓝牙协议栈下实时语音通信的 问题,本文对l i n u x 操作系统中蓝牙u s b 设备的等时传输驱动程序的实现方法进 行了详细的分析和研究。 本文在深入分析蓝牙2 0 协议规范以及u s b 2 0 协议规范的基础上,结合蓝牙 u s b 设备特点,使用l i n u x 系统中u s b 设备驱动程序的编程方法,设计实现了 蓝牙u s b 设备的等时传输驱动程序,进而解决了自有蓝牙协议栈下实时语音通信 缺少对应驱动程序的问题。根据l i n u x 系统特点,本文将等时传输驱动程序以模 块化方式实现,将其实现内容划分为初始化、操作方法以及结束三部分,并利用 u s b 等时传输端点完成对蓝牙h c i 传输层s c o 数据分组的传输。 配合自有蓝牙协议栈设计实现验证程序对等时传输驱动程序进行功能性验 证,验证结果表明该驱动程序可以很好的驱动蓝牙u s b 设备,运行正确工作稳定, 可灵活加载和卸载,并且可以对语音数据进行稳定传输,语音通信效果良好,实 现对实时语音通信功能的支持。 关键词:蓝牙u s bl i n u x 等时传输设备驱动程序 i il i n u x 系统蓝牙u s b 设备等时传输驱动设计与实现 a b s t r a c ti i i a b s t r a c t b l u e t o o t hu s bd e v i c ei so n eo ft h ei m p o r t a n ta p p l i c a t i o n so fb l u e t o o t h t e c h n o l o g y , t h eu s eo f i tm u s tb es u p p o r t e db yt h ed e v i c ed r i v e r i no r d e rt os o l v et h e p r o b l e m t h a tt h e e x i s t i n g d e v i c ed r i v e rc a l ln o t s u p p o r tt h e r e a l - t i m ea u d i o c o m m u n i c a t i o n 、柝t ht h eb l u e t o o t hs t a c ko fo u ro w n , t h i sp a p e ra n a l y s e da n d r e s e a r c h e dt h ei m p l e m e n t a t i o nm e t h o do ft h ei s o c h r o n o u st r a n s p o r td r i v e rf o r b l u e t o o t hu s bd e v i c eo nl i n u x o nt h eb a s i so fa n a l y s i n go fb l u e t o o t h 2 0s p e c i f i c a t i o n , u s b 2 0s p e c i f i c a t i o na n d f e a t u r e so ft h eb l u e t o o t hu s bd e v i c e ,t h ei s o c h r o n o u st r a n s p o r td r i v e rf o rb l u e t o o t h u s bd e v i c ei sa c h i e v e db yu s i n gt h eu s bd e v i c ed r i v e rp r o g r a m m i n gm e t h o d so n l i n u x ,a n dt h e ns o l v et h ep r o b l e mt h a tt h e r ei sn od r i v e rw h i c hc a ns u p p o r tr e a l t i m e a u d i oc o m m u n i c a t i o n 、航t ht h eb l u e t o o t hs t a c ko fo u ro w n n ei s o c h r o n o u st r a n s p o r t d r i v e ri sd e s i g n e d 嬲am o u d l e i t si m p l e m e n t a t i o ni sd i v i d e di n t oi n i t i a l i z a t i o n , m e t h o d so fo p e r a t i o na n df m i s h , a n dt h ed r i v e ru s et h eu s bi s o c h r o n o u st r a n s f e r e n d p o i n tt ot r a n s p o r tt h es c o d a t ap a c k e to nb l u e t o o t hh c i t r a n s p o r tl a y e r i th a sb e e nv e r i f i e dt l l a tt h ei s o c h r o n o u st r a n s p o r td r i v e rw h i c hd e s i g n e da n d r e a l i z e di nt h i sp a p e rc a ns u p p o r tt h eb l u e t o o t hu s bd e v i c ew e l l ,r u n n i n gc o r r e c t l y a n ds t a b l e ,a n dc a l lb el o a d e da n du n l o a d e df l e x i b l y md r i v e rc a na c h i e v ea u d i od a t a t r a n s p o r ts t a b i l i t yw i t l lt h eb l u e t o o t hs t a c ko fo u ro w n , r e a l i z et h er e a l - t i m ea u d i o c o m m u n i c a t i o n k e y w o r d :b l u e t o o t h u s bl i n u xi s o c h r o n o u st r a n s p o r td e v i c e d r i v e r i v l i n u x 系统蓝牙u s b 设备等时传输驱动设计与实现 第一章绪论 第一章绪论 1 1 蓝牙技术发展现状及其特点 1 1 1 蓝牙技术的发展和现状 1 9 9 4 年,爱立信移动通信公司( e r i c s s o nm o b l i e ) 将其研究的低功耗、低成 本的短距离无线通信( s h o r td i s t a n c ew i r e l e s s ) 技术命名为蓝牙( b l u e t o o t h ) ,之 后为了使得该项技术能够最终获得成功,得到业界的支持和应用,爱立信决定与 业内的其他公司进行合作。1 9 9 8 年5 月,爱立信与诺基亚、英特尔、i b m 以及东 芝四家公司联合组成了s i g 组织( s p e c i a li n t e r e s tg r o u p ) ,该组织的职责是负责 蓝牙技术标准的制定、产品的测试以及协调各国蓝牙的具体使用细节。之后 3 c o m 、朗讯、微软和摩托罗拉也先后加入s i g ,并与之前的公司一起成为s i g 的;= 九个的倡导发起者i l 】。 s i g 着眼于蓝牙技术的发展,将蓝牙技术标准完全公开,并在1 9 9 9 年7 月公 布了蓝牙规范的1 0 版本,该版本大大促进了蓝牙技术的发展和应用;2 0 0 1 年4 月s i g 推出了1 2 版本规范,改进了蓝牙设备间的互连问题;2 0 0 3 年1 1 月s i g 推出了1 2 版本,增加了自适应跳频技术a h f ( a d a p t i v ef r e q u e n c yh o p p i n g ) ,大 大提高了蓝牙设备与其他同频设备的抗干扰能力;2 0 0 4 年8 月2 0 版本的蓝牙规。 范发布,该版本提高了多个蓝牙设备同时运行和多任务处理的能力,并且增加了 e d r ( e n h a n c ed a t ar a t e ) ,提高了蓝牙设备的传输速率,使得最高理论速率达到 3 m b p s ;蓝牙3 o 的版本在2 0 0 9 年4 月公布,3 0 版本是高速蓝牙规范,该版本 中提出了“8 0 2 1 1 p a l ( p r o t o c a l a d a p t a t i o n l a y e r ) 协议,该技术将蓝牙和w i f i 相 结合,当数据传输时可以动态选择合适的射频通道,提高传输速率,使得理论传 输速率达到2 4 m b p s r ;2 0 1 0 年7 月7 日,s i g 推出了至今依然是蓝牙规范最高版 本的4 0 版本,该版本旨在降低蓝牙设备的功耗和提高传输距离,该版本定义了 蓝牙有效传输距离达到6 0 米i j j 。 蓝牙技术的发展正如爱立信所期望的那样,自蓝牙协议1 0 版本公布之后,越 来越多的公司将蓝牙技术作为短距离无线通信的首选。蓝牙芯片由2 0 0 0 年开始发 售,之后越来越多的公司参与到蓝牙芯片的制造和发售过程中,其中包括爱立信、 摩托罗拉、t i 、高通、博通、c s r 等,正是因为这些公司的加入,蓝牙芯片的体 积越来越小,价格也越来越低,到现在蓝牙技术已成功应用到几乎各行各业,消 费电子更是将蓝牙作为替代电缆的标准配置。 2l i n u x 系统蓝牙u s b 设备等时传输驱动设计与实现 1 1 2 蓝牙技术的特点 蓝牙技术作为一种短距离无线通信的技术规范,具有以下特点: 1 ) 全球通用性:蓝牙设备的工作频段为全球统一开放的2 4 g h z5 1 2 业、科学 和医学( i n d u s t r i a l ,s c i e n t i f i ca n dm e d i c a l ,i s m ) 频段,因此,蓝牙设备的使 用不需要向所在使用国家申请无线电使用许可h t 4 。 2 ) 低功耗:蓝牙协议中充分考虑到蓝牙设备使用过程中的不同工作模式, 将蓝牙连接状态下工作模式分成a c t i v e 、s n i f f , h o l d 和p a r k 四种,不同 工作模式的功耗不同,蓝牙设备工作过程中根据不同的工作情况分配工 作模式,以降低其功耗。 3 ) 抗干扰能力强:蓝牙技术采用跳频( f r e q u e n c yh o p p i n g ) 方式扩展频谱,蓝 牙设备在某个频点进行数据传输后即跳至下一个频点,跳频频点采用伪 随机方式选择,大大增强了蓝牙数据传输的抗干扰能力。 4 ) 组网方便:蓝牙的工作方式采用主从模式,一个主设备和多个从设备可 构成皮可网( p i c o n e t ) ,也称之为微微网,多个微微网相互重叠可以构成复 杂的散射网( s c a t t e m e t ) ,散射网中的设备可兼作不同微微网中的主从设 备,各微微网各自使用不同的跳频序列,可以实现互不干扰。 1 2u s b 技术的发展现状及其特点 1 2 1u s b 技术的发展和现状 u s b 技术产生之前,p c 与外设的通信主要通过p c 机主板上的各种接口来实 现,如i s a 、p c i 接口等,这些接口存在很多缺陷,包括接口庞大、非共享、规 格不一、必须分配专门的中断信号线或d m a 通道等。u s b ( u n i v e r s a ls e r i a lb u s ) 技术最早是由c o m p a q 、i n t e l 、m i c r o s o f t 等多家公司于1 9 9 4 年1 1 月共同提出, 这一技术提出正是为了解决老旧接口存在的上述缺陷,使p c 与外设之间可以实 现热插拔、即插即用、快速传输以及可扩展例。 u s b 技术规范的0 7 版本在1 9 9 4 年1 1 月1 1 日公布,尽管该版本并不完善, 但它的公布标志着u s b 技术的正式诞生;1 9 9 6 年1 月1 5 日,1 o 版本公布,此 时u s b 技术也相对成熟;1 9 9 8 年9 月u s b l 1 版本发布后,u s b 接口开始变得 流行,但是其速率仅1 2 m b s ;2 0 0 0 年4 月2 7 日,u s b 2 0 发布,将u s b 的速率 提高到4 8 0 m b s ,这极大扩展了u s b 的应用范围,一时间u s b 接口的设备和提 供u s b 接口的p c 开始在全世界流行;2 0 0 8 年1 1 月1 8 日,第一个u s b 规范正 式发布的1 4 年后,p r o m o t e rg r o u p 发布了u s b 规范3 0 版本,这个版本大大提 第一章绪论 3 高了u s b 接口的传输速率,将理论的最大传输速率提高至5 g b s 6 ,为以后的u s b 技术的发展,开启了更加广阔的前景。 1 2 2u s b 技术的特点 u s b 接口不同于传统的i o 接口,其不需要额外的中断信号线或者d m a 通 道,u s b 技术之所以可以广泛流行得益于其存在以下特点: 1 ) 热插拔:当u s b 设备与主机( p c 或嵌入式设备) 连接时,即可立即使用, 不需要像老式的i o 接口一样将主机重新启动,u s b 设备使用结束后用 户可以随时将u s b 设备从主机上移除,而不用担心会影响到主机的正常 使用。 2 ) 即插即用:u s b 设备可以实现自动配置,不需要手动配置特定的i o 地 址和中断请求,操作系统可以自动识别配置并为u s b 设备加载正确的驱 动程序,加载正确驱动之后u s b 设备就可以正常使用,当然当设备第一。 次使用时需先要安装正确的驱动,之后无需安装驱动u s b 设备即可即插 即用。 3 ) 共享式接口:只需要利用u s b 集线器( h u b ) 对u s b 接口进行扩展,u s b 总线便可支持多个u s b 设备的连接,实现星式结构,这种连接方式下一 个u s b 主控制器可以连接最多1 2 7 个u s b 设备。 钔占用资源少:u s b 只需要主控制器使用根中断控制线( i r q ) 和一些i o 地址空间,对于连接在u s b 主控制器上的设备,不再需要额外的资源, 这样,当主机通过u s b 接口新增加设备时,该设备就不再需要占用主机 为数不多的系统资源。 5 ) 低功耗:u s b 技术可以在设备与主机连接之后实现动态的电源管理,当 设备与主机经过一段时间( 3 0 m s 以上) 的暂停使用后,u s b 的电源管理 功能就可以将该u s b 设备挂起,直到被唤醒,以此降低u s b 设备的功耗。 1 3 论文研究的内容及意义 蓝牙u s b 设备作为蓝牙技术与u s b 技术的结合,使蓝牙设备具有了u s b 热 插拔以及即插即用的特点,但是对于语音通信功能,蓝牙u s b 设备不能采用从基 带层直接输出语音数据的传统方法实现,其语音数据必须通过u s b 接口传输。本 文为配合自有蓝牙协议栈实现实时语音通信功能,在l i n u x 系统平台上实现针对 蓝牙u s b 设备的等时传输驱动程序,解决了已有驱动程序无法实现等时传输的问 题,使得蓝牙设备可以通过h c i 传输层经由u s b 接口进行语音数据传输。本文 4l i n u x 系统蓝牙u s b 设备等时传输驱动设计与实现 所做的工作主要有以下几个方面: ( 1 ) 分析蓝牙各传输层协议以及u s b 传输方式; ( 2 ) 根据l i n u x 平台下设备驱动实现方法制定设计方案; ( 3 ) 依据设计方案实现等时传输驱动程序; ( 4 ) 对等时传输驱动程序进行功能验证。 蓝牙技术与p c 以及嵌入式设备的结合越来越受到重视。本文的研究工作使得 蓝牙u s b 设备在l i n u x 系统上的应用得到扩展,为蓝牙技术的应用奠定了技术基 础。 1 4 论文的结构安排 本文各章节安排如下: 第一章:绪论。本章简述了蓝牙技术以及u s b 技术的发展及现状,引出本文 的研究内容和意义。 第二章:蓝牙u s b 设备等时传输驱动程序基本原理。本章详细介绍了与蓝牙 u s b 设备等时传输驱动程序实现的相关技术及其基本原理。 第三章:蓝牙u s b 设备等时传输驱动程序的设计方案。本章根据相关技术特 点阐述了蓝牙u s b 设备等时传输驱动程序的设计方案。 第四章:蓝牙u s b 设备等时传输驱动程序的实现。本章基于蓝牙u s b 设备 等时传输驱动程序的设计方案详细描述了其实现过程,并对实现结果进行验证。 第五章:结束语。本章对本文所作工作进行了总结并根据存在的不足提出以 后工作的方向。 第二章蓝牙u s b 设备等时传输驱动程序基本原理 第二章蓝牙u s b 设备等时传输驱动程序基本原理 本章主要介绍与蓝牙u s b 设备等时传输驱动程序相关的基本原理,包括蓝牙 各传输层协议内容以及u s b 传输的基础理论,并详细阐述了蓝牙逻辑传输、u s b 构架以及其传输类型等知识。 2 1 蓝牙技术基本原理 蓝牙技术作为一种流行的短距离无线通信方式,区别于其他与其使用同一频 段( 2 4 g h z ) 的无线通信技术,如w i f i 、z i g b e e 等技术。各种技术之间之所以可以 实现互不干扰、各自独立工作都依赖于其使用不同的协议规范。本节将着重介绍 蓝牙技术的协议规范,并逐步深入了解其基本原理。 2 1 1 蓝牙技术协议规范总体结构 蓝牙技术协议规范即蓝牙无线通信协议标准,是s i g 组织公布的蓝牙规范 ( s p e c i f i c a t i o no f t h eb l u e t o o t hs y s t e m ) ,该规范规定了蓝牙技术在使用时应该遵守 的标准及其目标要求。到目前为止,s i g 已经公布的蓝牙协议规范的版本有1 0 、 1 1 、v 1 2 、v 2 0 + e d r 、v 2 i + e d r 、3 o + h s 和4 o 。 蓝牙技术协议规范借鉴了国际标准化组织( i s o ) 的开放系统互连( o s i ) 参考模 型的思想,采用了分层结构,将不同层次分配以不同的职能,完成相应工作。所 有的蓝牙设计生产厂商在设计蓝牙产品时必须严格遵守蓝牙协议规范中的各种规 定,以保证不同厂商生产的蓝牙产品之间的互操作性。蓝牙技术规范从功能上总 体可划分为三大层次:第一个层次为蓝牙技术的硬件底层协议;第二个层次为中 间协议层;最后为针对各种应用场合的应用框架( p r o f i l e ) 4 1 。 蓝牙硬件底层协议是蓝牙技术的核心,任何蓝牙设备都必须包含该层协议, 该部分协议规定了蓝牙技术的传输规则并将其进一步细化、分层。具体分层包括 射频层r f ( r a d i of r e q u e n c y ) 、基带与链路控制层( b a s e b a n d & l i n kc o n t r o l l e r ) 、链 路管理层l m p ( l i n km a n a g e rp r o t o c 0 1 ) 和主机控制器接口层h c i ( h o s tc o n t r o l l e r i n t e r f a c e ) 。 蓝牙中间协议层主要是蓝牙硬件底层协议与应用层框架之间的过渡层,为更 上层的应用提供接口,使得蓝牙协议各个层次间实现相对隔离,便于蓝牙技术的 更新和使用。这一层协议主要包括逻辑链路控制与适配协议l 2 c a p ( l o g i c a ll i n k 6l i n u x 系统蓝牙u s b 设备等时传输驱动设计与实现 c o n t r o la n da d a p t a t i o np r o t o c 0 1 ) 、串口仿真协议r f c o m m 、服务发现协议 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 ) 等。 蓝牙应用框架是针对不同的应用场合指出如何通过蓝牙技术实现具体应用的 规范。应用框架主要包括实现具体蓝牙产品以及某些通用功能所需要的协议,具 体实现如通用访问应用框架( o a p , g e n e r a la c c e s sp r o f i l e ) 、服务发现应用框架 ( s d a p ) 、蓝牙串口应用框架( s p p ) 以及头戴式设备应用框架( h s p ) 等。 蓝牙技术协议规范总体结构如图2 1 : 串口应用其他基于其他基于服务发现 音频 框架 r f c o m m l 2 c a p 的协议日刎 ( a u d i o ) ( s p p ) 的p r o f i l ep r o f i l e ( s d p ) 串口仿真协议( i 强c o m m ) 逻辑链路与适配协议( l 2 c a p ) 主机控制器接口( h c i ) 链路管理器协议( l m p ) i基带与链路控制器( b a s e b a n d & l i l l l ( c 。n t r o l l e r ) i射频( r a d i 。f 嘲u e n c y ) 图2 1 蓝牙协议规范总体结构【7 1 本文所讨论的蓝牙u s b 设备等时传输驱动程序所需蓝牙技术基础主要为蓝牙 协议中的硬件底层协议部分,对中间协议层和上层的应用框架基本未涉及,所以 本节后续部分将着重探讨蓝牙协议规范中的硬件底层协议。 2 1 2 蓝牙射频协议 射频是指可以辐射到空间的电磁频率,频率范围为3 0 0 k h z - 3 0 g h z 之间,为 第二章蓝牙u s b 设备等时传输驱动程序基本原理7 介于声波和可见光之间的电磁波。蓝牙协议规范中规定蓝牙技术采用的射频频段 是2 4 g h z 的i s m 频段,这个频段在全球范围内无需许可证即可使用,这使得蓝 牙技术在全球范围内的使用不存在限制。蓝牙射频协议位于蓝牙协议规范的最底 层,该层协议详细规定了蓝牙技术的射频频段、信道选择、调制方式、跳频方式、 发射功率以及接收灵敏度等详细参数信息,使得不同厂商生产的蓝牙模块可以实 现无阻碍的空中通信。 蓝牙射频协议规定蓝牙技术采用跳频扩频技术【8 j ,以此增强蓝牙技术在充满 电磁波空间( 手机、w i f i 等) 中的抗干扰能力,蓝牙跳频技术每个频带带宽为 1 m h z ,同时跳频频点的选择采用伪随机序列方式,每个伪随机序列即代表一个 信道,这样的设计可以使非连接状态的蓝牙设备间的干扰降到最低。 根据蓝牙发射机功率电平的水平,蓝牙设备可大致划分为三个级别:蓝牙设 备最大发射功率为1 0 0 m w 即2 0 d b m 的为级别1 ;蓝牙设备最大发射功率为2 5 m w 即约4 d b m 为级别2 ;蓝牙设备最大发射功率为l m w 即0 d b m 为级别3 例。级别 l 的蓝牙设备需要进行功率控制,功率控制是蓝牙设备在工作过程中由链路管理 协议( l m p ) 对其进行调节以达到最佳的发射功率。 蓝牙射频协议对蓝牙接收机的实际灵敏度等做了规定。实际灵敏度是指蓝牙 数据传输过程中误码率( b e r ) 为0 1 时所需要的输入电平水平,蓝牙协议规定的一t 蓝牙接收机的实际灵敏度应小于等于7 0 d b m 。 2 1 3 蓝牙基带与链路控制器协议 蓝牙基带与链路控制协议主要规定了在接收到高层协议发送的数据后如何对 这些数据进行编码,选择信道,并将这些数据向更下层发送;同时规定了射频层 通过空中接口接收到的数据如何进行解调解码,然后向高层协议发送。 协议中规定蓝牙设备间的连接可以以点到点或者点到多点的的方式实现,连 接时必须选定主从工作模式,即点到点或点到多点连接中需选定一个蓝牙设备作 为主设备,其他为从设备i l o 】。点与多点连接时这多个连接的点实现共享信道,构 成微微网。多个微微网交叠可实现散射网,如图2 2 ,交叠处的蓝牙设备需在必要 时实现主从切换。 8l i n u x 系统蓝牙u s b 设备等时传输驱动设计与实现 图2 2 蓝牙散射网 蓝牙设备间存在四种连接状态:激活( a c t i v e ) 、呼吸( s n i f f ) 、保持( h o l d ) 和休眠 ( p a r k ) 。微微网中最多可以支持7 个从设备同时处于激活状态,但是可以支持更多 设备处于其他三种状态,处于其他状态的蓝牙从设备与主设备需保持同步【l 。 蓝牙基带与链路管理协议对蓝牙物理地址分配、时钟工作方式、逻辑传输、 基带层分组情况、基带纠错方式及功率控制等都进行了详细规定。 2 1 3 1 蓝牙逻辑传输 蓝牙逻辑传输( l o g i c a lt r a n s p o r t s ) 的建立发生在主设备和从设备之间,存在五 种已被定义的逻辑传输【1 2 1 ,分别是: 1 ) 面向连接的异步逻辑传输( a c l ) ; 2 ) 面向连接的同步逻辑传输( s c o ) ; 3 ) 面向连接的扩展同步逻辑传输( e s c o ; 4 ) 激活模式下的从逻辑传输( a s b ) ; 5 ) 休眠模式下的从逻辑传输( p s b ) 。 以下主要对a c l 以及同步逻辑传输( s c o 和e s c o ) 进行介绍: ( 1 ) a c l 传输 a c l 传输是主设备和从设备之间的点对点的逻辑传输,其中不为同步逻辑传 输保留时隙,即使在从设备已经处于同步连接的情况下,主从设备之间也是通过 以单时隙为基础建立a c l 传输的,主设备可以与任何基于单时隙的蓝牙从设备进 行数据交换。在微微网中,a c l 传输提供了主设备与激活模式下的从设备的分组 交换连接。在一个主设备和一个从设备之间仅可存在一条a c l 传输,a c l 传输 为了保证数据的完整性,大部分都是实现数据重传机制的。 如果一个a c l 分组没有指定特定的从设备,这个分组就被认为是广播分组, 任何通信范围内的从设备都可以对其进行接收和识别。 第二章蓝牙u s b 设备等时传输驱动程序基本原理 9 ( 2 ) 同步逻辑传输 同步逻辑传输也是微微网中主设备和从设备之间的点对点的逻辑传输。同步 逻辑传输典型的支持为类似语音一样的同步等时数据。主设备通过在定期规律的 时间间隔内保留时隙来确保数据逻辑传输的同步。 同步逻辑传输有两种形式,一种为s c o 逻辑传输,这种传输是微微网内主设 备与特定从设备时间对称的点对点的逻辑连接。主设备最多可支持3 条s c o 连接, 这三条连接可以是针对同一个从设备也可以针对不同的从设备。从设备与同一个 主设备之间的连接最多为3 条,但是与不同主设备的连接最多为2 条。s c o 传输 的分组不支持重传,同时只有当a c l 传输建立之后s c o 逻辑传输才可以建立。 另一种同步逻辑传输为e s c o ,它是s c o 逻辑传输的扩展,与s c o 的主要区 别在于e s c o 的连接可以是对称或非对称的,并且e s c o 分组支持重传。 2 1 3 2 收发过程 该部分主要描述a c l 和s c o 逻辑传输的收发过程。 ( 1 ) 发送( 盯( ) 过程 t x 过程中a c l 和s c o 传输是相互独立的,如图2 3 表示了蓝牙发送过程中 a c l 和s c o 缓冲区的情况。在同一个蓝牙设备中,不同连接的a c l 和s c o 缓 冲区都是相互独立的,即当主设备与多个从设备a c l 连接时主设备中存在多个 a c l 的t x 缓冲区,当设备s c o 连接时,设备中可以有一个或多个s c o 的t x 缓冲区。 a c l t x 缓冲 a c li o 端口 s c oi o 端口 图2 3t x 缓冲区情况 每一个a c l 和s c o 传输的缓冲区都包含两个f i f o ( 先进先出) ,其中一个 f i f o 代表当前缓冲区,另一个代表下一个缓冲区。 a c li o 端口在向当前a c lt x 缓冲区中输入数据之后,链路控制器在接收 到切换命令之后即将s 1 开关强制切换( s l a 和s l b 同时切换) ,a c li o 端口再 1 0l i n u x 系统蓝牙u s b 设备等时传输驱动设计与实现 向切换后的当前缓冲区输入数据;分组打包器从相对s l b 的当前缓冲区中读取数 据进行打包并向下层发送。其中缓冲区的输入端和输出端所参考的当前缓冲区和 下一缓冲区不相同,即输入端的当前缓冲区为输出端的下一缓冲区,输入端的下 一缓冲区为输出端当前缓冲区。 s c ot x 缓冲实现方法与a c l t x 缓冲方法类似,不同的是s 2 开关的切换并 不是由特定的命令控制,而是根据一定的时间间隔t s c o 变换,其中t s c o 是的大 小是在s c o 逻辑传输建立过程中由双方协商得到。通过这种方式,s c o 传输过 程在发送阶段保证了传输数据的同步性。 ( 2 ) 接收( 砌0 过程、 r x 过程中a c l 与s c o 的缓冲区状态与t x 过程类似,如图2 4 ,但是不完 全相同,例如a c l 传输r x 过程中的对于不同的从设备,主设备只使用一个a c l t x 缓冲区,而不像t x 过程每一个从设备都要对应一个a c lt x 缓冲区;s c o 传输r x 过程中是否需要额外的s c ot x 缓冲区则需要根据实际情况决定。 a c l l 缓冲 a c l i o 端口 s c oi o 端口 图2 4 r x 缓冲区情况 a c l 和s c o 传输的缓冲区同样都包含两个f i f o ( 先进先出) ,其中一个f i f o 代表当前缓冲区,另一个代表下一个缓冲区。基带层在接收到下层发送而来的数 据之后,经过分包,将数据发送到r x 缓冲区,然后再经过i o 端口向上层发送。 r x 过程中,分组分包器可以将分组后的数据写入正确的f i f o 缓冲区,s 1 的 切换出现在基带资源管理器读取旧的资源时;s 2 的切换与t x 一样,由一定的时 间间隔t s c o 控制,这样s c o 传输在接收过程也保证了同步性。 2 1 4 链路管理器协议 蓝牙链路管理器协议( l m p ) 用于控制和协商两个蓝牙设备连接操作的所有方 面,包括逻辑传输、逻辑链路的建立和控制,以及对物理链路的控制1 3 1 。 第二章蓝牙u s b 设备等时传输驱动程序基本原理l l 蓝牙链路管理协议也用于由a c l 逻辑传输建立连接的蓝牙设备间链路管理器 ( l m ) 的通信,所有设备间l m p 消息的接收和发送只应用于物理链路以及相关的 逻辑链路和逻辑传输。如图2 5 ,l m p 消息需要l m 解释后送往上层,而不可以 直接送往上层。 2 1 5 主机控制接口协议 图2 5 链路管理协议信号传输示意图 蓝牙主机控制器一般是指蓝牙模块中嵌入的微处理器,蓝牙主机控制接口 ( h c i ) 提供了访问蓝牙硬件的统一接口,相当于蓝牙协议栈中软件与硬件的接口。 主机端通过h c i 命令,可以完成对蓝牙基带与链路控制器、状态寄存器以及链路 管理器等底层硬件的控制【4 】。 当主机与主机控制器通信时,主机上运行h c i 层以上的协议程序( 如 r f c o m m 、l 2 c a p ) ,主机控制器实现对主机发送来的命令的接收、解析并完成 对下层硬件的控制,同时完成主机端与下层协议之间的数据交换。 由于h c i 层的存在,使用蓝牙设备的主机不必关心硬件层的工作过程,只需 通过接口就可以完成对蓝牙设备的操作。数据发送过程为:主机通过软件程序( 协 议栈程序如b l u e z 、ts t a c k 等) ,简化上层应用程序建立a c l 和s c o 传输的过 程,选定分组格式将数据封装,然后通过类似u s b 或r s 2 3 2 的通用接口,使用 h c i 层将分组后的数据发送至蓝牙主机控制器;主机控制器再根据接收的分组格 式,判断确定是命令还是数据,如果为命令分组格式则解析并完成对下层相应硬 件的控制,如果为数据分组格式则将a c l 分组数据封装后通过a c l 逻辑传输发 送,将s c o 分组通过s c o 逻辑传输发送;下层的硬件电路再将这些数据封装后 以射频形式发送至空中;数据的接收过程与发送过程相反。整个过程可表示为如 图2 6 ,图中主机部分h c i 驱动程序也可以作为蓝牙软件协议栈的一部分,主要 1 2 l i n u x 系统蓝牙u s b 设备等时传输驱动设计与实现 职责是将上层传输的数据或命令解析成相应分组或h c i 指令;蓝牙模块部分的 h c i 传输固件的职责是将由主机端通过特定总线传输的数据解包出蓝牙主机控制 器可以识别的指令和数据格式。 蓝牙软件协议栈( s t a c k ) 苴 主 h c i 驱动程序 机 3 c 总线接口( u s a 、 r s 2 3 2 ) 驱动程序 咒 总线接口( u s b 、 r s 2 3 2 ) 总线1 f , h c i 传输固件 竺3 e 万 模 蓝牙主机控制器 t 块 3 e 链路管理、基带、射 频层 图2 6 主机和蓝牙模块传输过程 本文所讨论的内容主要针对主机部分的总线接口驱动程序进行,而进行这部 分内容的讨论之前需要先对h c i 接口的命令和数据的分组格式进行了解。 主机与主机控制器之间的信息交互都是通过蓝牙h c l 分组进行的。h c l 分组 有三种类型,分别是指令分组、事件分组和数据分组。指令分组为主机向主机控 制器发送的指令;事件分组为主机控制器向主机报告的事件情况;数据分组则可 分为a c l 数据分组和s c o 数据分组,用来传输不同情况下的数据。 ( 1 ) h c i 指令分组 h c i 指令是指蓝牙主机向蓝牙主机控制器发送的指令。这些指令包括链路控 制、链路策略、主机控制与基带在、状态参数和测试命令。如图2 7 为蓝牙指令 分组格式,其由操作码、参数总长和参数列表三部分组成。 第二章蓝牙u s b 设备等时传输驱动程序基本原理1 3 图2 7 h c i 指令分组格式 ( 2 ) h c i 事件分组 主机控制器在接收到主机发送的指令分组后,会向主机返回事件分组来说明 指令分组的执行情况。指令分组的格式如图2 8 。 图2 8h c i 事件分组格式 ( 3 ) h c i 数据分组 h c i 数据分组可分为a c l 数据分组和s c o 数据分组,分别用来传输a c l 数 据和s c o 数据,分组格式分别如图2 9 和2 1 0 ,其中连接句柄为标识两个蓝牙设 备间连接( a c l 或s c o 连接) 的唯一标识。 1 4 l i n u x 系统蓝牙u s b 设备等时传输驱动设计与实现 图2 1 0s c o 数据分组格式 对于通过u s b 接口实现的主机与蓝牙设备的连接,h c i 传输层协议对其数据 分组传输情况做了规定,例如h c i 指令分组需要使用u s b 的控制传输;h c i 事 件分组使用u s b 的中断传输;数据分组中a c l 数据分组使用u s b 的批量传输, 而s c o 数据分组使用u s b 的等时传输。 2 2u s b 技术的基本原理 u s b 技术作为替代传统总线的总线技术,具有即插即用、热插拔等特点,通 过u s b 接口可以方便的实现主机与u s b 设备之间的灵活连接。本节将着重从u s b 拓扑结构、设备构架以及传输类型等三个方面介绍由主机与u s b 设备构成的u s b 系统。 2 2 1u s b 拓扑结构 主机和u s b 设备之间的连接通过u s b 总线进行,u s b 总线可以通过集线器 ( h u b ) 将物理连接实现星状结构【1 4 1 ,如图2 i i ,h u b 位于每个星状结构的中心,每 一个节点都是通过集线器与更上层集线器或主机相连,根集线器通过u s b 主机控 制器芯片与主机上特定的总线相连,图中节点代表一个u s b 设备,通过这种连接 第二章蓝牙u s b 设备等时传输驱动程序基本原理 1 5 方式,一个u s b 主机控制器上最多可连接1 2 7 个u s b 设备。 图2 1 iu s b 总线拓扑结构 整个u s b 系统中只能有一个主机,主机上的u s b 主控制器是主机上的系统 总线与u s b 总线的桥接部分,可以是软件、固件硬件的结合体,其负责u s b 协 议与主机上总线协议之间的转换,同时为u s b 下层提供端口。主机针对u s b 拓 扑需要运行不同层次的软件程序,包括u s b 系统软件和u s b 客户软件。u s b 系 统软件包括u s b 核心程序和u s b 主机控制器驱动程序;u s b 客户软件包括u s b 设备驱动程序和特定界面应用程序。 集线器在整个总线拓扑结构中起到中继的作用,对信号进行放大,增加u s b 信号的传输距离,同时对设备进行集中管理,隔离上层与下层,使得在下层出现 问题时不影响上层的正常工作。 2 2 2u s b 设备构架 u s b 技术中提出了设备构架的概念以正确的描述一个u s b 设备的特征,u s b 设备构架认为一个u s b 设备是由配置、接口和端点构成,如图2 1 2 。一个u s b 设备可以由一个或多个配置构成;一个配置又可以由一个或多个接口构成;一个 1 6l i n u x 系统蓝牙u s b 设备等时传输驱动设计与实现 接口又可以由一个或多个端点构成,命令或数据的传输最后通过由主机与设备端 点构成的管道进行【5 1 。主机在正常使用一个u s b 设备之前,必须指定该u s b 设 备的这些相关信息。 图2 1 2u s b 设备构架 ( 1 ) u s b 设备 u s b 设备是u s b 整个设备构架的最外层,一个u s b 设备由一个或多个配置 构成,一个设备包含一个设备描述符,设备描述符用来指定设备总体特性,例如 该设备中所包含的配置个数,设备厂商信息等。 ( 2 ) u s b 配置 u s b 配置为u s b 设备构架的第二层,配置用来描述设备的特征和能力情况。 构成u s b 设备的一个或多个配置之间可以进行切换,以此来切换设备的使用状 态,例如可以下载固件来完成不同功能的u s b 设备就需要包含不同的配置来完成 这样的工作,但是在u s b 设备使用时一次只能激活一种配置。一个u s b 设备在 使用之前,必须事先设定好即将使用的配置情况,配置的选定是通过指定相应的 配置描述符完成的,配置描述符中包含了关于u s b 设备的接口信息以及电能信 息。 ( 3 ) u s b 接口 u s b 接口为u s b 设备构架的第三层,u s b 接口通过绑定形成配置,每一个 接口只处理一种u s b 的逻辑连接,也就是说每一个u s b 接口代表一种基本功能。 每一个配置必须拥有一个接口,通常情况下也只应用一个接口,但是对于多功能 设备,如带有扬声器功能的u s b 键盘就必须设定两个接口,一个用来实现键盘的 功能,一个用来实现扬声器的功能。同样,每个u s b 接口也拥有一个且只有一个 第二章蓝牙u s b 设备等时传输驱动程序基本原理 1 7 描述符接口描述符,这个描述符规定了接口的类型,包含的端点数目等。 ( 4 ) u s b 端点 一个u s b 端点是唯一可用来识别u s b 设备的部分【1 5 1 ,它是主机与u s b 设备 间通信的终点,也是u s b 设备中实际的物理单元,一系列相互独立的u s b 端点 构成u s b 逻辑设备,每个逻辑设备都具有唯一的地址,该地址是当u s b 设备与 主机连接时由主机分配的;设备中的所有端点在设备内部也具有唯一的端点号, 但是这个端点号是在设备设计时给定的,每个端点都对应着一个单一方向的数据 传输,即每一个端点都只能支持数据输入( a 设备至主机) 或者输出( a 主机至 设备) 。 一个端点的特性决定着这个端点与客户软件进行的传输服务的类型,对一个 端点的描述存在几个方面,包括端点的总线访问频率要求、端点的总线延迟要求、 端点的带宽要求、端点的端点号、对错误处理行为的要求、端点能接收或发送的 包的最大长度、端点的传输类型、端点与主机的数据数据传输方向等。 端点号非0 的端点在配置之前的状态都是未知的,所以这些端点在配置之前 不能被主机所访问。 1 ) 对0 号端点的要求 所有的u s b 设备都要求实现一个默认的控制方法,这种控制方法需通过端点 号为0 的端点实现控制信号的输入和输出。u s b 系统软件使用这种默认的方法对 u s b 逻辑设各进行初始化和一般的控制操作( 如配置逻辑设备) ,类似默认的控 制管道,默认的控制管道支持对设备配置信息的访问,并且支持对一般u s b 状态 和控制的访问。当设备连接到主机,加电,收到总线复位信号后,0 号端点就可 以被访问。0 号端点只支持控制传输。 2 ) 对非0 号端点的要求 功能设备除0 号端点之外还可以实现其它端点,这取决于设备的实现需求, 低速设备在除o 号端点以外只有2 个额外的可选端点用于输入及输出。而高速设 备可具有的额外端点数则仅受限于协议的定义( 协议中规定最多1 5 个额外的输入 端点和最多1 5 个额外的输出端点) ,除默认控制管道的默认端点外,其它所有端 点只有在设备被配置之后才可被使用。 ( 5 ) u s b 管道 u s b 管道是u s b 设备上的端点和主机上软件之间的联系,管道代表了主机上 缓存和设备的端点间传输数据的能力。有两种不同并且互斥的管道通信

温馨提示

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

评论

0/150

提交评论