CAN_BootLoader_UDS实现V1.2

该博客详细介绍了基于STM32F429IGT6的CAN BootLoader如何实现UDS(统一诊断服务)接入。内容包括从预编程阶段到主编程阶段的UDS通信过程,如进入会话模式、安全访问检查、数据写入、擦除内存、下载程序和一致性检查等步骤,并演示了在APP和BOOT状态下的服务执行。
摘要由CSDN通过智能技术生成

UDS_CAN_BootLoader_Based_On_STM32F429IGT6

【CAN_BootLoader1.0_伪UDS接入实现-哔哩哔哩】 CAN_BootLoader_伪UDS实现_哔哩哔哩_bilibili

【CAN_BootLoader1.2_UDS接入实现-哔哩哔哩】 CAN_BootLoader1.2_UDS接入实现_哔哩哔哩_bilibili

【CAN_BootLoader1.2_UDS接入实现模拟效果演示(解说版)】 CAN_BootLoader1.2_UDS接入实现模拟效果演示_哔哩哔哩_bilibili

2022/4/10 否定应答 7f 
预编程阶段_APP   
内容类型8位数据 
进入扩展会话模式S[0x10, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] 
肯定响应R[0x50, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] 
关闭DTCS[0x85, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] 
肯定响应R[0xc5, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] 
禁止非诊断报文的发送和接收S[0x28, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00] 
肯定响应R[0x68, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00] 
    
    
主编程阶段_BOOT   
内容类型8位数据 
进入编程会话模式S[0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] 
肯定响应R[0x50, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]由Boot段回复肯定响应
读取一个DID|密钥的一部分信息S[0x22, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] 
肯定响应R[0x62, 0xf1, 0x00, 0x4f, 0x4b, 0x00, 0x00, 0x00]读取DIDF100的数据:下位机模拟数据 0x4f, 0x4b   ASCII: O,K
安全访问检查S[0x27, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]请求seed
肯定响应R[0x67, 0x01, 0x36, 0x57, 0x00, 0x00, 0x00, 0x00]下位机模拟seed数据0x36, 0x57
安全访问检查S[0x27, 0x02, 0x4f, 0x4b, 0x00, 0x00, 0x00, 0x00]输入seed的key,预设读取的key数据 0x4f, 0x4b
肯定响应R[0x67, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]解锁成功
写入数据S[0x2e, 0x19, 0x96, 0x4c, 0x49, 0x41, 0x4e, 0x47]预设,模拟数据向DID1996写入数据:L,I,A,N,G
肯定响应R[0x6e, 0x19, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00] 
擦除MemoryS[0x31, 0x01, 0x10, 0x05, 0x00, 0x00, 0x00, 0x00]请求执行RID1005擦除Memory信息,
肯定响应(#5 OEM定义) StatusR[0x71, 0x01, 0x10, 0x05, 0x77, 0x00, 0x00, 0x00] 
请求下载S[0x34, 0x00, 0x32, 0x00, 0x13, 0x0c, 0x08, 0x01]
[0x34, 0x00, 0x32, 0x00, 0x13, 0x10, 0x08, 0x01]
#2 0x00以外的值是车辆制造商特定的 #3 7-4:size长度,3-0:Address长度
肯定响应R[0x74, 0x30, 0x02, 0xd0, 0x00, 0x00, 0x00, 0x00]返回最大缓冲区大小
传输数据|最多可以支持255个块S[0x36, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]每个块传输完成后,ECU肯定响应。判断是否还有更多块需要下载。
肯定响应R[0x76, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00](简化块只传输一块)size为0x34指定的大小
请求退出传输S[0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]ECU肯定响应
肯定响应R[0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]ECU肯定响应
检查一致性和数据完整性S[0x31, 0x01, 0x15, 0x55, 0x00, 0x00, 0x00, 0x00]请求执行RID1555检查数据完整性
肯定响应(#5 OEM定义) StatusR[0x71, 0x01, 0x15, 0x55, 0x77, 0x00, 0x00, 0x00] 
复位(跳转进入APP)S[0x11, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]0x40 – 0x5F 给车辆制造商特定用途
肯定响应(跳转进入APP)R[0x51, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]跳转识别成功
    
    
后编程状态_APP   
内容类型8位数据 
执行服务(11->10)S[0x11, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]跳转到新下载的APP段程序
进入扩展会话模式S[0x10, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] 
肯定响应R[0x50, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] 
允许非诊断报文的发送和接收S[0x28, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00]注意先执行28,后执行85,避免DTC误报
肯定响应R[0x68, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00] 
开启DTCS[0x85, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] 
肯定响应R[0xc5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] 
清除诊断信息S[0x14, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00]三个0xff全清空3byteDTC
肯定响应R[0x54 ,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] 
27服务,安全校验,准备写入数据S[0x27, 0xXX, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] 
2E服务,将编程信息写入到ECU中S[0x2E, 0xXX, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] 
切换到01默认会话模式S[0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] 
肯定响应S[0x50, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] 
    

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值