基于Ethernet的车载ECU诊断刷新研究
2021-07-29黄志坚姜立标
黄志坚,姜立标
(华南理工大学机械与汽车工程学院,广东广州 510641)
0 引言
随着汽车领域的迅猛发展,汽车越来越智能化,相应的汽车电子控制单元ECU数量也越来越多,ECU功能越来越复杂。同时随着自动驾驶技术的发展,汽车需要配备更多的摄像头、雷达等传感器,这些传感器感知系统会采集到大量的数据,要将这些数据快速完整地传输到计算机处理单元,并及时地做出响应,也对总线的数据传输能力和可靠性提出了非常高的要求[1]。
当前基于CAN总线的车载网络已经难以满足需要传输大量数据的需求,车载以太网的诞生可以适应传输大量数据的需求,在车载网络通信,传输数据和一次性传输数据大小等各个方面都高于CAN总线的性能。本文作者基于DoIP协议实现了车载ECU在线软件升级,极大提升了当前车载ECU刷新的速率,同时也验证了车载以太网应用于车载ECU刷新的可行性。
1 以太网介绍
自20世纪70年代以太网问世以来,以太网已经发展成为世界上最受欢迎的局域网LAN技术,基于Broadcom的Broad-Reach技术(百兆以太网技术)的车载以太网也得到广泛应用。传统的车载网络一次只能允许网络中的一台设备进行通信,但是Broad-Reach支持全双工通信,使得一条链路上的两台设备能够同时发送和接收数据。如图1所示。
图1 以太网全双工通信
这表明车载以太网支持额定速率为100 Mb/s的全双工通信,同时意味着两节点间的理论总数据速率能够达到200 Mb/s,而CAN、LIN、MOST以及FlexRay规定的总带宽只是为它们的额定速率,这个带宽由所有设备共享。
以太网由点到点线路构成,即每根UTP电缆只连接两个节点,一端一个。各个节点是通过交换机连接的,形成的网络拓扑结构有星型、树型以及菊花链型拓扑结构。同时以太网基于IEEE802.3的接口标准的数据链路层可以利用TCP/IP的高层网络通信协议进行网络通信,并不会与传统以太网通信技术相排斥。
车载以太网不仅可以提供高速的带宽,而且具备支持未来更高性能的潜力。相比于当前应用广泛的CAN总线技术,车载以太网有如下优势:
(1)车载以太网带宽高并且是独享带宽,效率更高,而且车载以太网还支持音视频数据,可以更好地运用在汽车信息娱乐系统。
(2)车载以太网可以采用面向服务的体系架构,作为中央以太网骨干交换机,与汽车各ECU通信。
(3)车载以太网可以通过TCP/IP与车辆外部网络进行通信,比如借助计算机通过车载以太网进行ECU软件刷写,提高了效率,节约了成本。
IEEE802.3标准规定的以太网帧格式包含若干个帧报头字段、传输数据(数据场长度范围为46~1 500字节)和一个单字段报尾(CRC校验帧尾),如图2所示。
图2 以太网帧格式
2 DoIP协议介绍
DoIP(Diagnostic communication over Internet Protocol)是一种基于互联网协议的诊断。基于该诊断协议,主机厂和售后工程可以对车辆进行诊断、刷新等操作[2]。DoIP协议形成了ISO 13400标准《道路车辆——基于互联网协议的诊断通信(DoIP)》。该标准分成3个部分:
(1)通用信息和用例定义;
(2)传输协议和网络层服务;
(3)基于IEEE802.3的车用有线接口。
即ISO 13400标准介绍了其物理层、数据链路层、传输层、网络层等内容。依据OSI七层模型,DoIP与基于CAN总线的诊断(DoCAN)的协议栈对比如图3所示。
图3 DoIP与DoCAN协议栈对比
DoIP报文的结构是由DoIP报头和DoIP净荷构成,DoIP报头包含了协议版本、初始协议版本、净荷类型、净荷长度等信息;DoIP净荷数据长度范围为0~4 294 967 295字节,相当于4 GB大小的数据。DoIP净荷中包含源地址、目的地址和用户数据,其中源地址相当于该DoIP报文的发起者;目的地址则为接收该DoIP报文的接收者;用户数据如UDS相关请求。DoIP协议的结构如图4所示。
图4 DoIP协议的结构
3 Bootloader开发与实现
3.1 系统简介
如图5所示,整个车载ECU刷写系统主要有Bootloader上位机,刷新硬件工具及其带有Bootloader的下位机开发板。工程师或者测试人员通过PC端上位机的以太网刷写界面进行ECU的IP地址,上位机的IP地址,P2服务参数等配置,并在文件加载框中加载所需要的更新的APP文件。下位机接收到上位机传输的数据后将其写入ECU开发板的Flash存储器之中,实现了基于Ethernet的ECU在线软件刷写。
3.2 软件实现
3.2.1 下位机软件
如图6所示为Bootloader的软件架构图。该软件是基于HIS接口协议而开发的。Bootloader软件架构中各个模块是分开的,这样设计能减小各个模块之间的相互影响,从而提高开发的质量和效率。
Bootloader软件主要包括以下部分。Boot Management启动管理模块负责软件和Application的启动顺序。Bootloader应用程序模块负责实现软件功能,如时钟配置、时间片中断重映射。Bootloader运行环境模块负责诊断协议的函数回调和控制系统运行。Memory Management内存管理模块负责数据管理和逻辑块配置。Ethernet驱动模块负责以太网收发器和控制器与传输层交互。TCP/IP 协议栈模块负责网络层和传输层的实现。DoIP模块负责封装诊断报文。
图6 Bootloader的软件架构
3.2.2 上位机软件
如图7所示为上位机软件界面。上位机软件功能主要分为系统参数配置和软件刷写两大块。系统参数配置中可以对ECU的IP地址,上位机的IP地址,P2服务参数,当前节点ECU等配置,目的是确保上位机和车辆ECU之间能够正常通信。软件刷写主要是加载安全密钥文件,刷写驱动文件和刷写需要的APP数据文件。
图7 上位机软件配置及运行界面
4 ECU刷新仿真实验
为了验证车载以太网应用于车载ECU刷新的可行性及其刷新速率,文中搭建台架,分别对基于车载Ethernet,基于CAN总线的刷新软件进行了八组对比刷新仿真实验,如图8所示。
图8 基于车载以太网ECU刷新仿真实验
刷新仿真实验中,以太网设置为100 Mb/s的速率,CAN总线的比特率设置为500 kB/s。如表1所示,以太网刷新数据大小范围为1 000~8 560 kB,刷新时间从18~198 s。CAN总线刷新数据大小范围为880~3 832 kB,刷新时间从249~1 283 s。对比两者刷新实验数据,很显然基于以太网的诊断刷新时间性能远高于基于CAN总线的诊断刷新时间性能。
表1 基于车载以太网和基于CAN总线的刷新性能对比
如图9所示为基于以太网和基于CAN总线的刷新时间对比图。
图9 基于以太网和基于CAN总线的刷新时间对比图
从图中可以清晰看出两者刷新之间的时间差别,在刷新数据大小为1 000 kB以内时,基于CAN总线的刷新时间高于200 s,而在刷新数据大小为8 560 kB时,基于以太网的刷新时间仍小于200 s,为198 s。可以说,基于以太网刷新的时间性能是远大于基于CAN总线的刷新时间性能的。而且,随着刷新文件越来越大,基于CAN总线的诊断刷新效率越来越低,而基于以太网刷新的时间性能优势却越来越显著。
5 结论
车载Ethernet是解决当前智能汽车所需网络通信带宽的一种相当有效的技术,也是汽车网络未来发展的必然趋势。文中通过介绍基于车载以太网的Bootloader软件的开发与实现,并通过刷新仿真实验验证了基于Ethernet的诊断刷新时间性能远高于基于CAN总线的诊断刷新时间性能。当前车辆各个ECU之间是通过中央网关进行互连,在未来车载ECU诊断刷新可以充分借助以太网的高带宽,来实现通过中央网关同时对车辆多个ECU进行以太网刷新,能大大提高刷新的效率,降低相应的成本。