已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
论文题目:基于s t 平台的蓝牙s d p 、r f c o m m 、s p p 的 嵌入式开发 专业: 硕士生: 指导教师: 无线电物理 邵明 黄晓 摘要 当今,无线网络技术的发展日益蓬勃,各种无线通信标准不断涌现,而b l u e t o o t h 作为 全球开放的一种近距离无线通信标准其在嵌入式端的应用比在p c 端的应用具有更广泛的 市场空间和前景。蓝牙底层驱动的开发有利于我们掌握蓝牙的核心技术,为实现具体的应用 做铺垫。 本论文首先对蓝牙核心协议及具体的应用框架进行必要的阐述,并从软件和硬件两方 面对开发平台做了较为详细的介绍,接着对蓝牙协议中的s d p 、r f c o m m 协议及串口规范 s p p 进行研究,然后分别给出了在嵌入式端实现s d p 、r f c o m m 以及串口规范s p p 的设计 思路,同时提供了实现它们用到的关键的数据结构、各个模块的流程图及相应接口。最后在 s t m i n i k i t b i u e i i 曲t 平台上实现了蓝牙协议中的服务发现协议s d p 、串口仿真协议1 c o m m 及s p p ,实测表明可以在标准蓝牙设备与开发板m i n i k i t 之间进行服务搜索或浏览以此来 建立醐m m 的数据链路,并虚拟出若干串口,使得原来基于串口的应用不作修改或者很 小修改就能在其上使用。 本项目是与深圳南太电子有限公司合作的基础上完成的,得到了其在硬件和软件上的大 力支持,同时其开发人员在我实习期间也给予了我很多的指点与帮助,在此对公司及相关人 员表示感谢。 关键字;b i u 眦o o t h 、s d p ,开f c o m m 、s p p t i t l e :e m b e d d e dd e v e l o p m e n to ns d p 、r f c o m ma n ds p p o fb l u e t o o t hb a s e do np l a t f o 册o fs t m a i o r n a m e w i r e i e s sp h y s i c s s h a om i n g s u p e i 的r :p r o f e s s o rh u a n gx i a o a b s t r a c t 7 1 1 0 d a y ,t h et e c h n o l o g yo fw i r e l e s sn e l w o r k i n gf i o u r i s h e si n c r e a s i n g l y ,v a r i o u ss t a l l d a r d so f w i r e l e s sc o m m u n i c a t i o n sa p p e a r e do n ea f t e ra n o t h e lb u tb l u e t o o t hi sa ni n t e m a t i o n a lo p e n s t a n d a r df o rs h o r tr a n g ew i r e l e s sc o n n e c t i o n ,t 1 1 ea p p l i c a t i o no fi to ne m b e d d e dd e v i c eh a sal a 唱e r m a r k e ts p a c ea n dam o r eb 啦h t e rf u t u r et h a nt h a to np cd e v i c e t h em o s ta d v a n t a g eo f d e v e i o p j n gd r i v e ro f b i u e c o o t hi sc h a tw ec a nm a s i e rm ek e m e lo fi ta n dp a v et h ew a yf o rr e a l 垃i n g t h es p e c i f i ca p p l i c a t i o n s n i st h e s i sd e s c r i b e st h ep r o t o c o l sa n d3 p p l i c a t i o np m f i l e so fb l u e t 0 0 t h ,t h e ni n t r o d u c e st h e p l a t f b r n lb o t ho ns o f 咐a r ea n dh a r d w a r e a n e rm a l ,id i ds o m er c s c a r c h e so ns d p a 1 1 dr f c o m m p r o t o c 0 1 sa 1 1 ds e r i a lp o r tp r o m e ,t h e ng a v ead e s i g n e dm e t h o do nr e a l i z i n gs d p 、r f c o m ma n d s p p 州t 1 1s o m ei m p o n a n td a t as t m c t s 、日o wc h a t sa n di n t c r f a c e so fe m b e d d e dp l a t f 0 衄a tl a s ti r e a l i z e dt h es d p 、r f c o m ma n ds p po fb l u e t o o t hp r o t o c o l su n d e rt h es 1 m i n i k i tb l u e l i g l l l p l a t f o 珊。l b et e s tr e s u nj sw ec a ns e a r c ho rb m w s e 廿1 es e r y i c e sb e “v e e nt b es t a n d a r db l u e l o o t h d e v i c e s 卸dt h ed e v e l o pb o a r d ,t h e nw ec a ns e t u pr f ( :o m ms e s s i o na n de x c h a i l g ed a 诅b e t w e e n t b e m ,t 1 1 ea p p h c a t i o n sw h i c ha r eb a s e do ns e r i a ip o r tc a nm np r o p e r l yo nt h ev i r t u a is e r i a lp o n w h i c hi ss u p p l i e d b yr f c o m mw i t h 叫ta n ym o d i f i c a t i o n s n ea c c o m p l i s h m e n to ft h i st h e s i si sb a s e do nt h ep r o j e c tb c t w e e nn a m t a ie l e c t m n i c ( s h e n z h e n ) a n dm yl a b o r a l o r yi t i sd u et ot h eh e l p0 ne n h e rs o f t w a r eo r h a r d w a r eo fn 锄t a i ,卸d t h ed e v e l o p e ro fi th e l p e dm e 【o o ,s ois h o u l d8 p p r c c i a t et h e m k e y w o r d s :b l u e t o o t h 、s d p 、r f c o m m 、s p p 1 1 1 第1 章弓f 言 1 1 论文的选题背景 第1 章引言 网络及通信技术的飞速发展,使得人们对无线通信的需求越来越高,近距离无线技术正 在成为人们关注的焦点。 在目前米说,使用较厂泛的近距离无线通信技术有蓝牙( b i u e t o o t h ) ,无线局域网 8 0 2 1 1 ( 蝴f j ) 和红外数据传输( j r d a ) 。而新兴的近距无线技术标准也层出不穷川,z i 9 b e e 、 超宽带( u 叶aw i d e b a n d ) 、短距通信( n f c ) 、无线1 3 9 4 和专用无线系统等都同样具有发展 的潜力。它们都有其立足的特点【2 】,或基于传输述度、距离、耗电量的特殊要求;或着眼 于功能的扩充性;或符合某些单一应用的特别要求:或建立竞争技术的差异化等。但是没有 一种技术可以完美到足以满足所有的需求。 诚然,作为一种近距离的无线通信技术,蓝牙技术并不是唯一的。但是与其他相应的无 线通信技术比较起来蓝牙技术的优势就在于它的全球统一的、开放的技术标准,技术先进 与成本低廉的折衷统一考虑,以及世界篮牙组织s l g 知识产权共享的巨大诱惑力。 自从1 9 9 8 年提出蓝牙技术以来,蓝牙技术的发展异常迅速。它的应用被认为非常广泛 而且极具潜力。它可以应用于无线设备【3 1 ( 如p d a 、手机、智能电话、无绳电话) 、图像处 理设备( 照相机、打印机、扫描仪) 、安全产品( 智能卡、身份识别、票据管理、安全检查) 、 消费娱乐( 耳机、m p 3 、游戏) 、汽车产品( g p s 、a b s 、动力系统、安全气袋) 、家用电器( 电 视机、电冰箱、电烤箱、微波炉、音响、录像机) 、医疗健身、建筑、玩具等领域。蓝牙行 业对于市场的持续增长使开发人员感到欣慰,现在没有人再质疑它的生命力。2 0 0 2 年,4 0 0 余种蓝牙产品的销量总共达剑了3 0 0 0 万什:而2 0 0 3 年的数字是2 0 0 2 年的2 倍。i n s t a t m d 只公司预测,蓝牙市场的规模在2 0 0 7 年将膨胀到6 亿件。爱立信技术授权公司的总 裁m a n ak h o r s a n d 表示:“在如此艰难的经济环境下,蓝牙是少数仍在增长的产品之一“。 之前,蓝牙还只能传输1 m b i t s 的语音和数据,可以说速度是阻碍蓝牙技术发展的瓶 颈之一,但是自从2 0 0 3 年推出监牙技术2 o 标准后,它的传输速率可达到1 2 m b ,满足一 般的数据传输已经足够,并且它的安全性也得到进一步提高。蓝牙技术应用于a v 方面的需 求是现在的热点,运用蓝牙耳机可以听到p c 端的音乐就是一种例子。而类似耳机这种设备, 就需要在嵌入式端实现蓝牙的驱动。 在国内,最早开发监牙协议栈的尔南大学成功开发出蓝牙语音网关系统;中科院0 r i o c 中山人学硕士论文 公司推出了蓝牙通用和专用产品:中科网公司的蓝牙家庭无线网络系统解决方案代表了f 代无线通信新概念:重庆蓝牙研究所研发了自主知识产权的蓝牙开发平台、蓝牙网关、蓝牙 通用无线接口模块和蓝牙u s b 接口适配器等产品;由归国留学人员组成的北京普晋科技展 示了具有自主知识产权的蓝牙单芯片解决方案。我国惟一的蓝牙s i g ( 蓝牙特别兴趣小组) 高级成员、国际上知名的蓝牙软件和参考设计供应商l v t 公司拥有蓝牙一揽子解决方案,包 括一致性测试仪、互操作测试仪、蓝牙协议栈等。 而在国外,许多公司都既设计生产蓝牙芯片,又推出了相应的开发蓝牙平台,p h ;i i p s 的b i u e b e r r y ,c s r 的c a s i r i a 开发包,s t 的m i n i 蚍c f w 等他们都提供了比较完备的软 硬件的开发环境给众多的希望从事蓝牙开发的o e m 企业。我实习的深圳南太电子有限公司, 拥有以上三种蓝牙开发平台,而我主要从事的是s t 平台下的蓝牙底层驱动的开发- 1 2 论文的主要工作 本人在实爿期问做的工作基本上都跟我的毕业设计内容相关,而本论文的研究主要集中 在蓝牙核心协议的嵌入式端实现,主要的工作如下: ( 1 ) 在逻辑链路控制与适配协议l 2 c a p 层之上实现了服务发现协议s d p ( s e i c e d i s c o v e r yp r o t o c 0 1 ) 服务发现协议s d p 是任何蓝牙应用所必须的,它可以使本地蓝牙设备与远端 蓝牙设备互相查询或浏览到对方提供的服务信息,为上层协议或者具体的应用提供 必要的参数及其他支持。 ( 2 ) 在l 2 c a p 层和s d p ( s e r v j c ed i s c o v e 哼p r o t o j ) 实现的基础上,完成串口仿真协 议r f c o m m 串口仿真协议r f c o m m 是基于e 1 s 1 0 7 1 0 的,它支持模拟串口和远端串口控 制,并且允许在两个设备间的一条物理链路上提供多个”口”进行传输,为实现s p p 打卜- 基础。 ( 3 ) 在嵌入式端,实现了s p p 在嵌入式端,添加了虚拟串口的仿真实体,基本实现了s p p 的要求。可以用 超级终端打开标准蓝牙设备的虚拟串口( p c 端) 来和嵌入式端虚拟的串口进行通讯 ( 4 ) 另外,本人也参与了h c i 的一小部分的工作。包括测试h c i 对底层协议的了解可 以说给上层协议的编写带来很大帮助 2 第1 章引击 1 3 论文的内容安排 本文共分为七章: 第1 章为全文的引言部分,首先阐述了论文的选题背景,概述本论文的主要工作段贡 献,描述了论文的层次结构与内容安排。 第2 章对蓝牙体系结构中的监牙协议栈及应崩框架作了介绍,总体地把握蓝牙技术标 准的一些重要概念,并结台实际对我开发所应,h 到的软硬件平台的相关概念作必要解释。 第3 章对蓝牙核心协议之一的服务发现协议s d p 的原理作详细的分析,阐述了我对 s d p 的功能,构成具体服务的服务记录巾的各种术语的理解,以及执行服务搜索或浏览的 相关动作。 第4 章开始讲述如何实现s d p 协议,结合某个具体的服务记录,介绍创建服务记录到 服务数据库的过程然后对如何在服务器和客户端之间交互作阐述,最后介绍了上下层之间 的接口。 第5 章分析了实现s p p 规范的基础一串口仿真协议r f c o m m 的实现参考模型,它为 上层协议或应用提供了虚拟串口,所以要求在r f c o m m 之上有一个串口仿真实体或类似的 a p i ,并讲述了r f c o m m 与e t s l 0 7 1 0 的关系以及基于c r e 龇s 的流控机制这一重要概念。 第6 章阐述如何实现r f c o m m 及s p p 规范,首先给出了设计思路,之后洋细给出了 整体和各个模块的实现流程图,f 作了较为详细的说明,接着就与s d p 、l 2 c a p 及上层应 用的接口作出说明。最后给出了政入式端实现s p p 的方案,并提供了一个串口仿真实体给 其他上层应用使用。 ? 第7 章对全文内容进行了总结,j f 提出日后进一步工作的设想。 3 第2 章蓝牙协议标准 第2 章蓝牙协议标准 2 1 蓝牙协议堆栈体系 s l g 所颁布的蓝牙规范( s p e c i f i c a t i o no f t h eb i u e t o o t hs y s t e m ) 就是蓝牙无线通信协议 标准,它规定了蓝牙应用产 应遵循的标准和需要达到的要求。到目前为【t ,已正式颁布的 蓝牙规范有1 0 、10 b 、1 _ 1 、12 和2 0 ( e d r ) 五个版本f 4 】,蓝牙的传输速度由原来的1m 提 高至3 m ( 理想情况下甚至可以达剑1 0 m ) 。 蓝牙规范包括核心协议( c o r e ) 与应用框架( p r 0 俐e ) 两大部分,前者定义了篮牙的存层通 信协议,后者则指出了如何使川这螳协议来实现具体的应用产品。 蓝牙规范在其协议栈中采用分层结构,分别完成数据流的过滤和传输、跳频和数据帧 传输、连接的建立和释放、链路的控制、数据的拆装、业务质量( q o s ) 、协议的复用和分用 等功能。在设计协议栈( 特别是高层协议) 时的原则就是最大限度地重复使用现存的协议,而 且尽管不同的协议对应不同的戍用,其高层应_ f 协议都使用公共的物理层和数据链路层。蓝 牙技术要注重各种设备问的互通,就必须严格按照协议及规范来完成应用产i 昂。完整的监牙 协议体系结构如图2 1 所示, 服葬 i 篙f 防夸lf 骠餮fi 揣器) i 音频视频控 悟频视疑势 发现制传输协议l 挂传输协议 音频 协议c v c t p )i ( a v d t p ) ( u d l o ) 捣d p ) j l 点对点协议( p p p ) l i串口仿真( r f c o m m )i网络封装( b n e p ) f 逻辑链站控制与适配协议( l 2 c a p )i i f 一 。 主控韦i 器接口( h c l ) 6 r ” 一: l 卜_ ;涟路管理器协议u o 睡捌a 呻g e r b r o l o bi 一。j,垄带与健醋控和皑a s e b a n a 蛙u n k g o n 啪l l e 仉4 劈撩蜒+ q 。蝣嚣兹:凄蕊焉“: 一一 p 2 一u 、 一,f ,# 。o 图2 1 蓝牙协议堆栈 按照蓝牙协议的逻辑功能,协议堆栈由下至上分为三个部分f 5 】:传输协议、中介协议和应 用协议。其功能简介如下: 传输涛议负责蓝牙设备问相互确认对方的位置,以及建立和管理蓝牙设备间的物理和逻 5 中山大学硕士论文 辑链路。这一部分又进一步分为低层传输西议和高层传输协议两部分。低层传输协议包括了 射频( r a d i o ) 、基带与链路控制器( b a s e b a n d & l l n kc o n t 耐i e r ) 和链路管理器协议( l n k m a n a g e rp r o t o c d l ,l mp ) 。低层传输协议侧重于语音与数据无线传输的物理实现以及蓝牙 设备问的连接与组网。高层传输协议包括了逻辑链路控制与适配协议( l 0 9 i c a jl j n kc o 嗽i r 。f a n da d a p t a t i o np r o t o c o i ,l 2 c a p ) 和主机控制器接口( h o s tc o n 打训e ri n t e r f a c e 。h c l ) 。这 部分为高层应用程序屏蔽了诸如跳频序列选择等低层传输操作,并为高层应用提供了更加有 效和有利于实现的数据分组格式。需要说明的是:h c i 并不是严格意义上的通信协议,它可 以位于l 2 c a p 之卜,也可咀位于其下。h c j 仅为应用协议堆栈的高层部分提供了一个访问 低层传输协议( 通常集成在蓝牙模块中) 的指令接口。 中介协议层为高层应用协议或程序在蓝牙逻辑链路上工作提供了必要的支持,为应用层 提供了各种不同的标准接口。这部分协议包括以下几部分: 串口仿真协议( r f c o m m ) :基于欧洲电信标准化协会的e 了s i 的t s0 7 1 0 标准制定, 该协议用于模拟串行接口环境,使得基于串口的传统应用仅作少量的修改或者不做任何修改 可以直接在该层上运行。 服务发现协议( s e c ed i s c o v e r yp r o t o c o i ,s d p ) :为实现蓝牙设备之间相互查询及访 问对方提供的服务。 r c l a a n 打a r e dd a | aa s s 。c j a b o n ,红外数据挎会) 互操作协议;蓝牙规范采用了l r d a 的 对象交换协议( o b e ,使得传统的基丁红外技术的对象( 如电子名片i v c a r d ) 和电子日历 ( 、c a l ) 等) 交换应用同样可以运行在蓝牙无线接口之上。 一网络访问协议:该部分协议包括点对点协议( p p p ) 、网际协议( i p ) 、传输控制协议p ) 和用_ 户数据报协议( u d p ) 等,用于实现蓝牙设备的拨号上网,或者通过网络接入点访问 i n l e m e t 和本地局域网。 电话控制协议:该协议包括t c s 、a t 指令集和音频。电话控制协议t c s 是基于国际 电信联盟一电信组( i n t e m a 廿o n a lt e l e c o m m u n i c a l i o nun o n t e l e c o m m u n i c a 廿o n ,l t u m 的 q ,9 3 1 标准制定的,用于支持电话功能:卢i t 指令集基于r r u 1 v - 2 5 0 和欧洲电信标准 ( e u r o p e a nt e f e c o m m u n f c a n o ns t a n d a r d ,e r s j3 0 09 t 6 标准,用于实现多用户模式下对 移动电话和调制解调器的控制。蓝牙直接在基带上处理音频信号( 主要指数字语音信号) ,采 用s c o 链路传输语音,可以实现头戴式耳机( h e a d s e l ) 和无绳电话( c o r d l e s s1 - e i e p h o n y ) 等 的应用。 应用协议:是指那些位于蓝牙协议堆栈之上的应用软件和其中所涉及的协议,包括开发 6 第2 章蓝牙协泌标准 驱动各种诸如拨号上网和语音通信等功能的蓝牙应用程序。蓝牙规范提供了传输层及中介层 定义和应崩框架,在传输层及中介层之上,不同的蓝牙设备必须采用统一符合蓝牙规范的形 式:而在应用层上,完全【u 开发人员自土实现。事实卜,许多传统的应用都可以几乎不用修 改就在监牙协议堆栈之上运行,如基于串口和o b e x 协议的应用【6 】。通常蓝牙技术开发人 员是利用基于某一平台的开发工具所提供的应用程序接l | ( a p i j 来进行开发1 _ 作( 我所用的 a p i 是s t 的提供的c f w ,稍后会作介绍) ,但s i g 并没有给出a p i 的舰范,a p i 函数的开 发由开发工具的设计人员来完成,这样有利丁i 蓝牙技术与各类应用的紧密结合。 2 2 蓝牙应用框架 s l g 为各种应用蓝牙技术的产晶制定r 相应的应用框架p r o 矧e ) 。应用框架主要定义了 实现具体的监牙产品或某些通川功能( 如建立连接和服务发现等) 所用剑的协议栈及它们之 间的互操作性要求和各功能的实现过程等。倒2 2 是蓝牙应用框架协议堆栈: 图2 2 蓝牙应用框架协议堆栈 由上图可以看出:一个应用框架往往建立在另一个应用框架的基础上,这种关系称为依 附性。通用应用类框架是其他应用框架的基础,它规定了其他应用框架普遍用到的功能流程, 如查询、建立连接和服务发现等;而串口框架( s e r i a p o r tp r 0 自i e s p p ) 就是我的论文所涉 7 中山人学硕士论文 及到的,它定义了在两个蓝牙设备闻基于r f c o m m 建立虚拟的串口连接的过程和要求( 第 6 章会详细介绍) 。 2 3s t 平台m j n i i i t 引u e g h t 本论文的选题是基于本实验室和深圳南太l 乜子有限公司的合作项目我们所从事的蓝牙 底层驱动的开发都是在公司提供的软硬件平台上进行的。下面就软硬件平台作必要的介绍。 s _ r m ;c r o e l e c t r o n i c s 的蓝牙硬件平台m i n tb i u e l i g h t 并没有采用单芯片的解决方案m , 而是在它的蓝牙模块上分别集成了蓝牙射频单元、蓝牙基带控制器及闪存( 月a s h ) 三块独立的 芯片。蓝牙射频单元t 【 ;j 于收发2 4 g 的射频信号:蓝牙基带控制器用于实现射频、基带、链 路控制器和链路管理器协议的功能,处理蓝牙基带分组的收发以及管理蓝牙设备间的物理链 路。 m i n i k i tb i u e i i g h t 上的基带控制器使用的芯片型号是s t l c 2 4 1 0 f 8 】,它里面嵌入了 a r m 7 t d m lr l s c 内核的3 2 b bc p u ,支持最高外部时钟为2 6 m h z ,有6 4 k b y t e 的r a m 和4 y t e 的b o o tr o m ,它提供了u a r t 、u s b 、1 2 c 、p c m 、g p l 0 等多种接口,它完全 支持b i u e t o o t h 规范1 1 ,包括: 一7 个从设备; 一支持异步无连接链路( a cl ) 的速率高达7 2 1 k b s 一支持最多3 条同步面向连接链路( s c o ) 的语音通道 l 一硬件支持所有的包类型:a cl = d m l 、3 、5 和d h l 、3 、5 :s c o :h v l 、2 、3 和d v l 一在p c m 接口中支持一个p c m 通道 一可选的语音编码方案:c v s d ,p c m16 8b 1 ,a i a w 。i 删 一高质量的声音包滤波保证了出色的音频质量 一支持点对多点 一支持散射网。可以在一个最大数为两个的微微网中通信 而射频单元使用的芯片是s t l c 2 1 5 0 9 】 它采用c m 0 s 工艺,7 m m ) ( 7 m m x l o m m v f q f p n 4 8 封装,与基带控制器提供的b i u e r f 完全兼容,集成有接收器和解调器,射频 功率为2 级和3 级,弗带有功率控制,温度范围为- 2 0 7 0 。 s t 提供j ,一个库c f w ( c u s t o m e rf r a m e w o r k ) 。它是一个软件库用来供客户和合作者 8 第2 章蓝牙办议标准 在m i n i 肌上嵌入协议、规范和应用代码。c f w 提供了四种基本类型的a p | 【1 0 】,如图2 3 所示: 图2 3 c f a p i 这里不一赘述,我们的蓝牙驱动里这四类a p l 都用到了,具体可以参见我们的源代码。 而整个系统架构如图2 4 所示: 图2 4 系统架构 9 中山大学硕士论文 用户任务或者蓝牙上层协议及规范在基于c f v v 的h c i 及其他r 1 - 0 sa p l 之上运行作 为s t 蓝牙平台的开发人员有必要熟悉s t l c 2 4 1 0 c u s t o m e r f 舯e w o r i 徂p i d o c 文档内容, 才能正确及合理地使用它们来开发上层协议。 1 0 第3 章服务发现协议 第3 章服务发现协议 3 1 服务发现协议概述 服务发现协议是蓝牙核心胁议之 。 它用于发现一个蓝牙设备上的服务。一个蓝牙设备为了能访问另一个蓝牙设备上的服 务,必须要知道对方所提供服务的一些必要信息i 在蓝牙工作环境中,必须使用服务发现协 议,通过该胁议呵以知道对方何没有自己想要的服务。如果有的话还可以获取该服务的一些 信息( 如该服务所使用的各种协议栈、服务名称、服务提供者和服务的u r l 等) 。 由图2 1 可以看出,在整个蓝牙涛议栈中,s d p 协议层工作丁l 2 c a p 之上,使用l 2 c a p 提供的基于连接的工作方式。 服务发现协议分为客户端部分和服务器端部分,在不同蓝牙设备e 工作。需要请求服务 的蓝牙设备运行服务发现协议客户端部分,提供服务的蓝牙设备运行服务发现协议服务器端 部分。图3 1 说明了客户端和服务器端的交互情况 1 1 】 图3 1 客户端和服务器端交互 客户端向服务器端发送请求,服务器端根据请求查询自己的数据库并作出响应。 3 2 服务发现协议中的术语 在介绍如何实现s d p 之前对服务发现中的几个术语数作必要解释,它们是:数据元 ( d a t ae i e m e n t ) 、通用唯一标识符( u u i d ) 、服务、服务记录、服务属性、服务类别。 中山大学硕士论文 数据元是s d p 对服务记录中用到的所有数据进行描述的一个基本结构单元它可以表 示各种可能的数据类型。数据元由头字段和数据字段两部分组成。头字段占1 个字节,由类 型描述符m p ed e s c r i p o r ,高5 位) 和尺寸描述符( s i z ed e s c n p t o r 低3 位) 两部分组成,前 者指出了数据字段的类型,后者指出了数据字段的长度。数据元结构如下图所示: 数据元r d 越ae l 铺e n t ) _ ,丝! ! - | 垒堑! 量鏖由尽立描述煎逸室- 图3 2 数据元结构图 表3 1 是在蓝牙协议中定义的数据元类型。 表3 1 数据元类型 尺寸描述符的值实际上为数据字段长度大小的索引值,索引值为5 、6 、7 时,还将附加8 、 1 6 、3 2 位的长度值,参见表3 2 。 j 2 第3 章服务发现协议 表3 2 尺寸描述符取值与数据字段大小的对应关系 u u i d 川来代表服务、类型或者属性。蓝牙规范制定了一些u u i d 值来标识它们所描述 的服务,新的蓝牙应片| 程序需要指定它们自己的服务u u i d 。所有的u u i d 实际上都是1 2 8 位的值,但是蓝牙标准保留了一定范围内的u u i d 值。因为此范围内所有的值都有相同的基 地址,所以蓝牙标准就使用1 6 位和3 2 位的u u l d 值来作为表示这个范围内的1 2 8 位数据 的速记方法。通过基地址它们之间可以相互转化。 服务表示可以提供信息,或提供一个具体行为,或代表另一实体控制资源的实体。它可 用软件、硬件或软硬件结合的方式实现。 服务发现协议服务器中关于一个服务的所有信息构成了一个服务记录。一个服务记录含 有一个服务的所有服务属性,每个服务记录有一个服务记录旬柄( s e r v i c er e c o r dh a n d l e ) 与 之对应。如图33 所示: 图3 3 服务记 服务类别用于标识服务的类型。它定义了某个特殊服务可能具有的一套服务属性。换句 话说,服务记录是某个服务类的特殊实例。 1 3 中山大学硕l 论文 服务属性是名称数值对,包含属性i d 和属性值。属性l d 唯一标识服务记录范围内的 属性,同时也标识相关的属性值类型。属性值不仅包含类型简兽的数据,还包含任意复杂的 数据,这通过使用数据元米实现。 3 3 服务搜索及服务浏览 服务发现协议对服务的查找机制是基于通用唯一标识符的。协议中定义了两种获取服务 信息的方式: 1 服务搜索 服务搜索方式是在用户知道服务的u u l d 情况下,用户通过指定服务搜索模式来直接获 得服务记录信息的方法。 2 服务浏览 浏览服务方式是在用户不知道服务的u u i d 情况下 12 ,用户通过浏览各个服务记录来 获得所需信息的方式。浏览服务方式的实现需要服务记录的支持。为了支持浏览服务方式, 服务纪录中必须含有b r o w s e g r o u p u s t 属性,该属性说明了该服务属于何种浏览组。协议 定义了根浏览组( r o o tb r o w s e9 r o u p ) ,当服务器中含有较少服务记录时,它们都可属于根 浏览组。如果服务记录较多时,可使服务器含有多个浏览组描述符服务。不同的服务记录归 于相应的浏览组中。用户浏览时,由根目录开始,逐级浏览。此时仍要使用服务搜索模式。 服务搜索模式中的u u l d 为相应浏览组的u u l d f l3 】。 3 4 协议说明 为了实现上面的两种服务方式,协议定义了协议数据单元( p d u ,p r o l o i d a t a u n ) 。 服务器和客户端间交换的就是这些协议数据单元。s d p _ p d u 由头( h e a d e r ) 和参数 ( p a r a m e i e r ) 组成,参见图3 4 所示。头由三个字段组成:p d u - j d 、事务i d r r 限n s a c t i o ni d ) 和参数长度。 * 叵亘亘臣巫亟卫亟固 参数巨二二臣习压口 图3 4 s d p _ p d u 格式 第3 章服务拄现协议 s d pp d u 的类型如表3 3 所示, 表33 s d pp d u 类型 p d ul d 取值 描述 0 x 0 0 0 0 1 0 0 2 0 0 3 0 x 0 4 0 x 0 5 0 x 0 6 0 x 0 7 0 x 0 8 0 x 仟 徘冒 s d pe r r o r r e s p o n s e s d p s e r v j c e s e a r c h r e q u e s t s d p s e m c e s e a r c h r e s p o n s e s d p s e r v i c e a n r 怕u t e r e q u e s t s d p s e m c e a 廿曲u t e r e s p o n s e s d p _ s e m c e s e a r c h a 牡加u t e r e 口u e s t s d p s e r v i c e s e a r c h a n r b u t e r e s p o n s e 保留 除了s d p e r r o r r e s p o n s e 之外,事务类型都是以请求响应形式成对出现的。如果s d p 想把传入的响应与以前发送的请求进行匹配,就需要为请求分配个号码,而且此号码在当 前未解决的请求中是唯一的,这个号码就是事务i d 。 参数长度字段的值是该p d u 中所有参数的总字节数。 某些请求p d u 的响应可能无法次性发送完毕,这是s d p 服务器就会产生部分响应, 其中包含了续传状态参数。续传状态参数可以在用于获得完整响应的后续部分的后续请求中 给出,它是可变长度的【14 】。 医函五五 j 五 当客户端接收到部分响应以及其中包含的后续状态参数后,它必须重发之前的请求,这 时事务i d 必须是新的,并且在此请求中包含后续状态参数,以此来通知服务器客户端希望 得到前一响应的后续部分。 错误处理是服务器端需要作的事情,它必须判断来自客户端的请求是否合法,判断的标 准需要参考以下马上要讲述的几种事务的参数。 a 服务搜索事务 1 5 中山大学硕士论文 一- 一 通过发送s d p - - s e i c e s e a r c h r e q u e s t 和返回s d p s e i c e s e a r c h r e s p o n s e 来完成 这种方式是客户端指定服务类型,服务器端找出满足条件的服务记录后将它们的服务记 录句柄值列表返回给客户端。 b 服务属性事务 通过发送s d p s e r v i c 酣m r b u t e r e q u e s t 和返回s d p s e m c 酣m r b u f e r e s p o n s e 来完 成。 这种方式是客户端指定一个服务记录句柄值并指定需要服务器端返回该服务记录中的 哪些服务属性,服务器端把这些服务属性( 如果存在的话) 返回给客户端该方式是工作于 服务搜索事务基础上的,因为对同一种服务,在不同蓝牙设备上服务记录句柄值可以不同。 c 服务搜索属性事务 此事务将服务搜索和服务属性事务的功能合二为一,在一个事务中先后完成查找服务记 录句柄和获得相应的服务属性的功能。通过发送s d p s e m c e s e a r c h a n 曲u t e r e q u e s t 和返 回s d p _ s e i c e s e a r c h a n r m u t e r e s p o n s e 来完成。 这种方式是客户端指定服务类型并指定需要服务器端返同的服务属性,服务器端找出满 足条件的服务记录后把它们的服务属性返回给客户端。 1 6 第4 章服务发现狮议的实现 第4 章服务发现协议的实现 4 1s d p 的设计思路 首先,既然讲到r 服务,那么我们的首要任务就是怎么在本地设备上创建服务数据库, 把上层可能要用到的服务都写入到本地的服务数据库里面,当需要时就可以使用。这只是本 地设备的事情,还未涉及到设备间的真正通信。 其次,我仃j 就要考虑如何遵照s d p 协议规定的交互方式,来实现搜索或者浏览远端设 备上提供的服务,当然也包括被搜索及浏览。 最后,还得考虑与上下层协议之间的接口问题。 4 2 创建本地服务 不管是客户端还是服务器端都得确保在应用程序通信之前创建好相关的服务( 这可以 在s d p 初始化中实现但是如果为了节省内存使用,也可以根据需要来创建服务,我的实 现中只是刨建了相应资源,而由上层来决定注册相关服务) ,我在程序中用到了结构体s t r u c t s d pd n r a b a s e 来作为服务数据库用来存储本地及远端的服务记录信息,相关宏和结构体 定义如下所示。 牟de f j n em a xd a t ae l e m e n tl e n g t h 拌d e 丽n em a xa t t r l b u t el e n g t h 拌d e 打n em a xc o n tj n u el e n g t h 挣d e 打几em a xs e r v l c er e c o r d 挣d e f j n em a xs e r v l c ea t t r l b u t e 撑d e f n em a xr e m o t er e c o r d 2 0 4 2 1 6 0 0 9 0 x 0 9 o x o f s t r u c td a t a e l e m e n t t 8 v t eh e a d e r :数据元的头 t b ”ee x l e n t 4 】; 额外的字节 t b ”e d a t a v a l u e m a 一d 芦m l e l e m e n l _ - l e n g t h 】: ,数据元的值域部分 s t r u c td a - r ae l e m e n t + n e 【:,下个数据元结构体指针 :数据元结构体 s t r u c ts e r v l c ea 丌r i b u t e t b v t e s t a t u s :,占用0 x 0 1 :空闲o x 0 0 1 7 中山大学硕士论文 t b y t ea t t r _ b u t e l d h e a d e r :,值为0 x 0 9 t i n t l 6a 州b u c e l d :属性i d 值 t b ”e a n r i b u t e 一r a i u e m a xa 丌r l b u t el e n g t h l :, 属性值 ) ;服务属性结构体 s t r u c ts e r v i c e r e c o r d t b v t e s t a t u s : e m p t 、 空闲:f u l l 一本地设备 t 鼬怕矾曲u t e s n u m :此记录的属性数 t i n t 3 2s e i c e 只e c o r d h a n d j e :此记录的句柄 s t r u ds e r v l c e 肖丌r i b u ts e r v ;o e a n r i b u t e 【m a s e 只v i c ea 丁t r l b u t e l : :服务记录结构体 s t r u c tr e m o t e o r e c o r d t b ”es t a t u s :,e m p t y 一空闲:r e m o t e 一远端设备占用;u s e d 一已经用于 远端设备的查询了 t i n t 3 2 r e m o t e h a n l d e :,查询到的远端设备上的服务记录句柄 ,远端设备的服务记录结构体 s t 九j c ts d 户l d a r a b a s e s t r u c ts e r v l c er e c o r d s e r v i c e r e c o f d f m a xs e r v i c er e c o r d l : s t r u c tr e m o t er e c o 只d r e m o t e r e c o r d m a xr e m o t er e c o r d 】: l ;,服务记录数据库 其中如数据元结构体等所代表的霄义在请参见上章中所描述的,这里不再赘述。 为了便于彻底理解服务记录的相关概念,以下再对某个服务记录作出解释,请看如下数据: 挣一a c l d 芦i t a :0 12 0 4 40 0 6 e 0 0 4 0 0 0 0 5 0 00 4 0 0 6 9 0 06 6 3 56 4 立鱼q qq q q q q q 】坌坚 2 f l 螋q q 旦】量f 氇1 璺1 】q 】q 旦q q 垒墨q 昼圣q 3 】璺q 】q q 墨q i 量q q q 3 q b q 】q 殳q q 篮 墨q 墨i 垒! qq 窒q 里q q q 昼! 受q 殳q 旦璺量昼呈q 璺立q 垦立璺q 】q q i 卜a c l d 戌t a :0 11 0 2 e0 0 坌星q q q 8 立垒e e 坌堕q q q 璺量曼q 璺圣量q 昼) 璺) ) q 】l 坦q 】! 基! q 】 q q 星互1 垦璺至昼立z 互昼互王璺昼e 昼e z 璺鱼璺2 q 墨墨昼z 呈垦璺昼】昼立呈鱼i 殓昼e z 窒z 垒q q o o 这是一个服务属性的响应,下划线字体部分代表的是某个具体应用的服务记录的所有属性 值,我们就这个服务记录来分析一下,如表4 1 所示: 表4 1 某个服务记录的数据 属性i d属性值 0 瞄0 0 0 ) c 0 a 0 00 10 00 0 o 0 9 0 0 0 1勘0 50 3 1 9 0 1 1 8 第4 章服务发现胁议的实现 0 0 90 0 0 40 x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高考物理总复习专题六动量第2讲动量守恒定律练习含答案
- 框架协议招标要求
- 发生劳动争议后如何正确及时地申请劳动争议调解
- 《lc教学课件》课件
- 高中历史 第五单元 第6课 两伊战争教案 新人教版选修3
- 2024年五年级品社下册《辉煌成就》教案 山东版
- 2024-2025学年九年级历史下册 第八单元 现代科学技术和文化 第18课 现代文学和美术教案 新人教版
- 2024-2025学年七年级地理下册 7.4 俄罗斯课时2教案 (新版)新人教版
- 2024年高中化学 第3章 有机化合物 第3节 生活中两种常见的有机物 乙醇教案 新人教版必修2
- 2024年九年级语文上册 第四单元 第16课《安塞腰鼓》教案 鄂教版
- 回收PET塑料资源化利用及产业化进展研究
- 《住院患者身体约束的护理》团体标准解读课件
- 2024年安全员C证考试题库附答案很全
- 英语-浙江省湖州、衢州、丽水2024年11月三地市高三教学质量检测试卷试题和答案
- 劳动技术教案
- 广东省深圳市2023-2024学年高一上学期生物期中试卷(含答案)
- 泌尿科运用PDCA循环降低输尿管鏡激光碎石术后严重感染的发生率品管圈QCC成果汇报(赴台汇报版)
- 第七章 立体几何与空间向量综合测试卷(新高考专用)(学生版) 2025年高考数学一轮复习专练(新高考专用)
- 2024年浙江省衢州市营商环境建设办公室招聘政府雇员17人高频难、易错点500题模拟试题附带答案详解
- 福建省残疾人岗位精英职业技能竞赛(美甲师)参考试题及答案
- 在线学习新变革课件 2024-2025学年人教版(2024)初中信息技术七年级全一册
评论
0/150
提交评论