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

来自Bouffalo Lab Docs
跳转到导航 跳转到搜索
张良留言 | 贡献
无编辑摘要
张良留言 | 贡献
 
(未显示同一用户的1个中间版本)
第128行: 第128行:
=== Nethub-Linux ===
=== Nethub-Linux ===


[[File:assets/image-20260127193926-a92z5f5.png]]


'''主机端 (Host)'''
'''主机端 (Host)'''
第161行: 第160行:


=== Nethub-MCU ===
=== Nethub-MCU ===
[[File:assets/image-20260127195556-tme7dbn.png]]





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

常见问题