李志涛
(长城汽车股份有限公司技术中心,河北 保定 071000)
随着汽车电子技术的发展,人民生活品质的需求日益增长,汽车网联化悄然而至,汽车智能化、网联化、拟人化成为汽车行业发展的必然趋势。汽车科技化的发展,带来的是汽车无人驾驶技术、高品质车载影音、OTA升级、V2X、大数据、云计算等一系列技术在汽车上的应用,同时带也来了车载通信数据量的爆发式增长,巨大的数据通信容量显然已经超出CAN、Flexray等传统总线的通信速率极限。现有车载总线无法满足当前需求[1],因此,一些新型的车载总线技术得到了快速发展、应用。车载总线的发展历程,如图1所示。
车载以太网高速率传输特性,成为与智能网联汽车深度集成的契机。以太网将在下一代汽车车载网络中得到广泛应用[2]。由于车辆网联化的推进,国内、外相应OEM为解决车辆内、外通信互联,把车载以太网技术列入需掌控的核心技术之一,并投入大量资源开展研发、测试工作。
车载以太网协议架构参考OSI模型,结合汽车行业与传统IT行业,组建成基础协议架构模型,主要分为物理层、数据链路层、网络层、传输层以及4层以上的会话、表示、应用层部分。基础协议架构如图2所示。
图1 车载总线发展历程
图2 基础协议架构
第1层为物理层,包含100Base-TX、100Base-T1、1000 Base-T1,通常可简称为“PHY”。物理层是OSI参考模型中的底层,主要实现拓扑和物理网络设计、硬件规范的界定、编码和信令、数据收发;第2层为数据链路层,主要涉及Ethernet的 MAC及VLAN需求,通常简称为DLL层,数据链路层主要实现逻辑链路控制、媒体接入控制、底层数据组帧,本地设备寻址、差错检测和处理、VLAN实现、服务品质;第3层为网络层,主要包含IPV4/6、ICMP、ARP协议,该层是OSI模型中一个重点关注数据交换的层,网络层主要功能为逻辑寻址、数据报封装、路由、分片和重组、诊断和辅助;第4层为传输层,主要包含TCP/UDP协议,传输层对于确保数据在设备之间准确传递有着重要作用,主要功能为进程寻址、多路复用和多路解复用、分段和重组、连接的建立、管理和终止、确认和重传、流量控制;第5~7层主要涉及软件应用问题,而不是网络实现细节,如会话层用于建立和管理会话,实现软件进程之间持续的逻辑连接;表示层解决不同设备在应用层传送数据可能出现的任何问题,如处理数据转换、数据压缩、数据加密等;应用层为OSI参考模型的顶层,该层具有多种不同的应用层协议,如UDS/DOIP、UDPNM、SOME/IP、DHCP等,通过不同的各种应用层协议的应用,实现用户通过网络达成各项任务所执行的功能。针对音视频数据传输特性要求,采用AVB协议族,实现精确时钟同步,流媒体传输格式,流量整形,从而实现数据量较大、实时性要求高的音视频场景应用。
协议架构中所涉及相关协议的标准化方面,当前有4个标准化组织或联盟起到了主要的推动作用[3]。主要由IEEE、OPEN、AVNU、Autosar组织联盟开展协议的标准化和推动作用。IEEE规定了以太网的一些主要的、通用的协议标准;OPEN联盟推进以太网在汽车行业的应用及相关标准化工作;AVNU致力于推广AVB及后续的TSN技术,为汽车内低时延、高可靠性传输需求提供标准的实现方法;Autosar规定了基于服务的中间件SOME/IP(SD),可用于控制指令传输,为车载应用量身定制的应用层协议。OPEN和AVNU定义汽车行业的特有需求,而IEEE不区分行业应用,为基本标准;OPEN和AVNU定义行业的一致性测试标准,可以进行测试认证。
测试是产品开发过程中的重要环节,期望通过测试验证,以最少的资源投入,早期发现各种错误、潜在缺陷、失效,达成早期问题整改。在汽车电子电气领域,典型的V模型在OEM电子电器产品开发中广泛应用。车载以太网的开发依据此V模型,左侧为需求的开发设计工作,右侧对应相应阶段的测试工作,测试贯穿于整个开发设计工作中,车载以太网测试分别开展ECU级、系统级、实车级3个层级的测试验证工作。
车载以太网ECU级别测试,主要依据TC8标准开展IOP、PMA、协议一致性、交换机测试等,用于验证ECU互联互通、物理层接口、协议一致性、兼容性、交换机特性需求等,同时参照RFC2544、2889开展车载交换机部分性能相关测试,依据OEM电子电器架构及车载以太网系统设计需求,开展部分自定义需求测试,验证设计需求;车载以太网系统级测试,依据以太网网络拓扑图,连接各个真实以太网ECU节点,构建系统测试环境,在系统台架上开展系统级别的测试验证工作,在系统级验证各协议基础设计需求、系统稳定性、系统性能、机制策略、多子系统之间的通信等;实车级测试需结合系统级测试结果与实车测试需求,基于实车测试环境,开展协议基础点检确认、重点测试验证以太网功能相关需求、整车级通信机制、策略等。
针对车载以太网3个层级的测试验证工作,ECU级别测试原则上由产品供应商负责开展测试验证工作、OEM一般可选择性进行接收测试。整车厂需重点开展系统级测试与实车级测试。由于车载以太网节点连接采用点对点连接,一个链路上只连接2个车载以太网节点,非CAN总线共享介质式连接方式,车载以太网系统级与实车级测试时,无法像CAN总线测试一样,在总线传输介质上连接测试设备,实现总线数据仿真发送与所有节点通信数据的监测、采集。因此,为实现车载以太网数据监测、采集、仿真发送,在系统级与实车级测试时,需依据测试需求,对以太网网络中的交换机节点进行配置或应用专业的测试设备,搭建系统测试环境。
车载以太网系统测试前,参照总线拓扑定义,所有以太网节点连接完成,并且交换机节点需加入到每一条链路中,构建完整的以太网系统链路。依据测试需求,搭建系统测试环境,主要通过“端口镜像”与“动态TAP”方法实现车载以太网各节点数据监控、采集、发送。
借鉴传统以太网测试技术,交换机节点需进行端口镜像配置,系统上每一个经过交换机节点的数据帧都可依据配置需求被镜像到该交换机节点一个专门的调试端口或预留的常规端口。然后,这个调试或预留的端口连接到测试设备上,通过测试设备实现数据监控、采集、仿真发送。端口镜像连接如图3所示。
图3 端口镜像连接
采用端口镜像方法,通过交换机节点配置即可实现系统数据监控、采集、发送,看似简单易行,但却存在着一些严重的缺陷,如下所述。
1)为了采集来自系统上全部端口的所有以太网帧,必须将帧从多个端口镜像到调试端口,数据传输量巨大,除非调试端口的运行速度比其它端口快一个数量级,否则就有可能出现溢出,造成以太网数据帧丢失,这意味着测试工具无法采集到被丢弃的数据帧。
2)在系统网络上传输的坏的以太网帧会被交换机丢弃,不会通过配置端口转发至测试工具,测试工具无法检测坏帧。
3)在涉及到车载以太网数据仿真发送测试场景时,仿真的以太网帧需要一个源MAC地址,但同一条链路上不可以有2个相同的MAC地址,所以测试工具无法复制一个已经存在于网络上的MAC地址,端口镜像技术无法实现车载以太网帧的仿真发送。
4)另外激活交换机节点数据镜像模式,可能会对交换机节点功能、通信造成影响,一般情况下不建议在系统测试时对被测系统节点进行内部变动。
5)调试端口的存在增加了交换机节点的成本,要使用调试端口,就必须在交互机节点上预留该端口,加装相应的物理层芯片,用于实现测试时的端口镜像。量产汽车中增加此端口,直接导致整车成本的增加。
考虑端口镜像技术缺陷,结合车载以太网数据监测、采集、仿真发送需求,采用一种替代方法,即动态TAP方法。该方法长期用于开发和测试以太网网络设备,动态TAP是一个插入到以太网链路以便接入网络从而进行测试的设备。TAP不是简单的连接到网络的物理导线,而是一个插入链路的专业设备,如Technica公司的Media Gateway。连接TAP和交换机的导线与连接TAP和以太网节点的导线已被物理隔离。动态TAP连接如图4所示。
相对于端口镜像方法,TAP实现了以太网ECU节点与交换机节点的物理隔离,在TAP软件配置中实现各链路数据的映射,数据全部传输至连接测试设备的端口,通过测试设备端口实现数据的监控、采集、仿真发送,同样采用TAP方法,也有其相应的优劣势,如下所述。
图4 动态TAP连接
1)TAP可将坏帧封装到新帧中并通过标准以太网端口转发至测试工具,从而可以在测试软件中进行坏帧分析。
2)将测试软件与动态TAP相结合,可以在测试软件中仿真需发送的报文,发送MAC地址与相连节点相同的以太网帧,从此可以在链路上实现模拟发送以太网报文而无需引入外部MAC地址。
3)动态TAP方法需要把TAP接入各个以太网链路中,势必会进行以太网线路连接处理、调整。
4)在端口之间复制以太网帧时会产生约2μs左右的延迟。
综上所述,端口镜像技术一般不会应用于车载以太网系统集成测试,在各链路集成或调试过程中可选择性应用此方法。为确保车载以太网系统通信数据的监控、采集、仿真发送,尽量不影响被测车载以太网节点,综合考虑,通常应用动态TAP方法完成系统测试环境的搭建。
车载以太网由于在车载环境中受温度和震动等环境因素的影响,比民用以太网要求更加严格,因此,各个层级充分、深入的测试验证非常有必要。车载以太网系统级测试主要进行车载总线系统设计需求的测试验证,主要涉及车载以太网配置、系统性能、系统鲁棒性、Some/IP测试等,主要测试内容见表1。
表1 系统级相关测试内容
车载以太网因使用的用户层不同,通信条件也不同,必须选定满足用户层的协议[4]。OEM依据整车电子电气架构及所需实现的电器功能需求,选择开发相应的应用层协议,如SomeIP/SD、DOIP、UDP-NM等,通过匹配相应的应用层协议实现电器功能需求,因此,系统级测试时,应用层协议测试内容需依据协议开发设计同步调整。同时,车载以太网系统级测试,需着重开展车载以太网系统级通信特性、机制策略、故障处理等系统层设计需求的验证,关注车载通信与电器功能感知紧密相关点,外部环境与场景交互的通信性能等。
本示例为测试以太网系统中各节点是否可正确地响应回显 (Ping)报文。测试前,参照图4搭建系统测试环境,连接测试设备,配置测试软件。查阅车载以太网系统IP地址列表,获取各节点的IP地址信息,仿真需发送的Ping报文。
启动车载以太网网络通信,使车载以太网网络处于正常运行模式中。操作测试工具,依次向IP地址列表中的每个以太网节点地址发送Ping报文,检查是否每条Ping报文都得到了回应,Ping报文中所携带数据是否正确。Ping报文测试分析如图5所示,应用网络封包分析软件WireShark,根据测试需求设置软件的捕获过滤器、显示过滤器、着色规则等配置,完成Ping报文测试数据的抓取,协助测试数据的分析。
图5 Ping报文测试分析
参见图5,Ping报文测试过程大致为:IP地址为172.16.0.123测试设备仿真发送ping报文至IP地址为172.16.0.96的被测节点,被测节点收到Ping报文请求后,向测试设备发送了Ping回显报文,采用wireshark软件抓包分析,发送方收到了接收方发出的回显Ping报文,请求ping报文与回显的Ping报文中所携带的数据量一致、回应数据正确,该节点的该项测试通过。同样,按以上所述测试需求与步骤,完成车载以太网系统上各节点的回显报文测试验证与数据分析、判定。
车载以太网在未来的20年随着整车电子控制模块的增多势必会成为车载骨干网络[5],与此同时,车载以太网技术标准也由相应的标准化组织不断完善、推进,进一步促进了车载以太网的发展进程,有利于指导OEM开展以太网技术研发、测试工作。本文旨在描述车载以太网应用趋势、基础协议架构、系统级测试环境设计,系统测试相关范围及测试方法等内容,对车载以太网测试具有一定的指导意义。