蓝牙核心规范中HCI层的研究与开发分析

蓝牙协议详解:HCI数据包 本文主要对蓝牙HCI数据包进行详细讲解,包括5种类型数据包的格式、字段详解、注意事项,并通过示例解析帮助大家进一步看懂HCI数据。 阅读详情

蓝牙核心规范中HCI层的研究与开发分析


摘要:通过对蓝牙核心规范1.2的主机控制接口的研究,分析蓝牙基带层和主机侧的通讯机制以及通讯方法。并举例说明了一些蓝牙基本命令和事件,解释了相关接口,在此基础上能够方便的进行蓝牙HCI层的开发。 
  关键词:蓝牙;HCI;基带;流量控制 
  中图分类号:TP399 文献标识码:A文章编号:1009-3044(2007)06-11671-04 
   
  1 引言 
  蓝牙是无线数据和语音传输的开放式标准。蓝牙采用跳频技术,工作在2.4GHz的ISM频段,在采用不对称的信道时单向最高传输速率可达 723.2kb/s,可以同时支持数据与语音通讯。蓝牙支持点到点和点到多点的连接,可采用无线方式将若干蓝牙设备连成一个微微网(Piconet),多 个微微网又可互连成分散网(Scatternet),形成灵活的多重微微网的拓扑结构,从而实现各类设备之间的快速通讯。 
   
  2 HCI在蓝牙软件协议模型位置的分析 
  蓝牙系统的协议模型如图1所示。从图中可以看出,HCI是位于蓝牙系统的L2CAP(逻辑链路控制与适配协议)层和LMP(链路管理协议)层 之间的一层协议。HCI为上层协议提供了进入LM的统一接口和进入基带的统一方式。在HCI的主机(Host)和HCI主机控制器(Host Controller)之间会存在若干传输层,这些传输层是透明的,只需完成传输数据的任务,不必清楚数据的具体格式。目前,蓝牙的SIG规定了四种与硬 件连接的物理总线方式:USB、RS232、UART和PC卡。其中通过RS232串口线方式进行连接具有差错校验。 
  图1 蓝牙系统的协议模型 
  HCI层的底层协议如图2所示。由图可看出,HCI层屏蔽了基带,为协议层的上层提供了进入基带的统一方式。 图2提供了较低的软件层的概观。HCI 固件为蓝牙硬件访问执行基带命令,链路管理器指令,硬件状态记录器,控制记录器和事件记录器而实现HCI 指令。 
   
  3 HCI与基带通信方式的研究与分析 
  图2 HCI层的底层协议 
  蓝牙系统的底层协议通信如图3所示。下面结合图3对蓝牙系统中HCI层与基带间的通信作一些分析研究。 
  图3 蓝牙系统的底层协议通信 
  图3指出了一个数据从一个设备到发送到另外的设备所经过的路径。在主机上的HCI驱动器通过 Bluetooth 硬件上的HCI 固件交换数据和命令。主机控制传输层(也就是物理总线)驱动器提供能力给两者的HCI层彼此交换信息。主机接受HCI事件的异步通讯,HCI事件是独立于 物理总线的。 
  3.1 通信方式的分析 
  HCI是通过包的方式来传送数据、命令和事件的,所有在主机和主机控制器之间的通信都以包的形式进行。包括每个命令的返回参数都通过特定的事 件包来传输。HCI有数据、命令和事件三种包,其中数据包是双向的,命令包只能从主机发往主机控制器,而事件包始终是主机控制器发向主机的。主机发出的大 多数命令包都会触发主机控制器产生相应的事件包作为响应。 
  命令包分为六种类型: 
  链路控制命令; 
  链路政策和模式命令; 
  主机控制和基带命令; 
  信息命令; 
  状态命令; 
  测试命令。 
  事件包也可分为三种类型: 
  通用事件,包括命令完成包(Command Complete)和命令状态包(Command Status); 
  测试事件; 
  出错时发生的事件,如产生丢失(Flush Occured)和数据缓冲区溢出(Data Buffer Overflow)。 
  数据包则可分为ACL和SCO的数据包。包的格式如图4所示。 
  图4 包的格式 
  3.2 包的参数分析研究 
  命令包:命令包中的OCF(Opcode Command Field)和OGF(Opcode Group Field)是用于区分命令种的。Parameter Length表示所带参数的长度,以字节数为单位,随后就是所带的参数列表。下面以Inquiry命令为例对HCI的命令包做具体说明。(注:OGF范围 是 0x00~0x3F,其中0x3E保留作为蓝牙logo测试用,0x3F保留作为厂家制定调试命令) 
  在Inquiry命令中,OGF=0x01表示此命令属于链路控制命令,同时OCF=0x0001则表示此命令为链路控制命令中的 Inquiry命令。OCF与OGF共占2字节,又由于底位字节在前,则它们在命令包为0x0104。在Inquiry 命令中,参数Parameter Length为5。Inquiry命令带3个参数,第一个参数为LAP(low address part), 它将用来产生Baseband中查询命令包的包头中的Access Code。第二个参数为Inquiry_Length,它时表示在Inquiry命令停止前所定义的最大时间,超过此时间,Inquiry命令将终止。第 三个参数为NUM_Response,它的值为0X00表示设备响应数不受限制,只为0x00-0xff则表示在Inquiry命令终止前最大的设备响应 数。因此,若LAP=0x9e8b00,Inquiry_Length=0x05,NUM_Response=0x05,则协议上层调用Inquiry命 令是HCI向基带发的明令包将为:0x01 04 05 00 8b 9e 05 05。 
  事件包:事件包的Event Code用来区分不同的事件包,Parameter Length表示所带参数的长度,以字节数为单位,随后就是所带的参数列表。以Command Status Event事件包为例对HCI的事件包进行具体说明。 
  当主机控制器收到主机发来的如上面所提到的Inquiry命令包并开始处理时,它就会向主机发送Command Status Event事件包,此事件包为:0x0f 04 00 0a 01 04。0xOf表示此事件包为Command Status Event事件包,0x04表示此事件包带4字节长度的参数,0x00为此事件包的第一个参数即Status,表示命令包正在处理。0x0a为事件包的第 二个参数NUM_HCI_Command_Packets,表示主机最多可在向主机控制器发10个命令包。0x01 04 为第三个参数Command_Opcode, 表示此事件包是对Inquiry命令包的响应。

