前言

BLE,全称是 Bluetooth Low Energy,也就是低功耗蓝牙。

BLE 并不是一个单一协议,而是一套分层的协议体系。平时在 BLE 开发中经常接触到的广播、扫描、连接、GATT 通讯、HCI Command、Link Layer、PHY 等内容,其实都属于 BLE 协议栈中的不同层次。

从整体架构来看,BLE 协议栈大致可以分为三大部分:

层级 说明
Host 协议栈上半部分,更接近应用逻辑
Controller 协议栈下半部分,更接近底层链路控制
Radio 无线射频部分,负责真正的无线收发

其中,Host 和 Controller 之间通过 HCI,也就是 Host Controller Interface 进行通信。


一、BLE 协议栈整体结构

BLE 协议栈整体结构可以简单表示为:

Host
├── Generic Access Profile(GAP)
├── Generic Attribute Profile(GATT)
├── Attribute Protocol(ATT)
├── Security Manager Protocol(SMP)
└── Logical Link Control & Adaptation Protocol(L2CAP)

Host Controller Interface(HCI)

Controller
├── Isochronous Adaptation Layer(ISOAL)
├── Link Layer
├── Channel Sounding
└── Physical Layer

Radio

BLE 协议栈中的每一层都有自己的职责。

简单来说:

部分 主要职责
Host 负责设备发现、连接管理、数据模型、安全管理等
HCI 负责 Host 和 Controller 之间的命令、事件、数据交互
Controller 负责底层链路状态、空口数据包、连接事件、PHY 等
Radio 负责无线信号的实际发送和接收

上层更接近应用逻辑和数据模型,下层更接近无线链路和射频传输。


二、Host

Host 可以理解为 BLE 协议栈的上半部分,主要负责协议逻辑、设备管理、安全管理以及数据交互模型。

在 BLE 协议栈中,Host 通常包含以下几个重要部分:

模块 全称 主要作用
GAP Generic Access Profile 负责广播、扫描、连接和角色管理
GATT Generic Attribute Profile 负责服务、特征、描述符等数据模型
ATT Attribute Protocol 负责属性访问的具体协议
SMP Security Manager Protocol 负责配对、绑定、加密和密钥管理
L2CAP Logical Link Control and Adaptation Protocol 负责逻辑通道和数据适配

这些内容也是 BLE 应用开发中最容易接触到的部分。

例如,在 iOS 或 Android 蓝牙开发中,经常会遇到:

  • 扫描设备

  • 连接设备

  • 发现服务

  • 发现特征

  • 读特征

  • 写特征

  • 开启 Notify

  • 开启 Indicate

  • MTU

  • 配对

  • 绑定

这些功能大多都和 Host 侧协议有关。


三、GAP:Generic Access Profile

GAP 的全称是 Generic Access Profile,中文通常可以理解为 通用访问配置文件

GAP 主要负责 BLE 设备如何被发现、如何建立连接,以及设备在通信过程中的角色关系。

可以简单理解为:

GAP 关注的是设备如何被发现、如何被连接,以及设备在连接前后扮演什么角色。

在 BLE 中,经常会看到这些角色或状态:

角色 / 状态 说明
Advertiser 广播者,发送广播包
Scanner 扫描者,扫描广播包
Initiator 发起者,发起连接
Central 中心设备,通常主动扫描和连接
Peripheral 外围设备,通常发送广播并被连接
Broadcaster 只广播,不建立连接
Observer 只扫描,不建立连接

常见的 BLE 广播、扫描和连接流程,都属于 GAP 相关内容。

例如:

Peripheral 发送广播
        ↓
Central 进行扫描
        ↓
Central 扫描到 Peripheral
        ↓
Central 发起连接
        ↓
Peripheral 接受连接
        ↓
双方进入连接状态

GAP 中常见的主题包括:

  • 广播 Advertising

  • 扫描 Scanning

  • 连接 Connection

  • 设备地址 Address

  • 广播类型 Advertising Type

  • 可发现性 Discoverability

  • 可连接性 Connectability

  • 连接参数 Connection Parameters

在 HCI Command 中,很多 LE Controller Commands 也是围绕 GAP 行为进行配置的,例如:

