新闻详情

新闻详情

首页 / 资讯中心 / 详情

# 基于ESP32-S3与CAN总线的车载仪表盘远程固件升级系统(开源实战)

发布时间:2026/9/30 22:51:08来源:尧图网络
# 基于ESP32-S3与CAN总线的车载仪表盘远程固件升级系统(开源实战)
项目开源地址https://github.com/1919884213/ESP32-LCD-CAN-IAPMIT License技术栈ESP32-S3 LVGL 9 ESP-IDF 5.x | STM32F103C8T6 ×2 | CAN 2.0A 50 kbit/s | FreeRTOS / 自研 TinyRTOS一、项目是做什么的这是一套「1 个上位机 2 个下位机节点」的车载仪表演示系统核心卖点一句话通过 CAN 总线对下位机 Bootloader 做远程固件升级IAP全程不拆机、不接 SWD。系统分工上位机ESP32-S3LVGL 9 仪表盘 UI320×24010 个页面、WiFi/MQTTOneNET、和风天气、智谱 AI 流式对话、OTA 自升级并通过 TWAI 外设收发 CAN 报文下位机STM32F103C8T6 ×2环境节点DHT11 温湿度、GL5528 光照、NTC运动节点MPU6050 姿态、超声波测距、霍尔轮速每块 STM32 都是Bootloader0x08000000 APP0x08004000双区结构上位机从本地 bin / W25Q64 / HTTP 拉取固件走 CAN 协议刷入。还有一个我觉得比较有意思的点下位机 APP 提供两套运行时——标准 FreeRTOS 版CanDevice*和自研 TinyRTOS 版myCanDevice*后者通过 CMSIS-RTOS v2 兼容层无缝替换内核业务任务代码一行不改固件体积从 29.8 KB 降到 19.5 KB。二、系统架构┌──────────────────────────────┐ WiFi / MQTT │ ESP32-S3 上位机 │ ┌──────────────│ LVGL 9 仪表盘 · TWAI(CAN) │──── OTA (HTTPS) │ │ WiFi/MQTT(OneNET) · LLM对话 │ │ └──────────┬───────────────────┘ │ │ CAN 总线 50 kbit/s │ ┌──────────┴──────────┐ │ ┌────────▼────────┐ ┌────────▼────────┐ │ │ STM32F103 节点1 │ │ STM32F103 节点2 │ │ │ 环境节点 │ │ 运动节点 │ │ │ BootloaderAPP │ │ BootloaderAPP │ │ │ DHT11/光照/NTC │ │ MPU6050/超声波/霍尔│ │ └─────────────────┘ └─────────────────┘三、CAN IAP 协议设计重点完整报文表见仓库myCanDevice2/CAN总线报文ID汇总_v2.0.0 (1).md要点CAN 2.0A 标准帧11 位 IDDLC850 kbit/s多字节字段小端序IAP 流程四步走握手擦除 → 分块传输带序号 CRC→ 校验 → 激活重启节点侧升级指令 ID运动节点0x600/0x610/0x620环境节点0x601/0x611/0x621业务数据帧举例环境节点上报0x200/0x201故障帧0x080运动节点上报0x100/0x101/0x110/0x701。Bootloader 的判断逻辑上电后先等一小段时间的 CAN IAP 指令没收到就校验 APP 区有效标志并跳转0x08004000APP 有效标志持久化保存升级失败不会变砖。板载 PC13 LED 可以直观区分当前跑在哪边——闪烁 Bootloader常亮 APP。四、上位机功能一览模块说明仪表盘 UILVGL 9320×240 运动仪表风主题碳黑 橙10 个功能页面CAN 通信ESP32 TWAI 驱动50 kbit/s收发环境/运动节点业务帧IAP 升级本地 / W25Q64 / HTTP 三种固件源CAN 协议刷入带 CRC 校验OTA 升级上位机自身 HTTPS OTA自定义分区表factory 单分区 3.9 MB云端OneNET MQTT 物模型上报和风天气智谱 AI 流式对话WiFi软键盘配网、连接状态机、NVS 持久化凭据存储W25Q64GIF 待机动画帧、中文字库、OTA/IAP 固件缓存FATFS五、TinyRTOS 版与 CMSIS-OS2 兼容层myCanDevice*的内核是我自己写的 TinyRTOS位图调度器 协程式上下文切换switch.sPendSV软件定时器、队列、信号量、优先级继承互斥锁关键是Core/rtos/os_compat.c实现CMSIS-RTOS v2 → TinyRTOS 兼容层既有的 CanTask / MPU6050Task / UltrasonicTask / freertos.c一行不改就能跑在自研内核上这也让换内核的对比测试变得非常方便——同一个 IAP 协议、同一套上位机两个内核的固件都可以刷。六、快速上手1. 下位机每块 STM32 板编译烧录 BootloaderBootLoader_device1或 2→0x08000000编译 APP二选一FreeRTOS 版CanDevice1/CanDevice2CMake arm-none-eabi-gcc或 STM32CubeIDE 导入TinyRTOS 版myCanDevice1/myCanDevice2APP 烧到0x08004000——也可以偷懒直接用上位机 IAP 页面通过 CAN 刷入仓库里自带的LCD/*.bin。2. 上位机ESP32-S3cdLCD idf.py set-target esp32s3 idf.py build flash monitor首次使用必做main/secrets.h不入库克隆后复制main/secrets.h.example为main/secrets.h填入WiFi 热点 SSID / 密码UI 网络页也可现场改智谱 AI API KeyLLM 对话页和风天气 API Key天气页OneNET 产品/设备三元组不用可留占位值连接失败不影响其他功能。3. IAP 演示上位机 IAP 页面选择节点0x600/0x601与固件源本地 bin / W25Q64 / HTTP点升级即可看到进度条CRC 校验通过后 Bootloader 跳转新 APP。七、开发环境ESP32-S3ESP-IDF ≥ 5.1推荐 5.2/5.3LVGL 9.xmanaged componentSTM32F103arm-none-eabi-gcc 12 与 CMakeCMakePresets.json或 STM32CubeIDE.ioc可重新生成 CubeMX 工程另附BootLoader_device*/tools/can_iap_flash.py可用 CAN 口直接刷 Bootloader 初始镜像。八、写在最后这个项目把嵌入式求职常被问到的几块硬骨头串成了一条完整的链路LVGL 多页 UI TWAI/CAN 驱动 Bootloader/双区 IAP CRC 校验 OTA MQTT 物模型 自研 RTOS 内核而且每个环节都有实机可演示。仓库是多个子工程的合并快照结构清晰欢迎 Star / Fork / 提 Issue 交流。再放一次地址https://github.com/1919884213/ESP32-LCD-CAN-IAP
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

