随着市场对汽车安全性、智能性、环保性等要求越来越高,汽车装配的电子控制单元数目迅速增加。因此汽车电子对车载总线的带宽和传输速率提出了更高的要求,目前can(controller area network)已经难以满足日益增加的需求。canfd(can with flexible data-rate)从传输速率和数据长度两方面优化了can总线的性能。本文实现了基于canfd总线的速率为5mbps的 bootloader软硬件的开发,提高了目前汽车电子控制器软件下载更新的速率。
canfd介绍
canfd总线于2011年由博世公司首次提出,在2015年国际标准化组织(iso)正式发布支持canfd的11898-1协议。与can总线相比较,canfd主要优化了以下方面:
• 仲裁场和应答场速率可达1mbps;数据场速率可变,根据具体的应用场景可以达到5mbps或者更高;
• 数据场的长度可变,数据长度可达64个字节。
综合以上几处优化,canfd在以下几方面应用较有优势:
• 与传统can相比,更长的数据域,带宽利用率更高;
• 传输速率更快,就目前而言,正常通信时,可达到2mbps的通信速率,如将原标准can网段替换为canfd网段可有效降低原网段的负载率,下载时,可达5mbps的通信速率,可有效提升下载效率;
• 可用于长度大于8个字节的信号的传输,例如peps的身份认证信号,在标准can中,需使用多条can报文传输,在canfd中,只需一条canfd报文即可。
canfd报文与can报文格式的区别如图1所示。
• canfd报文新增了fdf(fd format)位,用于区分传统can报文和canfd报文。brs(bit-rate switch)位表示数据场的速率切换;esi(error state indicator)位表示目前节点的错误界定状态;
• 考虑到数据场长度增加,为了提高通信的可靠性,canfd设计了新的冗余校验机制;
• 除了iso11898,iso15765-2也针对canfd的应用进行了更新,当前的诊断协议的传输层已支持canfd报文格式。
图1.canfd报文与can报文格式对比
bootloader设计与实现
• 系统概述
如图2所示,整套刷新系统主要包括bootloader上位机、刷写工具以及集成bootloader下位机软件的控制器。用户通过上位机的交互界面进行传输速率、请求id等设置并加载需要更新的控制器软件程序。bootloader下位机软件接收上位机传递的数据并写入到控制器的flash存储器中,实现控制器的在线刷新。刷写工具主要用于canfd报文传输。
图2.系统结构图
• 硬件实现
本实验中,开发了带canfd接口的控制器。图3给出了控制器在canfd收发器端的硬件原理框图。系统控制器选用瑞萨rh850 f1h系列芯片,该芯片支持6路canfd,canfd收发器选用nxp公司的tja1044gt。为保证控制器的emc性能以及网络系统要求,收发器需匹配合适的外围电路,包括终端电阻、终端电容及共模电感等。
图3.rh850f1h端canfd收发器原理图
• 软件实现
♦ bootloader下位机软件
bootloader软件基于his协议开发。bootloader软件架构采用分层模块,能够尽量降低模块之间耦合,提高开发效率和质量。
bootloader软件主要由canfd driver、canfd tp和dcm三部分组成,canfd driver模块实现canfd控制器和收发器硬件初始化以及canfd报文收发,canfd tp主要实现iso 15765-2协议以及诊断报文的处理,dcm模块实现iso14229中与程序下载相关的服务。
图4.bootloader软件架构
memory operation module负责控制器内存逻辑块配置、分段处理和非易失性数据管理。security module负责安全访问算法和数据完整性算法。runtime environment实现诊断协议的回调处理和控制整个系统的运行。上层的bootloader manager负责应用程序和bootloader启动处理及stay in boot功能。bootloader application实现时钟配置、时间片处理及中断重映射功能。
♦ bootloader上位机软件
图5.bootloader上位机配置界面
上位主要功能为系统设置和软件升级两部分。系统设置中可以进行仲裁场波特率设置、数据场波特率设置、通信通道选择、请求和响应id设置、id类型选择。为保证传输数据有效,上位机中设置有crc校验算法和安全访问算法的输入,crc校验用以保证数据传输的完整性,安全访问算法与下位机中的安全访问算法保持一致。软件升级主要为驱动文件选择和需要刷新的数据文件的添加。
ecu刷新实验
为了验证基于canfd总线的软件刷新效率,分别基于canfd总线和can总线的bootloader软件进行了八组刷写实验。
图6.ecu软件刷新实验
表1.基于canfd和can总线的刷写速率对比
如表1所示,canfd总线仲裁场设置速率为500kbps,数据场速率设置为5mbps, can总线的通信速率设置为500kbps。 刷写数据范围从420kb到3392kb,对比实验数据可知基于canfd的刷写效率相对普通can 分别提升保持在300%之上。
总结
本文介绍了基于canfd的bootloader软硬件设计及实现,通过实验验证相对于传统的基于can总线刷新方式,基于canfd总线的刷新效率有较大的提高。目前车载网络架构一般会根据控制器的功能分为多个网段,各个网段之间通过网关交互信息。在未来车载控制器刷新中可以充分利用canfd的带宽,实现基于网关的多路控制器同时刷新。