(无线电物理专业论文)基于linux的蓝牙l2cap及rfcomm层协议的实现.pdf_第1页
(无线电物理专业论文)基于linux的蓝牙l2cap及rfcomm层协议的实现.pdf_第2页
(无线电物理专业论文)基于linux的蓝牙l2cap及rfcomm层协议的实现.pdf_第3页
(无线电物理专业论文)基于linux的蓝牙l2cap及rfcomm层协议的实现.pdf_第4页
(无线电物理专业论文)基于linux的蓝牙l2cap及rfcomm层协议的实现.pdf_第5页
已阅读5页,还剩87页未读 继续免费阅读

(无线电物理专业论文)基于linux的蓝牙l2cap及rfcomm层协议的实现.pdf.pdf 免费下载

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

文档简介

基于l i n u x 的蓝牙l 2 c a p 及r f c o m m 层协议的实现 专业:无线电物理 硕士生:蔡锦州 指导老师:黄晓副教授 摘要 在当今的信息化社会中,短距离无线通信的应用越来越广泛。蓝牙技术作为一 种新型的无线数据和语音通信的开放性标准,具有保密性高、使用方便、功能强大、 价格低廉,功耗低等优点,在日常生产和生活中得到了广泛的应用。另一方面,l i n u x 操作系统作为开放源代码的代表,不但拥有卓越的功能和性能,而且日趋成熟,受 到巨大的嵌入式设备市场的重视,许多嵌入式应用产品都采用l i n u x 作为系统平 厶 口。 本课题以蓝牙规范为基础,l i n u x 系统为平台,常见的蓝牙适配器作为实现工 具,研究设计一个基于嵌入式l i n u x 的蓝牙协议栈,重点对协议栈中的l 2 c a p 层 和r f c o m m 层进行了分析并讨论了这两层协议的设计和实现方法。l 2 c a p 协议位 于基带协议之上,为高层提供面向连接和面向无连接的数据服务,完成协议复用、 分组分段和重装、服务质量管理等功能。r f c o m m 协议提供了对r s 一2 3 2 串口的仿 真,使得传统的基于串口的应用无需改变即可使用蓝牙技术。 论文首先分析l 2 c a p 层和低层h c i 协议层之间的数据交换方式。其次阐述了 l 2 c a p 层和r f c o m m 层协议原理和实现方法。最后,通过实际操作解析了两台蓝 牙设备间建立链接、配置链路、数据传输、断开链接的过程,并根据协议实现l 2 c a p 层和r f c o m m 层主要功能,同时给出了课题后续研发工作的思路和方向。 本文在论述过程中,穿插讨论了在开发过程中遇到的技术难点及其解决思路, 并给出一些关键的程序代码。 实验证明,通过所设计的蓝牙协议,能够成功使得两台p c 主机通过蓝牙设备 建立无线连接,实现无线数据传输。 关键词:蓝牙,l i n u x ,l 2 c a p ,r f c o m m i t h er e a l i z a t i o no fl 2 c a pa n dr f c o m m p r o t o c o lo fb l u e t o o t ho n l i n u xs y s t e m m a j o r : n a m e - s u p e r v i s o r : r a d i op h y s i c s c a ij i n z h o u a s s o c i a t ep r o f e s s o rh u a n gx i a o a b s t r a c t i nm o d e mi n f o r m a t i o ns o c i e t y , s h o r td i s t a n c ew i r e l e s sc o m m u n i c a t i o ni su s e d m o r ea n dm o r ew i d e l yi no u rl i f ea n di m p a c t so u rl i v e sn o w a d a y s a san e w o p e n t e l e c o m m u n i c a t i o np r o t o c o lf o r t r a n s m i t t i n g w i r e l e s sd a t aa n dv o i c e ,b l u e t o o t h t e c h n o l o g yi sm o r es u i t a b l et ob et h ew a yt or e a l i z et h ew i r e l e s sc o m m u n i c a t i o n b e c a u s eo fi t sc h a r a c t e r i s t i c so fh i g hr e l i a b i l i t y , l o wc o s t ,s m a l lv o l u m e ,a n dl o wp o w e r l o s s o nt h eo t h e rh a n d ,t h el i n u xs y s t e mh a sm a n ya d v a n t a g e ss u c ha s s t a b i l i t y , e f f i c i e n c y , w i d eh a r d w a r es u p p o r ta n df r e e ,o p e nc o d e sp r o v i d e d t h eh i g hp e r f o r m a n c e a n de x c e l l e n tf u n c t i o n sm a k el i n u xs y s t e mu s e f u la n dh a sal o w c o s t ,s ot h a ti th a sh i 曲 p r a c t i c a lv a l u ea n dm a r k e tp o t e n t i a l t h u s ,l i n u xb e c o m e st h ep r e f e r r e do p e r a t i n g s y s t e mf o rm a n ye m b e d d e dm a n u f a c t u r e r , a n di th a st r e m e n d o u sv a l u e sa n dp o t e n t i a l s i nt h ee m b e d d e dm a r k e t i nt h ef u t u r e ,a saw i r e l e s sm e d i ao fw l a n ( w i r e l e s sl o c a l a r e an e t w o r k ) ,t h ed e v i c eo r p r o d u c t t h a ti s d e s i g n e db yb l u e t o o t ht e c h n o l o g y c o m b i n i n gw i t he m b e d d e dt e c h n o l o g yw i l lb ei n d i s p e n s a b l et ol i f e a c c o r d i n gt ot h ea n a l y s i so nt h ew h o l e s o m ef r a m e w o r ko fs p e c i f i c a t i o no f b l u e t o o t ht e c h n o l o g y , t h i st h e s i s d e v e l o p st h el 2 c a pa n dr f c o m mp r o t o c o lo f b l u e t o o t hb a s e do nn o r m a lb l u e t o o t hd o n g l ea n dl i n u xo p e r a t i n gs y s t e m t h el 2 c a p p r o t o c o li so nt h eu p p e rl a y e ro ft h eb a s e b a n dp r o t o c 0 1 i tp r o v i d e sd a t at r a n s m i s s i o n s e r v i c ef o rb o t hc o n n e c t i o n o r i e n t e da n dc o n n e c t i o n l e s s o r i e n t e d t h el 2 c a p p r o t o e o l s u p p o r t sh i g h e rl e v e lp r o t o c o lm u l t i p l e x i n g ,p a c k e ts e g m e n t a t i o na n dr e a s s e a m b l ya n d t h ec o n v e y i n go fq u a l i t yo fs e r v i c ei n f o r m a t i o n t h er f c o m m p r o t o c o lp r o v i d e s e m u l a t i o no fr s 一2 3 2s e r i a lp o r tf o rt r a d i t i o n a la p p l i c a t i o n sw i t h o u tc h a n g e s a tf i r s t ,t h et h e s i sm a d eas u r v e yo ft h ea p p r o a c ho fd a t ae x c h a n g eb e t w e e n l 2 c a pp r o t o c o la n dl o w e rh c ip r o t o c 0 1 t h e ni te l a b o r a t e do nt h et o p i co ft h e t t p r i n c i p l e sa n dm e t h o d so fr e a l i z i n gt h el 2 c a p a n dr f c o m mp r o t o c 0 1 f i n a l l y , t h e p r o c e s s o f i n i t i a l i z i n g b l u e t o o t h e q u i p m e n t ,i n q u i r i n g a n dr e q u e s t i n gc r e a t ea c o n n e c t i o nt oo t h e rb l u e t o o t he q u i p m e n t s ,c o n n e c t i o nc o n f i g u r a t i o n ,d a t at r a n s m i s s i o n a n dd i s c o n n e c t i o ni sd i s p l a y e di nd e t a i li nt h i sp a p e r a tl a s t ,i tp r e s e n t st h et h r e a do f t h ef o l l o w u pw o r kb a s e do nt h i ss u b j e c t t h i st h e s i sd i s c o u r s e sa b o v ef o u rp a r t sa n dw i t hs o m et r o u b l ea n dt h es o l u t i o ni n t h ep r o c e s sd u r i n gt h ed e s i g np r o c e s s ,a n dg i v e ss o m ei m p o r t a n tc o d e t h ee x p e r i m e n tr e s u l t sp r o v e dt h a tt h eb l u e t o o t hp r o t o c o ld e s i g n e di nt h i st h e s i s p e r f o r m e dv e r yw e l la n da c h i e v et h eg o a lo fw i r e l e s sd a t at r a n s m i s s i o n ,w h i c hr e a c h e s o u rp r o s p e c t i v ee f f e c t k e yw o r d s :b l u e t o o t h ,l i n u x ,l 2 c a p , r f c o m m i i i 本人郑重声明: 原创性声明 所呈交的学位论文,是本人在导师的指导下,独立进行研究工作 所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其 他个人或集体已经发表或撰写过的作品成果。对本文的研究作出重要 贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本 声明的法律结果由本人承担。 学位论文作者签名: 秀、辫1 日期:砂厂年p 月叱日 学位论文使用授权声明 本人完全了解中山大学有关保留、使用学位论文的规定,即:学 校有权保留学位论文并向国家主管部门或其指定机构送交论文的电子 版和纸质版,有权将学位论文用于非赢利目的的少量复制并允许论文 进入学校图书馆、院系资料室被查阅,有权将学位论文的内容编入有 关数据库进行检索,可以采用复印、缩印或其他方法保存学位论文。 学位敝储虢燕铒1 日期:渺7 年乡月w 日 导师签名:黟 醐:可年r 月痧日 第l 章绪论 1 1 课题研究背景 第1 章绪论 1 1 1 蓝牙技术的应用现状和发展趋势 蓝牙( b l u e t o o t h ) 技术自诞生以来,已经得到了长足的发展,立下了许多里程 碑。特别是近几年以来,蓝牙技术在无线通信技术领域已经占有一个相当重要的地 位。 蓝牙技术不断变革,不但数据传输的速率越来越快,安全性、易操作性等方面 都得到了相当大的改善,其有效覆盖范围也得到了增加。同时,蓝牙芯片的体积不 断地缩小,价格也已经下降到3 美元【l 】,使得它成功取代红外,成为了众多手持设 备、嵌入式设备( 如手机、p d a 等) 首选的近距离无线通信技术。 蓝牙技术使用全球通行的、无需申请许可的2 4 g h z 频段,可进行实时数据和实 时语音传输,传输质量较高,而且因为采用伪随机跳频方案,不同蓝牙微网之间的 干扰非常小。它是一种无线数据与语音通信的开放性全球规范,以低成本的短距离 无线连接为基础,为固定或移动的终端设备提供廉价的接入服务【2 1 。 蓝牙技术的设想和研究起于爱立信公司。1 9 9 8 年,由爱立信发起,联合诺基 亚、i b m 、东芝和i n t e l 共5 家公司组成了蓝牙特殊兴趣小组( s p e c i a li n t e r e s tg r o u p , s i g ) 【3 1 ,致力于蓝牙技术标准的制定、产品测试【4 1 ,并协调各国蓝牙技术的使用。 截至今天,蓝牙走过了十年的发展历程,蓝牙s i g 也拥有了超过1 0 0 0 0 名成员,蓝 牙设备已超过1 5 亿个【5 1 。这1 0 年以来,蓝牙的发展遇到不少波折,但也取得了许 多突破【6 j : 1 9 9 9 年,蓝牙1 0 协议规范发布; 2 0 0 0 年,第一款蓝牙手机以及第一款蓝牙耳机相继问世; 2 0 0 2 年,i e e e 正式通过蓝牙无线技术成为8 0 2 1 5 1 标准; 2 0 0 3 年,蓝牙核心规范v 1 2 版本正式发布; 2 0 0 4 年,蓝牙技术联盟采用核心协议v 2 0 + e d r 版本; 2 0 0 6 年,蓝牙产品的周发货量突破1 0 0 0 万件; 2 0 0 7 年是蓝牙爆炸性增长的一年,全球采用蓝牙的终端设备预计增长超过 中山大学硕士学位论文 4 0 ,由中国制造的蓝牙耳机也已经达到了2 6 3 亿部,占全球总产量的8 5 。同 一年,蓝牙核心规范v 2 1 + e d r 版本发布;与此同时,w i b r e e 加入蓝牙技术联盟, 两者合力研究蓝牙的超低功耗版本。 2 0 0 8 年,蓝牙s i g 发布两大蓝牙新版本超低功耗蓝牙和超宽带蓝牙。超 低功耗蓝牙的功耗约为传统蓝牙的1 1 0 ;超宽带蓝牙的传输速率高达4 8 0 m b p s 。加 入这两个新版本后,蓝牙统一短距离无线通信领域的梦想将很可能变为现实。 另外值得注意的是,蓝牙目前在手机中的普及会促进蓝牙在其他电子设备上的 应用f 7 1 ,比如笔记本电脑、数码相机、打印机等。加之目前的无线解决方案中只有 蓝牙技术和工业领域上的z i g b e e 成本最低,因此在日常生活中蓝牙普及的概率将 继续大幅度增加。蓝牙的发展前景是光明的。 1 1 2l i n u x 操作系统的应用现状和发展前景 自1 9 9 1 年至今,经过了多年的积累改进和技术革新,l i n u x 已经从一个学生 的课外兴趣演变成一个具有卓越的稳定性、安全、成熟的操作系统内核。这个诞生 于学生之手的l i n u x ,在i n t e r n e t 这片肥沃的土壤中不断成长。它不仅拥有庞大的 用户群,还受到i b m 、h p 、s u n 、i n t e l 、a m d 、s o n y 等i t 巨头的青睐【8 】。各大软 件公司如c a 、v e r i t a s 、b e a 、o r a c l e 、s a p 、b o r l a n d 等也相继地成为了l i n u x 的 支持者。这些公司都确认“l i n u x 已经完全适合于企业级应用 】。它们陆续派出 大量的技术力量去支援以往只是以爱好者为主导的开放源代码社区建设。经过1 7 年来的长足发展,l i n u x 操作系统以惊人的速度在网络服务器和桌面系统发展中获 得了巨大成功,逐步成为与w i n d o w s 并驾齐驱的全球第二大的实用操作系统,并 占据了大量市场份额,这些都是有目共睹的事实【9 】。 全球越来越多的用户选择l i n u x 操作系统并非出于一种狂热,而是一种理性的 选择。l i n u x 操作系统开放源代码,具备良好的可移植性,是一个具有多任务、多 用户的能力优秀的操作系统【l0 1 。它从诞生到发展从来都是为了核心程序的开发而 不是对用户的支持。l i n u x 操作系统遵循开放、自由的理念,我们能在i n t e r n e t 上 免费下载安装;l i n u x 的内核源代码是开放的,任何人都能进行修改。这两点对l i n u x 的普及和发展起了很大的促进作用。世界上优秀的程序员和黑客都在改进l i n u x 代 码,使之更加完美,正因如此,l i n u x 在技术上可以说是世界上最棒的操作系统【1 1 】。 据统计报道,l i n u x 可以帮助终端厂商节省最高达7 0 8 0 的软件成本【12 1 , 使它们能够为市场提供更具价格优势的终端产品。除此之外,l i n u x 具有庞大的开 发者论坛社区,爱好者们在论坛上集思广益,有助于终端厂商开发出更具个性化的 应用产品。这两点对于那些中小规模的终端厂商而言显得尤为重要。 2 第1 章绪论 从全球视角看,无论是在企业级的服务器【b 】,p c 和笔记本电脑,还是嵌入式 设备中,以l i n u x 为基础的操作系统都取得了相当大的进步并日渐深入人心。因此, 反映了网络时代集体智慧和信息高速公路上的协作精神的l i n u x ,其前途一定是光 明的【1 4 1 。虽然短期内它未必能够在桌面操作系统领域获得决定性的突破,但起码 在服务器市场上,以其2 0 以上的市场占有率有望与微软一争高下【15 1 。 针对蓝牙技术在无线通信领域以及l i n u x 系统在操作系统平台上广阔美好的 应用前景,本实验室结合实际情况,致力于上述两大方面技术结合的研究与开发工 作。本课题正是在上述的背景下提出的。 1 2 蓝牙协议的国内外研究现状及发展趋势 在蓝牙迎来1 0 周年庆典之际,据市场研究机构m i l l w a r db r o w n 公布的年度调 查显示,全球消费者对于蓝牙无线技术的认知度已高达8 5 ,再创历史新高! 相较 于w i f i 的5 3 ,w i m e d i au w b 的1 6 ,蓝牙以8 5 的社会认知度成为现今最广 为人知的无线技术品牌【1 6 】! 正是因为其市场潜力巨大,蓝牙技术已成为当今世界的投资热点。据统计,己 有数以百亿美元的资金投向了蓝牙芯片及其产品开发,数以于计的厂家在全力以赴 地开发基于蓝牙技术的产品,数以万计的工程师和技术人员热衷于蓝牙技术的研究 和发展j 。 为了推广蓝牙技术,蓝牙s i g 制定出了详细的蓝牙技术规范协议【l 引。不过蓝 牙技术应该如何实现,s i g 并没有详细说明。只有把蓝牙技术规范协议所描述的各 项功能加以实现,蓝牙技术才能真正应用到实际产品中去。截止目前,已有的蓝牙 芯片已经集成了无线射频和基带功能,链路管理层的功能既可以由蓝牙芯片实现, 也可以通过软件编程实现,而其它高层协议暂时还不能通过硬件实现。因此,实现 蓝牙规范体系中的其它高层协议,研发出符合蓝牙互操作性标准的蓝牙协议栈是蓝 牙产品开发的关键l l9 1 。 国内外学者对于蓝牙技术的研究主要有以下几方面:蓝牙协议栈,基于蓝牙技 术的嵌入式产品,蓝牙个域组网( 蓝牙微微网,蓝牙分散网) 2 0 】。本课题属于协 议栈开发的方向,采用开源的l i n u x 操作系统作为研发与运行平台。虽然国内外有 大量针对协议栈的文献,但应用于实际生活中的协议栈开发大多针对微软w i n d o w s 操作系统,l i n u x 系统上的蓝牙协议的研究和开发只是正在慢慢起步。l i n u x 作为 开源系统的代表,具有符合国际通用标准、兼容性好( 可移植操作系统接口p o s i x ) 、 网络特性先进、拥有多任务多用户能力、性能稳定、免费等优点,是蓝牙协议开发 3 中山人学硕j :学位论文 与运行的良好平台【2 。 鉴于微软公司已经在其操作系统w i n d o w sx p 中集成了蓝牙协议,而且微软 w i n d o w s 操作系统已经垄断了p c 机环境,故本课题除了在研发平台上选择l i n u x 开源操作系统,同时将更加广阔的嵌入式系统产品作为日后研发成果的应用方向。 嵌入式系统技术可能听起来陌生,其实早已渗入我们日常生活的各个方面。从随身 携带的m p 3 、电子辞典、手机到家庭中的智能电视、智能冰箱、机顶盒再到工业 生产,嵌入式技术正在发挥越来越重要的作用【2 2 1 。 1 3 论文主要研究内容 研究内容: 1 分析目前l i n u x 用户空间和内核空间数据交换的方式,了解h c i 层工作机理, 重点分析和把握它向上层协议所提供的编程接口并实现之,为继续编写高层协 议打下基础。 2 通过本课题的研究,开发出对蓝牙规范兼容的基于嵌入式系统的蓝牙协议栈, 在实现了l i n u x 系统内核空间下的h c i ( 主机控制接口) 层协议的基础上,往 上实现l 2 c a p ( 逻辑链路控制与适配) 和r f c o m m ( 串口仿真) 层协议,为 实际应用提供完整的低层规范。 3 通过该协议栈各模块提供的功能使两台蓝牙设备间实现无线通讯,相互传输数 据。 4 根据蓝牙s i g 规定的蓝牙应用剖面模型,选取其中的文件传输模型加以分析, 为本课题日后研发工作的继续开展提出框架、引出方向。 创新点: 1 在l i n u x 系统的底层物理驱动上着手,对蓝牙协议规范的结构进行分析并重新 建构,重点对蓝牙核心规范的l 2 c a p 和r f c o m m 层进行研究,分析蓝牙底层 基带层和高层协议的通讯机制以及通讯方法,在此基础上方便地进行蓝牙 l 2 c a p 和r f c o m m 层的开发,总结在该协议栈下进行编程的思路,完善低层 蓝牙规范,方便各种蓝牙应用模型直接开发高层应用。 2 对现有的一般基于两台蓝牙设备间数据传送接收的实现机制进行改进,引入更 好的实现方法。 4 第1 章绪论 3 常规的蓝牙协议栈一般运行于系统内核空间上,但在内核空间开发和测试难度 很大,甚至可能造成内核不稳定。出于性能考虑,本文把协议栈搬移至用户空 间上实现,把蓝牙设备映射成文件系统中的一个文件,使得用户空间的程序能 够通过标准的系统调用来访问设备,将能避免在开发过程中可能频繁出现的系 统崩溃。 4 在蓝牙技术的开发过程当中,软件的重要角色是不可替代的。本课题在具体实 现蓝牙通讯协议时考虑到移植性与扩展性,以便为日后创新型的嵌入式产品应 用打好基础。 1 4 论文结构 本论文具体安排如下: 第一章,介绍了本课题的背景与研究意义。 第二章,由浅入深,首先对蓝牙协议栈进行简介,接着重点分析h c i 、l 2 c a p 和r f c o m m 层协议,以及本课题的总体设计方案。 第三章,详细分析了l i n u x 平台下的基于u s b 蓝牙设备驱动程序与h c i 层协 议的功能实现,介绍本课题的基础背景材料的同时引出下一步研发工作的突破口。 第四章,通过对l 2 c a p 层协议实现机理的介绍,阐述了该层协议的设计和实 现原理。 第五章,通过对r f c o m m 层协议实现机理的介绍,阐述了该层协议的设计和 实现原理。 第六章,演示了所编写的协议栈运行流程和操作过程,并提出了无线文件传输 模型,为本课题继续深入研究提供思路。 第七章,对本文进行概括总结,并对今后相关的研究和开发工作作出展望。 中山大学硕士学位论文 第2 章总体设计方案 2 1 蓝牙协议栈概述 所谓协议就是指控制两个对等实体进行通信的规则的集合,即设备间交换信息 所遵守的规则【2 4 1 。任何类型的网络拓扑结构都有这样一套规则来详细定义数据在 链路上传输的方式。同样地,蓝牙s i g 制定了蓝牙技术规范协议,方便研发人员开 发具有可互操作性标准的无线模块以及以及在此基础上的交互式应用服务【2 5 1 。 要实现互操作,处于链路两端的设备,其上对应的应用程序必须运行在相同的 协议栈上。并非所有的应用程序都必须使用全部的协议栈。相反,应用程序一般只 使用协议栈中的某些部分。所以,蓝牙协议在设计上采用了类似于o s i 的分层体系 结构【2 5 l 。而在蓝牙技术规范协议之上,研发人员还可以自由地搭载实现他们自己 设计的或者通用的应用层协议。完整的蓝牙协议栈层次结构如图2 1 所示【2 6 1 。 语 o b e x 飞c p 噼u d p 立 日 高端应用层 r f c o m ms d p 中间层协议 l 2 c a p h c i ( 主机控制接口) l m p 链路管理协议 底层 b a s e b a n d 基带 硬件 模块 r f 射频 图2 1 蓝牙协议栈层次结构 6 第2 章总体设计方案 s i g 将蓝牙协议栈体系结构中的协议分为四层【2 6 】: ( 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 s ) ,a t 指令集。 ( 4 )可选协议:p p p ,t c p u d p i p ,对象交换协议( o b e x ) ,无线应用协议 ( w a p ) 。 2 2h c i 协议 蓝牙协议栈有三种实现模型【2 1 7 1 ,取决于三类产品各自所具有的不同功能和资 源。这三种类型是:寄居型、嵌入型和完全嵌入型。在寄居式模型中,底层协议栈 位于蓝牙设备中,高层协议栈位于主机中,两者通过主机控制器接口h c i 进行交 互通信。最常见的传输方式是u s b 和u a r t 。在嵌入式模型中,整个协议栈都位 于蓝牙设备中,用户应用程序单独运行于主机上,这个模型对可用内存有限的设备 是理想的选择。在完全嵌入式模型中,整个协议栈和用户应用程序都在蓝牙设备中, 这一模型要求应用程序相对简单,如蓝牙耳机就是这类模型的最好例子。本课题采 用的是寄居式模型,传输方式是u s b 。如图2 2 所示。 图2 - 2 蓝牙协议栈寄居式模型 7 u s b 中山大学硕- 上学位论文 为了让不同厂商的非集成蓝牙模块能够互通,蓝牙s i g 定义了一个标准接口与 模块中的主机控制器进行通信,这个接口与主机和主机控制器之间使用的物理接口 和传输机制无关。s i g 还定义了一个事务型通信协议,用于在主机和主机控制器之 间传送信息。这种主机和主机控制器间的标准接口和它们之间相应的通信协议一起 被称为主机控制器接口( h o s tc o n t r o l l e ri n t e r f a c e ,h c i ) 2 8 】,它提供了进入蓝牙基 带的统一方式,是整个蓝牙协议体系中十分重要的部分。 h c i 不直接访问蓝牙设备的寄存器和内存空间,它向设备发送指令和数据封 包,并且从该设备接收数据封包和响应事件封包【2 9 1 。 f h c i 指 ;乎 _ - 事 令 件 i 主机控制器 图2 3h c i 信息交换示意图 h c i 传 输 图2 3 介绍了h c i 层上下流信息交换的情况。在h c i 协议中,有三种类型的 数据包用于主机的h c i 层与蓝牙模块中的主机控制器之间进行信息交换1 2 9 1 。指令 ( c o m m a n d ) 类的数据包携带从h c i 层发往主机控制器的控制和管理信息,事件 ( e v e n t ) 类的数据包携带从主机控制器发往h c i 层的控制和管理信息,数据( d a t a ) 类的数据包则是双向的,携带a c l 和s c o 数据的分组数据。有关a c l 和s c o , 在下一章有更详细的叙述。 2 3l 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 ) ,简称 l 2 c a p ,位于基带层之上,类似于o s i 的数据链路层f 2 6 1 ,如图2 4 所示。它将基 带层的数据分组交换以便于高层应用的数据分组格式,并提供协议复用和服务质量 交换等功能。它屏弊了低层传输协议中的许多特性,使得高层协议的应用开发人员 8 第2 章总体设计方案 可以不必了解基层协议而进行开发。 图2 4 协议层内的l 2 c a p l 2 c a p 层具有以下的功能要求1 3 0 l : ( 1 ) 支持协议复用。因为基带协议不支持任何“类型 字段,而这些字段用 于标识要复用的更高层协议,所以l 2 c a p 层必须能够区分高层协议。 ( 2 ) 分段与重组。用于通过支持最大传输单元m t u 来提高传输效率,解决 高层的m t u 比基带分组大的问题。在发送端,l 2 c a p 层把高层分组分割成可通过 h c i 层传送到链路管理器的短数据段;在接收端,l 2 c a p 层接收来自h c i 层的短 数据段,并利用h c i 和分组头提供的信息把它们重新组装成l 2 c a p 分组。 虽然蓝牙基带规范定义了两种链路类型:同步面向连接链路s c o 和异步无连 接链路a c l ,但l 2 c a p 层只针对a c l 而言。任意两台设备之间只有一条a c l 链 路。l 2 c a p 层提供逻辑信道,叫做l 2 c a p 信道,它通过h c i 层所提供的a c l 逻 辑传输链接的支持映射到l 2 c a p 逻辑链路【3 1 1 。第四章将会作详细讲解。 2 4r f c o m m 协议 对串行电缆连接方式的替代是蓝牙应用的一个重要方面,r f c o m m 串口仿真 协议就是提供对基于l 2 c a p 层协议的串口仿真。它位于l 2 c a p 层之上,是一个简 单传输协议。它仿真了r s 2 3 2 控制和数据信号,解决对传统协议的适配问题,为 9 中山大学硕士学位论文 使用串行线传输机制的上层协议提供服务【2 6 1 ,如p p p 、o b e x 等。 对于每一种实际产品应用,蓝牙s i g 都定义了一种应用剖面模型规范【3 2 1 。其 中,包括l 2 c a p 层以下的协议栈部分是每种应用模型所必须具备的核心栈。其上 的高层协议可根据实际应用需要进行选取。r f c o m m 是涵盖应用范围较广的一个 协议,许多场合都会应用得到。所以研究开发r f c o m m 层,对于完善蓝牙低层协 议栈工作来说,是具有极为重要意义的一步。 2 5 设计方案 基于本实验室的往届成果,目前已经实现u s b 蓝牙设备的物理层驱动程序以 及完成了h c i 层协议的主机控制模块功能。本文在这个基础上,根据实际需要逐 步添加l 2 c a p 层和r f c o m m 层协议,完善用户空间的蓝牙低层协议栈,并实现 基于u s b 蓝牙适配器的l i n u x 操作系统平台间的无线数据传输。 本论文总体设计方案: - 掌握l i n u x 系统用户空间和内核空间数据交换方式。 -实现h c i 层链接控制模块以及建立a c l 链路。 _ 分析蓝牙协议栈的层间交互方式。 _ 编写l 2 c a p 和r f c o m m 层协议,建立基于u s b 蓝牙设备的两台主 机间的无线通讯,实现数据传输。 本课题的协议研发工作以目前蓝牙主流开源协议b l u e z 为基础,基于实际应用 而进行简化,增强以及改进。因为l i n u x 操作系统的核心语言是c 语言,所以本文 也是采用c 语言进行协议栈的开发工作。本课题所提及的p c 机间基于u s b 蓝牙 设备无线通信的实现,第一步必须理解各层协议所规定的各种分组、帧格式,明白 各指令对应的十六进制表示形式,每一层既要与下一层交换数据,又要向上一层的 协议提供访问接口;第二步则需要对l i n u x 的系统实现机制不断摸索,提高协议代 码的质量和运行效率以及系统稳定性,最终把协议功能实现。 根据蓝牙硬件设备的特点和官方协议的规定,实现蓝牙无线通信需要完成蓝牙 芯片初始化、运行蓝牙链路管理命令、链路建立、链路参数配置、链路拆除以及数 据的打包和拆包等功能3 3 1 。这给l 2 c a p 和r f c o m m 层协议的编写提供了流程思 路。 这一章简单介绍了基于u s b 设备的l i n u x 蓝牙h c i 层、l 2 c a p 层以及 r f c o m m 层协议,点出了协议栈的构建目标,对其总体设计方案进行详细的阐述, l o 第2 章总体设计方案 并且分析了开发过程中的关键技术和研发难点。下一章开始将论述详细的设计开发 过程。 中山大学硕士学位论文 第3 章l i n u x 下蓝牙驱动程序及h c i 层协议各功能模块 3 1l i n u x 下蓝牙驱动程序概述 3 1 1 内核空间( k e m e l s p a c e ) 和用户空f 自j ( u s e r - s p a c e ) 以及系统调用 现代流行的各种c p u 通常都支持至少两种运行模式,它们是基于计算机体系 结构中存储管理的保护机制所设计的。提供保护的目的,是要避免系统中的一个任 务访问属于操作系统核心的存储区域。基于这种架构,l i n u x 操作系统对自身资源 管理进行了划分:一部分核心进程独立于普通应用程序,运行在较高的特权级别上, 它们驻留在被保护的内存空间上,拥有对系统资源包括硬件设备等的所有访问权 限,l i n u x 将此称为内核空间【3 4 1 ,这样可以保证进程访问的安全性。 相对地,用户应用程序在另一位置用户空间执行。这些程序只能看到允许 它们使用的那部分系统资源,不能使用某些特定的系统功能,不能直接访问硬件, 不能直接访问内核空间,以及其它一些具体的使用限制【3 4 1 。 从安全角度考虑,将用户空间和内核空间置于这种非对称访问机制下是很有意 义的,它既能抵御恶意用户的窥探和改动,也能防止质量低劣的用户程序的侵害, 从而为系统的安全性以及稳定运行提供可靠保证【3 4 1 。但这会产生另一个极端:如 果完全不允许用户程序访问和使用内核空间的资源,那么系统也就无法提供给用户 任何有意义的功能了。考虑到这方面,为了方便用户程序使用那些必须在内核空间 才能完全控制的资源,而又不违反上述特权规定,从硬件体系结构本身到操作系统 的设计上,都提供了标准的访问接口。这些所谓的标准接口通常被称为系统调用 【3 5 1 ,它是用户程序跟操作系统交互的通道。编写用户程序的时候并不需要知道计 算机上安装了哪些物理硬件,内核空间会把所有的硬件抽象成统一的虚拟接口即系 统调用。内核空间、用户空间和系统调用三者之间的关系可以用图3 1 表示。 当前几个主流的开源蓝牙协议栈,包括b l u e z ,均工作于内核空间,这意味着 在协议栈上的任何改动都有可能导致内核的不稳定甚至崩溃【3 6 】。为了避免在研究 过程中出现频繁的系统崩溃,把蓝牙协议栈迁移到用户空间上实现是必要的。 1 2 第3 章l t 蓝牙动程序h c i 层脚泌各功能模块 削3 1 用户空间内核空间和系统资源的关系 3i2l i n u x 设备驱动程序 l i n u x 的一个重要特点就是把所有资源都看作是文件来处理口”。设备驱动程序 在l i n u x 中扮演一个非常重要的角色,它本质上是一些特殊的、常驻内存的硬件处 理程序的共享库口8 i 。几乎所有系统可用的设备都需要各自的驱动程序来协助访问。 这些驱动程序隐藏了关于设备操作的实际细节和复杂性,对设备进行抽象处理,对 外提供一个高度定义好的内部可编程接口,使得用户可以通过一组处理文件的标准 化系统调用来操作设备,而不需要关心设备实际的操作细节口”,即所谓的“设备 无关性”。设备驱动程序将这些标准化调用映射成实际作用于设备的特定操作。 驱动程序是用户空间和内核空间交互信息的重要方式。驱动程序运行于内核空 间,用户空间的应用程序通过操作文件系统中d e v 目录下的一个相对应文件来和它 进行交互。文件操作流程”:o p e n ( ) r e a d ( ) w r i t e o i o c t l o - - ) c l o s e ( ) 。 l i n u x 还提供了一个非常重要而灵活的特性来方便开发人员进行内核宅问的程 序开发一一动态内核特性扩展【4 “4 ”。开发人员能够动态地对内核进行功能添加。这 一做法是通过在内核运行时往其添加“模块”柬实现的,每个模块实际上是没有连 接成可执行程序的目标代码【4 2 i 。我们可以通过在s h e l l 终端键入i n s m o d 命令把模块 连接入内核运行,或者用r m m o d 命令动态的移除一个模块。l i n u x 的设备驱动程序 几乎都是以这种“模块”的方式实现的。经过i n s m o d 命令加载的设备模块会在m e w 目录下生成一个相对应的文件并被赋予一个文件描述符,使用o p e n 、r e a d 、w r i t e 、 c l o s e 等文件流系统调用就可以对这一设各( 或者说这一文件) 进行操作了。 中山大学硕士学位论文 用户空间内核空间硬件 l 驱动程序 i i : :u s b 子系统: l 一一i 初始化设备检查i dr u b l e l n s e r td e v i c e 一 匹配驱动程序( 接入设备) t o p e n 开始读写处理 ( 打开设备) 挂起设备 。 i 挂起 1 l 读完成回调函数 - 数据读取完成 i r e a d 阻塞型读操作 或出错 i ( 读设备) i w r i t e 阻塞型写操作 ( 写设备) 数据发送完成 或出错 写完成回调函数卜_ c :l o s e 关闭设备,结束读写 ( 关闭设备) 处理 i t 释放资源并重置设备 检杏i dr u b l e 一篇劣e 状态 i - 一 匹配驱动程序 r m m o d 注销设备驱动 ( 卸载模块) t 图3 2 驱动程序的函数调用关系及流程 1 4 第3 章l i n u x 下蓝牙驱动程序及h c i 层协议各功能模块 图3 2 是驱动程序运行的大致结构框图【4 3 1 ,它阐述了程序中各个主要接口的 触发事件以及设备工作的大致流程。图中一代表用户空间的请求和内核空间的 处理函数或者是某事件触发条件与处理例程的对应关系,而一则代表一般的 操作流程。 3 1 3基于u s b 的蓝牙设备概述 本课题采用的是基于u s b 端口的蓝牙适配器,图3 3 显示了蓝牙设备通过 u s b 连接到主机p c 的框图【3 3 】: u 控制 i 嚣h 嚣h 潞i o 鲰卜 s卜_ _ _ b u s b - - - - 叫 u d dj 工巾o - :譬i 接 数据 ll 口 嚣 凰 y 图3 3 基于u s b 的蓝牙模块框图 主机 u s b 其中一个很重要的特性是它只担当设备和主控制器之间通信通道的角色, 对它所发送的数据没有任何特殊的内容和结构上的要求【4 引。u s b 可以通过一个物 理信道处理多个逻辑信道,因此控制、数据和语音信道不需要其它的物理接口。不 过在通过u s b 实现的蓝牙模块中没有对寄存器和内存的直接访问,这些功能是通 过使用适当的h c i 命令和使用主机控制器接口来实现的。下一节将开始讲述这些 h c i 层控制命令的实现。 3 2h c i 协议主机控制模块实现 3 2 1主机控制模块概述 h c i 的主机控制模块负责完成蓝牙适配器芯片进入正常工作状态前的初始化 工作。这些初始化工作是通过主机发送命令至主机控制器,主机控制器触触发相应 的响应事件来实现的。所以如第2 章第2 节所述,h c i 层的数据包可分为三种类型: 命令包、事件包、纯数据包。根据h c iu s b 规范所定义的,h c i 命令包使用u s b 控制通道传输,h c i 事件包使用u s b 中断通信传输,纯数据包又分异步数据包( a c l 1 5 中山火学硕士学位论文 p a c k e t ) 和同步数据包( s c op a c k e t ) ,其中异步数据包使用u s b 的b u l k 数据传输, 同步数据包则通过u s b 的等时通道传输4 4 1 。 为了方便区分和编程实现各类数据包,蓝牙协议规范定义了不同包各自的格 式。图3 4 和

温馨提示

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

评论

0/150

提交评论