大模型系列——通过 MCP 服务对接 PostgreSQL 取数:TaoToken 统一 Key 通道配置实录 2026/9/30 23:47:28

大模型系列——通过 MCP 服务对接 PostgreSQL 取数:TaoToken 统一 Key 通道配置实录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
UltraEdit-32 V14.20 注册码验证有效:TaoToken 统一 Key 通道下的授权配置与校验 2026/9/30 23:47:21

UltraEdit-32 V14.20 注册码验证有效:TaoToken 统一 Key 通道下的授权配置与校验

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
电赛工程化实战:从元器件选型到四天三夜系统设计复盘 2026/9/30 23:47:21

电赛工程化实战:从元器件选型到四天三夜系统设计复盘

电赛收官季总是最热闹的,省赛评分刚过、国赛名单还在发酵,很多队伍已经开始为下一届做技术储备。就在这几天,贸泽助力电赛的系列直播课程也正式收官了。我一路跟下来,最大的感受是:这套课程没有把重点放在“教你背知识…

阅读更多 →
我花三天实测了DeepSeek V4,发现它根本不是来跟GPT-4o打架的:一份TaoToken统一Key接入配置实录 2026/9/30 23:47:21

我花三天实测了DeepSeek V4,发现它根本不是来跟GPT-4o打架的:一份TaoToken统一Key接入配置实录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
AI 前沿日报:2026年8月15日|Qwen3.8-27B 本地跑通与 TaoToken 统一 Key 配置 2026/9/30 23:47:15

AI 前沿日报:2026年8月15日|Qwen3.8-27B 本地跑通与 TaoToken 统一 Key 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
传统产品经理转AI产品经理,原来的能力哪些能保留,哪些必须重学? 2026/9/30 23:47:14

传统产品经理转AI产品经理,原来的能力哪些能保留,哪些必须重学?

传统产品经理转型AI产品经理并非全盘推翻原有能力体系,而是底层通用能力完整保留,核心技术业务能力全面重构。传统PM积累的需求洞察、用户思维、商业拆解、项目推进四大核心能力,是AI产品经理开展工作的基础底盘,无需重复学习&…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