数据包:ACL和SCO数据包中的Connection Handle即连接句柄是一个12比特的标志符,用于唯一确认两台蓝牙设备间的数据或语音连接,可以看作是两台蓝牙设备间唯一的数据通道的标识。两台设备 间只能有一条ACL连接,也就是只有一个ACL的连接句柄,相应L2CAP的信道都是建立在这个连接句柄表示的数据通道上;两台设备间可以有多个SCO的 连接,则一对设备间会有多个SCO的连接句柄。连接句柄在两设备连接期间一直存在,不管设备处于什么状态。在ACL数据包中,Flags分为PB Flag和BC Flag,PB Flag为包的界限标志,PB Flag=0x00表示此数据包为上层协议包(如L2CAP包)的起始部分;PB Flag=0x01表示此数据包为上层协议包(如L2CAP包)的后续部分。BC Flag为广播发送的标志,BC Flag=0x00表示无广播发送,只是点对点的发送;BC Flag=0x01表示对所有处于激活状态的从设备进行广播发送,BC Flag=0x02表示对所有的从设备包括处于休眠状态的从设备进行广播发送。ACL和SCO数据包中的Data Total Length 都表示所载荷的数据的长度,以字节位单位。(注:只有在ACL链路起来后,才能建立SCO链路) 
  
