Nethub架构和开发手册:修订间差异
跳转到导航
跳转到搜索
无编辑摘要 |
|||
| 第128行: | 第128行: | ||
=== Nethub-Linux === | === Nethub-Linux === | ||
[[ | [[:文件:Image-20260127195556-tme7dbn.png]] | ||
'''主机端 (Host)''' | '''主机端 (Host)''' | ||
2026年1月27日 (二) 12:47的版本
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-Linux 或 Nethub-Dualstack-MCU |
| 需要同时使用 BLE 和 Wi-Fi 的 IoT 应用场景 | Any |
| 需要协议定制/深度包检测 | Nethub-Dualstack-Linux 或 Nethub-Dualstack-MCU |
文档与资源
WiFiCard-Linux
...
Nethub-Linux
文件:Image-20260127195556-tme7dbn.png
主机端 (Host)
| 模块 | 说明 |
|---|---|
| UserExt | 用户业务逻辑层,由用户自行开发 |
| EthernetDriver | 网络接口层,提供驱动源代码,将 SDIO 接口虚拟化为网卡。用户可使用对应 Linux 平台的工具链编译相关驱动 |
| VirtualChannel | WiFi 控制层,提供主机控制 Device 模块的接口,包括网络连接、断开、扫描、OTA 升级、用户私有数据传输等功能 |
Device端
注意:当前不支持从 SDIO 启动,因此 Device 模块需要配备 Flash 存储器。
| 模块 | 说明 |
|---|---|
| UserExt | 用户业务逻辑层,由用户自行开发 |
| Lowpower | 低功耗功能层,需要与主控制器进行交互,可以通过额外的 GPIO 实现触发唤醒功能 |
| Filter | 默认的 filter 处理规则,也支持用户自定义 |
Nethub-MCU
文件:Assets/image-20260127195556-tme7dbn.png
常见问题
- sdiowifi和nethub框架方案对比
- ATModule 协议格式