时间敏感网络TSN的车载设计实践: 802.1Qbv协议

▎概述

IEEE 802.1Qbv[1]是TSN系列协议中备受关注的技术之一,如图1所示,它定义了一种时间感知整形器(Time Aware Shaper,TAS),支持Qbv协议的交换机可以按照配置好的门控列表来打开/关闭交换机出口队列,可从而为周期型的重要数据提供确定性延迟保障。

图1 时间感知整形器示意图
为了更有效地为业务流量提供网络传输服务,更好地发挥Qbv协议的能力,需要进行Qbv协议的应用设计。完整的Qbv设计开发流程包含以下步骤:

  • 流量优先级分类:从车辆功能需求出发,基于通讯矩阵和整车拓扑,梳理整车的流量优先级
  • 门控列表设计:基于已经分类好的整车流量,设计门控列表,仿真分析门控列表是否满足流量的传输需求
  • 设计迭代:如果关键数据的需求不能被满足或者门控列表数量超出硬件门控列表长度上限等情况,迭代分析前两步流量分类结果、设计的门控列表中的不合理处,调整流量分类或门控列表设计结果

▎流量优先级分类

目前车载环境下,车内的网络流量固定可知,可根据车辆功能需求,明确各个流量的最大时延、周期、负载大小等需求,将流量分为多个优先级类别。
图2 示例拓扑
梳理流量优先级是Qbv设计的关键步骤,除了需要满足以上提到基本的需求之外,在实际情况下,更需要对功能准确理解,比如:一般情况下会把控制类指令统一设计为高优先级,而实际转向、制动类控制指令推荐优先级高于车窗相关的控制指令。

这需要TSN网络设计工程师有大量的设计经验,针对不同的功能需求,来综合设计流量的优先级。

基于通讯矩阵,并结合图2示例的拓扑,梳理得到表1所示的示例流量优先级分类结果。

表1 示例流量优先级分类

在这里插入图片描述

▎门控列表设计

基于以上流量优先级分类,并且各个节点已基于IEEE 802.1AS[2]完成了时间同步,即所有节点都有一个相同的时间基准,4条数据流在Switch2-D的出口队列汇聚,在时间同步的基础上,需要设计合理的门控列表,来保障该瓶颈出口队列的高优先级数据流的时延可控。有如下假设:

  • 数据流①的初始发包时间相位为0us,即在0ms,1ms,2ms,…的时刻发包,传输到Switch2-D的出口队列的传输延时+Switch1和Switch2的硬转发延时为3us
  • 数据流②的初始发包时间相位为10us,即在0.010ms,2.020ms,4.040ms,…的时刻发包,传输到Switch2-D的传输延时+Switch1和Switch2的硬转发延时5us
  • 数据流③的初始发包时间相位为5us,即在0.005ms,2.005ms,4.005ms,…的时刻发包,传输到Switch2-D的出口队列的传输延时+
    Switch2的硬转发延时1us

三者周期的最小公倍数为2ms,所以Switch2-D的出口队列循环门控列表的最小周期为2ms,一个完整的循环周期内,该门控列表可设计成:

表2 witch2-D的门控列表设计

在这里插入图片描述
需要注意的是,表2只展示了Switch2-D的门控列表设计,实际在Swicth1-Switch2的端口上,如果还有其他数据流,数据流①和数据流②也会和这些数据流产生竞争,也需要设计门控列表,为了让关键数据流能达到端到端的延迟和抖动控制,这两个门控列表需要同时工作,让关键数据在端到端的完整路径上“一路开门,畅行无阻”。

此外,还可以通过增加关键数据的开门时间或者设置“Guard band”的方式,进一步来保障关键数据的低延迟和减少传输抖动。

▎设计迭代

有了初步的设计结果后,需要分析目前的设计是否完全满足业务需求,如效果不佳,需要完善设计结果。以下举例说明,可能的优化过程。

观察表2可以发现,简单的4个数据流,设计好的门控列表已经比较复杂,而如果仿真发现已经能较好满足关键数据的时延要求,或者在实际部署时,太频繁的门开关状态切换,会由于ECU端的发送端发送周期抖动,而导致关键数据错过开门时机,那没有必要为各个数据流划分过多的优先级和特别细致的门控列表。

可以考虑合并优先级6和7,并且为数据流①②③统一开门,得到的门控列表如表3所示,能够很大程度上简化门控列表的复杂度,并且保证关键数据的传输质量。

表3 时间感知整形器示意图

在这里插入图片描述

▎RTaW-Pegase助力Qbv设计

面对日益复杂化的汽车电子电气架构及网络系统,实际上人工计算与迭代的设计方式已很难适用。在实际的量产车型上,需要传输的数据流远大于以上举例的4条,而门控列表编排可以抽象成任务调度问题,是典型的NP-Hard问题,即在多项式时间的运算次数内不可求解的问题,除非NP=P,否则无法在多项式时间内求得最优解,其工作量非常巨大,一般会需要软件辅助帮忙解决。我们可以借助RTaW-Pegase来辅助完成TSN设计工作。

如图3所示, RTaW可以选择一键配置整形器,如TAS、CBS、Preemption、ATS等整形器,快速验证TSN整形器的选择效果。