本文原文 
  3.3 通信过程的研究与分析 
  当主机与基带之间用命令的方式进行通信时,主机向主机控制器发送命令包。主机控制器完成一个命令,大多数情况下,它会向主机发出一个命令完成 事件包(Command Complete Packet),包中携带命令完成的信息。有些命令不会收到命令完成事件,而会收到命令状态事件包(Command Status Packet),当收到该事件则表示主机发出的命令已经被主机控制器接收并开始处理,过一段时间该命令被执行完毕时,主机控制器会向主机发出相应的事件包 来通知主机。如果命令参数有误,则会在命令状态事件中给出相应错误码。假如错误出现在一个返回Command Complete事件包的命令中,则此Command Complete事件包不一定含有此命令所定义的所有参数。状态参数作为解释错误原因同时也是第一个返回的参数,总是要返回的。假如紧随状态参数之后是连 接句柄或蓝牙的设备地址,则此参数也总是要返回,这样可判别出此Command Complete事件包属于那个实例的一个命令。在这种情况下,事件包中连接句柄或蓝牙的设备地址应与命令包种的相应参数一致。假如错误出现在一个不返回 Command Complete事件包的命令中,则事件包包含的所有参数都不一定是有效的。主机必须根据于此命令相联系的事件包中的状态参数来决定它们的有效性。 
  3.4 HCI流量控制(Flow Control)的分析研究 
  HCI的流量控制是为了管理主机和主机控制器中有限的资源并控制数据流量而设计的,由主机管理主机控制器的数据缓存区,主机可动态地调整每个连接句柄的流量。 
  对于命令包的流量控制,主机在每发一个命令之前都要确定当前能发命令包的数目,当然,在开机和重启动时发命令包可以不用考虑接收情况,直到收 到命令完成事件包或命令状态事件包为止。因为在每个命令完成事件包和命令状态事件包中都有Num_HCI_Command_ Packets选项表明当时主机能向主机控制器发送的命令包的数目,而对于每个命令必然会有相应的命令完成事件包和命令状态事件包,主机就能控制命令包不 会溢出。 
  对于数据包的流量控制,一开始,主机调用Read_Buffer_Size命令,该命令返回的两个参数决定了主机能发往主机控制器的ACL 和SCO两种数据包的大小的最大值,同时两个附加参数则说明了主机控制器能接收的ACL和SCO数据包总的数目。而每隔一段时间,主机控制器会向主机发 Number_Of_Complete_Packets事件,该事件的参数值表明了对每个连接句柄已经处理的数据包的数目(包括正确传输和被丢弃的)。主 机根据一开始就知道的总数,减去已经处理的包的数目,则可计算出还能发多少数据包,从而控制数据包的流量。 
  如有必要,HCI的流量控制也可由主机控制器来实现对主机的控制,可以通过Set_Host_ Controller_To_Host_Flow_Control命令来设置,其控制过程基本与主机控制过程类似,只是命令稍有不同。当主机收到断链确认 的事件后,就认为所有传往主机控制器的数据包已经全部被丢弃了,同时主机控制器中的数据缓冲区也被释放了。 
   
  4 HCI协议层软件开发 
  在对HCI层进行全面的分析研究之后,可以提出HCI协议层软件开发方案,定出HCI层提供给协议上层的接口。这些接口给蓝牙协议栈的上层提 供了进入BaseBand的统一入口。整个接口按协议栈的要求分为八大部分。下面分析每个部分的接口。整个软件层采用传递消息加函数调用相结合的机制来实 现,即上层对HCI层接口的调用采用函数调用的机制,HCI对上层的通信采用传递消息的方式。还是以例子的形式来说明这八部分的接口 
  4.1 开始命令 
  此命令接口是主机向HCI注册及并启动HCI。 
  如启动HCI的函数接口为HCI_ReqStart(),HCI在启动后发向上层的消息接口为HCI_START_CNF()。命令执行过程如图5所示。 
  图5 HCI启动及注册过程 
  4.2 链路控制命令 
  链路控制命令是允许主机控制器控制与其他蓝牙设备的连接。在链路控制命令运行时, LM 控制蓝牙微微网与分布网的建立与维持。这些命令指示LM创建及修改与远端蓝牙设备的连接链路,查询范围内的其他蓝牙设备,及其他链路管理协议命令。 
  以查找并发现周围设备为例,HCI层为上层提供了函数接口HCI_Inquiry,消息接口为HCI_INQUIRY_RESULT_EVT和HCI_INQUIRY_CNF。命令执行过程如图6所示。