HCI Command 作用
LE Set Advertising Parameters 设置广播参数
LE Set Advertising Data 设置广播数据
LE Set Scan Response Data 设置扫描响应数据
LE Set Advertising Enable 使能或关闭广播
LE Set Scan Parameters 设置扫描参数
LE Set Scan Enable 使能或关闭扫描
LE Create Connection 创建 BLE 连接

这些命令本身属于 HCI 层接口,但它们配置的是广播、扫描、连接等 GAP 相关行为。


四、GATT:Generic Attribute Profile

GATT 的全称是 Generic Attribute Profile,中文通常可以理解为 通用属性配置文件

GATT 主要用于定义 BLE 连接建立之后的数据组织方式。

在 BLE 通讯中,设备之间的数据通常不是随意发送的,而是被组织成:

Service
└── Characteristic
    └── Descriptor

也就是:

服务
└── 特征
    └── 描述符

GATT 关注的是:

  • 连接建立之后,数据如何组织

  • 数据通过哪些服务暴露

  • 数据通过哪些特征读写

  • 哪些特征支持 Notify 或 Indicate

一个常见的 BLE 透传模块,可能会有类似这样的 GATT 结构:

UART Service
├── TX Characteristic:设备通过 Notify 向手机发送数据
└── RX Characteristic:手机通过 Write 向设备发送数据

在 App 开发中,经常看到的这些操作,都属于 GATT 相关操作:

GATT 操作 说明
Discover Services 发现服务
Discover Characteristics 发现特征
Read Characteristic 读取特征值
Write Characteristic 写入特征值
Notify Characteristic 接收通知
Indicate Characteristic 接收指示

可以简单理解为:

GATT 是 BLE 连接后的数据模型层。


五、ATT:Attribute Protocol

ATT 的全称是 Attribute Protocol,中文通常可以理解为 属性协议

ATT 是 GATT 的基础协议。

GATT 中的 Service、Characteristic、Descriptor,最终都是通过 ATT 中的 Attribute 来表示的。

一个 Attribute 通常包含:

字段 说明
Handle 属性句柄
Type / UUID 属性类型
Value 属性值
Permissions 属性权限

在 GATT 层看到的是 Service 和 Characteristic,但在 ATT 层看到的则是一个个 Attribute。

例如,一个 Characteristic Value 在 ATT 层会对应一个 Attribute Handle。读写 Characteristic,本质上就是对某个 Attribute Handle 进行读写。

常见的 ATT 操作包括:

ATT 操作 说明
ATT Read Request 读请求
ATT Read Response 读响应
ATT Write Request 写请求
ATT Write Response 写响应
ATT Write Command 无响应写命令
ATT Handle Value Notification 通知
ATT Handle Value Indication 指示
ATT Handle Value Confirmation 指示确认

GATT 和 ATT 的关系可以这样理解:

GATT 定义数据模型
ATT 负责具体的属性访问协议

例如,App 中的 Write Characteristic,底层可能对应 ATT Write Request 或 ATT Write Command。

App 中的 Notify,底层对应 ATT Handle Value Notification。

所以,GATT 更偏向上层的数据组织方式,ATT 更偏向底层具体的数据访问协议。


六、SMP:Security Manager Protocol

SMP 的全称是 Security Manager Protocol,中文通常可以理解为 安全管理协议

SMP 主要负责 BLE 中的安全相关流程,例如:

  • 配对 Pairing

  • 绑定 Bonding

  • 加密 Encryption

  • 密钥分发 Key Distribution

  • 身份解析 Identity Resolving

  • 隐私地址 Privacy Address

当 BLE 设备需要建立加密连接,或者某些 Attribute 需要加密后才能访问时,就可能涉及 SMP。

例如:

  • 读取某个特征时,系统弹出配对窗口

  • 连接建立后进行加密

  • 设备保存绑定信息

  • 通过 IRK 解析 Resolvable Private Address

这些都和 SMP 有关。

SMP 在普通 BLE 透传设备中可能不明显,但在一些对安全性要求较高的设备中非常重要,例如:

设备类型 SMP 相关性
蓝牙门锁 通常需要配对、绑定、加密
医疗设备 通常需要数据安全
支付设备 通常需要身份认证和加密
身份认证设备 通常需要密钥管理
需要绑定的智能硬件 通常需要保存长期密钥

可以简单理解为:

SMP 负责 BLE 的配对、绑定、加密和密钥管理。