图3 TSN整形器配置示例

在Qbv设计中,可借助RTaW内置的TAS门控列表编排算法,帮助我们生成满足图4所示的满足时延需求的门控列表,避免了人工设计复杂的门控列表。后续可以将设计结果和交换机的配置接口适配后,导入到车载TSN交换机的配置中。

图4 RTaW门控列表示例
RTaW还能进一步帮助分析设计结果,为了将有TAS的配置与没有TAS的配置进行比较,可执行这些ComConfig的最坏情况下的时延等指标分析,能够直观地看到时延满足情况,辅助TSN网络设计师分析结果。

图5 RTaw最坏情况时延分析
除此之外,如果关键数据较多,延迟要求又比较高,现有硬件条件不能完全满足所有数据的确定性延迟需求。此时,需要TSN网络设计工程师,对服务部署、路由选择等上层通信设计提出修改建议,并从多种可能的Qbv设计方案中合理选择延迟超时相对可容忍的方案进行实际部署,这需要设计师有大量的实车部署经验,综合选择最合适的落地设计方案。

▎总结

随着车载TSN软硬件产业链更加成熟,汽车电子电气架构设计向跨域融合、集中式计算的架构升级,以太网为主干网的链路上,各种类型数据的通信需求都需要兼顾, IEEE 802.1 Qbv是一种时间敏感数据低抖动性的保障。

RTaW-Pegase[3]能够大力辅助Qbv的设计工作,它是法国国家信息与自动化研究所(INRIA)下属公司RTaW的产品。该公司主要为汽车等领域的企业提供时间仿真和配置工具。RTaW-Pegase(V4.2.7)全面支持CAN(FD)、车载以太网以及TSN协议的设计仿真及性能评估。

RTaW五年前由经纬恒润引入国内,是该公司在中国的重要合作伙伴。经纬恒润凭借多年在车载以太网领域的经验以及RTaW工具的强大支持,已经成功完成了多款车型的TSN设计。更多资讯请点击链接,了解更多RTaW工具信息。

▎参考资料

[1] IEEE, 802.1, “IEEE 802.1Qbv—Enhancements for Scheduled Traffic”, [online] Available: https://www.ieee802.org/1/pages/802.1bv.html.

[2] IEEE, 802.1AS-2020, “Time and Synchronization for Time-Sensitive Applications in Bridged Local Area Networks”, 2020.

[3] https://www.realtimeatwork.com/chin

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/165967.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023软件应用类下载系统平台源码/手机软件应用、新闻资讯下载站/软件库网站源码

源码简介: 这个是最新软件应用类平台源码、手机应用下载系统源码、软件应用市场下载站源码、新闻资讯软件下载。2023软件应用类平台源码/手机软件应用、新闻资讯下载站,它是软件库网站源码。 最新软件应用类平台源码 手机应用下载系统源码 软件应用市场…

NX二次开发UF_CURVE_add_faces_ocf_data 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_add_faces_ocf_data Defined in: uf_curve.h int UF_CURVE_add_faces_ocf_data(tag_t face_tag, UF_CURVE_ocf_data_p_t uf_offset_data ) overview 概述 Add a face col…

JVMj之console Java监视与管理控制台

jconsole Java监视与管理控制台 1、jconsole介绍 jconsole (java monitoring and management console)是一款基于JMX (Java Management Extensions) 的可视化监视和管理工具。 2、启动jconsole 1、在linux和windwos下通过jconsole启动即可。 2、然后会自动搜索本机运行的…

【开源】基于Vue和SpringBoot的独居老人物资配送系统

项目编号: S 045 ,文末获取源码。 \color{red}{项目编号:S045,文末获取源码。} 项目编号:S045,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询社区4…

Linux(6):文件与文件系统的压缩,打包与备份

压缩文件的用途与技术 由于 1 byte 8 bits ,所以每个byte当中会有8个空格,而每个空格可以是0,1。 其实文件里面有相当多的『空间』存在,并不是完全填满的,而『压缩』的技术就是将这些『空间』填满,以让整个文件占用…

微信小程序商城实例mpvue-xbyjShop-master(附精选源码32套,涵盖商城团购等)

mpvue-xbyjShop 基于mpvue的微信小程序商城(小程序端,服务端) 小程序端 技术栈 mpvue mpvue-router-patch mpvue-entry vuex webpack ES6/7 flyio mpvue-wxparse 项目运行 微信开发中工具选中mpvue-xbyjShop/buyer作为项目目录即可功…

JavaScript的学习

HTML的学习-CSDN博客 从html的学习中 其实我已经用到了 JavaScript的脚本 &#xff08;GPT&#xff09; 例如 echo <script>alert("账号密码错误"); window.location"index.html";</script>; 弹窗 然后定位到 index.html 这里能够让我们更…

品牌线上窜货查的出来吗

如果窜货不治理会出现什么局面&#xff0c;显见的当然是渠道混乱&#xff0c;低价丛生&#xff0c;严重的还会导致真假混卖&#xff0c;最后所有的后果都会由品牌承担&#xff0c;口碑的影响是必然的&#xff0c;那品牌的衰败也会是一种趋势&#xff0c;所以治理窜货是品牌发展…

