车载以太网 | 测试之实锤-AVB测试实践

2023-11-11 00:20

本文主要是介绍车载以太网 | 测试之实锤-AVB测试实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景介绍

AVB(Audio Video Bridging)音视频桥接,是由IEEE 802.1标准委员会的IEEE AVB任务组制定的一组技术标准,包括精确时钟同步、带宽预留和流量调度等协议规范,用于构建一个低延迟、高可靠的车载以太网网络。

2012年11月,AVB任务组变更为“TSN(Time-Sensitive Networking)——时间敏感网络”任务组。TSN在AVB的基础上进一步延伸,从专业音视频领域扩展到工业自动化、移动通讯、汽车等领域。因此掌握AVB协议,可为理解TSN协议打好基础。图1为TSN对AVB的继承和扩展。



在这里插入图片描述

图1 AVB和TSN协议对比



AVB/TSN协议标准

AVB包括多个不同的协议,在具体应用时可根据实际情况进行裁剪和选择,取决于功能场景的需求及开发难度(注:实现整个AVB协议族的开发难度很大)。




在这里插入图片描述

图2 IEEE 802.1协议标准



为了便于音视频数据的可互操作性,在AVB核心标准基础上,IEEE定义了1722和1733(时间敏感应用传输协议)用于传输音视频数据,满足Talker和Listener之间实时的、高质量的音视频数据传输要求。为保证AVB节点之间的互操作性,IEEE定义了一个应用层协议1722.1,用于满足1722终端设备之间的发现、枚举、连接管理和控制。




在这里插入图片描述

图3 IEEE 1722/1733协议标准



AVnu车载以太网AVB功能和互操作性规范

为将AVB协议应用于车载设备,AVnu联盟发布车载以太网AVB功能性和互操作性基础规范——“AVB汽车配置文件”,定义AVB在汽车信息娱乐系统和前视、后视等辅助摄像系统中的应用场景。

AVnu互操作性规范对车载AVB设备以及汽车特定的应用场景做如下约定:

网络和设备启动

· 端口自协商应被禁止

· 为了获取AVB设备的内部状态,定义三种车载AVB设备状态:Ethernet_Ready、AVB_Sync和AVB_Media_Ready。通过状态报文获取每种状态的信息,其中状态报文必须携带进入该状态的时间戳

· 为了约束车辆启动时设备的启动时间,定义车载以太网网络的最大启动时间,以及进入三种状态的最大时间要求



gPTP

· 预先配置车载网络中GM(Grandmaster)节点,无需使用BMCA(最佳主时钟算法)

· GM节点启动后应尽可能快的发送同步报文

· 固定的时钟生成树,Bridge节点的master端口不需要测量路径对等延时

· 定义Bridge节点对同步报文丢失、不连续、同步恢复等异常情况的处理

媒体格式

· 减少需要支持的音视频格式,仅定义AVTP音频格式(AAF)、压缩视频格式(H.264、MJPEG)、非压缩视频格式(MPEG2-TS)和时钟参考格式(CRF)相关需求

流预留类别

· 静态配置所有AVB流预留

· 对于汽车特定的应用,除了支持标准的SR A和SR B类流,衍生出两个优化的流类,其发送时间间隔为:1333.33µs(64Sample/Frame,48kHz)和1451.25µs(64Sample/Frame,44.1kHz)

异常处理和诊断

· 定义需要监控并报告的异常处理:以太网链路状态事件和数据丢失,IEEE 802.1AS异常处理,以及IEEE 1722媒体流异常处理

· 定义一些主要的诊断事件计数,包括以太网接口、以太网桥接、AVB协议,以及IEEE 1722传输


AVnu车载以太网AVB测试认证

为确保AVB设备之间的互操作性,AVnu联盟为汽车行业制定了车载AVB部件级一致性测试计划,用于验证AVB协议标准以及AVnu车载AVB互操作性规范中定义的特殊要求。



在这里插入图片描述