七、L2CAP:Logical Link Control and Adaptation Protocol

L2CAP 的全称是 Logical Link Control and Adaptation Protocol,中文通常可以理解为 逻辑链路控制与适配协议

L2CAP 位于 ATT、SMP 等协议之下,HCI 之上。

它主要负责为上层协议提供逻辑通道和数据适配能力。

在 BLE 中,ATT 和 SMP 并不是直接运行在 Link Layer 上,而是通过 L2CAP 承载。

可以简单表示为:

ATT  → L2CAP
SMP  → L2CAP

L2CAP 使用 CID,也就是 Channel Identifier,来区分不同的逻辑通道。

例如:

协议 L2CAP 承载方式
ATT 使用固定 L2CAP Channel
SMP 使用固定 L2CAP Channel
L2CAP CoC 使用动态分配的逻辑通道

同一条 BLE 连接上,可以承载不同类型的数据:

BLE Connection
├── ATT Data
├── SMP Data
└── L2CAP Credit Based Channel Data

L2CAP 相关的内容还包括:

  • MTU

  • MPS

  • 分包

  • 重组

  • Credit Based Flow Control

  • L2CAP CoC

在 BLE GATT 通讯中,经常提到的 ATT MTU,也和 L2CAP 有密切关系。


八、HCI:Host Controller Interface

HCI 的全称是 Host Controller Interface,中文通常可以理解为 主机控制器接口

HCI 是 Host 和 Controller 之间的接口边界。

从协议栈结构上看,HCI 位于 Host 和 Controller 之间:

Host
  ↓
HCI
  ↓
Controller

Host 通过 HCI 向 Controller 发送命令,Controller 也通过 HCI 向 Host 上报事件和数据。

HCI 中常见的数据类型包括:

HCI 数据类型 说明
HCI Command Host 发送给 Controller 的命令
HCI Event Controller 上报给 Host 的事件
HCI ACL Data 连接建立后的异步数据
HCI ISO Data 等时数据,常用于 LE Audio 等场景

其中,BLE 开发中最常见的是:

  • HCI Command

  • HCI Event

  • HCI ACL Data

1. HCI Command

HCI Command 是 Host 发送给 Controller 的命令。

例如:

HCI Command 作用
LE Set Advertising Parameters 设置广播参数
LE Set Advertising Data 设置广播数据
LE Set Scan Response Data 设置扫描响应数据
LE Set Advertising Enable 使能或关闭广播
LE Set Scan Parameters 设置扫描参数
LE Set Scan Enable 使能或关闭扫描
LE Create Connection 发起连接

这些命令用于告诉 Controller 执行某些 BLE 行为,例如配置广播、开启扫描、发起连接等。

2. HCI Event

HCI Event 是 Controller 上报给 Host 的事件。

例如:

HCI Event 说明
Command Complete Event 命令执行完成
Command Status Event 命令状态返回
LE Advertising Report Event 扫描到广播设备
LE Connection Complete Event BLE 连接建立完成
Disconnection Complete Event 连接断开完成

3. HCI ACL Data

HCI ACL Data 主要用于连接建立之后的数据传输。

BLE GATT / ATT 通讯数据,通常会通过 HCI ACL Data 在 Host 和 Controller 之间传递。

例如,一个 Characteristic Write 操作,从 Host 侧到 Controller 侧,可能会经历:

GATT Write
↓
ATT Write Request / Command
↓
L2CAP
↓
HCI ACL Data
↓
Controller
↓
Link Layer
↓
PHY / Radio

所以在 bt snoop 日志中,经常会看到:

  • HCI Command

  • HCI Event

  • ACL Data

这些日志可以帮助分析 BLE 扫描、连接、GATT 通讯等流程。


九、Controller

Controller 可以理解为 BLE 协议栈的下半部分,主要负责底层链路控制和物理传输相关工作。

在 BLE 协议栈中,Controller 通常包含:

模块 说明
Link Layer 链路层,负责 BLE 空口链路控制
Physical Layer 物理层,负责 BLE 物理传输方式
ISOAL 等时适配层,主要用于 LE Audio 等场景
Channel Sounding 面向测距和定位增强能力

