UDS_CAN刷写工具开发计划
本文最后更新于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月
12345678911121314151617181920
学习阶段
CAN 协议基础
UDS 协议基础
ECU 烧写流程
工具使用
HEX/S19 文件结构
ZLG CAN 驱动
实践
开发阶段
分解需求及架构设计,划分功能模块
通信模块开发
确定 UI 大致框架
移植 ZLG CAN 驱动
构建发送 / 接收报文逻辑
支持基本的诊断服务
构建日志系统
烧写逻辑开发
解析 HEX 或 S19 文件
下载请求逻辑
校验机制
错误处理
优化逻辑阶段
系统优化
测试与修复
最终验收
文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