图4 汽车行业车载AVB部件级一致性测试计划与对应的IEEE标准



Automotive gPTP

用于验证IEEE 802.1AS-2011标准实现于车载AVB设备的gPTP协议一致性测试,主要包括以下内容:

· gPTP参数和配置测试

· 基于IEEE 802.1AS标准定义的gPTP协议状态机测试

· gPTP-Bridge特定测试三部分


Automotive EndStation

用于验证IEEE P1722/D16-2015标准实现于车载AVB设备的AVTP协议一致性测试,主要包括以下内容:

· AVTP通用需求测试

· MPEG-TS和61883-4视频格式测试

· AVTP音频格式测试

· MJPEG和H.264压缩视频格式测试

· 音频时钟参考格式测试

· 流预留类测试


Automotive Bridge FQTSS and SR Classes

用于验证IEEE 802.1Qav-2009标准实现于车载AVB Bridge的FQTSS协议一致性测试,主要包括以下内容:

· 端口数据转发测试

· 基于信用的整形算法验证测试

· Bridge端口优先级重映射测试



车载AVB协议一致性测试实践

AVB协议配置测试

由于车内采用静态网络拓扑,所有AVB流预留采用静态配置,因此AVnu并未针对汽车AVB设备发布SRP协议一致性测试规范。所以针对OEM/Tier1自定义需求,需对基本的配置和协议参数进行测试验证。

我们通过德国Vector公司的VN5640硬件与被测对象相连接,利用CANoe 12.0+Option Ethernet软件对AVB数据进行实时采集和监控。CANoe可解析gPTP和AVTP的报文头格式,以检测被测对象发送的报文是否符合需求定义。


· 测试结果分析
如图5所示,选中Trace窗口中的Follow_up帧,左侧窗口会显示该报文数据的解析内容:

· 目标MAC地址为01:80:C2:00:00:0E,符合802.1AS需求定义

· Log Message Interval的值为-3,表示Sync和Follow_Up报文的发送周期为2-3=125ms,符合此次需求定义

· Precise Origin Timestamp为Sync报文离开以太网收发器的时间戳,可解析为UTC时间格式显示




在这里插入图片描述

图5 gPTP报文解析图




如图6所示,选中Trace窗口中的AVTP帧,左侧窗口显示该报文数据的解析内容:

· 目标MAC地址为91:E0:F0:00:FE:01,符合MAAP需求定义
· Stream ID为MAC ID + Unique ID,符合此次需求定义
· 该音频数据的信息为:44.1kHz采样率,双声道,16位深度,每帧采样样本为64个样本(AVTP的报文周期为1,451µs)




在这里插入图片描述

图6 AVTP报文解析图



AVnu AVB节点的协议一致性测试

在一个gPTP域里,存在End Station和Bridge两种节点类型,同时End Station又分为GM节点和非GM节点。我们采用思博伦的车载AVB一致性测试套件进行测试验证,确保测试活动完全符合AVnu测试计划的要求。

以某非GM节点的gPTP协议一致性测试举例说明。

· 测试环境
End Station节点的测试环境如图7所示。


在这里插入图片描述

图7 AVB部件级测试环境示意图

· 测试结果分析
部分测试用例的测试报告如图8所示。




在这里插入图片描述

图8 End Station(非GM节点)测试报告



对非GM节点进行测试时,需要Tester仿真GM节点发送同步报文,同时还需正确应答非GM节点发送的请求报文。从图8中可以看到此次测试执行中有25条失败条目,其中一半是在测试被测节点的PdelayReq状态机时失败,测试失败项包括wrong sequence ID in Pdelay Response、Lost and late Pdelay Response以及Invalid Pdelay Response等。通过数据分析及确认发现,由于此被测节点的异常处理记录功能存在未实现和实现有误的情况,因此导致对应的测试项失败。


AVnu AVB节点级性能测试和系统级测试

