1、蓝牙协议的学习第一章 蓝牙的概述一、蓝牙版本信息蓝牙共有六个版本V1.1/1.2/2.0/2.1/3.0/4.0 版本信息:1、V1.1版本传输率约在748810kb/s,因是早期设计,容易受到同频率之产品所干扰下影响通讯质量。2、V1.2版本同样是只有748810kb/s 的传输率,但在加上了(改善 Software)抗干扰跳频功能。3、V2.0+EDR版本是 1.2 的改良提升版,传输率约在1.8M/s2.1M/s,开始支持双工模式即一面作语音通讯,同时亦可以传输档案/高质素图片,2.0 版本当然也支持 Stereo 运作。应用最为广泛的是Bluetooth2.0+EDR标准,该标准在20
2、04年已经推出,支持Bluetooth 2.0+EDR标准的产品也于2006年大量出现。虽然Bluetooth 2.0+EDR标准在技术上作了大量的改进,但从1.X标准延续下来的配置流程复杂和设备功耗较大的问题依然存在。4、V2.1版本更佳的省电效果:蓝牙2.1版加入了SniffSubrating的功能,透过设定在2个装置之间互相确认讯号的发送间隔来达到节省功耗的目的。5、V3.0+HS版本2009年4月21日,蓝牙技术联盟(Bluetooth SIG)正式颁布了新一代标准规范Bluetooth Core Specification Version 3.0 High Speed(蓝牙核心规范3
3、.0版 ),蓝牙3.0的核心是GenericAlternate MAC/PHY(AMP),这是一种全新的交替射频技术,允许蓝牙协议栈针对任一任务动态地选择正确射频。最初被期望用于新规范的技术包括802.11以及UMB,但是新规范中取消了UMB的应用。6、V4.0 版本蓝牙4.0包括三个子规范,即传统蓝牙技术、高速蓝牙和新的蓝牙低功耗技术。蓝牙 4.0的改进之处主要体现在三个方面,电池续航时间、节能和设备种类上。拥有低成本,跨厂商互操作性,3毫秒低延迟、100米以上超长距离、AES-128加密等诸多特色此外,蓝牙4.0的有效传输距离也有所提升。3.0版本的蓝牙的有效传输距离为10米(约 32英尺
4、),而蓝牙4.0的有效传输距离最高可达到100米(约328英尺)。7、典型蓝牙与BLE蓝牙对比二、蓝牙的技术特点简单地说,蓝牙是一种短程宽带无线电技术,是实现语音和数据无线传输的全球开放性标准。它使用跳频扩谱(FHSS)、时分多址(TDMA)、码分多址(CDMA)等先进技术,在小范围内建立多种通信与信息系统之间的信息传输。1、Bluetooth的主要技术特点:(1)、工作频段:2.4GHz的工科医(ISM)频段,无需申请许可证。大多数国家使用79个频点,载频为(2402+k)MHz(k=0,1, 278),载频间隔1MHz。采用TDD时分双工方式。(2)、传输速率:1Mb/s(V2.0以上版本
5、)(3)、调试方式:BT=0.5的GFSK调制,调制指数为0.28-0.35。(4)、采用跳频技术:跳频速率为1600跳/秒,在建链时(包括寻呼和查询)提高为3200跳/秒。蓝牙通过快跳频和短分组技术减少同频干扰,保证传输的可靠性。(5)、语音调制方式:连续可变斜率增量调制(CVSD,ContinuousVariable Slope Delta Modulation),抗衰落性强,即使误码率达到4%,话音质量也可接受。(6)、支持电路交换和分组交换业务:蓝牙支持实时的同步定向联接(SCO链路)和非实时的异步不定向联接(ACL链路),前者主要传送语音等实时性强的信息,后者以数据包为主。语音和数据
6、可以单独或同时传输。蓝牙支持一个异步数据通道,或三个并发的同步话音通道,或同时传送异步数据和同步话音的通道。每个话音通道支持64kbps的同步话音;异步通道支持723.2/57.6kbps的非对称双工通信或433.9kbps的对称全双工通信。(7)、支持点对点及点对多点通信:蓝牙设备按特定方式可组成两种网络:微微网(Piconet)和分布式网络(Scatternet),其中微微网的建立由两台设备的连接开始,最多可由八台设备组成。在一个微微网中,只有一台为主设备(Master),其它均为从设备(Slave),不同的主从设备对可以采用不同的链接方式,在一次通信中,链接方式也可以任意改变。几个相互独
7、立的微微网以特定方式链接在一起便构成了分布式网络。所有的蓝牙设备都是对等的,所以在蓝牙中没有基站的概念。(8)、工作距离:蓝牙设备分为三个功率等级,分别是:100mW(20dBm)、2.5mW(4dBm)和1mW(0dBm),相应的有效工作范围为:100米、10米和1米。三、Bluetooth的系统构成1、无线射频单元(Radio):负责数据和语音的发送和接收,特点是短距离、低功耗。蓝牙天线一般体积小、重量轻,属于微带天线。2、基带或链路控制单元(LinkController):进行射频信号与数字或语音信号的相互转化,实现基带协议和其它的底层连接规程。3、链路管理单元(LinkManager)
8、:负责管理蓝牙设备之间的通信,实现链路的建立、验证、链路配置等操作。4、蓝牙软件协议实现:如上图紫色部分,这个后面我们做详细说明。四、蓝牙协议规范传输协议、中介协议、应用协议;1、传输协议负责蓝牙设备间,互相确认对方的位置,以及建立和管理蓝牙设备间的物理链路;底层传输协议:蓝牙射频(Radio)部分、基带链路管理控制器(Baseband&Link Controller)、链路管理协议(Link ManagerProtocol LMP)。负责语言、数据无线传输的物理实现以及蓝牙设备间的联网组网。高层传输协议: 逻辑链路控制与适配器(LogicalLink Control and Adaptati
9、on Protocol)L2CAP 、主机控制接口(HostControl Interface,HCI)。为高层应用屏蔽了跳频序列选择等底层传输操作,为高层程序提供有效、有利于实现数据分组格式。2、中介协议 为高层应用协议或者程序,在蓝牙逻辑链路上工作提供必要的支持,为应用提供不同标准接口。 串口仿真协议:RFCOMM、服务发现协议:SDP、互操作协议IrDA、网络访问协议:PPP、IP、TCP、UDP、电话控制协议:TCS、AT指令集。3、应用协议蓝牙协议栈之上的应用软件和所涉及到的协议,如:拨号上网、语言功能的应用程序。蓝牙的应用框架如下:(1)、通用应用类框架:查询、建立连接服务等;(2
10、)、蓝牙电话应用类框架:电话控制、语言;(3)、蓝牙连网应用类框架:网络应用相关;(4)、对象交互服务类框架:IrDA、OBEX;(5)、蓝牙音视频控制类框架。五、硬件接口一般蓝牙芯片通过UART、USB、SDIO、I2S、PcCard和主控芯片通信。如下图所示,通过UART和主控芯片通信。第二章 蓝牙协议规范(射频、基带链路控制、链路管理)蓝牙协议是蓝牙设备间交换信息所应该遵守的规则。与开放系统互联(OSI)模型一样,蓝牙技术的协议体系也采用了分层结构,从底层到高层形成了蓝牙协议栈,各层协议定义了所完成的功能和使用数据分组格式,以保证蓝牙产品间的互操作性。一、射频协议射频位置如上图红色部分。
11、1、工作频率蓝牙工作在2.4GHz ISM频段上,蓝牙采用跳频扩谱技术主动的避免工作频段受干扰(微波炉的工作频率也是2.4GHz)。地理位置ISM频段范围射频信道频率中国、美国、欧洲2400.02483.5MHzF=(2402+k)MHz,k在0、1、78中随机取值法国2446.52483.5MHzF=(2454+k)MHz,k在0、1、22中随机取值日本2471.02497.0MHzF=(2473+k)MHz,k在0、1、22中随机取值西班牙2445.02475.0MHzF=(2449+k)MHz,k在0、1、22中随机取值我国的蓝牙频率在2.402GHz2.483GHz,蓝牙每个频道的宽度
12、为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)称为一个时隙;二、基带与链路控制协议蓝牙发送数据时,基带部分将来自高层的数据进行信道编码,向下发给射频进
13、行发送;接收数据时,将解调恢复空中数据并上传给基带,基带进行信道编码传送给上层。作用:跳频选择、蓝牙编址、链路类型、信道编码、收发规则、信道控制、音频规范、安全设置。1、蓝牙分组编码为小端模式;2、蓝牙地址BD_ADDR:BluetoothDevice Address;LAP:LowerAddress Part 低地址部分;UAP: UpperAddress Part 高地址部分;NAP: Non-significantAddress Part 无效地址部分。3、蓝牙时钟每个蓝牙设备都有一个独立运行的内部系统时钟,称为本地时钟(Local Clock),决定定时器的收发跳频。为了与其他设备同步
14、,本地时钟要加一个偏移量(offset),提供给其他设备同步。蓝牙基带四个关键周期:312.5uS、625uS、1.25mS、1.28S。CLKN:本地时钟:CLKE:预计时钟,扫描寻呼过程中用到;CLK:设备实际运行的时钟频率。CLKE、CLK由CLKN加上一个偏移量得到的。4、蓝牙物理链路:通信设备间物理层的数据连接通道就是物理链路。ACL(Asynchronous Connectionless)异步无连接链路;对时间要求不敏感的数据通信,如文件数据、控制信令等。SCO(Synochronous Connection Oriented)同步面向连接链路;对时间比较敏感的通信,如:语音;最多
15、只支持3条SCO链路,不支持重传。ACL用于数据传输;5、蓝牙基带分组:基带分组至少包括:接入码、分组头、有效载荷;(1)、接入码用于同步、直流、载频泄漏偏置补偿标识;(2)、分组头包含链路信息,确保纠正较多的错误。分组类型如下:分组类别Type(b3b2b1b0)时隙SCOACL链路控制分组00001NULLNULL0001POLLPOLL0010FHSFHS0011DM1DM1单时隙分组01001未定义NULL0101HV10110HV20111HV31000DV1001NULLAUX13时隙分组10103未定义DM31011DH31100未定义11015时隙分组11105未定义DM511
16、11ACL分组形式为: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非对称速率
17、/kbps前向后向DM110172/3有108.8108.8108.8DH11027无有172.8172.8172.8DM3201212/3有258.1387.254.4DH320183无有390.4585.686.4DM5202242/3有286.7477.836.3MH520339无有433.9723.257.6AUX11029无无185.6185.6185.6SCO分组:类型有效载荷头/字节用户有效载荷/字节FECCRC有效载荷长度同步速率/kbps占用Tsco数目/语言长度HV1无101/3240位642/1.25msHV2202/34/2.5msHV330无6/3.75msDV1D1
18、0+(0-9)D2/3D有D64+57.6D注释:D 只对数据段有用,DV分组包含数据段,也包含语言段。(3)、有效载荷分语言有效载荷、数据有效载荷。6、蓝牙的逻辑信道链路控制信道:LinkControl LC链路管理信道:Link Manage LM用户异步数据信道:User AsynchronizationUA用户同步数据信道:UserSynchronization US用户等时数据信道:UserIsochronous UI UI7、蓝牙的收发规则上图为RX缓存。上图为TX缓存。新分组到达时,ACL链路的RX缓存器要流量控制,SCO数据不需要流量控制;8、蓝牙基带信道和网络控制1)、链路控
19、制器状态:待机、连接寻呼page、寻呼扫描pagescan、查询inquiry、查询扫描inquiry scan、主设备相应Master Response、从设备相应Slave Response、查询相应inquiry response2) 、连接状态激活模式active、呼吸模式sniff、保持模式hold、休眠模式park。3)、待机状态 待机状态是蓝牙设备缺省低功耗状态,此状态下本地时钟以低精度运行。蓝牙从待机转入寻呼扫描状态,对其他寻呼进行响应成为从设备;也可以从待机状态进入查询扫描状态,完成一个完整的寻呼,成为主设备。9、接入过程注释:IAC Inquiry AccessCode 查
20、询接入码;GIAC:通用查询接入码 DIAC:专用查询接入码;DAC:DeviceAccess Code 设备接入码;LAP: 建立连接,必须使用查询、寻呼;查询过程使用IAC,发现覆盖区域内的设备、设备的地址及其时钟;连接过程使用DAC,建立连接的设备处理寻呼过程,成为主设备。、(1)、查询过程蓝牙设备通过查询来发现通信范围内的其他蓝牙设备。查询信息分为GIAC、DIAC两种。查询发起设备收集所有相应设备的地址、时钟信息。一设备进入查询状态去发现其他设备,查询状态下连续不断的在不同频点发送查询消息。查询的跳频序列有GIAC的LAP导出。一设备想被其他设备发现,就要周期性进入 查询扫描状态,以
21、便相应查询消息。如:我们选择设备多长时间可见,其实就是 进入查询扫描状态。A、查询扫描查询扫描状态下,接收设备扫描接入码的时间长度,足以完成对16个频率的扫描。扫描区间长度Twindow inquiry scan。扫描在同一个频率上进行,查询过程用32跳专用查询跳频序列,此序列有通用查询的地址决定,相位有本地时钟决定,每隔1.28S变化一次。B、查询与寻呼类似,TX用查询跳频序列、RX用查询相应跳频序列。C、查询相应从设备响应查询操作。每个设备都有自己的时钟,使用查询序列相位相同的几率比较小。为了避免多个设备在同一查询跳频信道同时激活,从设备查询响应规定:从设备收到查询消息,产生0-1023只
22、觉得额一个随机数,锁定当时相位输入值进行跳频选择,从设备此后的RAND时隙中返回到连接或者待机状态。(2)、寻呼扫描DAC:DeviceAccess Code 设备接入码寻呼扫描状态下的设备扫描窗口Twindowpage scan内监听自己的DAC。监听只在一个跳频点进行。Twindow page scan足够覆盖16个寻呼扫描频点。寻呼扫描状态,扫描在同一个频率上进行,持续1.28S,在选择另一个不同频率。SR模式Tpage scan寻呼次数NpageR0连续=1R1=128R2=256预留-(3)、寻呼主设备使用寻呼发起一个主从设备连接,通过在不同的跳频点上重复发送从设备DAC来扑捉从设备
23、,从设备在寻呼扫描状态被唤醒,接收寻呼。(4)、寻呼相应过程三、链路管理器如上图红色部分,负责完成设备:功率管理、链路质量管理、链路控制管理、数据分组管理、链路安全管理。1、链路管理协议数据单元 蓝牙链路管理器接收到高层的控制信息后,不是向自身的基带部分分发控制信息,就是与另一台设备的链路管理器进行协商管理。这些控制信息封装在链路管理协议数据单元LMP_PDU中,由ACL分组的有效载荷携带。2、链路管理器协议规范(1)、设备功率管理 RSSI保持模式、呼吸模式、休眠模式。(2)、链路质量管理 QoSQuality of ServiceA、ACL链路。B、SCO链路。(3)、链路控制管理设备寻呼
24、模式、设备角色转换、时钟计时设置、信息交换:版本信息、支持特性、设备名称;建立连接、链路释放。(4)、数据分组管理第三章 蓝牙协议规范(HCI、L2CAP、SDP、RFOCMM)一、主机控制接口协议 HCI蓝牙主机-主机控模型蓝牙软件协议栈堆的数据传输过程:1、蓝牙控制器接口数据分组:指令分组、事件分组、数据分组(1)、指令分组如:Accpet Connection RequestOpcode为:0x0409参数长度为: 07参数中蓝牙地址为:00:0d:fd:5f:16:9f角色为:从设备 0x01大端数据模式指令为:09 04 07 9f 16 5f fd 0d 00 01(2)、事件分组
25、如上图:Opcode :0x0409状态: 0x00总长度: 4字节命令状态:0x0f(3)、数据分组ACL 数据分组连接句柄(12bit)PB(2bit)BC(2bit)数据长度(16bit)数据注:PB Packet_Boundary BCBroadcast FlagSCO 数据分组连接句柄(12bit)保留(4bit)数据长度(16bit)数据(4)、RS232分组指示器:HCI 分组类型RS232分组指示器HCI指令分组0x01HCI ACL数据分组0x02HCI SCO数据分组0x03HCI事件分组0x04HCI错误消息分组0x05HCI协商分组0x062、HCI控制命令(1)、链路
26、控制指令命令OCF概述Inquiry0x0001蓝牙设备进入查询模式,搜索临近设备Inquiry Cancel0x0002退出查询模式Periodic Inquiry Mode0x0003蓝牙设备在指定周期内自动查询Exit Periodic Inquiry Mode0x0004退出自动查询模式Create Connection0x0005按指定蓝牙设备的BD_ADDR创建ACL链路Disconnect0x0006终止现有连接Add SCO Connection0x0007利用连接句柄参数指定的ACL连接创建SCOCancel Create Connection0x0008Accept Con
27、nection Request0x0009接收新的呼入连接请求Reject Connection Request0x000A拒绝新的呼入连接请求Link Key Request Reply0x000B应答从主机控制器发出的链路密钥请求事件,并指定存储在主机上的链路密钥做为与BD_ADDR指定的蓝牙设备进行连接使用的链路密钥请求事件Link Key Request Negative Reply0x000C如果主机上没有存储链路密钥,作为与BD_ADDR指定的蓝牙设备进行连接使用的链路密钥,就应答从主机控制器发出的链路密钥请求事件PIN Code Request Reply0x000D应答从主机控
28、制器发出的PIN请求事件,并指定用于连接的PINPIN Code Request Negative Reply0x000E当主机不能指定连接的PIN时,应回答从机控制器发出的PIN请求事件Change Connection Packet Type0x000F改变正在建立连接的分组类型Authentication Request0x0011指定连接句柄关联的两个蓝牙设备之间建立身份鉴权Set Connection Encryption0x0013建立取消连接加密Change Connection Link Key0x0015强制关联了连接句柄的两个设备建立连接,并生成一个新的链路密钥Master
29、 Link Key0x0017强制关联了连接句柄的两个设备利用主设备时链路密钥或常规密钥Remote Name Request0x0019获取远端设备的名称Cancel Remote Name RequestRead Remote Supported Features0x001B请求远端设备所支持的特性列表Read Remote Extended FeaturesRead Remote Version Information0x001D从远端设备读取版本信息Read Clock Offset0x001F读取远端的时钟信息(2)、链路策略指令命令OCF简介Hold Mode0x0001改变LM状
30、态和本地及远程设备为主模式的LM位置Sniff Mode0x0003改变LM状态和本地及远程设备为呼吸模式的LM位置Exit Sniff Mode0x0004结束连接句柄在当前呼吸模式里的呼吸模式Park State0x0005改变LM状态和本地及远程设备为休眠模式的LM位置Exit Park State0x0006切换从休眠模式返回到激活模式的蓝牙设备QoS Setup0x0007指出连接句柄的服务质量参数Role Discovery0x0009蓝牙设备连接后确定自己的主从角色Switch Role0x000B角色互换Read Link Policy Settings0x000C为指定连接句
31、柄读链路策略设置。链路策略设置允许主机控制器指定用于连接句柄的LM连接模式Write Link Policy Settings0x000D为指定连接句柄写链路策略设置。链路策略设置允许主机控制器指定用于连接句柄的LM连接模式Read Default Link Policy Settings0x000EWrite Default Link Policy Settings0x000FFlow Specification0X0010(3)、主机控制器与基带指令Set Event Mark0x0001使能主机过滤HCI产生的事件Reset0x0003复位蓝牙控制器、链路管理器、基带链路管理器Set E
32、vent Filter0x0005使能主机指定不同事件过滤Flush0x0008针对指定的蓝牙句柄,放弃所有作为当前待传输数据,甚至当前是属于多个在主机控制器里的L2CAP指令的数据块Read PIN Type0x0009主机读取指定主机的PIN类型是可变的还是固定的Write PIN Type0x000A主机写入指定主机的PIN类型是可变的还是固定的Create New Unit Key0x000B创建新的单一密钥Read Stored Link Key0x000D读取存放在蓝牙控制器中的单个或者多个密钥Write Stored Link Key0x0011写入存放在蓝牙控制器中的单个或者多
33、个密钥Delete Stored Link Key0x0012删除存放在蓝牙控制器中的单个或者多个密钥Write Local Name0x0013修改蓝牙设备名称Read Local Name0x0014读取蓝牙设备名称Read Connection Accept Timeout0x0015读连接识别超时参数值,定时器终止后蓝牙硬件自动拒绝连接Write Connection Accept Timeout0x0016写连接识别超时参数值,定时器终止后蓝牙硬件自动拒绝连接Read Page Timeout0x0017读寻呼超时参数值,本地设备返回连接失败前,该值是允许蓝牙硬件定义等待远程设备连接
34、申请时间Write Page Timeout0x0018写寻呼超时参数值,本地设备返回连接失败前,该值是允许蓝牙硬件定义等待远程设备连接申请时间Read Scan Enable0x0019写出扫描允许参数值-用来控制蓝牙设备周期性查询Write Scan Enable0x001A读出扫描允许参数值-用来控制蓝牙设备周期性查询Read Page Scan Activity0x001B读寻呼扫描间隔、寻呼扫描区间参数Write Page Scan Activity0x001C写寻呼扫描间隔、寻呼扫描区间参数Read Inquiry Scan Activity0x001D读查询扫描间隔、查询扫描区间
35、参数Write Inquiry Scan Activity0x001E写查询扫描间隔、查询扫描区间参数Read Authentication Enable0x001F读取鉴权允许参数-控制蓝牙设备是否对每个连接进行鉴权Write Authentication Enable0x0020写取鉴权允许参数-控制蓝牙设备是否对每个连接进行鉴权Read Encryption Mode0x0021读加密模式数值-控制蓝牙设备是否对每个连接进行加密Write Encryption Mode0x0022写加密模式数值-控制蓝牙设备是否对每个连接进行加密Read Class Of Device0x0023读取设
36、备类型参数值,用于区别设备能力Write Class Of Device0x0024写设备类型参数值,用于区别设备能力Read Voice Setting0x0025读取语音设置参数值,控制语音连接的各种设置Write Voice Setting0x0026写语音设置参数值,控制语音连接的各种设置Read Automatic Flush Timeout0x0027对指定句柄,读取刷新超时值Write Automatic Flush Timeout0x0028对指定句柄,写入刷新超时值Read Num Broadcast Retransmissions0x0029读取设备的广播重复发送次数,重复
37、发送提高广播消息的可靠性Write Num Broadcast Retransmissions0x002A写入设备的广播重复发送次数,重复发送提高广播消息的可靠性Read Hold Mode Activity0x002B读取Hold Mode Activity的参数值,用来确定Hold挂起的时间Write Hold Mode Activity0x002C写入Hold Mode Activity的参数值,用来确定Hold挂起的时间Read Transmit Power Level0x002D对指定句柄,读取传输功率的参数值Read Synchronous Flow Control Enable0
38、x002E读取SCO流量控制设置。通过使用该设置,主机控制器决定是否主机控制器发送与SCO连接句柄相关的完成分组事件的数量Write Synchronous Flow Control Enable0x002F读写入SCO流量控制设置。通过使用该设置,主机控制器决定是否主机控制器发送与SCO连接句柄相关的完成分组事件的数量Set Host Controller To Host Flow Control0x0031主机控制器的打开、关闭,主机控制器到主机的流量控制Host Buffer Size0x0033主机通知主机控制器自己的ACL、SCO数据缓冲区大小。主机控制器分段传输数据,而数据不会超出
39、这个范围Host Number Of Completed Packets0x0035当主机对于任何连接的句柄准备接受较多的HCI指令时,该指令用于通过主机指出主机控制器Read Link Supervision Timeout0x0036读取连接管理超时参数。主从蓝牙设备用该参数监视链路丢失情况Write Link Supervision Timeout0x0037写入连接管理超时参数。主从蓝牙设备用该参数监视链路丢失情况Read Number of Supported IAC0x0038读取查询扫描期间本地蓝牙扫描的查询识别码(ICA)的数值Read Current IAC LAP0x003
40、9读取创建在查询扫描期间本地蓝牙设备正同时扫描的蓝牙识别码的LAPWrite Current IAC LAP0x003A写入创建在查询扫描期间本地蓝牙设备正同时扫描的蓝牙识别码的LAPRead Page Scan Period Mode0x003B读取本地蓝牙设备的强制寻呼扫描区间模式Write Page Scan Period Mode0x003C写入本地蓝牙设备的强制寻呼扫描区间模式Read Page Scan Mode0x003D读取本地蓝牙设备的默认寻呼扫描区间模式Write Page Scan Mode0x003E写入本地蓝牙设备的默认寻呼扫描区间模式(4)、信息指令参数Read L
41、ocal Version Information0x0001读取本地蓝牙版本信息Read Local Supported Features0x0003读取本地蓝牙设备特征表Read Local Extended Features0x0004Read Buffer Size0x0005返回HCI缓冲容量。缓冲容量用于传输缓冲数据Read Country Code Deprecated0x0007读取国家代码状态参数值Read BD ADDR0x0009读取BD_ADDR的参数值(5)、状态指令参数Read Failed Contact Count0x0001读取对于其他设备特殊连接的Failed
42、 Contact Count参数值。Failed Contact Count记录在刷新时终止及当前正在传输的L2CAP数据指令被自动刷新后,主单元或从单元不能连续响应事件次数Reset Failed Contact Count0x0002复位时对于其他设备的连接的Failed Contact Count的参数值。Failed Contact Count记录在刷新时终止及当前正在传输的L2CAP数据指令被自动刷新后,主单元或从单元不能连续响应事件次数Get Link Quality0x0003读取指定连接句柄的Link Quality的值Read RSSI0x0005读取对于其他蓝牙设备连接句柄
43、的接收信号强度指示Read AFH Channel Map0x0007Read BD Clock0x0009(6)、测试指令Read Loopback Mode0x0001读取主机端控制器会送模式的设置值。回送模式设置可以确定信息发送路径Write Loopback Mode0x0002写入主机控制器会送模式的设置值。回送模式设置可以确定信息发送路径Enable Device Under Test Mode0x0003允许本地蓝牙设备模块通过LMP测试指令接入测试模式。当主机要求本地设备作为待测试设备,实现蓝牙测试模式文件中规定测试场景,则发送该指令(7)、错误代码错误代码错误含义错误代码错误含义0x01位置HCI指令0x14由于另一端引起连接中断:资源限制0x02不能连接0x15由于另一端引起连接中断:关机0x03硬件故障0x16本机中断连接0x04寻呼超时0x17重复尝试0x05身份验证失败0x18不允许匹配0x06键丢失0x19未知LMP PDU0x07存储器已满0x1A不支持远端特性0x08连接超时0x1B拒绝SCO补偿0x09最大连接数0x1C拒绝SCO间歇模式0x0A连接到设备A的最大SCO连接数0x1D拒绝SCO无线模式0x0BACL连接已存在0x1E非法链路管理参数0x0C指令非法0x1F未特别指明错误0x0D