蓝牙通信技术协议规范毕业论文.doc_第1页
蓝牙通信技术协议规范毕业论文.doc_第2页
蓝牙通信技术协议规范毕业论文.doc_第3页
蓝牙通信技术协议规范毕业论文.doc_第4页
蓝牙通信技术协议规范毕业论文.doc_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

蓝牙通信技术协议规范毕业论文目录摘要IAbstractII第1章 绪 论11.1 蓝牙技术的发展现状和趋势11.1.1 各种电话系统11.1.2 无线电缆21.1.3 无线公文包21.1.4 各类数字电子设备21.1.5 电子商务21.1.6 将来的应用31.2 蓝牙技术与其他相关技术的比较分析31.3本文主要研究工作5第2章 蓝牙协议规范的介绍62.1蓝牙的协议体系结构62.2 基带层规范82.2.1 物理信道与物理链路82.2.2 分组组成92.2.3 分组类型102.2.4 蓝牙的纠错技术122.3 链路管理器协议(LMP)132.3.1 通用规则142.3.2 设备功能142.3.3 链路控制器管理142.4 逻辑链路控制和适配协议(L2CAP)172.5 服务发现协议(SDP)182.5.1 客户机与服务器的交互方式182.5.2 服务记录信息交换192.5.3 服务属性202.5.4 服务搜索202.5.5 通用独特标识符202.5.6 服务搜索样本(SDP Pattern)212.5.7 服务浏览212.6 电缆替代协议RFCOMM22第3章 蓝牙系统的硬件设计243.1 Bluecore02-external芯片介绍243.2 开发平台的硬件资源253.2.1 硬件开发平台的介绍253.2.2 硬件开发平台的整体架构263.2.3 硬件开发平台的接口283.2.4 语音芯片MC145483的功能与结构293.3 Flash存储器303.4 完整的电路设计30第4章 单芯片蓝牙耳机Headset的软件设计与开发324.1 蓝牙耳机的软件流程设计334.1.1 蓝牙耳机应用层状态机的流程设计334.1.2 Headset链接建立程序流程设计344.2 蓝牙耳机软件程序实现374.2.1 通信链路建立过程的程序设计374.2.2 应用层向连接管理器发送消息的代码:384.2.3 链路建立过程发送/接收的消息及实现过程384.2.4 SDP服务记录的实现设计404.3 蓝牙耳机按键的软硬件实现42结 论44致 谢45参考文献46附录147附录253附录2第1章 绪 论1.1 蓝牙技术的发展现状和趋势自从1998年提出蓝牙技术以来,蓝牙技术的发展异常迅速。蓝牙Bluetooth得到了全世界越来越多工业界生产厂家和研究机构的广泛关注。成立了世界蓝牙组织Bluetooth SIG,采用技术标准公开的策略来推广蓝牙技术,现已发展成为一个相当大的工业界高新技术标准化组织,世界上一些权威的标准化组织,也都在关注蓝牙技术标准的制定和发展。例如,IEEE的标准化机构,也已经成立了80215工作组,专门关注有关蓝牙技术标准的兼容和未来的发展等问题。蓝牙是取代数据电缆的短距离无线通信技术,可以支持物体与物体之间的通信,工作频段是全球开放的2.4GHz频段,可以同时进行数据和语音传输,传输速率可达到10Mbit/s,使得在其范围内的各种信息化设备都能实现无缝资源共享。 蓝牙技术的应用被认为非常广泛而且极具潜力。它可以应用于无线设备(如PDA、手机、智能电话、无绳电话)、图像处理设备(照相机、打印机、扫描仪)、安全产品(智能卡、身份识别、票据管理、安全检查)、消费娱乐(耳机、MP3、游戏)、汽车产品(GPS、ABS、动力系统、安全气袋)、家用电器(电视机、电冰箱、电烤箱、微波炉、音响、录像机)、医疗健身、建筑、玩具等领域。1.1.1 各种电话系统Bluetooth产品将会首先应用于数字手机、家庭及办公室电话等系统中,实现真正意义上的个人通信。例如三合一电话,这种应用模式允许一部移动电话既可以作为标准的蜂窝电话,也可以用作无绳电话与语音接入点(无绳电话基站)进行连接,还可以用作内部通信设备,与其他邻近的设备直接进行通话。目前,国际上各大手机制造商都在加紧开发Bluetooth手机,无绳电话和有线电话的制造商也感受到Bluetooth带来的挑战和机遇,竞相研发带有Bluetooth功能的新产品,这些都将推动蓝牙技术迅速发展。1.1.2 无线电缆Bluetooth基于无线电缆的概念,使信息传输设备除电源线外再无其它连线,甚至包括键盘、鼠标也采用无线传输。Bluetooth企图建立一个全无线的工作环境和生活环境,由于这些设备类多量广,无论是硬体还是软件,都有着极大的商机。1.1.3 无线公文包高速蓝牙的技术发展亦大大提高了RealtimeVideo(实时视频)/Video(视频)/音乐档的传输数据速度,同时降低耗电量。现在蓝牙正面对着高数据传输的技术瓶颈,高素质的Video/Audio(音频)档案往往庞大得难以通过蓝牙传输,更别说高速下载。但高速蓝牙功能却能实现把庞大的档案数据高速传输,使WirelessUSBcamera(无线USB接口摄像头)、IPcamera(网络摄像机)、手机、PMP(便携式媒体播放器)与电脑之间可以蓝牙技术自由传输,不再受数据大小的束缚,把以前的不可能变为可能。1.1.4 各类数字电子设备数字照相机、数字摄像机等设备装上Bluetooth系统,可免去使用电缆的不便,随时随地将所摄图片或影像通过同样装上Bluetooth系统的手机或其他设备传回指定的计算机中。PDA(Personal Digital Assistant)装上Bluetooth系统后,采用无线方式收、发e-mail甚至浏览网页将更为方便。Bluetooth的硬体电路可以做到微型化,在Headset上应用非常合适。装上Bluetooth系统的Headset可以使它和手机进行无线连接,也可以使人在小范围内自由走动地打电话、收听音乐,在较大的范围内召开电话会议,应用前景十分诱人。1.1.5 电子商务无线应用协议(WAP)是开展移动电子商务的核心技术之一。通过WAP,手机可以随时、方便、快捷地接入互联网,真正地实现了不受时间和地域约束的移动电子商务。它是一种无线通信协议。目前,很多电信企业推出了多种WAP产品,包括WAP网关、应用开发工具和WAP手机,向用户提供网上资讯、移动网银、机票订购和网上游戏等服务。WAP主要会受移动通信带宽的影响。移动IP通过网络层改变IP协议,从而实现移动设备在互联网上的无缝漫游。蓝牙技术(Bluetooth)可以很方便的实现小范围内的无线通信,且成本低、功耗小。1.1.6 将来的应用蓝牙已不再是一项虚拟的技术,也不再停留在理论的标准规范上。一旦蓝牙芯片的性价比达到一定的水平,同时找到有利于市场推广的突破点及适当的商业运行模式,其普及的速度将如水库中积满的池水一样倾泻而出,汹涌而至。因为蓝牙技术的基本应用都是基于现在正在迅速普及的移动设备,例如手机、PDA和笔记本电脑等。蓝牙无线接入技术如主干网络的神经末梢将通信技术渗透到各行各业。蓝牙无线通信技术的出现之所以引起企业界如此广泛的关注,就是因为它为其他领域的技术发展注入了鲜活的生命力。例如,瑞典ABB公司将蓝牙技术、网络技术及智能技术相结合应用在工业环境中。除了与传统工业的结合,蓝牙无线技术还被称为“爆发性技术”(disruptive technology),即它能够激发各组织和团体去开拓新的商业模式,从而彻底改变他们的经济和竞争基础,甚至孕育出全新的产业领域。为适应市场的需求和技术的发展,蓝牙SIG正在制定下一代的蓝牙标准。目前有12个工作组(working group)、3个研究小组以及2个专家小组(experts group)正在以蓝牙的正式标准“version 1.1”为基础开始工作。1.2 蓝牙技术与其他相关技术的比较分析作为一种近距离的无线通信技术,蓝牙技术并不是唯一的。目前无线个人区域网(WPAN)的技术中,主要有工作在2.4G频段上的IEEE802.11b,HomeRF,以下针对它们的特点分别进行比较。IEEE802.11b标准工作在24GHz的频带,采用补码键控(CCK)调制技术,传输速率最高可达到11Mbit/s。IEEE802.11b对无线局域网的最大贡献就是根据无线信道状况的变化支持物理层传输速率的动态漂移,可以在11Mbit/s、5.5Mbit/s、2Mbit/s、1Mbit/s之间进行动态速率调整。在网络安全机制上,IEEE802.11b提供了MAC层的访问控制和加密机制,即WEP(等效有线加密),为无线局域网提供了与有线网络相同级别的安全保护。IEEE802.11b标准还提供了可选的RSA40及128位的共享密钥RC4PRNG算法。IEEE802.11b的技术特点可归纳如下:1可靠的通信:抗干扰和抗多径干扰能力强,能够高速的、高质量的传输数据。2低成本:节省了网络综合布线高额费用、节省租用线路月租费和线路的维护费用。3灵活性:无线缆限制,可任意增加和配置工作站。4移动性:允许用户在任何时间、任何地点访问网络数据,可在无线网络覆盖的范围内自动漫游。5高吞吐量:可以实现11Mbit/s的数据传输速率,并可以在5.5M、2M、1Mbit/s之间自动速率调整。HomeRF技术是由HRFWG(home RF working group)工作组开发的,该工作组1998年成立,主要由Intel、IBM、Companq、3com、Philips、Microsoft、Motorola等几家大公司组成,旨在制定PC和用户电子设备之间无线数字通信的开放性工业标准,为家庭用户建立具有互操作性的音频和数据通信网,HomeRF采用了IEEE 802.11标准的CSMA/CA模式,以竞争的方式来获取信道的控制权,在一个时间点上只能有一个接入点在网络中传输数据,提供了对“流业务”的真正意义上的支持,规定了高级别的优先权并采用了带有优先权的重发机制,确保了实时性“流业务”所需的带宽(211 Mb/s)和低干扰、低误码。 HomeRF是针对现有无线通信标准的综合和改进,当进行数据通信时,采用IEEE 802.11规范中的TCP/IP传输协议;进行语音通信时,则采用数字增强型无绳通信标准。因此,接收端必须捕获传输信号的数据头和几个数据包,判断是音频还是数据包,进而切换到相应的模式。 HomeRF采用对等网的结构,每一个节点相对独立,不受中央节点的控制。因此,任何一个节点离开网络都不会影响其它节点的正常工作。蓝牙技术与上面两种技术不同,它具有一整套全新的协议,可以应用于更多的场合。蓝牙技术中的跳频更快,因而更加稳定,同时它还具有低功耗、低成本和比较灵活等特点。通过比较分析可以看出,各种标准都是根据不同的使用场合,不同的用户需求而制定的。有的是为了增加带宽和传输距离,有的则是考虑移动性和经济性,局部最优不等于全局最优。因此,用户应视实际需求选择适合自己的标准。总的来讲,IEEE802.11b比较适于办公室中的企业无线网络,HomeRF可以应用于家庭中的移动数据和语音设备与主机之间的通信,而蓝牙技术可以应用于任何可以用无线方式替代线缆的场合。目前这些技术还处于并存的状态,但是可能引起干扰等问题,从长远看,随着产品与市场的不断发展,它们将走向融合,尽管它们可能在边缘上是竞争的,但在本质上是互补性的。蓝牙以其低成本,接入的快捷性、方便性来形成大量电子设备之间的无线数据传输、同步平台。1.3本文主要研究工作蓝牙耳机提供了一个安全、hand-free的途径来发送和接收呼叫并进行语音传输。尤其当用户不方便手持手机的时候,这种方式显得尤为便利。蓝牙耳机的使用者可以在能保持连接的范围内自由移动,而不必和音频设备绑在一起。而且用户可以将同一个耳机用于多种设备,因为蓝牙规范提供了一个标准的接口,所以用于电话通信的耳机也同样可以用来与固定的语音接入点进行通信,此外耳机还可以完成与计算机的音频交互。将来的耳机还可能与立体声音响、便携式CD播放机和录音设备进行通信。蓝牙耳机允许不同的设备放置在各自方便的地方,移动终端甚至可以放进口袋或公文包里。通过语音识别并利用已经使用的语音技术,将来的蓝牙耳机可以作为实现电话通信的唯一用户接口。本文的主要工作是在深入分析研究蓝牙通信技术协议规范1.1版本(下称“蓝牙规范”)的基础上,根据蓝牙耳机所要完成的功能,实现蓝牙上层协议栈功能,在Headset和语音网关之间建立蓝牙通信链路并实现高层的应用。本系统是利用英国CSR(Cambridge Silicon Radio)公司的蓝牙芯片Bluecore2-External来进行设计的。第2章 蓝牙协议规范的介绍2001年3月,蓝牙SIG正式发布了Specification of Bluetooth version 1.1规范。蓝牙技术规范的目的是使符合该规范的各种应用之间能够实现互操作。互操作的远端设备需要使用相同的协议栈,不同的应用需要不同的协议栈。但是,所有的应用都要使用蓝牙技术规范中的数据链路层和物理层。2.1蓝牙的协议体系结构Bluetooth 1.1技术规范要求会话中的每一台设备都需要确认其在主设备/辐设备关系中所扮演的角色。此外,Bluetooth 技术本将2.4GHz 的频带划分为79 个子频段,而为了适应一些国家的军用需要Bluetooth 1.0重新定义了另一套子频段划分标准,将整个频带划分为23 个子频段,以避免使用2.4GHz 频段中指定的区域。这造成了使用79 个子频段的设备与那些设计为使用23 个子频段的设备之间互不兼容。Bluetooth 1.1标准取消了23子频段的副标准,所有的Bluetooth 1.1设备都使用79 个子频段在2.4GHz的频谱范围之内进行相互的通信。具体蓝牙技术指标和系统参数见表2-1:表 2-1 蓝牙技术指标和系统参数工作频段ISM频段,2.4022.480GHz双工方式全双工,TDD时分双工业务类型支持电路交换和分组交换业务数据速率1Mb/s非同步信道速率非对称连接721/57.6kb/s,对称连接432.6kb/s同步信道速率64kb/s功率美国FCC要求1mW,其他国家可扩展为100mW跳频频率数79个频点/MHz跳频速率1600次/s工作模式PARK/HOLD/SNIFF数据连接方式面向连接业务SCO,无连接业务ACL纠错方式1/3FEC,2/3FEC,ARQ鉴权采用质询响应方式信道加密采用0位、40位、60位密码语音编码方式连续可变斜率调制CVSD发射距离一般可达110m,增加功率情况下可达100m蓝牙支持点到点和点到多点的连接,可采用无线方式将若干蓝牙设备连成一个微微网(Piconet),多个微微网又可互连成特殊分散网,形成灵活的多重微微网的拓扑结构,从而实现各类设备之间的快速通信。它能在一个微微网内寻址8个设备(实际上互联的设备数量是没有限制的,只不过在同一时刻只能激活8个,其中1个为主,7个为从)。蓝牙协议体系结构采用分层方式,包括蓝牙专用协议和一些通用协议。专用协议位于协议栈的底部,从底到上依次是蓝牙无线层(BluetoothRadio)、基带层(Base band)、LMP层(Link Manager Protocol)、L2CAP层(Logical link Control and Adaptation Protocol)、SDP层(Service Discovery Protocol)。另外RFCOMM层以ETSITS07.10为基础,目的是取代电缆连接;TCS(Telephony Control protocol Specification)以ITU-T的Q.931为基础,目的是进行呼叫控制。在蓝牙专用协议之上可以承载PPP、TCP/IP、UDP/IP、WAP等通用高层协议。每一层分别完成数据流的过滤和传输、跳频和数据帧传输、连接的建立和释放、链路的控制、数据的拆装、业务质量(QoS)、协议的复用和分用等功能。蓝牙的高层协议最大限度地重用了现存的协议,而且其高层应用协议都使用公共的数据链路和物理层。具体的蓝牙协议栈见图2-1。vCard/vCalUDPTCS二进制度制WAPOBEXWAEAT-指令SDPTCPIPPPPRFCOMML2CAP基带蓝牙无线电信道LMP语音图2-1 蓝牙协议栈2.2 基带层规范2.2.1 物理信道与物理链路蓝牙技术的特点体现在底层技术,而基带层是底层中的关键技术之一。注意蓝牙基于微微小区机制,需具备强壮性、低复杂度、低功率、低成本的特点,而这在基带层技术中有所体现。前面说过蓝牙采用挑频扩频技术,每秒1600跳,从时间域看即每个时隙长度是625s,即每个时隙从79个信道中选择一个。时隙编号0 2的27次方,即以2的27个次方双工方式采用TDD。蓝牙既支持电路型数据,也支持分组型数据;既支持点对点连接,也支持点对多点连接。在一个微微网络(Pieconet)中,一个单元作为主节点,其他作为从节点,最多可以有7个从节点;但是允许有更多从节点与主节点保持在Park状态。从节点对信道的接入由主节点控制。微微网络在覆盖上可以有重叠:每个网络有各自的跳频方案,一个网络的主节点可以同时作为另一个网络的从节点;一个从节点可以属于多个网络。主节点向从节点发送数据只能占用偶时隙,反之从节点只能在奇时隙才能向主节点发送数据。一个分组(Packet,实际上更习惯的说法是帧,因为在基带层其地位类似于OSI的第2层、部分涉及物理层,分组的确切用法在第3层,但是蓝牙基带层规范中采用Packet术语)的传送最多可以占用5个时隙,在一个分组的传送期内,维持初始时隙所占用的信道而不再跳频。在主从节点之间,有两种不同类型的链路,即同步面向连接SCO(Synchronous Connection-Oriented)链路和异步无连接ACL(Asynchronous ConnectionLess)链路。SCO是点到点链路,主节点在周期性的保留时隙上维持SCO;ACL是点到多点链路,主节点可以利用SCO本占用的时隙建立ACL链路,从节点可以同时参与SCO和ACL。SCO具备双向对称性,可以看作电路型连接,通常用于支持语音等实时业务。主节点可与一个或多个从节点建立多达3个的SCO链路;一个从节点也与多个主节点建立SCO链路(最多3条)。SCO分组不采用重传机制。SCO链路的建立通过主节点发送LMP的SCOsetup消息,该消息中包含了Tsco和Dsco等参数。Dsco用于标识SCO开始的时隙相对数,而Tsco用于表示时隙的重复周期。未被SCO占用的时隙可用于ACL,在一对主从节点之间只有一条ACL。ACL的分组传送来用重传机制以确保正确性。只有主节点在发往从节点的分组中以某种方式允许某从节点发送数据时,该从节点才能在规定时隙发送数据。ACL支持广播。2.2.2 分组组成每个分组由3部分组成,即接入码(AccessCode)、头(Header)、负载(Payload)。其中接入码和头字段为固定长度,分别为72比特和54比特;负载是可变长度,从02745比特。一个分组可以仅包含接入码字段(此时为缩短的68比特),或者包含接入码与头字段,或者包含全部3个字段。接入码有三种类型:Channel Access Code(CAC)、Device Access Code(DAC)和Inquiry Access Code(IAC)。CAC用于标识一个Piconet,所有在该Piconet中传送的分组都包含CAC;DAC用于特殊的信令过程,如寻呼和响应寻呼;IAC又分为General(GIAC)和Dedicated(DIAC)两类:GIAC对该区域内所有设备都是一样的,用于发现其它的蓝牙单元;DIAC用于根据某种特性划分特定用户群。分组头包含链路控制信息,由6个字段组成:3比特的AMADDR、4比特的TYPE、1比特的FLOW、1比特的ARQN、1比特的SEQN、8比特的HEC,一共18个比特;再加速率为1/3的FEC,编码保护后一共是54比特。在主节点与从节点通信时,需要区分不同的从节点,用AMADDR来表示激活的从节点地址。全“0”地址用于广播,显然3比特的编码最多可以支持的激活从节点数为7(扣除全0)。4比特的TYPE字段可以区分16种不同类型的分组,详细情况见2.2.3。FLOW字段用于ACL链路上的流量控制:如果接收端缓存满,则FLOW0指示发端停止发送数据;如果缓存清空,则FLOW=1指示发端继续发送。ARQN0时表示NAK;ARQN1时表示ACK,用于对负载传送正确性的确认。SEQN比特在每发送一个新的分组时翻转一次,因为蓝牙采用无编号ARQ机制,所以SEQN对于重传是必需的,这样可以避免由于ACK的去失而造成分组重复接收。分组头用8比特的校验码以检查分组头的正确性。2.2.3 分组类型在16种分组中,有4种是公共的;另外12种根据SCO和ACL不同链路而不同。1.公共分组ID分组:由DAC或IAC组成,长度固定为68比特,用于寻呼、探询、响应。NULL分组:仅包含CAC和分组头,没有负载,长度固定为126比特。NULL分组用于通过ARQN、FLOW等字段将链路信息返回给发送端。NULL分组无需确认。POLL分组:POLL分组与NULL分组类似,也没有负载字段,但是需要接收端的确认。当从节点收到POLL分组后,必须响应,即使当时没有数据信息需要发送。FHS分组:是一种特殊的控制分组,它宣告发端的设备地址和时钟信息,以实现跳频同步。负载字段包含144个信息比特加16比特的CRC校验码,然后用速率为2/3的FEC保护,最终长度为240比特。DM1分组:DM代表Data Medium rate,该分组仅携带数据信息,负载包含18个信息字节和16比特的CRC校验码,然后用速率为2/3的FEC保护(即每10个信息比特附加5个校验比特)。2.SCO分组SCO分组在SCO链路上传送,分组不采用CRC校验和重传机制。现在定义了3种SCO分组,SCO分组通常用于64kbit/s的语音传送。HV1分组:HV代表High quality Voice,该分组携带10个字节的信息,用1/3速率的FEC保护,编码后负载长度为240比特。一个HV1分组可以携带1.25ms的64kbit/s的语音,每两个时隙HV1分组必须发送一次,即Tsco=2。HV2分组:HV2分组携带20个字节的信息,采用速率为2/3的FEC,编码后负载长度也为240比特。一个HV2分组可以携带2.5ms的64kbit/s的语音,每四个时隙HV2分组必须发送一次,即Tsco=4。HV3分组:HV3分组携带30个字节的信息,没有采用FEC,负载长度也为240比特。一个HV3分组可以携带3.75ms的64kbit/s的语音,每六个时隙HV3分组必须发送一次,即Tsco=6。DV分组:DV分组是数据和语音的混合,负载由80比特的语音字段和最多150比特的数据字段组成。语音字段没有FEC保护,数据字段有10字节信息,加16比特的CRC校验码,然后用2/3FEC保护。语音处理和数据处理是独立的。3.ACL分组ACL分组在ACL链路上传送,承载的信息可以是控制信息或用户数据。如果包含DM1,则一共有7种ACL分组,除了AUX1外其它6种ACL分组采用CRC校验及重传机制。DH1分组:与DM1分组类似,但是负载数据不经过FEC。DH1分组携带28字节信息加16比特的CRC校验码。DH代表Data-High rate。DM3分组:与DM1类似,但DM3可以占用3个时隙,负载可包含123个信息字节加16比特的CRC校验码。DH3分组:与DM3类似,但负载不采用FEC。DH3可以携带185字节的信息加16比特的CRC校验码。DM5分组:DM5分组可以占用5个时隙,负载可包含226个信息字节加16比特的CRC校验码。DH5分组:与DM5类似,但负载不采用FEC。DH5可以携带341字节的信息加16比特的CRC校验码。AUX1分组:与DH1类似,但没有CRC校验码。AUX1分组可以携带30个信息字节。4.负载格式在负载中要区分语音(同步)字段和数据(异步)字段:ACL分组仅包含数据字段,SCO分组仅包含语音字段,DV比较特殊同时包含两种字段。语音字段长度固定为240比特,DV分组中语音字段为80比特,不存在负载头字段。数据字段包含3部分:负载头、负载体和CRC校验码(AUX1例外)。负载头为1或2个字节。负载头规定了逻辑信道、逻辑信道上的流量控制及负载长度指示。用2个比特的L-CH字段来代表逻辑信道,其中11表示LM信道(传送LMP消息),10表示UA/UI(L2CAP消息开始),01表示UA/UI(L2CAP消息继续),00保留。在蓝牙基带层中定义了5种逻辑信道,即LC(Link Control)控制信道、LM(Link Manager)控制信道、UA(User Asynchronous)用户信道、UI(User Isochronous)用户信道、US(User Synchronous)用户信道。控制信道用于链路控制和链路管理,用户信道用于运载用户数据。LC信道在分组头中,其它信道在分组负载中。LM、UA、UI用负载头中的L-CH字段来区分,US信道仅在SCO链路中,UA和UI通常由ACL承载,但也可由SCO的DV分组来承载。LM信道SCO和ACL都可承载。2.2.4 蓝牙的纠错技术在蓝牙技术中采取了三种纠错方法:1/3码率FEC编码,2/3码率FEC编码,用于数据的自动重发请求(ARQ)机制。对数据的有效载荷进行前向纠错的目的是减少重发次数,然而,对于一个纠错要求不高的情况,FEC将增加不必要的开销,从而导致数据吞吐量下降。因此,分组定义中对于在有效载荷中采用或不采用FEC给出了相当的灵活度,因此才定义了ACL链路中使用的DM和DH分组和SCO链路中使用的HV分组。分组头通常采用1/3比例前向纠错码保护,它含有很重要的链接信息,能容忍多位错误。2.3 链路管理器协议(LMP)链路管理器协议(LMP)用于控制和协商两台设备间蓝牙连接各方面的操作。这包括建立和控制逻辑传输与逻辑链路以及对物理链路的控制。链路管理器协议用于在两台设备(由 ACL 逻辑传输连接)上的链路管理器(LM)之间进行通信。LMP在整个协议中的位置见图2-2。LCRFRFLCLMLMLMPPhysical layer图 2-2 LMP在整个协议中的位置链路管理器(LM)软件实现链路的建立、认证及链路配置等。链路管理器可发现其他的链路管理器,并通过连接管理协议(LMP)建立通信联系,LM利用链路控制器(LC)提供的服务实现上述功能。LC的服务项目包括:接收和发送数据、设备号请求、链路地址查询、建立连接、认证、协商并建立连接方式、确定分组的帧类型、设置监听方式、设置保持方式以及设置休眠方式等。2.3.1 通用规则LMP 消息在可以在负载于默认ACL逻辑传输上的ACL-C逻辑链路上进行交换。负载在变长数据包的净荷包头上的逻辑链路标识符 (LLID) 字段将ACL-C 逻辑链路ACL-U(负载 L2CAP 和用户数据)区别开来。与其它通信相比,ACL-C 具备较高的优先权。 LMP消息负载ACL-C逻辑链路,其不保证发送或确定数据包的时间。当同步两台设备中的状态变化时,LMP程序必须考虑此情况。例如,定义这样的标准:鉴于设备正在离开微微网或进入休眠状态,在提供逻辑传输地址 (LT_ADDR)可重新使用时指定。为了定义固定同步点,其它LMP程序(例如保持或角色切换)包含作为参数的蓝牙时钟。借助传输模式对监听模式的转变进行保护。 LMP根据事务运行。事务是一系列连接的实现特定用途的信息交换。2.3.2 设备功能在 1.1 规格具有相关 LMP 特征位后添加所有功能。由于设备必须与不支持其老式设备实现交互操作,资格认证流程可能会将对这些功能的支持设为“必备”功能,而LM仍然将其视为可选功能。当功能以 LMP消息传输时,它们用掩码表示。通过阅读 LMP 的功能掩码,借助功能的最低通用子集解释所有版本的链路管理器。2.3.3 链路控制器管理当两个设备已经处于连接状态时,它们可以重新建立连接,因为可以略去查询过程,重新连接可以更快的进行。但是在查询响应过程中,从设备会通过FHS分组向设备提供呼叫信息。当省略这个查询过程时,这个FHS分组同时也被忽略掉了。因此,如果一个设备改变了它的呼叫参数转为另外一种呼叫配置,或者改变了它的Tpagescan间隔,主设备将不会觉察到这种变化。通过处理呼叫方案LMP_PDU,设备可以声明或协商设备之间下一次呼叫所用到的呼叫方案。当一个请求设备呼叫其他设备时,请求设备链路管理器通过LMP_page_mode_req协议数据分组向其他设备的链路管理器建议呼叫方案。同样,一个请求设备的链路管理器可以通过LMP_page_scan_mode_req协议数据分组,向其他设备的链路管理器建议呼叫该请求设备时的呼叫方案。拒绝以上任意一种LMP_PDU,意味着当前的呼叫方案不能被更改,但对改变为强制呼叫方案的请求则不能拒绝。一个呼叫设备最终就是微微网的默认主设备,但有时需要主设备和从设备进行交换。例如,当需要使用点对点(PPP)通信协议进行LAN的接入时,就需要这样的交换。主、从角色交换过程开始时,请求设备发送LMP_switch_req协议数据单元主请求。在这之前应当结束当前L2CAP消息的传送。如果接受切换,另一设备也将结束当前L2CAP消息的传送,并以LMP_accepted应答,然后执行基带协议定义的过程。如果拒绝进行切换,另一设备以LMP_not_accepted应答,不进行角色转换过程。对主、从角色的切换的支持是可选的。一个蓝牙设备可以向其他的蓝牙设备请求更新的时钟信息,以优化各种链路控制器的操作。主设备发送LMP_clock_offset_req协议数据分组,从设备将返回当前从设备的本地时钟与主设备的本地时钟的偏差。当主设备将来呼叫从设备时,这一信息可用来优化呼叫时间,对这一处理的支持是可选的。如果从设备要转换为主设备时将会发送LMP_slot_offset协议数据分组,LMP_slot_offset协议数据分组承载了时隙偏差(s级),即主设备传送时隙的开始时间与从设备的相应时隙的开始时间之间的偏差。此信息主要用来优化主、从设备角色切换过程,这种LMP_PDU的支持是可选的。发送LMP_timing_accuracy_req协议数据单元,将会返回接收设备时钟的抖动参数Jitter(s级)和漂移参数(ppm级的)。此信息主要用来优化长时间处于非活动状态但仍与微微网相联系的设备的唤醒时间,如保持模式设备的唤醒;或者在主设备传送之前处于呼吸时隙、信标时隙的休眠设备的唤醒。对这种LMP_PDU的支持是可选的,当它不被支持时,其抖动和精度的最大缺省值分别是10s和250ppm。主设备发送的LMP_supervision_timeout协议数据单元中包含了蓝牙链路连接超时值,主要用来监测主、从设备之间的帧丢失,对这种LMP_PDU的支持是强制的。1.信息交换链路管理器之间彼此可以交换信息,以便更好地协调它们之间的分组的传输。设备通过发送LMP_version_req PDU表明该设备所支持的LMP的版本。接收该LMP_PDU的设备通过返回LMP_version_res PDU,表明该接收设备所支持的LMP版本。版本号通过一个三元数组versionNo:companyID:subVersionNo来提供。其中的版本号部分是由SIG组织定义的LMP的版本,子版本号则与执行版本的厂商有关。对这种LMP_PDU的支持是强制的。设备发送的LMP_features_req PDU中包含了发送该LMP_PDU的设备所支持可选择的无线、基带和链路管理器的特性。接收设备返回的LMP_feature_res PDU中包含了该接收设备所支持的一些特性。这些特性包括:除了默认的FHS,NULL,POLL,DM1和DH1分组之外所支持的分组类型;所支持的功率控制模式、语音编码方案、加密方案、角色转换方案以及可选的呼叫配置方案等等。对这种LMP_PDU处理的支持是强制的。利用LMP_name_req PDU,请求设备的链路管理器向接收此LMP_PDU的设备查询友好用户名。友好用户名是设备的使用者分配给该设备的名字。在设备中名字是UTF-8组织命名的,最长可达248字节。由于设备的名字可能比单个DM1分组要长,因此当设备请求另一个设备的友好用户名字时,它可以通过发送LMP_name_res PDU提供一个补偿参数,响应设备可以通过这个补偿参数传送正确的名字字段。由于蓝牙无线技术的目标是达到全球通用,因此UTF-8组织选择对设备名称命名的编码协议(IETF96),以达到对国际语言的支持。UTF-8字符利用1到6字节的序列编码。为了与广泛应用的ASCII字符相兼容,对ASCII字符通过一个单字节的UTF-8字符来编码,该UTF-8字符的值与ASCII字符对应的值相同。因此,一个蓝牙设备的友好用户名可以达到248个ASCII字符长。2.连接建立与断开LMP是一个用于控制设备的链路管理器之间信息的传输协议,它不能封装任何高层协议的PDU。同样,LMP的处理过程可以不需要任何高层协议的参与,如L2CAP协议或主机本身。如果要建立LM以上层次的连接,主叫设备发送一个LMP_host_connection_req PDU,接收设备可以接受也可以不接受。如果链接请求被接受,两个设备的链路管理器将协商链路的一些参数,如鉴权和QoS等。当链路管理器完成参数协商后,并且设备不需要进一步的建立连接过程,每个链路管理器将发送LMP_setup_complete协议数据分组。只有两个链接管理器都对LMP_setup_complete PDU确认后,除LMP_PDU之外的通信才能开始。当一个设备要终止它与另一个设备之间的连接时,将发出一个LMP_detach PDU,该PDU中包含连接断开原因的参数。随后两个设备之间的连接将立即终止,不会对LMP_detach PDU拒绝。这一节中对LMP_PDU的支持是强制的。2.4 逻辑链路控制和适配协议(L2CAP)蓝牙逻辑链路控制和适配协议(L2CAP)支持更高级别的多路复用协议、数据包分割与重组和服务质量信息的传输。 L2CAP 允许更高级别的协议和应用程序传输和接收高达 64 千字节的上层数据包(L2CAP 服务数据单元,SDU)。通过流控制和重新传输模式,L2CAP 还允许按信道流控制和重新传输。 L2CAP 层提供了名为 L2CAP 信道,且映射至 ACL 逻辑传输以支持 L2CAP 逻辑链路的逻辑信道。L2CAP与其他协议的关系见图2-3。RFCOMMSDP音频TCSLMPL2CAP声音SCOACL基带图2-3 L2CAP与其他协议的关系L2CAP 基于“信道”这一概念。L2CAP 信道的每个端点均通过信道标识符 (CID) 识别。信道标识符 (CID) 是代表设备上逻辑信道端点的本地名称。CID 分派与一台特定设备相关,这台设备可以从其它设备上单独指定 CID(除非它需要使用任何多个保留的 CID)。L2CAP 基于数据包,但遵循基于信道的通信模型。信道代表远程设备中 L2CAP 实体之间的数据流。可能有面向连接信道或无连接信道。1.协议复用L2CAP通过定义信道来支持多协议复用功能。信道和协议间是多对一映射。一个协议可用于多个信道,而一个信道只能采用一个协议。和L2CAP接口的通信协议有SDP、RFCOMM和TCS。L2CAP层能够在高层协议间鉴别出SDP、RFCOMM和TCS。2.段和重组(SAR)由于L2CAP层允许传输的包长度大于基带层定义的最大传输单元(MTU)的长度。所以为了提高带宽的利用率,L2CAP包在空中无线传输之前,必须由L2CAP层把它们分割成小的基带包,它利用低开销的分段和分组机制来支持最大到64K字节包的传输。同样当L2CAP层接受到许多基带包时,L2CAP按照简单的完整性校验把他们组装成一个大的L2CAP包。3.服务质量(QoS)L2CAP负责在信道间传送QoS信息。L2CAP建立连接过程中,不能背离由协议协商得到的QoS信息。4.群组管理L2CAP的群组管理提出了群组单元的概念,这个群组管理功能可以使蓝牙微微网成员和群组之间实现更有效的映射,但L2CAP定义的群组通信是无连接的,并不可靠。需要利用高层的加密技术来提高传输的可靠性和安全性。2.5 服务发现协议(SDP)服务发现协议(SDP)是极其重要的部分,发现服务在蓝牙技术框架中起着至关紧要的作用,它是所有用户模式的基础。使用SDP可以查询到设备信息和服务类型,从而在蓝牙设备间建立相应的连接。2.5.1 客户机与服务器的交互方式服务发现协议涉及的是SDP客户和服务器之间的通信问题。服务发现机制能向客户机提供发现服务器上存在的服务及服务属性的方法。这里的服务属性包括服务类型和所需服务的协议信息。服务器提供服务记录列表,它描述了服务器提供的全部服务。其中的每条服务记录包含此项服务的全部信息。客户通过发送SDP请求获取服务记录。SDP提供了发现服务及其属性(包括相关服务接入协议)的机制,但不提供使用这些服务的机制。因此,当客户或与客户相关的应用程序需要使用某项服务时,必须开辟一条单独的通路连接到服务提供者。一个蓝牙设备既可以作SDP服务器,又可以作SDP客户。当蓝牙设备都是客户时,就不需要SDP服务器。当由一个设备上的多个应用程序提供服务时,SDP服务器可以代表所有的服务提供者处理这些服务请求信息;类似地,一个SDP客户也可以代表多个客户应用程序进行服务查询。SDP客户与SDP服务器的射频距离大小决定了服务器的有效性。当一个服务器有效时,潜在的客户必须从SDP之外得到通知,以便客户查询服务器提供的服务。当服务器远离射频有效范围或服务器失效时,SDP不提供明确的通知,然而客户机可以利用SDP轮询服务器,如果得不到响应,就可以推断该服务器已经无效。2.5.2 服务记录信息交换服务是一种实体,它能够提供信息、执行操作或控制那些代表着另一实体的资源。它可以由软件、硬件或二者的组合来实现。一项服务记录保存有单项服务的全部信息,它由一张服务属性表组成。服务记录句柄是一个32位无符号整数,它唯一地标识SDP服务器提供的服务。需要特别指出的是,句柄的唯一性是指它在某一个SDP服务器中是唯一的。例如,服务器S1和服务器S2都有代表同一服务的相同服务记录,但是,它们的服务记录句柄是各自独立的,S1中的该句柄值在S2上毫无意义。在服务器上增加或者除一项服务记录时,SDP不提供通知机制。当通过逻辑链路控制和适配协议(L2CAP)连接服务器时,如果服务记录没有从服务器中删除,它所对应的服务记录句柄将一直有效;当某项服务记录已经从服务器中删除,如果仍然使用以前的服务记录句柄向服务器提出服务请求,服务器将返回一个表明“句柄无效”的出错信息。在L2CAP连接期间,服务器必须保证没有重复使用的句柄。在ServiceDatabaseState属性值不变的情况下,服务记录句柄通过逐次的L2CAP连接保持有效。代表服务器本身的句柄值0x00000000在所有SDP服务器上都是有效的。服务记录句柄值保留范围:0x000000010x0000FFFF。2.5.3 服务属性服务属性有两部分组成:属性标识符和属性值。每一项服务属性描述服务的一个特性。例如:ServiceClassIDList,服务类标识符列表;ProtocolDescriptorList,指出可能使用的协议栈;ServiceID,唯一识别服务的标识符;RoviderName,服务提供者的名字;IconURL,服务图标的URL;ServiceName,服务名字符串。服务属性可分为通用属性和专用属性两种。通用属性适用于所有服务记录,专用属性由服务提供者定义。属性ID采用16位无符号整数,以便区别于服务记录中的其他服务属性。服务类属性由属性ID和属性值组成。属于同一服务类的所有服务将赋予特定的属性ID以相同的含义。属性ID通常用一个数据元表示。属性值是一个长度可变的字段。它的含义由属性记录中相应的属性ID和服务类确定,通常用一个数据元(DataElement)表示。一般地,属性值可以用任何类型的数据元表示。2.5.4 服务搜索SDP客户一旦获得服务记录句柄,就能够十分容易地查到相应的属性值。为使客户在最初获取希望得到的服务记录句柄,服务搜索过程允许客户检索指定服务的服务记录句柄。此服务记录正是基于那些服务记录中包含的属性值。记录句柄SDP提供了基于UUIDs的服务记录搜索功能,它允许客户获取指定的服务记录句柄。2.5.5 通用独特标识符UUID是一个128位无符号整数,它以分散方式独立创建,在任何时间、任何地点都是唯一的。为减少存储和传输UUID值的开销,UUID值被固定分配在某个范围,该范围的第一个数值称为蓝牙UUID基数(B1uetooth_Base_UUID),其值为00000000-0000-1000-7007-00805F9B34FB。在此范围中,UUID用一个16位或32位的二进制数表示,经常被称作16位或32位UUID。它的实际值代表一个128位数。128位的UUID值与16位或32位的UUID值之间的换算关系如下:128_bit_value16_bit_value*296+B1uetooth_Base_UUID128_bit_value32_bit_va1ue*296+B1uetooth_Base_UUID16位UUID值通过扩展16个0可以转换成32位UUID值。如果两个UUID值位数相同,则可以直接比较;如果位数不同,则需按上述换算关系把位数短者转换成位数相同的UUID后再比较。2.5.6 服务搜索样本(SDP Pattern)它是用于确定服务记录是否匹配的U

温馨提示

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

评论

0/150

提交评论