如图9所示,车内不同应用场景对延时有不同的要求。所以除上述的配置测试和一致性测试,还需对AVB节点进行性能测试,包括节点的时间稳定性等。


在这里插入图片描述

图9 不同应用场景对时延的要求



对于系统级测试,时间和同步特性同样是测试的重点,包括系统的启动时间、时间同步、时间抖动和延迟等测试场景,这对测试通信硬件接口设备的性能指标(例如被测设备接入后所产生的额外时延等)提出非常高的要求。

我们采用德国TSN Systems公司的TSN Tools软件和TSN Box硬件,实现AVB数据的采集以及时延分析等功能。系统级测试连接示意图如图10所示。

点击下图10可了解如何通过TSN Systems系统平台构建IEEE1733协议的演示和验证系统。




在这里插入图片描述

图10 AVB系统级测试接线示意图



小结

当前AVB在汽车行业尚未广泛应用,一方面是从技术必要性的角度考虑,更大的障碍是开发难度的问题。随着基于域控(Domain)/区控(Zone)的网络架构和更高等级自动驾驶对通信的实时性、鲁棒性和安全性提出的更高需求,AVB的升级版TSN将逐渐成为趋势。笔者通过多份技术文档的相互佐证,深信某Global OEM基于新一代E/E架构开发的车型(近期已上市),应用了AVB/TSN部分标准(比如gPTP等),对于AVB/TSN的应用和测试也是为未来进行技术和经验储备。

本文所使用的方案和工具链同步支持AVB/TSN部件、系统和实车级的测试需求,与君共勉,期待进一步交流和合作。

作者:北汇信息-黎扬


----------------------------------------------------------------------------------------------------------------------



喜欢此篇文章的话欢迎一键三联支持小编吧~!

更多相关资讯及业务介绍,欢迎访问上海北汇信息官方网站:上海北汇信息科技有限公司
北汇官方知乎账号:北汇信息-知乎
更多技术干货,行业前沿动态,请关注上海北汇信息官方公众号:
在这里插入图片描述

联系方式:

电话:021-34716271
邮箱:info@polelink.com

北汇信息成立于2010年,是一家技术驱动的创新型服务企业。北汇信息始终专注于汽车电子领域的新技术和新产品,为整车厂和零部件企业提供完整的研发、测试解决方案。从测试工具、专用测试设备、完整测试方案到实车测试服务,我们与我们的客户一起努力,让中国的汽车变得越来越安全、越来越舒适、越来越智能。

这篇关于车载以太网 | 测试之实锤-AVB测试实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/386279

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

python实现简易SSL的项目实践

《python实现简易SSL的项目实践》本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习... 目录运行环境运行前准备程序实现与流程说明运行截图代码CA.pyclient.pyserver.py参

使用C++实现单链表的操作与实践

《使用C++实现单链表的操作与实践》在程序设计中,链表是一种常见的数据结构,特别是在动态数据管理、频繁插入和删除元素的场景中,链表相比于数组,具有更高的灵活性和高效性,尤其是在需要频繁修改数据结构的应... 目录一、单链表的基本概念二、单链表类的设计1. 节点的定义2. 链表的类定义三、单链表的操作实现四、

Spring Boot统一异常拦截实践指南(最新推荐)

《SpringBoot统一异常拦截实践指南(最新推荐)》本文介绍了SpringBoot中统一异常处理的重要性及实现方案,包括使用`@ControllerAdvice`和`@ExceptionHand... 目录Spring Boot统一异常拦截实践指南一、为什么需要统一异常处理二、核心实现方案1. 基础组件

SpringBoot项目中Maven剔除无用Jar引用的最佳实践

《SpringBoot项目中Maven剔除无用Jar引用的最佳实践》在SpringBoot项目开发中,Maven是最常用的构建工具之一,通过Maven,我们可以轻松地管理项目所需的依赖,而,... 目录1、引言2、Maven 依赖管理的基础概念2.1 什么是 Maven 依赖2.2 Maven 的依赖传递机

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