图6 HCI查询过程 
  主机首先调用HCI的HCI_Inquiry函数开始查询过程,在此过程中,如有蓝牙响应此查询,则会产生一 HCI_INQUIRY_RESULT_EVT事件通知主机。在此次查询过程结束时,会产生HCI_INQUIRY_CNF这条消息通知主机,参数 NrofResponse表示在此次查询过程所响应的蓝牙设备数。 
  4.3 链路策略命令 
  链路政策命令提供了一种影响LM怎样管理微微网的方法。当链路政策命令运行时,LM仍然以可调整的参数控制微微网及分布网的建立和维持。这些链路政策命令调整LM的行为,从而导致与远端蓝牙设备的链路层连接的改变。 
  已建立服务质量为例,HCI层为上层提供了函数接口HCI_QoSSetup,消息接口为HCI_QOS_SETUP_EVT和HCI_QOS_SETUP_CNF,HCI_QOS_SETUP_CNF_NEG。命令执行过程如图7所示。 
  图7 HCI服务质量建立过程 
  主机首先调用HCI_QosSetup请求建立Qos。当Qos建立成HCI_QOS_SETUP_CNF 消息被送往发起端,同时一个事件消息送往远端设备。当Qos建立失败时,HCI_QOS_SETUP_CNF_NEG被送往发起端。 
  4.4 主机控制器及基带命令 
  主机控制器及基带命令被用来改变与建立诸如声音设置,认证模式,加密模式的连接相联系的LM的操作方式。 
  已读取主机控制器所存储的Link Key为例,HCI层为上层提供了函数接口HCI_ReadLinkKey,消息接口为HCI_READ_LINK_KEY_RRESULT_EVT和HCI_READ_LINK_KE 
  Y_ CNF。命令执行过程如图8所示。 
  图8 HCI读取Link Key 
  4.5 信息命令 
  这些信息命令的参数是由蓝牙硬件制造商确定的。它们提供了关于蓝牙设备及设备的主机控制器,链路管理器及基带的信息。主机设备不能更改这些参数。 
  HCI层为上层提供了函数接口为: 
  HCI_ReqCountryCode HCI_ReqLocalAddress 
  HCI_ReqReadLocalFeatures HCI_ReqReadLocalVersion 
  HCI_ReqReadBD_ADDR 
  HCI层提供的消息接口为: 
  HCI_COUNTRY_CODE_CNF 
  HCI_COUNTRY_CODE_CNF_NEG 
  HCI_LOCAL_ADDRESS_CNF 
  HCI_LOCAL_ADDRESS_CNF_NEG 
  HCI_READ_LOCAL_FEATURES_CNF 
  HCI_READ_LOCAL_FEATURES_CNF_NEG 
  
  HCI_READ_LOCAL_VERSION_CNF 
  HCI_READ_LOCAL_VERSION_CNF_NEG 
  HCI_READ_BD_ADDR_CNF 
  HCI_READ_BD_ADDR_CNF_NEG 
  4.6 状态命令 
  状态命令提供了目前HCI,LM,及BB的状态消息。这些状态参数不能被主机改变,除了一些参数可以被重置。 
  HCI层为上层提供了函数接口为: 
  HCI_ReqGetLinkQuality 
  HCI_ReqReadFailedCounter 
  HCI_ReqResetFailedCounter 
  HCI_ReqRssi 
  HCI层提供的消息接口为: 
  HCI_GET_LINK_QUALITY_CNF 
  HCI_GET_LINK_QUALITY_CNF_NEG 
  HCI_READ_FAILED_COUNTER_CNF 
  HCI_READ_FAILED_COUNTER_CNF_NEG 
  HCI_RESET_FAILED_COUNTER_CNF 
  HCI_RESET_FAILED_COUNTER_CNF_NEG 
  HCI_RSSI_CNF HCI_RSSI_CNF_NEG 
  4.7 测试命令 
  测试命令能够测试蓝牙硬件各种功能,并蔚蓝牙设备的测试提供不同的测试条件。 
  HCI层为上层提供了函数接口为: 
  HCI_ReqEnableDutMode HCI_ReqReadLoopbackMode 
  HCI_ReqWriteLoopbackMode 
  HCI层提供的消息接口为: 
  HCI_ENABLE_DUT_MODE_CNF 
  HCI_ENABLE_DUT_MODE_CNF_NEG 
  HCI_READ_LOOPBACK_MODE_CNF 
  HCI_READ_LOOPBACK_MODE_CNF_NEG 
  HCI_WRITE_LOOPBACK_MODE_CNF 
  HCI_WRITE_LOOPBACK_MODE_CNF_NEG 
  4.8 数据传输命令 
  这些命令为蓝牙设备之间传输数据提供了所需要的接口。如分配所需内存的接口HCI_DataAlloc,传输数据的接口HCI_DataSend,提取数据的接口HCI_DataExtract。图9说明了在蓝牙系统中传输数据时对这些接口的使用。
  图9 HCI数据传输过程 
  由于HCI为蓝牙协议层的上层提供了进入基带的统一接口,可以开发上述的接口使上层的数据流匹配到基带,使基带能够对之进行处理,并产生相应的事件。 
   
  5 结束语 
  蓝牙产品的开发重在有特色的应用, 将蓝牙技术与现实生活中的各种终端产品相结合, 如条码扫描器、耳机、电话等, 从而使人们摆脱各种线缆的束缚。目前蓝牙的开发, 特别是与终端产品相结合的嵌入式开发, 正在短距离无线通信中显示出一股强劲的势头, 蓝牙技术的大发展期必将很快地到来。 
  参考文献: 
  [1]张禄林.蓝牙协议及其实现[M].北京:人民邮电出版社,2001. 
  [2]金纯.蓝牙技术[M].北京:电子工业出版社,2001. 
  [3]Ericssion,Nokia,IBM.Specification of the Bluetooth system Version1.0B[S],1999. 
  [4]Core,version 1.2B,Bluetooth SIG.Specification of the Bluetooth system[S],2003. 

