蓝牙协议的学习第一章蓝牙的概述一、蓝牙版本信息蓝牙共有六个版本V1.1/1.2/2.0/2.1/3.0/4.0版本信息:1、V1.1版本传输率约在748~810kb/s,因是早期设计,容易受到同频率之产品所干扰下影响通讯质量。2、V1.2版本同样是只有748~810kb/s的传输率,但在加上了(改善Software)抗干扰跳频功能。3、V2.0+EDR版本是1.2的改良提升版,传输率约在1.8M/s~2.1M/s,开始支持双工模式——即一面作语音通讯,同时亦可以传输档案/高质素图片,2.0版本当然也支持Stereo运作。应用最为广泛的是Bluetooth2.0+EDR标准,该标准在2004年已经推出,支持Bluetooth2.0+EDR标准的产品也于2006年大量出现。虽然Bluetooth2.0+EDR标准在技术上作了大量的改进,但从1.X标准延续下来的配置流程复杂和设备功耗较大的问题依然存在。4、V2.1版本更佳的省电效果:蓝牙2.1版加入了SniffSubrating的功能,透过设定在2个装置之间互相确认讯号的发送间隔来达到节省功耗的目的。5、V3.0+HS版本2009年4月21日,蓝牙技术联盟(BluetoothSIG)正式颁布了新一代标准规范BluetoothCoreSpecificationVersion3.0HighSpeed(蓝牙核心规范3.0版),蓝牙3.0的核心是GenericAlternateMAC/PHY(AMP),这是一种全新的交替射频技术,允许蓝牙协议栈针对任一任务动态地选择正确射频。最初被期望用于新规范的技术包括802.11以及UMB,但是新规范中取消了UMB的应用。6、V4.0版本蓝牙4.0包括三个子规范,即传统蓝牙技术、高速蓝牙和新的蓝牙低功耗技术。蓝牙4.0的改进之处主要体现在三个方面,电池续航时间、节能和设备种类上。拥有低成本,跨厂商互操作性,3毫秒低延迟、100米以上超长距离、AES-128加密等诸多特色此外,蓝牙4.0的有效传输距离也有所提升。3.0版本的蓝牙的有效传输距离为10米(约32英尺),而蓝牙4.0的有效传输距离最高可达到100米(约328英尺)。7、典型蓝牙与BLE蓝牙对比二、蓝牙的技术特点简单地说,蓝牙是一种短程宽带无线电技术,是实现语音和数据无线传输的全球开放性标准。它使用跳频扩谱(FHSS)、时分多址(TDMA)、码分多址(CDMA)等先进技术,在小范围内建立多种通信与信息系统之间的信息传输。1、Bluetooth的主要技术特点:(1)、工作频段:2.4GHz的工科医(ISM)频段,无需申请许可证。大多数国家使用79个频点,载频为(2402+k)MHz(k=0,1,2…78),载频间隔1MHz。采用TDD时分双工方式。(2)、传输速率:1Mb/s(V2.0以上版本)(3)、调试方式:BT=0.5的GFSK调制,调制指数为0.28-0.35。(4)、采用跳频技术:跳频速率为1600跳/秒,在建链时(包括寻呼和查询)提高为3200跳/秒。蓝牙通过快跳频和短分组技术减少同频干扰,保证传输的可靠性。(5)、语音调制方式:连续可变斜率增量调制(CVSD,ContinuousVariableSlopeDeltaModulation),抗衰落性强,即使误码率达到4%,话音质量也可接受。(6)、支持电路交换和分组交换业务:蓝牙支持实时的同步定向联接(SCO链路)和非实时的异步不定向联接(ACL链路),前者主要传送语音等实时性强的信息,后者以数据包为主。语音和数据可以单独或同时传输。蓝牙支持一个异步数据通道,或三个并发的同步话音通道,或同时传送异步数据和同步话音的通道。每个话音通道支持64kbps的同步话音;异步通道支持723.2/57.6kbps的非对称双工通信或433.9kbps的对称全双工通信。(7)、支持点对点及点对多点通信:蓝牙设备按特定方式可组成两种网络:微微网(Piconet)和分布式网络(Scatternet),其中微微网的建立由两台设备的连接开始,最多可由八台设备组成。在一个微微网中,只有一台为主设备(Master),其它均为从设备(Slave),不同的主从设备对可以采用不同的链接方式,在一次通信中,链接方式也可以任意改变。几个相互独立的微微网以特定方式链接在一起便构成了分布式网络。所有的蓝牙设备都是对等的,所以在蓝牙中没有基站的概念。(8)、工作距离:蓝牙设备分为三个功率等级,分别是:100mW(20dBm)、2.5mW(4dBm)和1mW(0dBm),相应的有效工作范围为:100米、10米和1米。三、Bluetooth的系统构成1、无线射频单元(Radio):负责数据和语音的发送和接收,特点是短距离、低功耗。蓝牙天线一般体积小、重量轻,属于微带天线。2、基带或链路控制单元(LinkController):进行射频信号与数字或语音信号的相互转化,实现基带协议和其它的底层连接规程。3、链路管理单元(LinkManager):负责管理蓝牙设备之间的通信,实现链路的建立、验证、链路配置等操作。4、蓝牙软件协议实现:如上图紫色部分,这个后面我们做详细说明。四、蓝牙协议规范传输协议、中介协议、应用协议;1、传输协议负责蓝牙设备间,互相确认对方的位置,以及建立和管理蓝牙设备间的物理链路;底层传输协议:蓝牙射频(Radio)部分、基带链路管理控制器(Baseband&LinkController)、链路管理协议(LinkManagerProtocolLMP)。负责语言、数据无线传输的物理实现以及蓝牙设备间的联网组网。高层传输协议:逻辑链路控制与适配器(LogicalLinkControlandAdaptationProtocol)L2CAP、主机控制接口(HostControlInterface,HCI)。为高层应用屏蔽了跳频序列选择等底层传输操作,为高层程序提供有效、有利于实现数据分组格式。2、中介协议为高层应用协议或者程序,在蓝牙逻辑链路上工作提供必要的支持,为应用提供不同标准接口。串口仿真协议:RFCOMM、服务发现协议:SDP、互操作协议IrDA、网络访问协议:PPP、IP、TCP、UDP、电话控制协议:TCS、AT指令集。3、应用协议蓝牙协议栈之上的应用软件和所涉及到的协议,如:拨号上网、语言功能的应用程序。蓝牙的应用框架如下:(1)、通用应用类框架:查询、建立连接服务等;(2)、蓝牙电话应用类框架:电话控制、语言;(3)、蓝牙连网应用类框架:网络应用相关;(4)、对象交互服务类框架:IrDA、OBEX;(5)、蓝牙音视频控制类框架。五、硬件接口一般蓝牙芯片通过UART、USB、SDIO、I2S、PcCard和主控芯片通信。如下图所示,通过UART和主控芯片通信。第二章蓝牙协议规范(射频、基带链路控制、链路管理)蓝牙协议是蓝牙设备间交换信息所应该遵守的规则。与开放系统互联(OSI)模型一样,蓝牙技术的协议体系也采用了分层结构,从底层到高层形成了蓝牙协议栈,各层协议定义了所完成的功能和使用数据分组格式,以保证蓝牙产品间的互操作性。一、射频协议射频位置如上图红色部分。1、工作频率蓝牙工作在2.4GHzISM频段上,蓝牙采用跳频扩谱技术主动的避免工作频段受干扰(微波炉的工作频率也是2.4GHz)。地理位置ISM频段范围射频信道频率中国、美国、欧洲2400.0~2483.5MHzF=(2402+k)MHz,k在0、1、……78中随机取值法国2446.5~2483.5MHzF=(2454+k)MHz,k在0、1、……22中随机取值日本2471.0~2497.0MHzF=(2473+k)MHz,k在0、1、……22中随机取值西班牙2445.0~2475.0MHzF=(2449+k)MHz,k在0、1、……22中随机取值我国的蓝牙频率在2.402GHz~2.483GHz,蓝牙每个频道的宽度为1MHz,为了减少带外辐射的干扰,保留上、下保护为3.5MHz和2MHz,79个跳频点中至少75个伪随机码跳动,30S内任何一个频点使用时长不能超过0.4S。2、跳频技术、发射功率、时隙(1)、发射功率:蓝牙发射功率分三级:一级功率100mW(20dBm);二级功率2.5mW(4dBm);三级功率1mW(0dBm);(2)、物理信道:蓝牙物理信道有伪随机序列控制的79个跳频点构成,不同跳频序列代表不同的信道。(3)、时隙:蓝牙跳频速率为1600次/s,每个时间为625uS(1S/1600)称为一个时隙;二、基带与链路控制协议蓝牙发送数据时,基带部分将来自高层的数据进行信道编码,向下发给射频进行发送;接收数据时,将解调恢复空中数据并上传给基带,基带进行信道编码传送给上层。作用:跳频选择、蓝牙编址、链路类型、信道编码、收发规则、信道控制、音频规范、安全设置。1、蓝牙分组编码为小端模式;2、蓝牙地址BD_ADDR:BluetoothDeviceAddress;LAP:LowerAddressPart低地址部分;UAP:UpperAddressPart高地址部分;NAP:Non-significantAddressPart无效地址部分。3、蓝牙时钟每个蓝牙设备都有一个独立运行的内部系统时钟,称为本地时钟(LocalClock),决定定时器的收发跳频。为了与其他设备同步,本地时钟要加一个偏移量(offset),提供给其他设备同步。蓝牙基带四个关键周期:312.5uS、625uS、1.25mS、1.28S。CLKN:本地时钟:CLKE:预计时钟,扫描寻呼过程中用到;CLK:设备实际运行的时钟频率。CLKE、CLK由CLKN加上一个偏移量得到的。4、蓝牙物理链路:通信设备间物理层的数据连接通道就是物理链路。ACL(AsynchronousConnectionless)异步无连接链路;对时间要求不敏感的数据通信,如文件数据、控制信令等。SCO(SynochronousConnectionOriented)同步面向连接链路;对时间比较敏感的通信,如:语音;最多只支持3条SCO链路,不支持重传。ACL用于数据传输;5、蓝牙基带分组:基带分组至少包括:接入码、分组头、有效载荷;(1)、接入码用于同步、直流、载频泄漏偏置补偿标识;(2)、分组头包含链路信息,确保纠正较多的错误。分组类型如下:分组类别Type(b3b2b1b0)时隙SCOACL链路控制分组00001NULLNULL0001POLLPOLL0010FHSFHS0011DM1DM1单时隙分组01001未定义NULL0101HV10110HV20111HV31000DV1001NULLAUX13时隙分组10103未定义DM31011DH31100未定义11015时隙分组11105未定义DM51111ACL分组形式为:D(M|H)(1|3|5),D代表数据分组,M代表用2/3比例的FEC的中等速率分组;H代表不使用纠错码的高速率分组;1、3、5分别代表分组所占用的时隙数目;DM1、DM3、DM5、DH1、DH3、DH5SCO分组形式为:HV(1|2|3)。HV代表高质量语言分组,1、2、3有效载荷所采用的纠错码方法。1为1/3比例FEC,设备2个时隙发送一个单时隙分组;2为2/3比例FEC,设备4个时隙发送一个单时隙分组;3为不使用纠错码,设备6个时隙发送一个单时隙分组HV1、HV2、HV3ALC分组:类型有效载荷头/字节用户有效载荷/字节FECCRC对称最大速率/kbps非对称速率/kbps前向后向DM110~172/3有108.8108.8108.8DH110~27无有172.8172.8172.8DM320~1212/3有258.1387.254.4DH320~183无有390.4585.686.4DM520~2242/3有286.7477.836.3MH520~339无有433.9723.257.6AUX110~29无无185.6185.6185.6SCO分组:类型有效载荷头/字节用户有效载荷/字节FECCRC有效载荷长度同步速率/kbp