APP下载

无人车AVB通信及降低通信时延方法研究

2022-12-23徐晓林秦宗光赵毅栋

自动化仪表 2022年12期
关键词:以太网延时报文

徐晓林,秦宗光,赵毅栋

(1.郑州科技学院大数据与人工智能学院,河南 郑州 450064;2.宇通客车股份有限公司,河南 郑州 450000)

0 引 言

以太网音视频桥接(audio video bridger,AVB)技术是对现有以太网功能的扩展,可解决现有车载控制器局域网(controller area network,CAN)的网络带宽消耗及传输带宽不足的问题。车载以太网基于传输控制协议/网际协议(transmission control protocol/internet protocol,TCP/IP)网络模型:上层应用数据传输需经过传输层、网络层、数据链路层,由物理层PHY芯片转换成原始数据流向各域控制器进行数据收发传递。由于AVB在传输中涉及大量以太网数据包,如将整包数据传递给决策使用,势必降低其数据处理效率。同时,关联多节点中转传输的数据转发周期又各不相同,由此产生的时延势必导致决策控制的实时性、稳定性降低。对于无人车控制而言,车载电子控制单元 (electronic control unit,ECU)的控制响应均要求通信延迟在μs级别[1]。尤其对于车辆的运动控制执行机构而言,严重的时延将导致响应时间达不到无人车超低时延的控制需求,无法保证无人驾驶技术操控的安全性、稳定性。

为解决以上实际问题,本文提出1种针对某种无人车电子电气架构(electrical electronic architecture,EEA)特点的、降低AVB通信时延的方法:采用1种基于改进的滑动窗口更新算法获取原始AVB数据包中的有效荷载数据,降低上层决策对于无效数据的处理量;提高决策层有效数据处理能力及效率;基于筛取后的有效载荷数据,计算各通信节点的通信时延[2]。本文通过控制相应节点的响应周期,合理计算驱动控制的瞬态响应性能指标,使通信延迟缩短在μs级范围内,确保无人车的控制时效性及鲁棒性。

1 无人车AVB通信EEA

本文将低AVB通信时延的技术应用在某种无人车上。无人车的AVB域间EEA如图1所示。

图1 无人车的AVB域间EEA示意图

无人车AVB通信EEA包括智能驾驶域、底盘动力域、网联域、车身域4个子域。每个域均为子网系统。各域控制器通过AVB通信实现域间系统的数据交互,即:以AVB为主干网,基于以太网网关路由实现跨域通信。以太网网关是整车以太网网络交互的枢纽[3-4],用于实现各个域间系统之间的以太网数据存储和转发。

2 AVB有效数据提取

2.1 数据流向模型

有效数据流提取的最终目的是给上层决策提供精简、有效的实时更新数据。以智能驾驶域的智能计算平台为核心节点,智能驾驶域内各模块节点的通信数据流向模型如图2所示。智能驾驶域内,数据流向模型自顶向下依次为决策层、服务层和数据源层[2]。

图2 智能驾驶域内各模块节点的通信数据流向模型

数据源层为各域间系统的AVB原始通信数据,采集之前需按照虚拟局域网标识(virtual local area network identity document,VLANID)进行不同域划分。处于模型中间的服务层要将获取的AVB原始数据进行解包及媒体访问控制(media access control,MAC)地址过滤处理,即将以太网帧的目标MAC地址、源MAC地址、校验位等逐一进行过滤。其目的是减少决策层对无效数据的处理负荷[5]。决策层采用1种滑动窗口算法来实时获取更新数据,确保接收到的有效数据均为实时动态数据,而非静态未更新数据。

2.2 数据更新方法

经MAC层过滤、提取后的封装数据在每帧AVB数据包里可封装30~50帧有效CAN数据。由于有效CAN数据的原始周期并不相同,还需要针对不同周期的 CAN数据进行自动更新检测,以获取实时、有效数据并传递给上层决策。

2.2.1 改进滑动窗口算法原理

滑动窗口算法可作为网络数据传输时的流量控制。当连续区间数据变化时,根据具体的条件来移动窗口前后指针,经遍历搜索后删除未更新数据,再把新数据加入窗口内,以此降低时间复杂度。本文设计了1种改进的滑动窗口算法,以控制AVB数据传送时的流量及数据更新变化。针对有效数据传输速率的不同,把滑动窗口大小设置为不同变化周期,以实现对不同周期性数据的更新检测[6]。