Controller 负责的内容更接近无线链路本身,例如:

  • 广播包什么时候发送

  • 扫描窗口什么时候打开

  • 连接请求什么时候发送

  • 连接事件如何调度

  • 数据信道如何跳频

  • 空口 PDU 如何组织

  • ACK 和重传如何处理

  • 链路加密如何执行

  • PHY 使用 1M、2M 还是 Coded

Host 通过 HCI 配置和控制 Controller,Controller 负责真正执行底层 BLE 链路行为。


十、Link Layer

Link Layer 是 Controller 中非常核心的一层。

它负责 BLE 空口链路的控制逻辑。

BLE 中的广播、扫描、发起连接、连接状态维护、连接事件调度等,都和 Link Layer 有关。

Link Layer 中常见的状态包括:

状态 说明
Standby State 空闲状态
Advertising State 广播状态
Scanning State 扫描状态
Initiating State 发起连接状态
Connection State 连接状态

这些状态描述了 BLE Controller 当前在空口链路中的工作模式。

例如:

  • Advertising State:设备正在发送广播

  • Scanning State:设备正在扫描广播

  • Initiating State:设备正在发起连接

  • Connection State:设备已经处于连接状态

  • Standby State:设备暂时没有进行广播、扫描或连接

Link Layer 还定义了 BLE 空口中的 PDU 类型。

在 Legacy Advertising 中,常见的 Advertising Channel PDU 包括:

PDU 说明
ADV_IND 可连接、可扫描的非定向广播
ADV_DIRECT_IND 可连接的定向广播
ADV_NONCONN_IND 不可连接、不可扫描的非定向广播
ADV_SCAN_IND 可扫描、不可连接的非定向广播
SCAN_REQ 扫描请求
SCAN_RSP 扫描响应
CONNECT_IND 连接请求

连接建立之后,双方会进入 Connection State,然后通过数据信道传输 Data Channel PDU。

Link Layer 还负责很多底层机制,例如:

  • 跳频

  • 连接事件

  • 数据确认

  • 重传

  • 链路加密

  • CRC

  • Filter Accept List

  • 地址过滤

  • 连接参数更新

可以简单理解为:

Link Layer 负责 BLE 空口链路的具体控制。


十一、Physical Layer

Physical Layer 也就是物理层,通常简称 PHY。

PHY 层负责 BLE 无线传输的物理方式。

常见的 BLE PHY 包括:

PHY 说明
LE 1M PHY BLE 最基础的物理层,Legacy Advertising 使用该 PHY
LE 2M PHY 传输速率更高,适合更高吞吐场景
LE Coded PHY 传输距离更远,但速率更低

1. LE 1M PHY

LE 1M PHY 是 BLE 最基础的物理层。

BLE Legacy Advertising 使用的就是 LE 1M PHY。

2. LE 2M PHY

LE 2M PHY 的传输速率更高,适合需要更高数据吞吐能力的场景。

3. LE Coded PHY

LE Coded PHY 通过编码方式增强传输距离,但传输速率会降低。

它适合远距离、低速率的通信场景。

PHY 层关注的内容包括:

  • 物理信道

  • 调制方式

  • 符号速率

  • 发射功率

  • 接收灵敏度

  • 无线传输速率

一些常见概念也和 PHY / Radio 有关,例如:

  • RSSI

  • Tx Power

  • 接收灵敏度

  • 通信距离

  • 抗干扰能力


十二、Radio

Radio 是 BLE 协议栈最底层的无线射频部分。

PHY 层定义如何进行物理传输,而 Radio 负责真正完成无线信号的发送和接收。

可以简单理解为:

PHY 规定怎么传
Radio 负责真正发射和接收无线信号

Radio 涉及的内容包括:

  • 射频芯片

  • 天线

  • 发射功率

  • 接收灵敏度

  • 2.4GHz 频段

  • 无线干扰

  • 射频设计

BLE 工作在 2.4GHz ISM 频段。这个频段中还存在 Wi-Fi、经典蓝牙、无线鼠标键盘、其他 2.4GHz 设备等。

因此,BLE 通信质量不仅和协议栈有关,也和无线环境、天线设计、发射功率、接收灵敏度等因素有关。

例如,实际开发中常见的这些现象:

  • RSSI 波动

  • 连接距离不稳定

  • 偶发丢包

  • 不同手机表现不同

  • 不同环境通信效果不同

