Nethub架构和开发手册:修订间差异

来自Bouffalo Lab Docs
跳转到导航 跳转到搜索
张良留言 | 贡献
无编辑摘要
张良留言 | 贡献
 
(未显示同一用户的2个中间版本)
第1行: 第1行:
概述
= Nethub =
 
'''Nethub''' 是一个开源解决方案,使 Bouffalolab SoCs/模块(如 BL616/BL618D/BL616L)能够作为外部主机系统的'''无线通信协处理器'''。
 
它允许'''主机设备'''(基于 Linux 的系统或微控制器 MCU)通过'''标准接口'''(如USB、SPI、SDIO 或 UART)添加 Wi-Fi 和 BLE 功能。
 
=== 主要特性 ===
 
* '''灵活的连接方式''':Wi-Fi + BLE
* '''广泛的主机支持''':支持基于 Linux 和 MCU 的系统
* '''多种接口''':SPI、SDIO、UART
* '''共享网络''':WiFiSoc 和主机可以共享相同的 IP 地址
* '''高能效''':为电池供电的应用场景提供低功耗模式
 
=== 高层架构 ===
 
<pre>
┌─────────────────────────────────────────┐
│              Host (Linux/RTOS)          │
├─────────────────────────────────────────┤
│  UserAPP  │  NetInterface  │ RpcCtrl    │
└─────────────────────────────────────────┘
                    │
          USB/SDIO/SPI/UART/GPIO
                    │
┌─────────────────────────────────────────┐
│          Device Module                  │
├─────────────────────────────────────────┤
│ Lowerpower │ wifi │  BLE  │ RpcCtrl    │
└─────────────────────────────────────────┘
</pre>
 
== Nethub 变体 ==
 
=== WiFiCard-Linux ===
 
最适合需要标准 Wi-Fi 和 Bluetooth 集成的 '''Linux 主机''':
 
* 作为原生 802.11 无线设备
* 可通过 <code>cfg80211</code>​ / <code>wpa_supplicant</code> 配置
* 支持 <code>NetworkManager</code>
* 通过标准 HCI 接口使用 BLE
 
----
 
=== Nethub-Linux ===
 
专为 '''Linux 主机'''设计,采用自定义轻量级基于 RPC 的控制:
 
* Ethernet 802.3 接口
* 通过基于 protobuf 的 RPC 进行 Wi-Fi 配置
* 完全可定制的 API
* 通过标准 HCI 使用 BLE
* 支持 Python 或 C 集成
* 当主机关机时,BouffaloLab Soc 保持网络连接
 
----
 
=== Nethub-MCU ===
 
针对'''资源受限的 MCU'''优化:
 
* 最小的内存占用
* 高效的功耗运行
* 已提供 STM32 作为主机的移植示例和 Demo
* 即使主机处于深度睡眠或关机状态,WiFiSoc 仍保持连接
 
----
 
== 变体对比 ==
 
{| class="wikitable"
|-
! 特征 !! WiFiCard-Linux !! Nethub-Linux !! Nethub-MCU
|-
| '''目标主机''' || Linux || Linux || MCU
|-
| '''Wi-Fi 配置''' || <code>cfg80211</code> || RPC || RPC
|-
| '''网络接口''' || 802.11 Wi-Fi || 802.3 Ethernet || 802.3 Ethernet
|-
| '''Device 和主机共用 IP''' || || ✅ || ✅
|-
| '''电源管理''' || || ✅ || ✅
|-
| '''Wi-Fi 模式''' || || STA, AP, STA+AP || STA, AP, STA+AP
|-
| '''总线接口''' || || USB, SDIO, SPI, UART(及组合) || USB, SDIO, SPI, UART(及组合)
|-
| '''Wi-Fi 安全''' || || WPA, WPA2, WPA3, Open || WPA, WPA2, WPA3, Open
|-
| '''标准''' || || 802.11 b/g/n/ax, BLE || 802.11 b/g/n/ax, BLE
|-
| '''支持的芯片''' || || BL616/BL616D/BL616L || BL616/BL616D/BL616L
|}
 