改进滑动窗口算法根据时间周期辨别更新数据,通过更新标志判断数据是否更新以传递给上层决策。滑动窗口分为两类:一类为单帧有效CAN Data静态窗口A,数据长度为8 B;一类为单帧过滤后含有CAN加密、计数、更新标志的数据静态窗口B,窗口大小为30,即1帧该静态窗口B包含30帧不同周期的静态窗口A。原本的每帧序号和确认号保留,标志Flag为每帧更新标志。由于有效载荷数据的CAN报文原始周期不同,滑动窗口需要设置跟随报文周期变化的动态滑动周期t,即滑动窗口动态可变。实际动态滑动窗口时间周期模型t按照报文周期设置。改进滑动窗口算法如图3所示。

图3 改进滑动窗口算法

图3中:标号1是周期为t1的报文,图中共有1~4帧;标号5是周期为t2的报文,图中共有5~8帧;标号9是周期为t3的报文,图中共有9~10帧,以此类推。当某帧有更新变化时,则变为黑色框标识。当以不同周期发送数据时,可以检测单帧的静态窗口A数据是否在该时间段内有变化:有变化则移入该时间窗口模型;无变化则移除窗口。其他周期模型采用同样机制。周期T越短,则单帧检测的速度越快,实时更新的数据量就越多。周期T越长,则单帧检测的速度越慢,实时更新的数据量就越少。

2.2.2 算法实现

AVB数据帧更新处理过程如图4所示。

图4 AVB数据帧更新处理过程

依据数据流向模型,改进的滑动窗口算法实际应用在决策层和服务层,基于链表实现。该算法的目的是实现AVB数据流的更新。

数据更新处理过程如下。

①决策层作为发送端,按照设定周期T将发送数据根据ID、长度、CAN Data进行封装后,以CAN数据帧形式发送给服务层。服务层接收到该CAN封包数据后,以该周期相应的滑动窗口时间与其发送缓冲列表中的CAN ID进行对比[7]。在某一固定的滑动窗口时间T内,若接收到的封包数据与缓存中的一致,即为实时更新数据;如接收到的封包数据未包含缓存中的CAN ID,则认定为某一CAN ID数据未更新。服务层会将该有效更新CAN数据进行CAN的加密、校验并封装成1帧32 B的CAN数据发送给底层数据源层。底层数据源层再加上以太网加密、校验格式、源/目的地址等封装成原始AVB协议,最终由物理层以太网芯片传输给其他各域控制器使用。

②服务层接收经过MAC地址过滤的数据后,会依据滑动窗口的不同周期大小逐帧判断更新标志。每帧有效CAN的更新标志Flag采用遍历方式进行周期性判断。当Flag由0变为1时,判断该帧CAN数据相对上一周期有更新变化。在判定周期范围内,Flag状态保持不变,则说明数据未更新。

2.2.3 虚拟局域网数据测试

通过滑动窗口算法更新的实时有效AVB载荷数据通过Wireshark软件进行实时抓包分析。实际整车域间,各系统进行AVB通信时,需要对虚拟局域网(virtual local area network,VLAN)内的设备逻辑地址进行划分。本文基于端口进行划分,且各个域的VLAN标志均不同。经Wireshark抓取的VLAN标志为0x3a的AVB数据包如图5所示(一包数据量太大,图5为部分截图)。

图5 VLAN标志为0x3a的AVB数据包

VLAN标志为0x3a是底盘动力域的AVB数据。在一包上千字节的AVB整包数据包中,共包含有30帧有效载荷数据,即CAN数据。有效载荷数据中又包含更新数据及未更新的CAN数据:更新标志位为0x88;未更新标志位为0x84。图5的AVB数据包具体字段说明如表1所示。

表1 AVB数据包具体字段说明

标志3的8 B数据(00 00 00 00 00 00 a1 3a)为1帧AVB里的单帧有效载荷18ff1424的CAN报文数据,包含具体节点CAN报文标识、数据长度8 B及实际有效数据。由于18ff1424报文的更新标志位为0x84,代表未更新,所以这帧数据并不会传递给决策使用。而0xcff5182报文的更新标志位为0x88,有效载荷8 B数据为图5的标志7(37 00 00 00 00 34 4d 00)。该帧为更新数据,会传递给决策使用,以此类推。因此,最终传递给上层决策的仅是经过滤波后8 B的各实时更新CAN数据。

