基于python的modbus协议编程_UDS on CAN协议的Bootloader刷写

Bootloader 又称引导加载程序,是系统上电之后运行的第一段代码。由于汽车软件功能需求变更以及功能变得越来越多,在开发ECU过程中需要频繁的更新软件升级程序,对应解决方案是目前流行方案都是通过UDS协议进行刷写,本文介绍基于UDS协议的Bootloader刷写软件实现原理。

Bootloader是什么?

Bootloader是嵌入式系统上电后运行的第一段代码,即Bootloader从目标机上的某个固态存储设备上将操作系统加在到RAM中运行,Bootloader可以简单理解裸机程序,在这里将判断是否进行更新程序,或者不更新,如果不更新将完成其他工作,比如部分初始化工作,进入到应用层等。汽车ECU控制器再加入Bootloader之后可以理解划分APP层和Bootloader层,Bootloader层负责日后的程序升级功能,Bootloader更新程序通常不会擦除自己的代码块区域,防止异常中断而导致无法再次更新,所以加入Bootloader的ECU是可以继续中断刷新。

UDS协议简介

UDS(Unified Diagnostic Services,统一的诊断服务)是ISO 15765 和ISO 14229 定义的汽车通用诊断协议,它可在不同的汽车总线(例如CAN, LIN, Flexray, Ethernet 和 K-line)上实现,UDS本质上是一种定向的通信,是一种交互协议(Request/Response)。诊断规范定义了诊断仪和汽车ECU之间的交互。基于UDS的刷写用到的服务包含以下:

你可能感兴趣的:(基于python的modbus协议编程_UDS on CAN协议的Bootloader刷写)