----
 
== 选择合适的变体 ==
 
{| class="wikitable"
|-
! 使用场景 !! 推荐变体
|-
| 标准 Linux Wi-Fi 配置 (<code>NetworkManager</code>​、<code>wpa_supplicant</code>) || '''WiFiCard-Linux'''
|-
| 需要对 Wi-Fi 进行自定义/专有控制的 Linux(例如,智能门锁门铃、行车记录仪等) || '''Nethub-Dualstack-Linux'''
|-
| 嵌入式 Linux 平台(如 Raspberry Pi、BeagleBone) || '''Nethub-Dualstack-Linux'''
|-
| 资源受限设备(低 RAM/CPU 的 MCU) || '''Nethub-Dualstack-MCU(甚至直接只用AT方案)'''
|-
| 自定义网络或重复协议栈(主机和 WiFiSoc 上相同 IP) || '''Nethub-Dualstack-Linux''' 或 '''Nethub-Dualstack-MCU'''
|-
| 需要同时使用 BLE 和 Wi-Fi 的 IoT 应用场景 || '''Any'''
|-
| 需要协议定制/深度包检测 || '''Nethub-Dualstack-Linux''' 或 '''Nethub-Dualstack-MCU'''
|}
 
----
 
== 文档与资源 ==
 
=== WiFiCard-Linux ===
 
...
 
=== Nethub-Linux ===
 
 
'''主机端 (Host)'''
 
{| class="wikitable"
|-
! 模块 !! 说明
|-
| '''UserExt''' || 用户业务逻辑层,由用户自行开发
|-
| '''EthernetDriver''' || 网络接口层,提供驱动源代码,将 SDIO 接口虚拟化为网卡。用户可使用对应 Linux 平台的工具链编译相关驱动
|-
| '''VirtualChannel''' || WiFi 控制层,提供主机控制 Device 模块的接口,包括网络连接、断开、扫描、OTA 升级、用户私有数据传输等功能
|}
 
'''Device端'''
 
<blockquote>
'''注意''':当前不支持从 SDIO 启动,因此 Device 模块需要配备 Flash 存储器。
</blockquote>
 
{| class="wikitable"
|-
! 模块 !! 说明
|-
| '''UserExt''' || 用户业务逻辑层,由用户自行开发
|-
| '''Lowpower''' || 低功耗功能层,需要与主控制器进行交互,可以通过额外的 GPIO 实现触发唤醒功能
|-
| '''Filter''' || 默认的 filter 处理规则,也支持用户自定义
|}
 
=== Nethub-MCU ===


快速上手


常见问题
常见问题

2026年1月27日 (二) 12:50的最新版本

Nethub

Nethub 是一个开源解决方案,使 Bouffalolab SoCs/模块(如 BL616/BL618D/BL616L)能够作为外部主机系统的无线通信协处理器

它允许主机设备(基于 Linux 的系统或微控制器 MCU)通过标准接口(如USB、SPI、SDIO 或 UART)添加 Wi-Fi 和 BLE 功能。

主要特性

  • 灵活的连接方式:Wi-Fi + BLE
  • 广泛的主机支持:支持基于 Linux 和 MCU 的系统
  • 多种接口:SPI、SDIO、UART
  • 共享网络:WiFiSoc 和主机可以共享相同的 IP 地址
  • 高能效:为电池供电的应用场景提供低功耗模式

高层架构

┌─────────────────────────────────────────┐
│              Host (Linux/RTOS)          │
├─────────────────────────────────────────┤
│  UserAPP  │  NetInterface  │ RpcCtrl    │
└─────────────────────────────────────────┘
                    │
           USB/SDIO/SPI/UART/GPIO
                    │