这些问题可能同时涉及 Host、Controller、PHY、Radio 以及外部无线环境。


十三、ISOAL

ISOAL 的全称是 Isochronous Adaptation Layer,中文通常可以理解为 等时适配层

ISOAL 主要和 BLE Isochronous Channels 有关,也就是 BLE 等时通道。

等时通道主要用于对时间同步要求较高的数据传输场景,例如 LE Audio。

LE Audio 中的音频数据需要按照时间节奏持续传输,因此需要 BLE 提供等时通信能力。

ISOAL 的主要作用是对等时数据进行适配,使上层数据能够映射到底层等时通道中传输。

可以简单理解为:

ISOAL 主要服务于 BLE 等时数据传输,常见于 LE Audio 相关场景。


十四、LC3

图中左侧出现了 LC3。

LC3 的全称是 Low Complexity Communication Codec,是蓝牙 LE Audio 中使用的一种音频编解码器。

LC3 主要负责音频数据的编码和解码。

在 LE Audio 场景中,音频数据需要经过编码后,再通过 BLE 等时通道进行传输。接收端收到数据后,再通过 LC3 解码还原音频。

LC3 和普通的 BLE GATT 数据通讯不是同一类内容。

它更多属于 BLE Audio 相关体系。

可以简单理解为:

LC3 是 LE Audio 中使用的音频编解码器。


十五、Channel Sounding

Channel Sounding 是蓝牙中用于距离测量和定位增强的一类能力。

它通过无线信道相关信息,帮助设备之间进行更精确的距离估计。

传统 BLE 中常见的 RSSI 可以粗略反映信号强弱,但 RSSI 很容易受到环境、遮挡、天线方向、多径反射等因素影响,因此不适合直接作为精确距离依据。

Channel Sounding 则是为了提升蓝牙设备之间的测距能力。

可以简单理解为:

Channel Sounding 主要面向蓝牙测距和定位增强场景。

它和普通 BLE 广播、扫描、GATT 通讯不同,属于更偏定位能力的扩展方向。


十六、BLE 协议栈中的数据流

以一个常见的 BLE GATT 写数据流程为例,可以从上到下理解数据如何经过协议栈。

假设手机向 BLE 外设写入一个 Characteristic。

在应用层看到的是:

Write Characteristic

在 GATT 层,这是一次 GATT 写特征操作。

在 ATT 层,可能对应:

ATT Write Request

或者:

ATT Write Command

在 L2CAP 层,ATT 数据会被放入 L2CAP 包中。

在 HCI 层,Host 会通过 HCI ACL Data 将数据交给 Controller。

在 Link Layer 层,Controller 会把数据组织成 Data Channel PDU,并在连接事件中发送出去。

在 PHY 和 Radio 层,数据最终转换为无线信号,在 2.4GHz 频段发送给对端设备。

整体流程可以表示为:

App Write Characteristic
↓
GATT
↓
ATT
↓
L2CAP
↓
HCI ACL Data
↓
Link Layer
↓
Physical Layer
↓
Radio
↓
对端设备

反过来,外设通过 Notify 向手机发送数据时,数据也会沿着类似路径从底层往上返回:

Radio
↓
Physical Layer
↓
Link Layer
↓
HCI ACL Data
↓
L2CAP
↓
ATT
↓
GATT
↓
App 收到 Notify 回调

十七、BLE 广播扫描流程对应的协议栈位置

BLE 广播和扫描是连接建立之前非常重要的流程。

以 Legacy Advertising 为例,广播设备会在广播信道上发送广播包,扫描设备会监听广播信道并接收广播包。

这个过程涉及多个层次:

GAP
HCI
Link Layer
Physical Layer
Radio

在 Host 侧,GAP 负责定义广播和扫描行为。

Host 通过 HCI Command 配置 Controller,例如:

HCI Command 作用
LE Set Advertising Parameters 设置广播参数
LE Set Advertising Data 设置广播数据
LE Set Advertising Enable 使能广播

Controller 的 Link Layer 根据这些配置,在广播信道上发送 Advertising PDU。

最终由 PHY 和 Radio 完成无线发送。

扫描设备侧也是类似。

Host 通过 HCI Command 开启扫描:

HCI Command 作用
LE Set Scan Parameters 设置扫描参数
LE Set Scan Enable 使能扫描

Controller 在广播信道上接收广播包。