Windows | 模仿网易云任务栏实现自定义按钮及缩略图

前言 最近更新网易云发现任务栏按钮中除了播放相关的按钮&#xff0c;多了一个喜欢的按钮&#xff1a; 之前我一直以为网易云任务栏的按钮只是 Windows 为音乐软件专门提供的&#xff0c;于是我又看了一眼系统自带的播放器&#xff0c;发现并没有爱心按钮&#xff1a; 这时我就…

C在国内就业已经拉胯,ChatGPT告诉我的

文章目录 一、前言二、ChatGPT查到的数据三、数据亮点 1.C语言近3年数据大跌2.招聘数量每年都在剧增的是全栈工程师3.薪资涨幅最高的是全栈和网安 四、结语 一、前言 不仅前在微信群里搭建了一个ChatGPT 5.0做智能助手&#xff0c;让他来帮我回答群问题&#xff0c; 搭建好…

数十亿美元商机!英国数字基础设施公司Equinix与法国量子计算公司Alice Bob 合作

​&#xff08;图片来源&#xff1a;网络&#xff09; 近日&#xff0c;全球数字基础设施公司Equinix宣布与全球领先的法国量子计算公司Alice & Bob合作&#xff0c;旨在共同开发市场上最为可靠的量子处理器之一。此次合作将使Equinix公司的客户通过使用Equinix Metal和Eq…

好的程序员有什么特质呢?

程序员想要提升自己&#xff0c;一定要关注到工作中的方方面面。而一个好的程序员&#xff0c;一般都有这些特质&#xff1a; 弱者抱怨环境&#xff0c;强者改变环境 不要试图通过抱怨环境来获得工作环境上的改变&#xff0c;这不仅不会给你带来任何实质性的改变&#xff0c;…

自定义字符-摄氏度汉字一

本文为博主 日月同辉&#xff0c;与我共生&#xff0c;csdn原创首发。希望看完后能对你有所帮助&#xff0c;不足之处请指正&#xff01;一起交流学习&#xff0c;共同进步&#xff01; > 发布人&#xff1a;日月同辉,与我共生_单片机-CSDN博客 > 欢迎你为独创博主日月同…

springboot+vue项目如何集成onlyoffice开源文档组件

一、onlyoffice是什么 ONLYOFFICE 是一个开源的办公套件&#xff0c;适合多人在线协作。由总部位于总部在拉脱维亚的 IT 公司Acensio System SIA 开发。它提供在线协作文档编辑器&#xff08;包括文档、电子表格、演示文稿和表单&#xff09;&#xff0c;适用于 Windows、Linu…

python tkinter使用(五)

python tkinter使用(五) 本篇文章讲述tkinter 中treeview的使用 Treeview是一个多列列表框&#xff0c;可以显示层次数据。 #!/usr/bin/python3 # -*- coding: UTF-8 -*- """Author: zhTime 2023/11/23 下午8:28 .Email:Describe: treeview 使用 "&quo…

Linux上自动挂载windows下的网络共享文件夹

比如我们想在ubuntu上挂载一个windows的共享文件夹&#xff0c;我们可以用如下方式实现。 首先我们将windows下的文件夹右键选择【属性】&#xff0c;然后选择【共享】。 选择需要共享的用户&#xff0c;然后设置权限级别。 点击共享&#xff0c;然后点击完成。 这样我们在wi…

Go语言网络爬虫工程经验分享:pholcus库演示抓取头条新闻的实例

网络爬虫是一种自动从互联网上获取数据的程序&#xff0c;它可以用于各种目的&#xff0c;如数据分析、信息检索、竞争情报等。网络爬虫的实现方式有很多&#xff0c;不同的编程语言和框架都有各自的优势和特点。在本文中&#xff0c;我将介绍一种使用Go语言和pholcus库的网络爬…

基于opencv+ImageAI+tensorflow的智能动漫人物识别系统——深度学习算法应用(含python、JS、模型源码)+数据集(一)

目录 前言总体设计系统整体结构图系统流程图 运行环境爬虫1.安装Anaconda2.安装Python3.63.更换pip源4.安装Python包5.下载phantomjs 模型训练1.安装依赖2.安装lmageAl 实际应用1.前端2.安装Flask3.安装Nginx 相关其它博客工程源代码下载其它资料下载 前言 本项目通过爬虫技术…

Word怎么看字数?简单教程分享!

“我在写文章时&#xff0c;总是想看看写了多少字。但是我发现我的Word无法看到字数。在Word中应该怎么查看字数呢&#xff1f;请帮帮我&#xff01;” Word是一个广泛使用的文档编辑工具。在我们编辑文章时&#xff0c;如果想查看写了多少字&#xff0c;也是可以轻松完成的。 …

leetcode:环形链表的入环点

题目描述 题目链接:力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题目分析 我们假设起点到环的入口点的距离是L&#xff0c;入口点到相遇点的距离是X&#xff0c;环的长度是C 那么画图我们可以得知&#xff1a; 从开始到相遇时slow走的距离是LX从…