┌─────────────────────────────────────────┐
│          Device Module                  │
├─────────────────────────────────────────┤
│ Lowerpower │ wifi │  BLE  │ RpcCtrl     │
└─────────────────────────────────────────┘

Nethub 变体

WiFiCard-Linux

最适合需要标准 Wi-Fi 和 Bluetooth 集成的 Linux 主机

  • 作为原生 802.11 无线设备
  • 可通过 cfg80211​ / wpa_supplicant 配置
  • 支持 NetworkManager
  • 通过标准 HCI 接口使用 BLE

Nethub-Linux

专为 Linux 主机设计,采用自定义轻量级基于 RPC 的控制:

  • Ethernet 802.3 接口
  • 通过基于 protobuf 的 RPC 进行 Wi-Fi 配置
  • 完全可定制的 API
  • 通过标准 HCI 使用 BLE
  • 支持 Python 或 C 集成
  • 当主机关机时,BouffaloLab Soc 保持网络连接

Nethub-MCU

针对资源受限的 MCU优化:

  • 最小的内存占用
  • 高效的功耗运行
  • 已提供 STM32 作为主机的移植示例和 Demo
  • 即使主机处于深度睡眠或关机状态,WiFiSoc 仍保持连接

变体对比

特征 WiFiCard-Linux Nethub-Linux Nethub-MCU
目标主机 Linux Linux MCU
Wi-Fi 配置 cfg80211 RPC RPC
网络接口 802.11 Wi-Fi 802.3 Ethernet 802.3 Ethernet
Device 和主机共用 IP
电源管理
Wi-Fi 模式 STA, AP, STA+AP STA, AP, STA+AP
总线接口 USB, SDIO, SPI, UART(及组合) USB, SDIO, SPI, UART(及组合)
Wi-Fi 安全 WPA, WPA2, WPA3, Open WPA, WPA2, WPA3, Open
标准 802.11 b/g/n/ax, BLE 802.11 b/g/n/ax, BLE
支持的芯片 BL616/BL616D/BL616L BL616/BL616D/BL616L

选择合适的变体

使用场景 推荐变体
标准 Linux Wi-Fi 配置 (NetworkManager​、wpa_supplicant) WiFiCard-Linux
需要对 Wi-Fi 进行自定义/专有控制的 Linux(例如,智能门锁门铃、行车记录仪等) Nethub-Dualstack-Linux
嵌入式 Linux 平台(如 Raspberry Pi、BeagleBone) Nethub-Dualstack-Linux
资源受限设备(低 RAM/CPU 的 MCU) Nethub-Dualstack-MCU(甚至直接只用AT方案)
自定义网络或重复协议栈(主机和 WiFiSoc 上相同 IP) Nethub-Dualstack-LinuxNethub-Dualstack-MCU
需要同时使用 BLE 和 Wi-Fi 的 IoT 应用场景 Any
需要协议定制/深度包检测 Nethub-Dualstack-LinuxNethub-Dualstack-MCU

文档与资源

WiFiCard-Linux

...

Nethub-Linux

主机端 (Host)

模块 说明
UserExt 用户业务逻辑层,由用户自行开发
EthernetDriver 网络接口层,提供驱动源代码,将 SDIO 接口虚拟化为网卡。用户可使用对应 Linux 平台的工具链编译相关驱动
VirtualChannel WiFi 控制层,提供主机控制 Device 模块的接口,包括网络连接、断开、扫描、OTA 升级、用户私有数据传输等功能

Device端

注意:当前不支持从 SDIO 启动,因此 Device 模块需要配备 Flash 存储器。

模块 说明
UserExt 用户业务逻辑层,由用户自行开发
Lowpower 低功耗功能层,需要与主控制器进行交互,可以通过额外的 GPIO 实现触发唤醒功能
Filter 默认的 filter 处理规则,也支持用户自定义

Nethub-MCU

常见问题