<div id="paeqo"></div>
<div id="paeqo"></div>
<dl id="paeqo"><ins id="paeqo"></ins></dl>
  • <menuitem id="paeqo"></menuitem>
  • <li id="paeqo"><s id="paeqo"></s></li>
    <dl id="paeqo"></dl>
    <dl id="paeqo"><ins id="paeqo"><small id="paeqo"></small></ins></dl>

    新闻中心

    EEPW首页 > 设计应用 > 基于UDS的CAN节点软件升级设计

    基于UDS的CAN节点软件升级设计

    作者:马建辉 慕永云 侯冬冬 胡代荣 朱亮时间:2019-03-29来源:电子产品世界收藏

    Design of CAN node software ypdate based on UDS

    本文引用地址:http://www.9113521.com/article/201903/399039.htm

    马建辉 123 ,慕永云 123 ,侯冬冬 123 ,胡代荣 123 ,朱亮 1
    (1.齐鲁工业大学(山东省科学院),山东 济南,250353;
    2.山东省科学院自动化研究所,山东 济南,250014;
    3.山东省汽车电子技术重点实验室,山东 济南,250014)

           摘要:汽车过?#35752;?#22823;量频繁的CAN通信造成网络负载率升高,可能导致大部分节点功能降级或者失败,时间过长也会给其它节点的功能安全带来隐患。基于协议设计了一种,在软件升级过?#35752;?#36890;过特定的UDS服务禁止CAN网络节点的应用报文和网络管理报文发送,升级完成后?#25351;碈AN网络节点的应用报文和网络管理报文发送,保证了软件升级过?#35752;?#30340;CAN网络带宽。同时结合节点CAN报?#24917;?#25910;服务程序设计、缓冲区设置以及对?#38382;?#30340;调整,降低了程序升级时间。
           关键词:;软件升级;

      0 引言

           汽车电子零部件产品的生命周期一般多达10年以上,使用过?#35752;?#21487;能会暴露一些产品部署初期未能测试出来的bug,导致产品存在被修复的需要,?#36865;猓?#26032;技术的出现?#37096;?#33021;导致产品的功能升级。由于汽车电子零部件安装空间受限,通过拆卸并更换新的电子零部件的方式进行功能升级或者bug修复,不仅操作复杂,而?#39029;?#26412;高昂。因此,在实施了CAN总线系统的汽车中,一般是设计一种,通过CAN总线进行汽车电子零部件功能的升级,部署实施新技术,或修复产品bug。
      在汽车CAN网络中进行程序升级?#20445;?#20854;它的应用报文和网络管理报文会占用大量的CAN网络带宽资源,延缓整个升级过程,而且,程序升级过?#35752;?#22823;量频繁的CAN总线通信会造成大部分节点功能?#24917;?#32423;,因此,有必要控制并尽可能降低软件升级时间。
      通过CAN总线升级CAN节点程序的方法 [1] ,提出在进行节点程序更新之前,禁止CAN网络节点报文发送和?#25910;下?#35774;置,避免了程序升级过?#35752;?#32593;络负载率过高的问题,但没有针对性地提出降低升级时间?#24917;?#20915;方案。
      本文设计了一种基于UDS协议的Booloader,在下载应用程序的Flash数据之前,通过UDS服务禁止CAN网络节点报文发送和?#25910;下?#35774;置,通过设定多帧接收缓冲区大小以及中的STmin和BS?#38382;?#26368;大程度上降低了升级时间。
      1 基于CAN的UDS协议

    1554700425247784.png

           定义了UDS [2] (表1 UDS报文格式services,统一诊断服务),侧重于描述诊断服务部分,是全球通用的汽车诊断技术标准。ISO 15765-3以定义的服务为基础,规范了基于CAN总线的诊断服务 [3] (),既给出?#35828;?#23618;软硬件要求,包含网络定时、应用层定时等详细内容,?#25351;?#20986;了汽车CAN节点程序升级和通信的主体流程。
      基于客户端-服务器的请求-响应式系统架构 [4] ,在汽车CAN网络中,诊断仪为发起请求的客户端,CAN节点为返回响应的服务器,UDS报文格式如表1所示。
      2 Bootloader设计

           2.1 升级过程设计

           在汽车CAN网络中通过Bootloader进行CAN节点的软件升级,其它节点的应用报文和网络管理报文会占用大量的网络带宽,为了给升级过程创造一个良好的网络环境,将软件升级步骤分成编程前-编程-编程后三个阶段,如图2所示。
      在“编程前”阶段,首先进入扩展会话模式,然后通过功能寻址的UDS服务禁止各个节点的应用报文发送、网络管理报文发送,同?#20445;?#30001;于很多节点收不到其它节点的报文后会记录DTC?#25910;希?#22240;此,首先禁止各个节点的DTC检测,再禁止各个节点的报文发送 [5] 。
      在“编程”阶段,首先进入编程会话模式,然后进行安全访问,下载应用程序对应的指令数据。
      通过执行被复?#39057;?#25351;定RAM空间中的Flash驱动程序,?#33080;?#24182;烧写应用程序Flash数据。应用程序数据下载并烧写完成后,对数据进行校验,校验通过后,在数据Flash中存储“应用程序?#34892;?#26631;?#23613;薄?br/>  在“编程后”阶段,首先进入扩展会话模式,然后通过功能寻址的UDS服务?#25351;?#21508;个节点的应用报文发送、网络管理报文发送,然后?#25351;?#21508;个节点的DTC检测。
      2.2 UDS服务

           软件升级使用的UDS服务如表2所示。其中,“编程前”和“编程后”阶?#38382;?#29992;到的诊断服务包括“诊断会话控制”、“通信控制”、“控制DTC设置?#20445;?#32534;程”阶?#38382;?#29992;到的诊断服务有“诊断会话控制”、“安全访?#30465;薄ⅰ?#35831;求下载”、“数据传输”、“请求退出传输”、“ECU复位”。

    1554700454305125.png

    1554700529252579.png

      2.3 指令数据下载

         “编程”阶段的“下载应用程序”采用“请求下载”、“数据传输”和“请求退出传输”服务下载应用程序的指令数据,流程如图3所示。
      首先通过“请求下载”服务设定“数据传输”服务的多帧报文数据长度,然后以多帧通信方式实?#24103;?#25968;据传输”服务,完成“请求下载”服务指定长度的多帧报文数据的传输后,通过“请求退出传输”服务退出数据传输。
      2.4 软件升级时间

         “编程前”阶段、“编程后”阶?#25105;?#21450;“编程”阶段?#24917;?#20837;扩展会话模式、禁止DTC检测、禁止应用报文和网络管理报文发送、进入编程会话模式、安全访?#30465;?#25968;据校验、复位、?#25351;?#24212;用报文和网络管理报文发送、?#25351;碊TC检测等UDS服务均采用单帧通信,执行时间固定,升级时间主要取决于“编程”阶段的“下载应用程序”。
      “数据传输”服务采用多帧通信方式,通信速度由和BS的设置决定,?#36865;猓?#35831;求下载”服务设定的多帧报文长度不同,升级时间也不同。
      3 软件升级测试

           笔者为某车厂开发了一款带有软件升级功能的车身控制器,MCU为恩智浦中端16位单片机,升级文件采用S19格式,文件大小为左右,采用canoe设计了上位机升级软件,选择升级文件后进行?#24739;?#24335;下载,自动完成上述“编程前”-“编程”-“编程后”三个步骤。软件升级数据流如图4所示。
      、BS、多帧报文长度的设置取决于报?#24917;?#25910;缓冲区容量和接收端数据帧处理速度,为了提高接收端数据帧处理速度,将CAN报?#24917;?#25910;中断服务程序放入RAM中执行。同时考虑到功能安全、MCU RAM容量和运行主频,将多帧报文长度设定为512字节,STmin设置为1 ms,BS设置为0,在这种设置下,软件升级时间可以控制在30秒以内,改善了开发人员和4S店服务人员现场升级的体验。
      4 结论

           本文对在CAN总线上通过UDS服务进行节点软件升级的过程进行了研究,在下载程序指令数据前,禁止CAN网络中所有节点的报文发送,降低了CAN节点的应用报文和网络管理报文对CAN总线带宽资源的消?#27169;?#36991;免了因网络负载率过高导致升级失败的问题;同?#20445;?#26681;据对UDS数据传输服务的分析,设置合理的多帧报文长度和STmin?#38382;?#22312;保证功能安全的前提下,尽可能降低了软件升级时间。

           参考文献:
    [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),?#26657;?#30805;士,工程师,主要研究方向:汽车电子、嵌入式。

    本文来源于科?#35745;?#21002;《电子产品世界》2019年第4期第66页,欢迎您写论文时引用,并注明出处



    评论


    相关推荐

    技术专区

    关闭
    陕西11选5玩法
    <div id="paeqo"></div>
    <div id="paeqo"></div>
    <dl id="paeqo"><ins id="paeqo"></ins></dl>
  • <menuitem id="paeqo"></menuitem>
  • <li id="paeqo"><s id="paeqo"></s></li>
    <dl id="paeqo"></dl>
    <dl id="paeqo"><ins id="paeqo"><small id="paeqo"></small></ins></dl>
    <div id="paeqo"></div>
    <div id="paeqo"></div>
    <dl id="paeqo"><ins id="paeqo"></ins></dl>
  • <menuitem id="paeqo"></menuitem>
  • <li id="paeqo"><s id="paeqo"></s></li>
    <dl id="paeqo"></dl>
    <dl id="paeqo"><ins id="paeqo"><small id="paeqo"></small></ins></dl>