收到广播包后,Controller 通过 HCI Event 上报给 Host,例如:

LE Advertising Report Event

所以,广播扫描虽然在应用层看起来只是“开始广播”和“开始扫描”,但它实际涉及 Host、HCI、Controller、PHY 和 Radio 多个部分。


十八、BLE 连接和 GATT 通讯的关系

BLE 中需要区分两个阶段:

阶段 主要内容
连接前 广播、扫描、发起连接
连接后 服务发现、特征发现、读写特征、Notify、Indicate、MTU、配对加密

连接前主要关注:

  • 广播

  • 扫描

  • 发起连接

这些内容主要和 GAP、HCI、Link Layer、PHY、Radio 有关。

连接后主要关注:

  • 服务发现

  • 特征发现

  • 读写特征

  • Notify

  • Indicate

  • MTU

  • 配对加密

这些内容主要和 GATT、ATT、SMP、L2CAP、HCI、Link Layer 有关。

可以简单表示为:

连接前:
GAP + HCI + Link Layer + PHY + Radio

连接后:
GATT + ATT + SMP + L2CAP + HCI + Link Layer + PHY + Radio

这也是 BLE 协议栈分层的意义:不同层负责不同阶段、不同粒度的工作。


十九、各层职责总结

BLE 协议栈中的各层职责可以总结如下:

层 / 模块 主要职责
GAP 负责设备发现、广播、扫描、连接和角色管理
GATT 负责连接后的服务、特征、描述符等数据模型
ATT 负责属性访问的具体协议,例如读、写、通知、指示
SMP 负责配对、绑定、加密、密钥分发和安全管理
L2CAP 负责逻辑通道、数据适配、分包与重组
HCI 负责 Host 和 Controller 之间的命令、事件和数据交互
Link Layer 负责 BLE 空口链路控制,例如广播、扫描、连接、连接事件、跳频和重传
Physical Layer 负责 BLE 的物理传输方式,例如 LE 1M、LE 2M、LE Coded PHY
Radio 负责真正的无线射频发送和接收
ISOAL 负责等时数据适配,主要用于 LE Audio 等场景
LC3 负责 LE Audio 中的音频编解码
Channel Sounding 负责蓝牙测距和定位增强相关能力

再简化一点:

GAP 管发现和连接
GATT 管数据模型
ATT 管属性读写
SMP 管安全
L2CAP 管逻辑通道
HCI 管 Host 和 Controller 通信
Link Layer 管空口链路
PHY 管物理传输
Radio 管无线收发

二十、总结

BLE 协议栈是一个分层结构。

从整体上看,它可以分为:

Host
HCI
Controller
Radio

Host 更接近应用逻辑,负责 GAP、GATT、ATT、SMP、L2CAP 等协议。

Controller 更接近底层链路,负责 Link Layer、Physical Layer、ISOAL、Channel Sounding 等内容。

Radio 则负责真正的无线射频收发。

在 BLE 应用开发中,经常接触到的扫描、广播、连接、服务发现、特征读写、Notify、MTU、配对等功能,并不是孤立存在的,而是分布在 BLE 协议栈的不同层次中。

例如:

功能 主要涉及的协议栈层次
广播和扫描 GAP、HCI、Link Layer、PHY、Radio
GATT 通讯 GATT、ATT、L2CAP、HCI、Link Layer、PHY、Radio
配对和加密 SMP、L2CAP、HCI、Link Layer
RSSI / Tx Power PHY、Radio、无线环境

理解 BLE 协议栈的整体结构,可以帮助我们把广播、扫描、连接、GATT 通讯、HCI 日志、Link Layer PDU 等知识点放到同一张地图中。

这样在分析 BLE 问题时,就可以更清楚地判断问题大致属于哪个层次:

  • 是 GAP 层的问题?

  • 是 GATT / ATT 层的问题?

  • 是 L2CAP 分包相关问题?

  • 是 HCI 交互问题?

  • 是 Link Layer 链路问题?

  • 还是 PHY / Radio 无线环境问题?

BLE 协议栈的整体认识,本质上就是建立一张分层地图。

有了这张地图,再继续理解 BLE 广播、扫描、连接、GATT 通讯、HCI Command、Link Layer 等内容时,各个知识点之间的关系就会更加清晰。

 

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