深入解析蓝牙HCI:Host与Controller的通信桥梁 本文深入解析蓝牙HCI协议,阐述其作为Host与Controller间核心通信桥梁的作用。详细介绍了HCI的四种核心数据包格式、命令与事件的交互流程,并对比了UART与USB两种物理传输层的实战应用,为蓝牙开发与调试提供关键指导。 阅读详情

相关推荐

深入解析Apache NimBLE HCI层:蓝牙协议栈核心交互机制与实战调试

在嵌入式蓝牙低功耗(BLE)开发中,主机控制器接口(HCI)是连接协议栈软件与硬件射频控制器的标准化通信层,它定义了命令、事件和数据包的交互格式。其核心原理在于通过标准化的指令集,实现主机对控制器状态、连接管理和数据收发的精确控制,从而保障了蓝牙协议栈的模块化与可移植性。这一层的技术价值在于,它为开发者提供了调试复杂连接、吞吐量及兼容性问题的底层视角,是进行协议栈深度定制和硬件移植的关键。典型的应用场景包括物联网设备固件开发、自定义蓝牙控制器驱动适配,以及需要高可靠性的工业或医疗设备通信。本文聚焦于Apac

weixin_29194693的博客 354

Core_v5.3 蓝牙5.3核心规范(中文版和英文版)

蓝牙5.3核心规范(中文版和英文版)

蓝牙篇之蓝牙核心规范学习笔记(V5.4)汇总

蓝牙规范学习笔记

心跳包的博客 1万+

蓝牙协议规范--HCI

