CAN/CANFD
CCP/UDS
Bootloader/OTA
ECU/VCU/FCU
Simulink/ECUCoder
Ethernet
Hardware
Download
上一篇
下一篇
刷写过程的通信协议
一.刷写协议概述
二.刷写协议的四个主要阶段
-2.1.测试阶段
-2.2.预编程阶段
-2.3.编程阶段与后编程阶段
三.基于UDSonCANFD的高速刷写
-3.1.高速刷写的前提条件
-3.2.高速刷写协议
四.深入理解刷写协议
回到顶部
刷写过程的通信协议
一.刷写协议概述
二.刷写协议的四个主要阶段
-2.1.测试阶段
-2.2.预编程阶段
-2.3.编程阶段与后编程阶段
三.基于UDSonCANFD的高速刷写
-3.1.高速刷写的前提条件
-3.2.高速刷写协议
四.深入理解刷写协议
回到顶部
# 刷写过程的通信协议 Bootloader刷写控制器的过程必须遵循一定的通信协议,简称刷写协议。 ## 一.刷写协议概述
CAN总线通信可靠,抗干扰能力强,但是由于Bootloader需要传输至少几千帧CAN报文,因此存在漏帧或者通信中断的可能性,为了防止漏帧或者通信中断造成应用程序升级失败,需要制定通信协议来处理漏帧或者通信中断造成的故障。 在实际项目中,可以自定义通信协议,也可以参考一些行业通用协议比如UDS协议。RapidECU使用UDS协议作为通信协议,实现了控制器的Bootloader刷写。UDS刷写协议分为两个版本,基于UDSonCAN的低速刷写协议与基于UDSonCANFD的高速刷写协议。 基于UDSonCAN的低速刷写协议上位机发送CAN ID为0x700,上位机接收CAN ID为0x701,波特率为500kbps。 基于UDSonCANFD的高速刷写协议上位机发送CAN ID为0x700,上位机接收CAN ID为0x701,仲裁域波特率为500kbps,数据域波特率为2Mbps。 ## 二.刷写协议的四个主要阶段
在UDS(ISO14229-1 章节15.2)中,将控制器刷写分为预编程阶段、编程阶段与后编程阶段三个主要阶段。为了上位机软件可以获取各种ECU信息,RapidECU添加了测试在预编程阶段之前还添加了测试阶段,因此RapidECU刷写协议可分为测试阶段、预编程阶段、编程阶段与后编程阶段四个主要阶段。 ### 2.1.测试阶段
测试阶段并未在ISO 14229中定义,但是使用了SID=0x3E与SID=0x22两项服务,目的是上位机按下“测试”按钮之后获取各种ECU信息。测试阶段的详细通信过程如下图: ![](images/B00.png) ### 2.2.预编程阶段
预编程阶段为ISO 14229-1 章节15.2定义的预编程阶段,只保留了标准步骤,未采用可选步骤或者自定义步骤。预编程阶段的详细通信过程如下图: ![](images/B01.png) ### 2.3.编程阶段与后编程阶段
ISO 14229-1 章节15.2定义了Bootloader刷写的编程阶段与后编程阶段,RapidECU刷写协议编程阶段与后编程阶段的详细通信过程如下图,其中请求擦除Flash与请求CRC校验为自定义步骤,其余为标准步骤。 ![](images/B02.png) ## 三.基于UDSonCANFD的高速刷写协议
### 3.1.高速刷写的前提条件
支持基于UDSonCANFD的高速刷写协议需要三个前提条件: 1. 控制器本身支持基于UDSonCANFD的高速刷写协议,目前支持高速刷写协议(同时也支持低速刷写协议)的控制器主要有RapidECU-U34(2024年1月1日之后生产)、RapidECU-U34H、RapidECU-F23等。 2. 使用USBCANFD卡,其它CAN卡比如USBCAN卡无法支持高速刷写协议。 3. 使用MeCa2.0D以上的软件版本,老版本的MeCa软件无法支持高速刷写协议。 如果用户当前的开发环境满足以上条件,强烈推荐使用基于UDSonCANFD的高速刷写协议,因为高速刷写协议相比低速刷写协议刷写速度提升了三倍以上。比如同样刷写一个2MB的S19文件,低速刷写协议需要3分钟左右时间,而高速刷写协议只需要1分钟左右时间。另外,高速刷写环境可以兼容各种型号控制器的刷写,包括没有CANFD接口的老版本控制器。 ### 3.2.高速刷写协议
高速刷写协议相比低速刷写协议,测试阶段、预编程阶段完全相同。在编程阶段,为了提升传输数据的速度高速刷写协议引入了CANFD通信,详细通信过程如下图,其中请求切换CANFD为自定义步骤。 ![](images/B03.png) ## 四.深入理解刷写协议
刷写协议实践性较强,单纯通过学习文档是无法深入理解刷写协议的。用户如果想要比较深入地理解刷写协议,最好的方法是分析实际的刷写通信过程CAN报文。比如使用RapidECU-U34控制器(其它型号控制器类似)与MeCa软件构成一套完成的刷写系统进行实际的刷写通信。同时在刷写CAN总线(即标定CAN总线)上并联一个CAN卡采集刷写过程中的CAN报文,之后通过分析采集到的CAN报文可以形成对刷写过程的比较全面的认识。 如果用户需要开发自己的刷写软件(基于上位机或者诊断仪),则必须深入理解刷写协议。在深入理解刷写协议之后,用户不仅可以开发自己的刷写软件,而且还可以在自己的硬件上移植类似的刷写协议。