本文最后更新于11 天前,其中的信息可能已经过时,如有错误请留言评论。
一、学习阶段
1. 学习目标
主题 | 建议内容 |
---|---|
CAN协议基础 | – 帧结构(标准帧/扩展帧) – 位定时、仲裁、CRC校验 – CAN报文收发逻辑 |
UDS协议基础 | – ISO 14229 的服务结构 – 请求与响应格式 – 常用服务(0x10,0x27,0x34,0x36,0x37) – 会话控制与安全访问 |
ECU烧写流程 | – ECU进入下载模式流程 – 固件传输与写入Flash的原理 |
工具使用 | – CAN分析仪(如ZLG USBCAN) – ZCANPRO等模拟ECU或测试CAN报文 |
HEX/S19文件结构 | – Intel HEX格式结构 – motorola s19格式结构 – 如何提取地址和数据段 |
ZLG CAN驱动 | 理解ZLGcan驱动逻辑,熟悉移植方式 |
2. 实践
在学习目标基础上搭配实践进行
主题 | 建议内容 |
---|---|
熟悉CAN收发 | 用USBCAN卡,掌握CAN发送/接收逻辑 |
构造UDS服务请求 | 可通过ZCANPRO等工具掌握0x10 01、0x27 01 等UDS请求并解析响应 |
理解HEX结构 | 写个小程序读入HEX文件并打印出地址+数据段(不限制工具,但建议使用QT) |
模拟一个简单ECU响应 | 可通过QT实现简单的通信功能 |
二、开发阶段
1.分解需求
根据刷写软件需求分解计划。
2.通信模块开发阶段
目标 | 说明 |
---|---|
确定UI大致框架 | 可通过调研学习,确定适合电驱系统的框架结构 |
移植ZLG CAN驱动 | |
构建发送/接收报文逻辑 | |
支持基本的诊断服务 | 如:0x10 诊断会话控制,0x27 安全访问 |
构建日志系统 | (如接收基本诊断服务的日志信息) |
2.1子任务拆解
①确定UI框架
模块 | 功能 |
---|---|
通信配置区域 | 设置 CAN 波特率、通道、协议参数(Tx/Rx ID) |
文件加载区域 | 加载 HEX/S19 文件并预览基础信息(大小/起始地址) |
烧写控制区域 | 进入会话、发送下载命令、进度条、校验等操作按钮 |
日志显示区域 | 显示发送/接收的CAN报文及状态信息 |
状态栏 | 显示当前连接状态、下载状态等 |
②移植ZLG CAN驱动
……
3.烧写逻辑开发阶段
目标 | 说明 |
---|---|
解析HEX或S19文件 | 把固件转换成地址+数据格式 |
下载请求逻辑 | 按照协议发送请求下载/传输数据/下载结束等指令 |
校验机制 | 传输完成后进行CRC或其他校验 |
错误处理 | 超时、拒绝服务、传输失败的异常应对策略 |
3.1子任务拆解
①解析hex
模块 | 说明 |
---|---|
文件读取模块 | 能够获取完整HEX数据 |
行格式解析器 | 判断是 HEX 还是 S19,按格式解析字段 |
地址拼接逻辑 | 处理 HEX 中的扩展地址段(类型04),或 S19 的多字节地址 |
数据缓存结构 | 将地址与数据缓存到结构中,例如 QMap<uint32_t, QByteArray> |
显示摘要信息 | 提取起始地址、数据总大小、段数量、末地址 |
对数据进行对齐 | 按块(如每块256字节)分组,为烧写传输做准备 |
②构建下载逻辑
….
4.优化逻辑阶段
目标 | 说明 |
---|---|
根据前期开发逻辑以及通用需求优化不足之处 |
周次 | 5 月 | 6 月 | 7月 | 8月 | 9月 | 10月 | |||||||||||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | |||
学习阶段 | |||||||||||||||||||||
CAN 协议基础 | |||||||||||||||||||||
UDS 协议基础 | |||||||||||||||||||||
ECU 烧写流程 | |||||||||||||||||||||
工具使用 | |||||||||||||||||||||
HEX/S19 文件结构 | |||||||||||||||||||||
ZLG CAN 驱动 | |||||||||||||||||||||
实践 | |||||||||||||||||||||
开发阶段 | |||||||||||||||||||||
分解需求及架构设计,划分功能模块 | |||||||||||||||||||||
通信模块开发 | |||||||||||||||||||||
确定 UI 大致框架 | |||||||||||||||||||||
移植 ZLG CAN 驱动 | |||||||||||||||||||||
构建发送 / 接收报文逻辑 | |||||||||||||||||||||
支持基本的诊断服务 | |||||||||||||||||||||
构建日志系统 | |||||||||||||||||||||
烧写逻辑开发 | |||||||||||||||||||||
解析 HEX 或 S19 文件 | |||||||||||||||||||||
下载请求逻辑 | |||||||||||||||||||||
校验机制 | |||||||||||||||||||||
错误处理 | |||||||||||||||||||||
优化逻辑阶段 | |||||||||||||||||||||
系统优化 | |||||||||||||||||||||
测试与修复 | |||||||||||||||||||||
最终验收 |