3 降低通信时延

AVB技术在传统以太网基础上使用了精准时间同步,通过保障带宽来限制传输延迟。但在实际无人车控制响应方面,由于域间各系统及域内各模块通信节点众多,经过以上过滤更新的有效载荷数据实际历经了多处节点传输,从底层通信层过滤提取后更新到上层决策应用[4]。通信方式虽为透明式传输,但仍存在通信时延。延时时间导致AVB整体通信传输效率低。对于无人驾驶车辆的执行机构(如转向、驱动、制动系统等),均需超低延时及快速的响应反馈才能满足实时控制需求。而时延会导致无人驾驶横纵向控制的时效性及响应能力均下降、鲁棒性能变差,严重影响无人驾驶技术的安全性和可靠性[7]。

3.1 通信时延分析

本文以实车进行验证,依据某一无人车的EEA特点(以图1为主),针对智能驾驶域与整车控制域之间的通信延时进行测量分析。智能驾驶域包含主控制域和协控制域2种。整车控制域包含横纵向执行机构,如驱动系统、制动系统、转向系统等。在整体传输过程中所历经通信链路的网络通信节点模型如图6所示。

图6 网络通信节点模型

依据网络通信节点模型,可见涉及节点众多,整体通信过程中各节点均有存在延时的可能性。根据实车测试经验,该车载AVB通信导致时延的主要因素如下[8]:①源头发送时延,发送端控制周期达不到实际响应需求;②节点中转转发时延,由实际EEA功能设计决定;③物理传输媒介时延(本文并未考虑该时延)。时延以从主控制域发出控制指令开始到整车控制域响应其控制指令结束,期间包括协控制域以CAN通信方式接收主控制域控制指令,经协议中转后以AVB通信发送给整车控制域的执行机构响应时间。

3.2 各节点通信时延测试

通信时延测试采用总线开发设备(CAN open enviroment,CANOE)进行采集,借助wireshark软件分析报文数据结构。本文以无人车执行机构中的驱动系统为例,对通信时延进行测试[9],计算驱动系统从上层决策控制下发指令到电机响应反馈的通信延时时间[2]。该时间所经历的具体通信链路如下:首先,主控制域ECU开始周期性发送驱动电机控制报文;然后,由协控制域ECU以CAN通信方式接收报文,再通过以太网AVB方式将报文发送给整车域ECU;接着,整车域ECU以AVB形式接收该控制报文后,经过程序内部的AVB格式数据转化为CAN格式数据[10-11];最后,以CAN通信方式向驱动电机执行机构下发控制指令。该链路中所历经的整体传输时间即为t。

利用CANOE采集从智能驾驶域决策层到底层驱动电机的各节点通信报文。针对挡位控制,降低时延前驱动电机挡位控制时间如图7所示。

图7 降低时延前驱动电机挡位控制时间

图7(a)中:纵向轴的信号Vehicle_Shift为CANOE中的总成数据库(data base can,DBC)文件设置的信号变量名称,是主控制域ECU下发的挡位控制报文指令;对应的纵坐标0~1表示主控制域ECU的下发挡位的具体数值(挡位为整数值)。其中:数值0表示空挡;数值1表示前进挡;数值2表示倒车挡。信号帧主控制域ECU下发的挡位控制报文为标准帧,发送周期设定为20 ms。

图7(b)中:纵向轴的信号Gear_mode是整车域ECU下发的控制指令报文,为扩展帧;对应的纵坐标设为0~100,表示整车域控制器发出的挡位控制指令。其中:0表示空挡、32表示前进挡、64表示倒挡。图7(b)只截取了一部分,为0~32。

由所测时间可计算出:Vehicle_Shift从源头主控制域ECU下发指令报文,经AVB通信传输,到AVB协议转换为CAN协议数据Gear_mode,再到被执行机构电机所接收,整体通信延时时间约为129 ms。其中:t=t1-t0。t0为主控制域ECU开始周期性发送驱动电机控制报文的时刻(90.173 8 s);t1为整车域ECU以CAN通信方式下发控制指令给执行机构驱动电机的时刻(90.303 2 s)。以驱动性能为参考指标,驱动电机瞬态响应指标如图8所示。

