Design of CAN node software ypdate based on UDS
马建辉 123 ,慕永云 123 ,侯冬冬 123 ,胡代荣 123 ,朱亮 1
(1.齐鲁工业大学(山东省科学院),山东 济南,250353;
2.山东省科学院主动化研讨所,山东 济南,250014;
3.山东省轿车电子技术要点实验室,山东 济南,250014)
摘要:轿车CAN节点软件晋级进程中许多频频的CAN通讯形成网络负载率升高,或许导致大部分节点功用降级或许软件晋级失利,软件晋级时刻过长也会给其它节点的功用安全带来危险。依据UDS on CAN协议规划了一种Bootloader,在软件晋级进程中经过特定的UDS服务制止CAN网络节点的运用报文和网络办理报文发送,晋级完结后康复CAN网络节点的运用报文和网络办理报文发送,确保了软件晋级进程中的CAN网络带宽。一起结合节点CAN报文接纳服务程序规划、缓冲区设置以及对多帧通讯参数的调整,下降了程序晋级时刻。
关键词:CAN节点;软件晋级;UDS on CAN;Bootloader;多帧通讯
0 导言
轿车电子零部件产品的生命周期一般多达10年以上,运用进程中或许会露出一些产品布置初期未能测验出来的bug,导致产品存在被修正的需求,此外,新技术的呈现也或许导致产品的功用晋级。因为轿车电子零部件装置空间受限,经过拆开并更换新的电子零部件的办法进行功用晋级或许bug修正,不只操作杂乱,并且本钱昂扬。因而,在施行了CAN总线体系的轿车中,一般是规划一种Bootloader,经过CAN总线进行轿车电子零部件功用的晋级,布置施行新技术,或修正产品bug。
在轿车CAN网络中进行程序晋级时,其它CAN节点的运用报文和网络办理报文会占用许多的CAN网络带宽资源,推迟整个晋级进程,并且,程序晋级进程中许多频频的CAN总线通讯会形成大部分节点功用的降级,因而,有必要操控并尽或许下降软件晋级时刻。
经过CAN总线晋级CAN节点程序的办法 [1] ,提出在进行节点程序更新之前,制止CAN网络节点报文发送和毛病码设置,避免了程序晋级进程中网络负载率过高的问题,但没有针对性地提出下降晋级时刻的解决方案。
本文规划了一种依据UDS协议的Booloader,在下载运用程序的Flash数据之前,经过UDS服务制止CAN网络节点报文发送和毛病码设置,经过设定多帧接纳缓冲区巨细以及多帧通讯中的STmin和BS参数,最大程度上下降了晋级时刻。
1 依据CAN的UDS协议
界说了UDS [2] (表1 UDS报文格局services,一致确诊服务),侧重于描绘确诊服务部分,是全球通用的轿车确诊技术标准。ISO 15765-3以界说的服务为根底,标准了依据CAN总线的确诊服务 [3] (UDS on CAN),既给出了底层软硬件要求,包含网络守时、运用层守时等具体内容,又给出了轿车CAN节点程序晋级和通讯的主体流程。
依据客户端-服务器的恳求-呼应式体系架构 [4] ,在轿车CAN网络中,确诊仪为建议恳求的客户端,CAN节点为回来呼应的服务器,UDS报文格局如表1所示。
2 Bootloader规划
2.1 晋级进程规划
在轿车CAN网络中经过Bootloader进行CAN节点的软件晋级,其它节点的运用报文和网络办理报文会占用许多的网络带宽,为了给晋级进程发明一个杰出的网络环境,将软件晋级进程分红编程前-编程-编程后三个阶段,如图2所示。
在“编程前”阶段,首要进入扩展会话形式,然后经过功用寻址的UDS服务制止各个节点的运用报文发送、网络办理报文发送,一起,因为许多节点收不到其它节点的报文后会记载DTC毛病,因而,首要制止各个节点的DTC检测,再制止各个节点的报文发送 [5] 。
在“编程”阶段,首要进入编程会话形式,然后进行安全拜访,下载运用程序对应的指令数据。
经过履行被复制到指定RAM空间中的Flash驱动程序,擦除并烧写运用程序Flash数据。运用程序数据下载并烧写完结后,对数据进行校验,校验经往后,在数据Flash中存储“运用程序有用标志”。
在“编程后”阶段,首要进入扩展会话形式,然后经过功用寻址的UDS服务康复各个节点的运用报文发送、网络办理报文发送,然后康复各个节点的DTC检测。
2.2 UDS服务
软件晋级运用的UDS服务如表2所示。其间,“编程前”和“编程后”阶段运用到的确诊服务包含“确诊会话操控”、“通讯操控”、“操控DTC设置”,“编程”阶段运用到的确诊服务有“确诊会话操控”、“安全拜访”、“恳求下载”、“数据传输”、“恳求退出传输”、“ECU复位”。
2.3 指令数据下载
“编程”阶段的“下载运用程序”选用“恳求下载”、“数据传输”和“恳求退出传输”服务下载运用程序的指令数据,流程如图3所示。
首要经过“恳求下载”服务设定“数据传输”服务的多帧报文数据长度,然后以多帧通讯办法完结“数据传输”服务,完结“恳求下载”服务指定长度的多帧报文数据的传输后,经过“恳求退出传输”服务退出数据传输。
2.4 软件晋级时刻
“编程前”阶段、“编程后”阶段以及“编程”阶段的进入扩展会话形式、制止DTC检测、制止运用报文和网络办理报文发送、进入编程会话形式、安全拜访、数据校验、复位、康复运用报文和网络办理报文发送、康复DTC检测等UDS服务均选用单帧通讯,履行时刻固定,晋级时刻首要取决于“编程”阶段的“下载运用程序”。
“数据传输”服务选用多帧通讯办法,通讯速度由和BS的设置决议,此外,“恳求下载”服务设定的多帧报文长度不同,晋级时刻也不同。
3 软件晋级测验
笔者为某车厂开发了一款带有软件晋级功用的车身操控器,MCU为恩智浦中端16位单片机,晋级文件选用S19格局,文件巨细为左右,选用canoe规划了上位机晋级软件,挑选晋级文件后进行一键式下载,主动完结上述“编程前”-“编程”-“编程后”三个进程。软件晋级数据流如图4所示。
、BS、多帧报文长度的设置取决于报文接纳缓冲区容量和接纳端数据帧处理速度,为了进步接纳端数据帧处理速度,将CAN报文接纳中止服务程序放入RAM中履行。一起考虑到功用安全、MCU RAM容量和运转主频,将多帧报文长度设定为512字节,STmin设置为1 ms,BS设置为0,在这种设置下,软件晋级时刻能够操控在30秒以内,改进了开发人员和4S店服务人员现场晋级的体会。
4 定论
本文对在CAN总线上经过UDS服务进行节点软件晋级的进程进行了研讨,在下载程序指令数据前,制止CAN网络中所有节点的报文发送,下降了CAN节点的运用报文和网络办理报文对CAN总线带宽资源的耗费,避免了因网络负载率过高导致晋级失利的问题;一起,依据对UDS数据传输服务的剖析,设置合理的多帧报文长度和STmin参数,在确保功用安全的前提下,尽或许下降了软件晋级时刻。
参考文献:
[1] 比亚迪股份有限公司.车辆程序更新体系及车辆程序更新办法:我国, 201510510468.X[P].2015-8-19.
[2] Road vehicles–Unified diagnostic services (UDS) –Specification and Requirement ISO14229[S].2006(E).
[3] Road vehicles-Diagnostics on Controller Area Net works( CAN )-Part 3: Implementation of unified diagnostic services (UDS on CAN) ISO15765-3[S].2004(E).
[4] 陈姿霖 宋磊锋 张龙岗 董海.依据UDS的整车确诊体系规划办法[J].轿车电器,2017,(4):14-17.
[5] 李娟娟 刘孔祥 李济林.智能前照灯的CAN改写软件的规划[J].轿车电器,2012,(9):1-4.
作者简介
马建辉(1983),男,硕士,工程师,首要研讨方向:轿车电子、嵌入式。
本文来源于科技期刊《电子产品世界》2019年第4期第66页,欢迎您写论文时引证,并注明出处