蓝牙底层软件栈 HCI 提供访问蓝牙硬件统一接口,不做底层协议基本接触不到,本文只作相关了解。 物理连接以及数据通道与协议建立通道不要混为一谈。 上图对软件层底层进行了概述。HCI固件通过对链路管理器、硬件状态注册器、控制注册器、事件注册器等的访问来执行蓝牙硬件的基带命令。通过物理连接驱动实现软件层与底层的交互。 下图为USB作为蓝牙无线模块与主机传输层接口时主机栈与蓝牙栈的配置情况。(结合蓝牙模块分析,上层协议写好的话,可以使用两个蓝牙模块模拟USB、UART等接口) 蓝牙协议就是使用无线的

Fxing的博客 923

蓝牙核心规范-深入解析核心配置在嵌入式系统中

其中,核心配置是蓝牙设备中最基本、最核心的设置,它决定了设备的功能和特性。蓝牙耳机:对于蓝牙耳机来说,核心配置决定了其作为蓝牙从设备的角色,同时指定支持音频传输的服务(如A2DP),以实现从手机等主设备上接收音频数据并输出声音。蓝牙传感器:对于蓝牙传感器来说,核心配置可以将其配置为蓝牙从设备,并指定支持传感数据传输的服务,使得其他设备可以通过蓝牙接收到传感器采集的数据。设备类型(Device Type):决定了设备在蓝牙网络中的角色,包括主设备(Master)和从设备(Slave)两种类型。

DevCyberX的博客 199

蓝牙核心规范(V5.4)10.1-BLE 入门笔记(1)

实现可以监视每个信道上的通信质量,如果发现某个信道表现不佳,可能是由于来自其他源的干扰,则可以将该信道的分类设置为未使用,并确保该算法不再选择该通道。例如,一对连接的设备使用随机分配的访问地址交换数据包。然后,连接中的每个设备将切换到选定的信道,并随着时间和一系列连接事件的发生,通信将使用频繁变化的信道序列进行,这些信道分布在2.4 GHz频带上,从而显著降低了发生碰撞的可能性。重要的是,主机和控制器在架构中作为单独的逻辑容器实现,它们可能以某种物理上分离的方式实现,并定义了用于它们之间通信的标准接口。

心跳包的博客 1324

蓝牙核心规范中HCI层的研究与开发分析 □ 张 熠 姜玉泉 《电脑知识与技术》 2007年第09期

摘要:通过对蓝牙核心规范1.2的主机控制接口的研究,分析蓝牙基带层和主机侧的通讯机制以及通讯方法。并举例说明了一些蓝牙基本命令和事件,解释了相关接口,在此基础上能够方便的进行蓝牙HCI层的开发。  关键词:蓝牙;HCI;基带;流量控制  中图分类号:TP399 文献标识码:A文章编号:1009-3044(2007)06-11671-04    1 引言  蓝牙是无线数据和语音传

sdlcgxcqx的专栏 2020

【BlueZ 】蓝牙 HCI 协议基础:与 BlueZ 源码的层面对应关系

本文系统分析了蓝牙HCI协议在BlueZ实现中的架构设计与源码映射关系。首先介绍了HCI协议的四大报文类型(命令、ACL数据、SCO数据、事件)及其在BlueZ中的结构体定义。随后详细剖析了BlueZ的三层实现:Lib层提供原始HCI协议封装,Shared层实现面向对象封装和异步处理,MGMT层提供更高抽象的控制接口。文章通过命令-事件交互、流控机制等核心流程,展示了协议规范与源码实现的对应关系,并总结了实际开发中常见的五大坑点(如事件过滤、字节序处理等)。

byte轻骑兵的技术小窝 9200

在HCI层看蓝牙的连接过程

前言 从蓝牙设备状态转换可以知道,蓝牙设备连接需经过Inquiry,page过程,本文主要从HCI角度分析连接过程。解析抓包文件用到的工具为Frontline 的Capture File Viewer。 HCI简介 HCI(Host Controller Interface):Core_v4.1规定了四种类型的接口,分别为普通串口(不带流控制),usb接口,SD接口,三线串口。主机可以通过上面的四...

feelinghappy的专栏 1751

蓝牙学习笔记之HCI协议(一)

