软件刷写又是触碰到我的知识盲区了,之前一直都没有深入这个话题的机会,最近在和客户对这一方面的需求,也是赶鸭子上架,边学边用啊。用这篇文章,把相关的知识都梳理一遍。 其实刷写的流程就是按照UDS的服务,一步一步的进行的,之前我小小总结了一下UDS的知识和其中比较重要的服务,有兴趣的可以看看:UDS基础_Emmayetta的博客-CSDN博客_p2server。在刷写中涉及到了几个没提过的服务,也可以借此机会一并看了。 最重要的还是标准:ISO 14229 Road vehicles-Unified diagnostic Services (UDS),在标准的第17章Non-volatile server memory programming process描述了刷写的流程,实话说我没看仔细,只是需要查找一些问题时才会搜搜。在项目中理解到的一般流程足以帮助理解了: 1.1 预刷新
1.2 主刷写
1.3 后刷新
这里穿插一个小点,功能寻址和物理寻址的区别:功能寻址是广播诊断请求,同时等待总线上的ECU给与响应,即一对多;物理寻址发送特定的诊断请求,等待指定的ECU给与响应,即一对一。
一次完整的刷写,可以通过记录诊断报文完整地看到这些服务的执行。虽然没有完全搞清楚细节,但是大致流程是比较清晰的。 |
|