随着汽车智能化、电动化的普及,汽车电子电器架构发生了巨大变化,整车网络也有原来的硬线连接,发展为采用总线架构,CAN、LIN、Most、同时随着传输数据的大幅增加以太网DOIP越来越普及。但电控单元在出厂后的维修和升级也面临挑战。越来越多的主机厂要求零部件供应商,必须满足UDS标准,并开发诊断和升级功能,避免车辆后期的维修花费大量人力进行故障排查和拆ECU进行升级。
一 为什么要基于UDS设计Bootloader?
1.1 假如你的控制器有外壳,却没有设计bootloader的话,每次更新ECU的程序,你都需要把外壳拆开,用烧写器来更新程序。有了bootloader,你就可以通过CAN线来更新程序了。更方便些的话,甚至可以通过OTA进行远程升级。
1.2 那为什么使用UDS呢?主要是为了规范bootloader的全过程。比如烧写电小二牌ECU时,我们肯定希望其他牌子的ECU处于一个静默的状态,都歇一歇,这就需要一个大家共同执行的标准来进行规范,什么时候停发数据,什么时候不能再储存DTC了等等。又比如在调试时,大家肯定希望你的控制器经由CAN烧写的过程是大家都能看得懂的,是满足于某种规范的。由此,UDS在设计时考虑了bootloader的需求,专门为bootloader设计了几个服务,供大家使用。主机厂在发需求时自然就要求大家要在UDS规范的基础上完成bootloader功能了。
二 FBL设计需要注意哪些事项
首先我们要对平台使用的MCU了解,设计的部分如下:
2.1 MCU的FLASH 读写、擦除功能
2.2 MCU的启动跳转,好的升级功能的设计需要把FLASH划分为两个区域,一个BOOT区和一个APP区,见下图,这样做的好处是一旦升级过程中被终止了或者出现了错误,APP被擦除了,但boot还是保留的,还可以进行二次升级。可以大大降低了升级可能带来的风险。
2.3 需要针对主机厂或者自定义的升级文档解析方式了解。不同的主机厂要求提供的升级文件格式一般如下,Hex、S19、bin ,不但要了解这个需求还要了解上位机发送这些格式的做法,透传还是针对这些文件解析后发给下位机,这样明确后下位机设计才符合要求。
2.4 要对UDS标准熟悉
2.5 熟悉FBL的升级流程,按照流程设计下位机Boot和上位机软件。一般FBL的升级大致流程如下:
三 Bootload 案列
3.1 预编程阶段
3.2 主编程阶段
3.3 后编程阶段
【免责声明】本文摘自网络,版权归原作者所有,仅用于技术/信息分享,非商业用途!若有涉侵权等告知,将及时删除,感谢关注!
评论
加载更多