目录 协议浅述 HCI简介 HCI协议数据格式 HCI Command Packet HCI ACL Data Packet HCI Synchronous(SCO) Data Packet HCI Event Packet HCI命令和事件介绍 Inquiry command Write Local Name Command Read BD_ADDR Command H...

在云巅的博客 2万+

蓝牙核心规范(V5.4)10.5-BLE 入门笔记之HCI

HCI全称:HOST Constroller Interface主机控制器接口(HCI)定义了一个标准化的接口,通过该接口,主机可以向控制器发出命令,并且控制器可以与主机进行通信。规范被分成几个部分,第一部分仅从功能的角度定义接口,不考虑具体的实现机制,而其他部分定义了在使用四种可能的物理传输之一时如何实现HCI。HCI被用于BLE 和 BR/EDR中。功能接口在命令和事件的定义中被规定。这些基本上是可以在主机和控制器之间交换的消息。命令由主机发送到控制器,而事件则来自控制器发送给主机。

心跳包的博客 842

Android12蓝牙开发避坑指南:从HCI层到应用层的完整解析

本文深入解析Android 12蓝牙开发的完整架构,从底层的HCI指令到应用层交互,提供了全面的避坑指南。针对Android 12引入的权限变更和后台限制,文章详细阐述了BLUETOOTH_SCAN等新权限的适配策略、GATT连接的最佳实践,并介绍了利用HCI日志进行深度调试的方法,帮助开发者应对设备扫描、连接稳定性和数据传输等常见难题。

bush的博客 612

蓝牙核心规范v5.3中文版完整解析

蓝牙核心规范v5.3由蓝牙特别兴趣组(SIG)于2021年正式发布,标志着低功耗蓝牙(BLE)在能效、安全与连接可靠性方面的又一次重大升级。相较于v5.2,v5.3引入了多项关键特性,如增强型ATT(EATT)、周期性广播同步跳频(PAwCS)、连接子rating(Connection Subrating)和加密密钥大小控制等,显著提升了多设备并发通信的效率与安全性。其中,EATT支持通过多个L2CAP通道并行传输GATT数据,有效降低高吞吐场景下的延迟;

weixin_42592399的博客 2349

蓝牙核心规范解析

蓝牙核心规范是蓝牙技术的基石,它定义了蓝牙设备之间的通信协议和行为规范,确保了不同厂商的蓝牙设备能够互相兼容并进行通信。以下是对蓝牙核心规范的详细解析,内容将涵盖蓝牙核心规范的基本概念、整体架构、主要功能以及其在现代无线通信领域的重要性。

芊言凝语 1568

蓝牙HCI深入解析与应用

蓝牙人机接口(HCI)是蓝牙技术架构中的一个关键组件,它定义了主机控制器接口的通信协议,允许主机设备与蓝牙控制器之间交换信息。HCI在蓝牙系统中扮演着信息传递的桥梁角色,确保数据能够在硬件设备和软件应用之间正确、高效地传输。蓝牙技术在经历了多年的发展之后,其安全特性也一直在不断进化以应对日益增长的网络安全威胁。从最初的简单密码到现在采用高级加密标准,蓝牙安全架构经历了显著的变革。

weixin_42372837的博客 1409

Ubuntu 20.04 系统备份和还原

最近大家Ubuntu开发环境,经常出现搭着搭着系统就挂了,于是开始琢磨了Ubuntu系统的备份和还原,以备不时之需,Linux环境搭建实在是有点太细,好多情况下,就算曾经搭建过一遍,再次搭建有些包还是忘了安装,做好备份是十分必要的。 经过了一番研究,Ubuntu备份有很多方式:根目录tar、dd、Systemback(1.0版本已经不维护了,2.0版本收费)等等,最终决定使用 —— Timesift, 因为方便一些。 文章参考:小马虎的救星——Timeshift Timeshift Timeshift,是L

Z_Paper的博客 2万+
上一篇: 蓝牙协议栈构架
下一篇: 蓝牙1.1、蓝牙1.2、蓝牙2.0的关键区别
SingleCode
博客等级 码龄15年 11粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值