总体框图
HCI上半部
#mermaid-svg-jVz6lv8Nr8lzXPpW{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-jVz6lv8Nr8lzXPpW .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-jVz6lv8Nr8lzXPpW .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-jVz6lv8Nr8lzXPpW .error-icon{fill:#552222;}#mermaid-svg-jVz6lv8Nr8lzXPpW .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-jVz6lv8Nr8lzXPpW .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-jVz6lv8Nr8lzXPpW .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-jVz6lv8Nr8lzXPpW .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-jVz6lv8Nr8lzXPpW .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-jVz6lv8Nr8lzXPpW .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-jVz6lv8Nr8lzXPpW .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-jVz6lv8Nr8lzXPpW .marker{fill:#333333;stroke:#333333;}#mermaid-svg-jVz6lv8Nr8lzXPpW .marker.cross{stroke:#333333;}#mermaid-svg-jVz6lv8Nr8lzXPpW svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-jVz6lv8Nr8lzXPpW p{margin:0;}#mermaid-svg-jVz6lv8Nr8lzXPpW .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-jVz6lv8Nr8lzXPpW .cluster-label text{fill:#333;}#mermaid-svg-jVz6lv8Nr8lzXPpW .cluster-label span{color:#333;}#mermaid-svg-jVz6lv8Nr8lzXPpW .cluster-label span p{background-color:transparent;}#mermaid-svg-jVz6lv8Nr8lzXPpW .label text,#mermaid-svg-jVz6lv8Nr8lzXPpW span{fill:#333;color:#333;}#mermaid-svg-jVz6lv8Nr8lzXPpW .node rect,#mermaid-svg-jVz6lv8Nr8lzXPpW .node circle,#mermaid-svg-jVz6lv8Nr8lzXPpW .node ellipse,#mermaid-svg-jVz6lv8Nr8lzXPpW .node polygon,#mermaid-svg-jVz6lv8Nr8lzXPpW .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-jVz6lv8Nr8lzXPpW .rough-node .label text,#mermaid-svg-jVz6lv8Nr8lzXPpW .node .label text,#mermaid-svg-jVz6lv8Nr8lzXPpW .image-shape .label,#mermaid-svg-jVz6lv8Nr8lzXPpW .icon-shape .label{text-anchor:middle;}#mermaid-svg-jVz6lv8Nr8lzXPpW .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-jVz6lv8Nr8lzXPpW .rough-node .label,#mermaid-svg-jVz6lv8Nr8lzXPpW .node .label,#mermaid-svg-jVz6lv8Nr8lzXPpW .image-shape .label,#mermaid-svg-jVz6lv8Nr8lzXPpW .icon-shape .label{text-align:center;}#mermaid-svg-jVz6lv8Nr8lzXPpW .node.clickable{cursor:pointer;}#mermaid-svg-jVz6lv8Nr8lzXPpW .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-jVz6lv8Nr8lzXPpW .arrowheadPath{fill:#333333;}#mermaid-svg-jVz6lv8Nr8lzXPpW .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-jVz6lv8Nr8lzXPpW .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-jVz6lv8Nr8lzXPpW .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-jVz6lv8Nr8lzXPpW .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-jVz6lv8Nr8lzXPpW .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-jVz6lv8Nr8lzXPpW .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-jVz6lv8Nr8lzXPpW .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-jVz6lv8Nr8lzXPpW .cluster text{fill:#333;}#mermaid-svg-jVz6lv8Nr8lzXPpW .cluster span{color:#333;}#mermaid-svg-jVz6lv8Nr8lzXPpW div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-jVz6lv8Nr8lzXPpW .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-jVz6lv8Nr8lzXPpW rect.text{fill:none;stroke-width:0;}#mermaid-svg-jVz6lv8Nr8lzXPpW .icon-shape,#mermaid-svg-jVz6lv8Nr8lzXPpW .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-jVz6lv8Nr8lzXPpW .icon-shape p,#mermaid-svg-jVz6lv8Nr8lzXPpW .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-jVz6lv8Nr8lzXPpW .icon-shape .label rect,#mermaid-svg-jVz6lv8Nr8lzXPpW .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-jVz6lv8Nr8lzXPpW .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-jVz6lv8Nr8lzXPpW .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-jVz6lv8Nr8lzXPpW :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-svg-jVz6lv8Nr8lzXPpW .band>*{fill:#fff3e0!important;stroke:#ef6c00!important;stroke-width:3px!important;color:#000!important;}#mermaid-svg-jVz6lv8Nr8lzXPpW .band span{fill:#fff3e0!important;stroke:#ef6c00!important;stroke-width:3px!important;color:#000!important;}#mermaid-svg-jVz6lv8Nr8lzXPpW .band tspan{fill:#000!important;}#mermaid-svg-jVz6lv8Nr8lzXPpW .trans>*{fill:#eceff1!important;stroke:#607d8b!important;stroke-width:1px!important;color:#000!important;}#mermaid-svg-jVz6lv8Nr8lzXPpW .trans span{fill:#eceff1!important;stroke:#607d8b!important;stroke-width:1px!important;color:#000!important;}#mermaid-svg-jVz6lv8Nr8lzXPpW .trans tspan{fill:#000!important;}#mermaid-svg-jVz6lv8Nr8lzXPpW .bypass>*{fill:#fce4ec!important;stroke:#c2185b!important;color:#000!important;}#mermaid-svg-jVz6lv8Nr8lzXPpW .bypass span{fill:#fce4ec!important;stroke:#c2185b!important;color:#000!important;}#mermaid-svg-jVz6lv8Nr8lzXPpW .bypass tspan{fill:#000!important;} HOST 主机侧 · 应用处理器 / 操作系统(如 BlueZ、Android BT Stack、Zephyr Host、NimBLE)
④ 直接访问 HCI 的 Host 模块(控制面,绕过 L2CAP)
② Profile 适配 / 传输协议 ------ 全部活在 L2CAP 之上
① 应用层
ACL Data(唯一走 L2CAP 的数据通道)
流程由该模块执行
密钥下发:LTK / Link Key
HCI 只搬运,不做密码学
SCO/eSCO · ISO 绕过 L2CAP
BR/EDR Profiles
A2DP · HFP · AVRCP · HID
SPP · PBAP · MAP · OPP · PAN
LE Profiles
HRS · BAS · ANS · GLP
LE Audio: BAP / TMAP / CAP
CS 高精度测距
RFCOMM 串口仿真
SDP 服务发现
AVDTP · AVCTP
音视频传输与控制
ATT / GATT
属性协议 · 服务框架
SMP 安全管理
配对 · 密钥生成
LE: L2CAP CID 0x0006
GAP 通用访问规范
⚠ 是规范不是层
定义角色 · 发现 · 连接流程
③ L2CAP 逻辑链路控制与适配
信道复用 · 分段重组(SDU→PDU) · 信用制流控
固定信道 CID 0x0004 ATT / 0x0005 LE信令 / 0x0006 SMP
⚠ SCO、ISO 不走这里
Channel Manager
信道管理器
Adapter / 连接管理
广播 · 扫描 · 建链 · RSSI · 发射功率
AMP Manager
音频驱动
PCM / ALSA
厂商扩展 · 固件加载
OGF = 0x3F
测试与诊断
DTM · btmon · btsnoop
════════ ★ HCI Host Controller Interface ★ ════════
不是 OSI 的一层,而是 Host 与 Controller 之间的接口/边界
① Command 命令 OGF 6bit + OCF 10bit ② Event 事件 ③ Data 数据
Data 分三类:ACL Data(异步业务)· SCO/eSCO(实时语音)· ISO Data(LE Audio 等时流)
流控:Number Of Completed Packets · 缓冲协商
HCI下半部
#mermaid-svg-4Pja1TpmwftW6HbA{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-4Pja1TpmwftW6HbA .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-4Pja1TpmwftW6HbA .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-4Pja1TpmwftW6HbA .error-icon{fill:#552222;}#mermaid-svg-4Pja1TpmwftW6HbA .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-4Pja1TpmwftW6HbA .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-4Pja1TpmwftW6HbA .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-4Pja1TpmwftW6HbA .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-4Pja1TpmwftW6HbA .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-4Pja1TpmwftW6HbA .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-4Pja1TpmwftW6HbA .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-4Pja1TpmwftW6HbA .marker{fill:#333333;stroke:#333333;}#mermaid-svg-4Pja1TpmwftW6HbA .marker.cross{stroke:#333333;}#mermaid-svg-4Pja1TpmwftW6HbA svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-4Pja1TpmwftW6HbA p{margin:0;}#mermaid-svg-4Pja1TpmwftW6HbA .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-4Pja1TpmwftW6HbA .cluster-label text{fill:#333;}#mermaid-svg-4Pja1TpmwftW6HbA .cluster-label span{color:#333;}#mermaid-svg-4Pja1TpmwftW6HbA .cluster-label span p{background-color:transparent;}#mermaid-svg-4Pja1TpmwftW6HbA .label text,#mermaid-svg-4Pja1TpmwftW6HbA span{fill:#333;color:#333;}#mermaid-svg-4Pja1TpmwftW6HbA .node rect,#mermaid-svg-4Pja1TpmwftW6HbA .node circle,#mermaid-svg-4Pja1TpmwftW6HbA .node ellipse,#mermaid-svg-4Pja1TpmwftW6HbA .node polygon,#mermaid-svg-4Pja1TpmwftW6HbA .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-4Pja1TpmwftW6HbA .rough-node .label text,#mermaid-svg-4Pja1TpmwftW6HbA .node .label text,#mermaid-svg-4Pja1TpmwftW6HbA .image-shape .label,#mermaid-svg-4Pja1TpmwftW6HbA .icon-shape .label{text-anchor:middle;}#mermaid-svg-4Pja1TpmwftW6HbA .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-4Pja1TpmwftW6HbA .rough-node .label,#mermaid-svg-4Pja1TpmwftW6HbA .node .label,#mermaid-svg-4Pja1TpmwftW6HbA .image-shape .label,#mermaid-svg-4Pja1TpmwftW6HbA .icon-shape .label{text-align:center;}#mermaid-svg-4Pja1TpmwftW6HbA .node.clickable{cursor:pointer;}#mermaid-svg-4Pja1TpmwftW6HbA .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-4Pja1TpmwftW6HbA .arrowheadPath{fill:#333333;}#mermaid-svg-4Pja1TpmwftW6HbA .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-4Pja1TpmwftW6HbA .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-4Pja1TpmwftW6HbA .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-4Pja1TpmwftW6HbA .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-4Pja1TpmwftW6HbA .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-4Pja1TpmwftW6HbA .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-4Pja1TpmwftW6HbA .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-4Pja1TpmwftW6HbA .cluster text{fill:#333;}#mermaid-svg-4Pja1TpmwftW6HbA .cluster span{color:#333;}#mermaid-svg-4Pja1TpmwftW6HbA div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-4Pja1TpmwftW6HbA .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-4Pja1TpmwftW6HbA rect.text{fill:none;stroke-width:0;}#mermaid-svg-4Pja1TpmwftW6HbA .icon-shape,#mermaid-svg-4Pja1TpmwftW6HbA .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-4Pja1TpmwftW6HbA .icon-shape p,#mermaid-svg-4Pja1TpmwftW6HbA .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-4Pja1TpmwftW6HbA .icon-shape .label rect,#mermaid-svg-4Pja1TpmwftW6HbA .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-4Pja1TpmwftW6HbA .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-4Pja1TpmwftW6HbA .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-4Pja1TpmwftW6HbA :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-svg-4Pja1TpmwftW6HbA .band>*{fill:#fff3e0!important;stroke:#ef6c00!important;stroke-width:3px!important;color:#000!important;}#mermaid-svg-4Pja1TpmwftW6HbA .band span{fill:#fff3e0!important;stroke:#ef6c00!important;stroke-width:3px!important;color:#000!important;}#mermaid-svg-4Pja1TpmwftW6HbA .band tspan{fill:#000!important;}#mermaid-svg-4Pja1TpmwftW6HbA .trans>*{fill:#eceff1!important;stroke:#607d8b!important;stroke-width:1px!important;color:#000!important;}#mermaid-svg-4Pja1TpmwftW6HbA .trans span{fill:#eceff1!important;stroke:#607d8b!important;stroke-width:1px!important;color:#000!important;}#mermaid-svg-4Pja1TpmwftW6HbA .trans tspan{fill:#000!important;}#mermaid-svg-4Pja1TpmwftW6HbA .bypass>*{fill:#fce4ec!important;stroke:#c2185b!important;color:#000!important;}#mermaid-svg-4Pja1TpmwftW6HbA .bypass span{fill:#fce4ec!important;stroke:#c2185b!important;color:#000!important;}#mermaid-svg-4Pja1TpmwftW6HbA .bypass tspan{fill:#000!important;} CONTROLLER 控制器侧 · 蓝牙芯片(可能有 1 个主控制器 + N 个副控制器)
AMP Controller 副控制器(Bluetooth 3.0+HS,现实已废弃)
LE Controller
BR/EDR Controller 主控制器
════════ ★ HCI Host Controller Interface ★ ════════
不是 OSI 的一层,而是 Host 与 Controller 之间的接口/边界
① Command 命令 OGF 6bit + OCF 10bit ② Event 事件 ③ Data 数据
Data 分三类:ACL Data(异步业务)· SCO/eSCO(实时语音)· ISO Data(LE Audio 等时流)
流控:Number Of Completed Packets · 缓冲协商
HCI Transport 传输层 ------ 只负责搬运字节流,与 HCI 逻辑无关
H4 UART · H5 三线 UART · USB · SDIO · SPI
Device Manager 设备管理器
Link Manager 链路管理器
LMP 链路管理协议
配对鉴权 · 链路配置
Baseband Resource Manager
无线资源调度 · 时隙仲裁
Link Controller 链路控制器
包格式 · FEC/ARQ 重传
⚠ 加密运算在此执行
BR/EDR RF / PHY
GFSK · π/4-DQPSK · 8DPSK
79 信道 · 2.4 GHz
Device Manager 设备管理器
Link Layer 链路层 LL
≈ LM + BRM + LC 的功能合集
状态机 · 跳频 · 重传 · ⚠ 加密运算
LE PHY
LE 1M · LE 2M · LE Coded S2/S8
40 信道 · 2.4 GHz
Device Manager 设备管理器
AMP PAL 协议适配层
AMP MAC / PHY
802.11 · 约 24 Mbps
2.4 GHz ISM 空口
局部大图
Host
#mermaid-svg-QBdbvXFysqLtnE0S{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:14px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-QBdbvXFysqLtnE0S .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-QBdbvXFysqLtnE0S .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-QBdbvXFysqLtnE0S .error-icon{fill:hsl(220.5882352941, 100%, 98.3333333333%);}#mermaid-svg-QBdbvXFysqLtnE0S .error-text{fill:rgb(8.5000000002, 5.7500000001, 0);stroke:rgb(8.5000000002, 5.7500000001, 0);}#mermaid-svg-QBdbvXFysqLtnE0S .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-QBdbvXFysqLtnE0S .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-QBdbvXFysqLtnE0S .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-QBdbvXFysqLtnE0S .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-QBdbvXFysqLtnE0S .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-QBdbvXFysqLtnE0S .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-QBdbvXFysqLtnE0S .marker{fill:#0b0b0b;stroke:#0b0b0b;}#mermaid-svg-QBdbvXFysqLtnE0S .marker.cross{stroke:#0b0b0b;}#mermaid-svg-QBdbvXFysqLtnE0S svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:14px;}#mermaid-svg-QBdbvXFysqLtnE0S p{margin:0;}#mermaid-svg-QBdbvXFysqLtnE0S .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-QBdbvXFysqLtnE0S .cluster-label text{fill:rgb(8.5000000002, 5.7500000001, 0);}#mermaid-svg-QBdbvXFysqLtnE0S .cluster-label span{color:rgb(8.5000000002, 5.7500000001, 0);}#mermaid-svg-QBdbvXFysqLtnE0S .cluster-label span p{background-color:transparent;}#mermaid-svg-QBdbvXFysqLtnE0S .label text,#mermaid-svg-QBdbvXFysqLtnE0S span{fill:#333;color:#333;}#mermaid-svg-QBdbvXFysqLtnE0S .node rect,#mermaid-svg-QBdbvXFysqLtnE0S .node circle,#mermaid-svg-QBdbvXFysqLtnE0S .node ellipse,#mermaid-svg-QBdbvXFysqLtnE0S .node polygon,#mermaid-svg-QBdbvXFysqLtnE0S .node path{fill:#fff4dd;stroke:hsl(40.5882352941, 60%, 83.3333333333%);stroke-width:1px;}#mermaid-svg-QBdbvXFysqLtnE0S .rough-node .label text,#mermaid-svg-QBdbvXFysqLtnE0S .node .label text,#mermaid-svg-QBdbvXFysqLtnE0S .image-shape .label,#mermaid-svg-QBdbvXFysqLtnE0S .icon-shape .label{text-anchor:middle;}#mermaid-svg-QBdbvXFysqLtnE0S .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-QBdbvXFysqLtnE0S .rough-node .label,#mermaid-svg-QBdbvXFysqLtnE0S .node .label,#mermaid-svg-QBdbvXFysqLtnE0S .image-shape .label,#mermaid-svg-QBdbvXFysqLtnE0S .icon-shape .label{text-align:center;}#mermaid-svg-QBdbvXFysqLtnE0S .node.clickable{cursor:pointer;}#mermaid-svg-QBdbvXFysqLtnE0S .root .anchor path{fill:#0b0b0b!important;stroke-width:0;stroke:#0b0b0b;}#mermaid-svg-QBdbvXFysqLtnE0S .arrowheadPath{fill:#0b0b0b;}#mermaid-svg-QBdbvXFysqLtnE0S .edgePath .path{stroke:#0b0b0b;stroke-width:2.0px;}#mermaid-svg-QBdbvXFysqLtnE0S .flowchart-link{stroke:#0b0b0b;fill:none;}#mermaid-svg-QBdbvXFysqLtnE0S .edgeLabel{background-color:hsl(-79.4117647059, 100%, 93.3333333333%);text-align:center;}#mermaid-svg-QBdbvXFysqLtnE0S .edgeLabel p{background-color:hsl(-79.4117647059, 100%, 93.3333333333%);}#mermaid-svg-QBdbvXFysqLtnE0S .edgeLabel rect{opacity:0.5;background-color:hsl(-79.4117647059, 100%, 93.3333333333%);fill:hsl(-79.4117647059, 100%, 93.3333333333%);}#mermaid-svg-QBdbvXFysqLtnE0S .labelBkg{background-color:rgba(243.9999999999, 220.9999999998, 255, 0.5);}#mermaid-svg-QBdbvXFysqLtnE0S .cluster rect{fill:hsl(220.5882352941, 100%, 98.3333333333%);stroke:hsl(220.5882352941, 60%, 88.3333333333%);stroke-width:1px;}#mermaid-svg-QBdbvXFysqLtnE0S .cluster text{fill:rgb(8.5000000002, 5.7500000001, 0);}#mermaid-svg-QBdbvXFysqLtnE0S .cluster span{color:rgb(8.5000000002, 5.7500000001, 0);}#mermaid-svg-QBdbvXFysqLtnE0S div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(220.5882352941, 100%, 98.3333333333%);border:1px solid hsl(220.5882352941, 60%, 88.3333333333%);border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-QBdbvXFysqLtnE0S .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-QBdbvXFysqLtnE0S rect.text{fill:none;stroke-width:0;}#mermaid-svg-QBdbvXFysqLtnE0S .icon-shape,#mermaid-svg-QBdbvXFysqLtnE0S .image-shape{background-color:hsl(-79.4117647059, 100%, 93.3333333333%);text-align:center;}#mermaid-svg-QBdbvXFysqLtnE0S .icon-shape p,#mermaid-svg-QBdbvXFysqLtnE0S .image-shape p{background-color:hsl(-79.4117647059, 100%, 93.3333333333%);padding:2px;}#mermaid-svg-QBdbvXFysqLtnE0S .icon-shape .label rect,#mermaid-svg-QBdbvXFysqLtnE0S .image-shape .label rect{opacity:0.5;background-color:hsl(-79.4117647059, 100%, 93.3333333333%);fill:hsl(-79.4117647059, 100%, 93.3333333333%);}#mermaid-svg-QBdbvXFysqLtnE0S .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-QBdbvXFysqLtnE0S .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-QBdbvXFysqLtnE0S :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-svg-QBdbvXFysqLtnE0S .hci>*{fill:#fff3e0!important;stroke:#ef6c00!important;stroke-width:3px!important;color:#000!important;}#mermaid-svg-QBdbvXFysqLtnE0S .hci span{fill:#fff3e0!important;stroke:#ef6c00!important;stroke-width:3px!important;color:#000!important;}#mermaid-svg-QBdbvXFysqLtnE0S .hci tspan{fill:#000!important;}#mermaid-svg-QBdbvXFysqLtnE0S .l2>*{fill:#e3f2fd!important;stroke:#1565c0!important;stroke-width:2px!important;color:#000!important;}#mermaid-svg-QBdbvXFysqLtnE0S .l2 span{fill:#e3f2fd!important;stroke:#1565c0!important;stroke-width:2px!important;color:#000!important;}#mermaid-svg-QBdbvXFysqLtnE0S .l2 tspan{fill:#000!important;}#mermaid-svg-QBdbvXFysqLtnE0S .bypass>*{fill:#fce4ec!important;stroke:#c2185b!important;color:#000!important;}#mermaid-svg-QBdbvXFysqLtnE0S .bypass span{fill:#fce4ec!important;stroke:#c2185b!important;color:#000!important;}#mermaid-svg-QBdbvXFysqLtnE0S .bypass tspan{fill:#000!important;} HOST 主机侧
直连 HCI 的模块(控制面,绕过 L2CAP)
L2CAP 之上的世界(间接访问 HCI)
ACL Data
SCO / ISO 绕过 L2CAP
HCI 只搬运密钥,不做密码学
应用层 Profiles
RFCOMM / SDP / AVDTP / AVCTP
ATT / GATT
SMP 配对报文
L2CAP CID 0x0006
L2CAP
信道复用 · 分段重组 · 信用制流控
Channel Manager 信道管理器
Adapter / 连接管理
广播 · 扫描 · 建链 · RSSI · 功率
AMP Manager
音频驱动 PCM / ALSA
厂商扩展 · 固件加载 OGF=0x3F
测试诊断 DTM · btmon · btsnoop
SMP 密钥下发
LTK / Link Key
═══ HCI ═══
HCI
#mermaid-svg-TFjqPAXLJslFvdVR{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:14px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-TFjqPAXLJslFvdVR .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-TFjqPAXLJslFvdVR .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-TFjqPAXLJslFvdVR .error-icon{fill:hsl(220.5882352941, 100%, 98.3333333333%);}#mermaid-svg-TFjqPAXLJslFvdVR .error-text{fill:rgb(8.5000000002, 5.7500000001, 0);stroke:rgb(8.5000000002, 5.7500000001, 0);}#mermaid-svg-TFjqPAXLJslFvdVR .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-TFjqPAXLJslFvdVR .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-TFjqPAXLJslFvdVR .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-TFjqPAXLJslFvdVR .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-TFjqPAXLJslFvdVR .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-TFjqPAXLJslFvdVR .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-TFjqPAXLJslFvdVR .marker{fill:#0b0b0b;stroke:#0b0b0b;}#mermaid-svg-TFjqPAXLJslFvdVR .marker.cross{stroke:#0b0b0b;}#mermaid-svg-TFjqPAXLJslFvdVR svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:14px;}#mermaid-svg-TFjqPAXLJslFvdVR p{margin:0;}#mermaid-svg-TFjqPAXLJslFvdVR .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-TFjqPAXLJslFvdVR .cluster-label text{fill:rgb(8.5000000002, 5.7500000001, 0);}#mermaid-svg-TFjqPAXLJslFvdVR .cluster-label span{color:rgb(8.5000000002, 5.7500000001, 0);}#mermaid-svg-TFjqPAXLJslFvdVR .cluster-label span p{background-color:transparent;}#mermaid-svg-TFjqPAXLJslFvdVR .label text,#mermaid-svg-TFjqPAXLJslFvdVR span{fill:#333;color:#333;}#mermaid-svg-TFjqPAXLJslFvdVR .node rect,#mermaid-svg-TFjqPAXLJslFvdVR .node circle,#mermaid-svg-TFjqPAXLJslFvdVR .node ellipse,#mermaid-svg-TFjqPAXLJslFvdVR .node polygon,#mermaid-svg-TFjqPAXLJslFvdVR .node path{fill:#fff4dd;stroke:hsl(40.5882352941, 60%, 83.3333333333%);stroke-width:1px;}#mermaid-svg-TFjqPAXLJslFvdVR .rough-node .label text,#mermaid-svg-TFjqPAXLJslFvdVR .node .label text,#mermaid-svg-TFjqPAXLJslFvdVR .image-shape .label,#mermaid-svg-TFjqPAXLJslFvdVR .icon-shape .label{text-anchor:middle;}#mermaid-svg-TFjqPAXLJslFvdVR .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-TFjqPAXLJslFvdVR .rough-node .label,#mermaid-svg-TFjqPAXLJslFvdVR .node .label,#mermaid-svg-TFjqPAXLJslFvdVR .image-shape .label,#mermaid-svg-TFjqPAXLJslFvdVR .icon-shape .label{text-align:center;}#mermaid-svg-TFjqPAXLJslFvdVR .node.clickable{cursor:pointer;}#mermaid-svg-TFjqPAXLJslFvdVR .root .anchor path{fill:#0b0b0b!important;stroke-width:0;stroke:#0b0b0b;}#mermaid-svg-TFjqPAXLJslFvdVR .arrowheadPath{fill:#0b0b0b;}#mermaid-svg-TFjqPAXLJslFvdVR .edgePath .path{stroke:#0b0b0b;stroke-width:2.0px;}#mermaid-svg-TFjqPAXLJslFvdVR .flowchart-link{stroke:#0b0b0b;fill:none;}#mermaid-svg-TFjqPAXLJslFvdVR .edgeLabel{background-color:hsl(-79.4117647059, 100%, 93.3333333333%);text-align:center;}#mermaid-svg-TFjqPAXLJslFvdVR .edgeLabel p{background-color:hsl(-79.4117647059, 100%, 93.3333333333%);}#mermaid-svg-TFjqPAXLJslFvdVR .edgeLabel rect{opacity:0.5;background-color:hsl(-79.4117647059, 100%, 93.3333333333%);fill:hsl(-79.4117647059, 100%, 93.3333333333%);}#mermaid-svg-TFjqPAXLJslFvdVR .labelBkg{background-color:rgba(243.9999999999, 220.9999999998, 255, 0.5);}#mermaid-svg-TFjqPAXLJslFvdVR .cluster rect{fill:hsl(220.5882352941, 100%, 98.3333333333%);stroke:hsl(220.5882352941, 60%, 88.3333333333%);stroke-width:1px;}#mermaid-svg-TFjqPAXLJslFvdVR .cluster text{fill:rgb(8.5000000002, 5.7500000001, 0);}#mermaid-svg-TFjqPAXLJslFvdVR .cluster span{color:rgb(8.5000000002, 5.7500000001, 0);}#mermaid-svg-TFjqPAXLJslFvdVR div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(220.5882352941, 100%, 98.3333333333%);border:1px solid hsl(220.5882352941, 60%, 88.3333333333%);border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-TFjqPAXLJslFvdVR .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-TFjqPAXLJslFvdVR rect.text{fill:none;stroke-width:0;}#mermaid-svg-TFjqPAXLJslFvdVR .icon-shape,#mermaid-svg-TFjqPAXLJslFvdVR .image-shape{background-color:hsl(-79.4117647059, 100%, 93.3333333333%);text-align:center;}#mermaid-svg-TFjqPAXLJslFvdVR .icon-shape p,#mermaid-svg-TFjqPAXLJslFvdVR .image-shape p{background-color:hsl(-79.4117647059, 100%, 93.3333333333%);padding:2px;}#mermaid-svg-TFjqPAXLJslFvdVR .icon-shape .label rect,#mermaid-svg-TFjqPAXLJslFvdVR .image-shape .label rect{opacity:0.5;background-color:hsl(-79.4117647059, 100%, 93.3333333333%);fill:hsl(-79.4117647059, 100%, 93.3333333333%);}#mermaid-svg-TFjqPAXLJslFvdVR .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-TFjqPAXLJslFvdVR .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-TFjqPAXLJslFvdVR :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-svg-TFjqPAXLJslFvdVR .bypass>*{fill:#fce4ec!important;stroke:#c2185b!important;stroke-width:2px!important;color:#000!important;}#mermaid-svg-TFjqPAXLJslFvdVR .bypass span{fill:#fce4ec!important;stroke:#c2185b!important;stroke-width:2px!important;color:#000!important;}#mermaid-svg-TFjqPAXLJslFvdVR .bypass tspan{fill:#000!important;}#mermaid-svg-TFjqPAXLJslFvdVR .ctl>*{fill:#eceff1!important;stroke:#607d8b!important;color:#000!important;}#mermaid-svg-TFjqPAXLJslFvdVR .ctl span{fill:#eceff1!important;stroke:#607d8b!important;color:#000!important;}#mermaid-svg-TFjqPAXLJslFvdVR .ctl tspan{fill:#000!important;} CONTROLLER 侧收端
HCI
HOST 侧发端
L2CAP
分段重组 · 复用
音频驱动
PCM / ALSA
控制面模块
Adapter · SMP · AMP · Vendor
ACL Data
异步 · 有重传
承载 ATT/GATT、RFCOMM 等全部业务
SCO / eSCO Data
实时语音 · 预留时隙 · 不重传
🚀 绕过 L2CAP
ISO Data
LE Audio 等时流 CIS / BIS
🚀 绕过 L2CAP
Command / Event
⚠ 控制面不走数据通道
Link Layer / Link Controller
等时适配层 ISOAL
Controller
#mermaid-svg-XTg9pcYptelh3GX9{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:14px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-XTg9pcYptelh3GX9 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-XTg9pcYptelh3GX9 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-XTg9pcYptelh3GX9 .error-icon{fill:hsl(220.5882352941, 100%, 98.3333333333%);}#mermaid-svg-XTg9pcYptelh3GX9 .error-text{fill:rgb(8.5000000002, 5.7500000001, 0);stroke:rgb(8.5000000002, 5.7500000001, 0);}#mermaid-svg-XTg9pcYptelh3GX9 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-XTg9pcYptelh3GX9 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-XTg9pcYptelh3GX9 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-XTg9pcYptelh3GX9 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-XTg9pcYptelh3GX9 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-XTg9pcYptelh3GX9 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-XTg9pcYptelh3GX9 .marker{fill:#0b0b0b;stroke:#0b0b0b;}#mermaid-svg-XTg9pcYptelh3GX9 .marker.cross{stroke:#0b0b0b;}#mermaid-svg-XTg9pcYptelh3GX9 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:14px;}#mermaid-svg-XTg9pcYptelh3GX9 p{margin:0;}#mermaid-svg-XTg9pcYptelh3GX9 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-XTg9pcYptelh3GX9 .cluster-label text{fill:rgb(8.5000000002, 5.7500000001, 0);}#mermaid-svg-XTg9pcYptelh3GX9 .cluster-label span{color:rgb(8.5000000002, 5.7500000001, 0);}#mermaid-svg-XTg9pcYptelh3GX9 .cluster-label span p{background-color:transparent;}#mermaid-svg-XTg9pcYptelh3GX9 .label text,#mermaid-svg-XTg9pcYptelh3GX9 span{fill:#333;color:#333;}#mermaid-svg-XTg9pcYptelh3GX9 .node rect,#mermaid-svg-XTg9pcYptelh3GX9 .node circle,#mermaid-svg-XTg9pcYptelh3GX9 .node ellipse,#mermaid-svg-XTg9pcYptelh3GX9 .node polygon,#mermaid-svg-XTg9pcYptelh3GX9 .node path{fill:#fff4dd;stroke:hsl(40.5882352941, 60%, 83.3333333333%);stroke-width:1px;}#mermaid-svg-XTg9pcYptelh3GX9 .rough-node .label text,#mermaid-svg-XTg9pcYptelh3GX9 .node .label text,#mermaid-svg-XTg9pcYptelh3GX9 .image-shape .label,#mermaid-svg-XTg9pcYptelh3GX9 .icon-shape .label{text-anchor:middle;}#mermaid-svg-XTg9pcYptelh3GX9 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-XTg9pcYptelh3GX9 .rough-node .label,#mermaid-svg-XTg9pcYptelh3GX9 .node .label,#mermaid-svg-XTg9pcYptelh3GX9 .image-shape .label,#mermaid-svg-XTg9pcYptelh3GX9 .icon-shape .label{text-align:center;}#mermaid-svg-XTg9pcYptelh3GX9 .node.clickable{cursor:pointer;}#mermaid-svg-XTg9pcYptelh3GX9 .root .anchor path{fill:#0b0b0b!important;stroke-width:0;stroke:#0b0b0b;}#mermaid-svg-XTg9pcYptelh3GX9 .arrowheadPath{fill:#0b0b0b;}#mermaid-svg-XTg9pcYptelh3GX9 .edgePath .path{stroke:#0b0b0b;stroke-width:2.0px;}#mermaid-svg-XTg9pcYptelh3GX9 .flowchart-link{stroke:#0b0b0b;fill:none;}#mermaid-svg-XTg9pcYptelh3GX9 .edgeLabel{background-color:hsl(-79.4117647059, 100%, 93.3333333333%);text-align:center;}#mermaid-svg-XTg9pcYptelh3GX9 .edgeLabel p{background-color:hsl(-79.4117647059, 100%, 93.3333333333%);}#mermaid-svg-XTg9pcYptelh3GX9 .edgeLabel rect{opacity:0.5;background-color:hsl(-79.4117647059, 100%, 93.3333333333%);fill:hsl(-79.4117647059, 100%, 93.3333333333%);}#mermaid-svg-XTg9pcYptelh3GX9 .labelBkg{background-color:rgba(243.9999999999, 220.9999999998, 255, 0.5);}#mermaid-svg-XTg9pcYptelh3GX9 .cluster rect{fill:hsl(220.5882352941, 100%, 98.3333333333%);stroke:hsl(220.5882352941, 60%, 88.3333333333%);stroke-width:1px;}#mermaid-svg-XTg9pcYptelh3GX9 .cluster text{fill:rgb(8.5000000002, 5.7500000001, 0);}#mermaid-svg-XTg9pcYptelh3GX9 .cluster span{color:rgb(8.5000000002, 5.7500000001, 0);}#mermaid-svg-XTg9pcYptelh3GX9 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(220.5882352941, 100%, 98.3333333333%);border:1px solid hsl(220.5882352941, 60%, 88.3333333333%);border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-XTg9pcYptelh3GX9 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-XTg9pcYptelh3GX9 rect.text{fill:none;stroke-width:0;}#mermaid-svg-XTg9pcYptelh3GX9 .icon-shape,#mermaid-svg-XTg9pcYptelh3GX9 .image-shape{background-color:hsl(-79.4117647059, 100%, 93.3333333333%);text-align:center;}#mermaid-svg-XTg9pcYptelh3GX9 .icon-shape p,#mermaid-svg-XTg9pcYptelh3GX9 .image-shape p{background-color:hsl(-79.4117647059, 100%, 93.3333333333%);padding:2px;}#mermaid-svg-XTg9pcYptelh3GX9 .icon-shape .label rect,#mermaid-svg-XTg9pcYptelh3GX9 .image-shape .label rect{opacity:0.5;background-color:hsl(-79.4117647059, 100%, 93.3333333333%);fill:hsl(-79.4117647059, 100%, 93.3333333333%);}#mermaid-svg-XTg9pcYptelh3GX9 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-XTg9pcYptelh3GX9 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-XTg9pcYptelh3GX9 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-svg-XTg9pcYptelh3GX9 .br>*{fill:#e8f5e9!important;stroke:#2e7d32!important;stroke-width:1.5px!important;color:#000!important;}#mermaid-svg-XTg9pcYptelh3GX9 .br span{fill:#e8f5e9!important;stroke:#2e7d32!important;stroke-width:1.5px!important;color:#000!important;}#mermaid-svg-XTg9pcYptelh3GX9 .br tspan{fill:#000!important;}#mermaid-svg-XTg9pcYptelh3GX9 .le>*{fill:#fff8e1!important;stroke:#f9a825!important;stroke-width:1.5px!important;color:#000!important;}#mermaid-svg-XTg9pcYptelh3GX9 .le span{fill:#fff8e1!important;stroke:#f9a825!important;stroke-width:1.5px!important;color:#000!important;}#mermaid-svg-XTg9pcYptelh3GX9 .le tspan{fill:#000!important;}#mermaid-svg-XTg9pcYptelh3GX9 .amp>*{fill:#eceff1!important;stroke:#90a4ae!important;color:#000!important;stroke-dasharray:4 3!important;}#mermaid-svg-XTg9pcYptelh3GX9 .amp span{fill:#eceff1!important;stroke:#90a4ae!important;color:#000!important;stroke-dasharray:4 3!important;}#mermaid-svg-XTg9pcYptelh3GX9 .amp tspan{fill:#000!important;}#mermaid-svg-XTg9pcYptelh3GX9 .air>*{fill:#f3e5f5!important;stroke:#6a1b9a!important;color:#000!important;}#mermaid-svg-XTg9pcYptelh3GX9 .air span{fill:#f3e5f5!important;stroke:#6a1b9a!important;color:#000!important;}#mermaid-svg-XTg9pcYptelh3GX9 .air tspan{fill:#000!important;} CONTROLLER 控制器侧 · 1 个主控制器 + 可有多个副控制器
AMP Controller(3.0+HS,现实已废弃)
LE Controller
BR/EDR Controller
Device Manager
Link Manager(LMP)
配对鉴权 · 链路配置
Baseband Resource Manager
时隙与资源调度
Link Controller
包格式 · FEC / ARQ 重传
🔒 加密运算在此执行
BR/EDR PHY
GFSK · π/4-DQPSK · 8DPSK
79 信道
Device Manager
Link Layer 链路层
≈ LM + BRM + LC 的合集
状态机 · 跳频 · 重传
🔒 加密运算在此执行
LE PHY
1M · 2M · Coded S2/S8
40 信道
Device Manager
AMP PAL 协议适配层
AMP MAC / PHY
802.11 · 约 24 Mbps
2.4 GHz ISM 空口