图8 驱动电机瞬态响应指标

图8中:tr为上升时间,ms;tp为峰值时间,ms;ts为调节时间,ms。

基于以上指标的计算参考,通信时延下计算出的驱动性能指标如表2所示。

表2 通信时延下计算出的驱动性能指标

表2中:v为目标车速,km/h;tx为响应时间,ms。由表2可知,由于存在通信时延,导致驱动的时域性能指标tr、tp、ts均无法达到无人驾驶驱动控制性能要求。该时延不仅影响纵向驱动控制(指对发动机油门控制,包括挡位、车速等)的实效性,而且对制动以及横向控制都会产生影响。通信时延导致整体横纵向的实际控制响应均较慢,无法满足无人驾驶控制需求。

针对以上的时延,需找出存在时延的节点才可以从根本上解决延时问题。依据图6的网络通信节点模型,在服务层和决策层代码中加入相应时间戳。依据时间戳进行各节点的通信时间监控,确定时延节点。经分析,主要有以下几处时延节点。

①协控制域ECU内部决策层调用虚拟接口函数,周期性发送单个CAN报文的周期为30 ms。

②协控制域ECU与主控制域ECU的CAN报文发送周期为50 ms。

③车域ECU的CAN报文更新周期为50 ms。

④主控制域ECU发送给智能驾驶域ECU的周期为100 ms。

3.3 改进后的时延特性

为减小存在通信延时各通信节点的处理周期,本文在不影响整体通信传输效率及可靠性、有效性的前提下,对存在通信延时时间的通信节点进行处理,以减小整体延时时间、提高控制响应时效性。通过CANOE对整体通信延时的测量及分析,对相关存在通信延时的通信节点进行了合理修正。修正后,整体通信延时可控制在30 ms内。其中,相关通信节点的时间修正如下[2]。

①协控制域ECU内部决策层调用虚拟接口函数周期性发送单个CAN报文的周期由30 ms改成10 ms。

②协控制域ECU与主控制域ECU的CAN报文发送周期由50 ms改为10 ms。

③整车域ECU的CAN报文更新周期由50 ms改为10 ms。

④主控制域ECU发送给协控制域ECU的周期由100 ms改为20 ms。

经过时间修正后,降低时延后驱动电机挡位控制时间如图9所示。

图9 降低时延后驱动电机挡位控制时间

图9(a)和图9(b)的横坐标、纵坐标与图7相同。由图9可知,通信延时时间dt=t1-t0(321.781 4 s-321.761 1 s),结果约为20 ms。同样以驱动性能作为参考,分析瞬态响应性能。修正通信延时后的驱动性能指标如表3所示。

表3 修正通信延时后的驱动性能指标

由表3可知:驱动性能中所测得的tx、tr、tp、ts等驱动性能指标均已减小。修正后由于通信延时时间减小,使得驱动性能优于原本通信延时的情况;而整车域间各系统依然能保持稳定和正常通信,提高了智能驾驶决策控制的有效性及实时性。

4 结论

针对无人车,本文设计了1种降低AVB通信时延的方法,以提高无人驾驶决策控制的瞬态响应特性。基于无人车灵活的EEA以及域间各系统通信特点,本文采用改进的滑动窗口算法获取底层过滤后的实时更新AVB数据,并基于有效载荷数据分析在整个通信网络传输过程中存在通信延时的网络节点。通过计算瞬态响应性能指标,对存在通信时延的各节点进行修正以减小时延。该方法有效降低了域间各系统以太网AVB通信时延,保证了以太网通信的稳定性及可靠性,提高了域间通信效率,同时也改善了决策层对运动执行机构控制的时效性和响应能力。

猜你喜欢

以太网延时报文
基于J1939 协议多包报文的时序研究及应用
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
基于级联步进延时的顺序等效采样方法及实现
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
日光灯断电关闭及自动延时开关设计
谈实时以太网EtherCAT技术在变电站自动化中的应用
ATS与列车通信报文分析
宋湘延时答妙对
浅谈EPON与工业以太网在贵遵高速公路中的应用