小龙虾 47ffe1bd54 feat(wifi_ota): 添加CAN帧转发功能
添加了HTTP接口用于转发CAN帧,包括/can/send POST接口用于发送CAN帧,
以及/can/status GET接口用于查询CAN通道状态。同时集成了SPI master驱动
以支持与GD32之间的CANFD通信,并定义了完整的CAN帧格式和通道管理机制。

BREAKING CHANGE: 移除了OTA上位机工具脚本
2026-04-27 03:22:49 +08:00

ESP32-C3 OTA Relay

ESP32-C3FH4 OTA 中继固件,通过 WiFi / BLE 接收上位机 OTA 固件包,通过 SPI 转发给下位机(GD32)。

硬件平台

  • 芯片: ESP32-C3FH4 (RISC-V, 单核)
  • Flash: 4MB
  • 编译工具链: ESP-IDF v6.0, riscv32-esp-elf

功能模块

模块 描述
health_monitor 温度 + 电压 + WiFi RSSI 监控
ota_relay OTA 数据包接收与转发
wifi_ota WiFi OTA 服务器 (HTTP)
ble_ota BLE OTA 服务器 (GATT)
spi_master SPI 主站,与下位机通信
protocol CRC 校验 + AES 解密

目录结构

main/
├── CMakeLists.txt
├── core/main.cpp          # 任务创建入口
├── relay/ota_relay.cpp   # OTA 中继逻辑
├── transport/
│   ├── spi_master.cpp    # SPI 主站
│   └── protocol.cpp       # 协议层 (CRC/AES)
├── server/
│   ├── wifi_ota.cpp      # WiFi OTA HTTP 服务器
│   └── ble_ota.cpp       # BLE OTA GATT 服务器
└── monitor/
    ├── health_monitor.cpp # 健康监控
    └── debug_log.cpp     # UDP 调试日志

任务配置 (单核 ESP32-C3)

所有任务固定运行在 CPU 核 0:

任务 优先级 栈大小 说明
health_mon configMAX_PRIORITIES - 4 4096 健康监控
ota_relay configMAX_PRIORITIES - 2 8192 OTA 中继
wifi_ota configMAX_PRIORITIES - 3 8192 WiFi OTA
ble_ota configMAX_PRIORITIES - 3 8192 BLE OTA

待确认参数

  • AES-128 主密钥 (MASTER_KEY_HERE)
  • 搅伴算法种子 (SCRAMBLE_CONST_HERE)
  • 芯片唯一码 (CHIP_UID_HERE)
  • OTA Service UUID (需与 APP 侧协商)

编译

idf.py set-target esp32c3
idf.py build
idf.py flash monitor

调试日志

UDP 输出到上位机,默认 IP: DEBUG_LOG_IP,端口: DEBUG_LOG_PORT。

S
Description
No description provided
Readme
2 MiB
Languages
C++ 93.5%
C 5.4%
CMake 0.7%
Python 0.4%