整车总线系列——FlexRay 六

news2024/11/23 17:02:11

整车总线系列——FlexRay 六

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:

没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人生在世,最怕的就是把别人的眼光当成自己生活的唯一标准。到最后,既没有活成别人喜欢的样子,也没有活成自己想要的样子。
我们只有接纳真实的自己,不自卑、不自傲,才能拥有更强大的内心;只有找到自己的核心价值,才能活出自己的精彩人生。

FlexRay簇中的数据通信是周期性的,并且基于调度表。通信周期至少包括两个时间段: 静态段和NIT(the network idle time,网络空闲时间)段。静态段用于确定性地传输报文,NIT段用于同步本地时钟。在NIT段期间不会进行数据通信。

根据需要,可以通过添加动态段和符号窗(Symbol Window)来扩展通信周期。动态段用于传输事件驱动的报文,在整个通信周期中,动态段应位于静态段之后。符号窗用于传输符号:冲突避免符号用于表示第一个通信周期开始。介质测试符号用于测试总线监控器,唤醒符号用于唤醒FlexRay簇。

由于一个周期中仅静态段和NIT段是必需的,因此可以存在四种周期变体。“Communication Cycle”图显示了一个周期,其中包含所有可用的时间段:静态段、动态段、符号窗和NIT。

通信周期由规定数量的 Macrotick 构成,每个时间段中包含一定数量的Macrotick。Macrotick由若干Microtick构成,Microtick是本地时钟的最小时间单位。由于晶振频率之间的差异会产生不同长度的Microtick,因此为获得同步的Macrotick,不同FlexRay节点的Macrotick可能会由不同数量的Microtick构成。

在FlexRay通信周期内,静态段可以提供确定性的数据传输。静态段所基于的TDMA方法可保证这一点。

静态段由若干等长的静态时隙组成。分配给静态时隙的FlexRay节点可以在该时隙发送静态报文。这个过程的前提条件是同步本地计数器,每个本地计数器都会在静态时隙的开始处递增。计数器值指向的是特定的静态报文和FlexRay节点。

“Static Segment”图中显示了通道A和通道B的通信调度表。两个通道的第一个时隙传输相同的报文,这样单个通道发生故障不会导致报文无法传输。但冗余通信通道也可以用于加快数据传输速率,而不是提高容错能力。这正是静态段的其他时隙所采用的方法:在两个通道中传输不同的报文,而且可以为每个FlexRay报文分别选择容错性或提高数据传输速率。

FlexRay簇最多可定义1023个静态时隙。由于至少需要两个FlexRay节点才能生成全局时基(global time base),因此静态段必须包含至少两个静态时隙分别分配给这两个FlexRay节点。

在静态段期间平稳地传输确定性报文需要足够长的静态时隙。静态时隙的长度首先由最长的FlexRay报文决定。FlexRay报文基本上由帧头、有效负载、帧尾和控制符号构成。此外,还必须考虑到表示FlexRay报文结尾的通道空闲界定符。

以下两者也会对静态时隙的长度造成影响:允许的最大信号延迟(最大允许延迟为2.5微秒),以及同步(精确)后任意两个FlexRay节点之间允许的最大时间偏差。

静态时隙由四部分组成。即使考虑最大的信号延迟以及FlexRay节点本身时钟的最大偏差,也可以确保报文在特定的静态时隙内传输。

每个静态时隙的开始都是一个动作点偏移,动作点指的是报文传输的起始点。动作点偏移之后是动作点和FlexRay报文。FlexRay报文之后是通道空闲界定符(11个隐性位),最后是暂停(通道空闲),其持续时间在逻辑上等于动作点偏移。图“StaticSlot2”详细介绍了静态时隙的这一结构。

显然,精度和信号延迟与FlexRay簇中可实现的最大数据传输速率成反比:随着本地时钟的精度越来越差或信号的延迟越来越大,时隙的起点与动作点之间的时间跨度将越来越大,最终会降低可实现的最大数据传输速率。

**动态段是可选的。动态段用于传输事件驱动的报文,因此支持异步进程。为避免影响静态段的确定性数据传输,动态段的时间长度始终相同,且始终位于静态段之后。

动态段基于FTDMA ,该方法的核心还是TDMA 。尽管如此,动态段仍可以实现灵活的通信流。因此,动态段中的通信也基于通信调度表。通信调度表中定义的动态报文仅在发生需要报文传输的事件时才在动态段中传输。

每个节点的计数器在动态段会延续静态段的计数并继续递增。计数器值指向的是特定的动态报文和FlexRay节点。如果FlexRay节点未请求发送与计数器值相匹配的动态报文,FlexRay节点会在一个微时隙的长度后将计数器加一。在这种情况下,动态时隙正好是一个微时隙的长度。

如果存在发送请求,则相关的FlexRay节点会传输与计数器值相匹配的动态报文。此时动态时隙可能包含多个微时隙。动态时隙结束后,节点的计数器加一。计数器递增后,如果有新的发送请求,则传输与计数器当前值匹配的动态报文;反之,则在一个微时隙后计数器递增。

此过程不断重复,直到动态段的长度不足以传输动态报文为止。由于动态段剩余长度太短,因此直到动态段结束的时间内都不会有数据传输。尚未传输的动态报文将在下一个周期的动态段继续传输。您可以通过课程下方的交互图更好地了解动态段中的数据传输。请阅读说明,以便您可以充分利用其全部功能。

显然,分配给动态报文的计数器值与传输该动态报文的概率之间存在关系:计数器值越大,传输报文的概率越小。可以得出结论,分配给动态段的最小计数器值具有最高优先级。

最后,系统设计师必须确保动态段可以传输其中低优先级的报文,同时也要确保能够传输最长的动态报文。**

搁笔分享完毕!

愿你我相信时间的力量

做一个长期主义者!

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

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

相关文章

iOS--weak的底层

怎么说 在iOS开发过程中,会经常使用到一个修饰词weak,使用场景大家都比较清晰,避免出现对象之间的强强引用而造成对象不能被正常释放最终导致内存泄露的问题。weak 关键字的作用是弱引用,所引用对象的计数器不会加1,并…

【自启动配置】Ubuntu 设置开机自启动脚本

Ubuntu 开机运行的脚本和当前操作系统运行的级别有关,OS 的运行级别大概分为七个 目录 1、查看 OS 运行级别 2、创建自启动脚本 3、添加软链接 1、查看 OS 运行级别 输入命令 runlevel 查看当前系统运行级别。当前系统的运行级别为 5 2、创建自启动脚本 在 /et…

Linux网络基础 — 数据链路层

目录 数据链路层 认识以太网 局域网转发的原理 认识以太网的MAC报头 以太网帧格式 认识MAC地址 对比理解MAC地址和IP地址 基于MAC帧协议再次谈一谈局域网转发的原理 认识MTU MTU对IP协议的影响 MTU对UDP协议的影响 MTU对于TCP协议的影响 ARP协议 ARP协议的作用 …

rust gtk 桌面应用 demo

《精通Rust》里介绍了 GTK框架的开发,这篇博客记录并扩展一下。rust 可以用于桌面应用开发,我还挺惊讶的,大学的时候也有学习过 VC,对桌面编程一直都很感兴趣,而且一直有一种妄念,总觉得自己能开发一款很好…

Rust之通用编程

1、变量与可变性: 在Rust语言中,变量默认是不可变的,所以一旦变量被绑定到某个值上面,这个值就再也无法被改变。 可以通过在声明的变量名称前添加mut关键字来使其可变。除了使变量的值可变,mut还会向阅读代码的人暗示…

“C++基础入门指南:了解语言特性和基本语法”

C是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式 等。熟悉C语言之后,对C学习有一定的帮助 文章目录 C命名风格C关键字(C98)C命名空间命名空间定义命名空间使用命名空间的使用有三种方式&#xff…

Android - 集成三方模组原厂WiFi Hal库问题

Android - 集成三方模组原厂WiFi Hal库问题 最近Android 11产品平台上需要集成三方WiFi/AP模组厂商提供的hal静态库时遇到一个问题:将三方的库代码集成进系统,并正确配置、编译出lib_driver_cmd_xxx.a(xxx一般是厂商的名字缩写,仅仅是个后缀用…

gazebo simulation

<?xml version"1.0" ?> <!-- --> <!-- | This document was autogenerated by xacro from /home/xrh/ros-project/gazebo_test/src/fmauch_universal_robot/ur_description/urdf/ur3_D455_2f140.urdf.xacro | --> <!-- | EDITING THIS…

C++---string

String C语言中的字符串和C中的string类标准库中的string类string类的常用接口string类对象的常见构造string类对象的容量操作string类对象的访问及遍历操作 C语言中的字符串和C中的string类 在C语言中&#xff0c;字符串是一个字符数组&#xff0c;它以空字符\0结尾&#xff…

【进程7】 2.15 有名管道介绍及使用 2.16有名管道实现简单版聊天功能

2.15 有名管道介绍及使用 有名管道&#xff08;FIFO first in first out&#xff09; 有名管道也可用于具有亲缘关系的进程之间&#xff0c;底层数据结构也是环形队列、循环队列。 有名管道的使用 unlink用于删除一个文件。 创建fifo文件 命令&#xff1a; 文件类型p&…

Android-WebRTC-双人视频

省略开启本机摄像头的过程 以下和WebSocket通信的时候&#xff0c;是通过Gson转对象为字符串的方式传输的数据 整个过程 layout_rtc.xml <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:and…

汽车ECU刷机笔记

汽车ECU刷机笔记 ECU简介ECU刷机的意义点火提前角点火延迟角调整意义 常见刷ECU的方法:成本价格1.通过obd汽车诊断口读写数据2.bdm后台调试模式3.BENCH刷写4.BOOT需要拆开电脑板&#xff0c;焊接电路 ECU刷写程序读取数据OBD tools(汽车诊断器)蓝牙ODB诊断器&#xff1a; 读写设…

<j-editable-table 隐藏一列表格数据

&#xff1c;j-editable-table 隐藏一列表格数据 隐藏条码 本来列代码是这样的 {title: 条码, key: barCode, width: 15%, type: FormTypes.input, defaultValue: , placeholder: 请输入${title},validateRules: [{ required: true, message: ${title}不能为空 },// { pattern…

二分搜索树的特性

一、顺序性 二分搜索树可以当做查找表的一种实现。 我们使用二分搜索树的目的是通过查找 key 马上得到 value。minimum、maximum、successor&#xff08;后继&#xff09;、predecessor&#xff08;前驱&#xff09;、floor&#xff08;地板&#xff09;、ceil&#xff08;天…

leetcode 699. 掉落的方块(java)

掉落的方块 leetcode 699. 掉落的方块题目描述线段树解法代码演示 leetcode 699. 掉落的方块 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/falling-squares 题目描述 在二维平面上的 x 轴上&#xff0c;放置着一些方块…

jmeter软件测试实验(附源码以及配置)

jmeter介绍 JMeter是一个开源的性能测试工具&#xff0c;由Apache软件基金会开发和维护。它主要用于对Web应用程序、Web服务、数据库和其他类型的服务进行性能测试。JMeter最初是为测试Web应用程序而设计的&#xff0c;但现在已经扩展到支持更广泛的应用场景。 JMeter 可对服务…

Linux系统入门之-系统编程【open、close函数】

继上一篇环境配置后就正式开始系统编程 RK3568开发板入门之-tftp&nfs的配置 open的使用&#xff0c;使用之前可以先在Ubuntu下查看帮助&#xff0c;了解open的使用和语法&#xff0c;如下&#xff1a; man 2 open对于open函数 *pathname&#xff1a;要打开的文件路径 f…

【JavaWeb】Tomcat底层机制和Servlet运行原理

&#x1f384;欢迎来到dandelionl_的csdn博文&#xff0c;本文主要讲解Java web中Tomcat底层机制和Servlet的运行原理的相关知识&#x1f384; &#x1f308;我是dandelionl_&#xff0c;一个正在为秋招和算法竞赛做准备的学生&#x1f308; &#x1f386;喜欢的朋友可以关注一…

Revisiting Personalized Federated Learning:Robustness Against Backdoor Attacks

ACM SIGKDD Conference on Knowledge Discovery and Data Mining 2023 秦泽钰&#xff0c;香港科技大学计算机科学与工程系博士生&#xff0c;联邦学习中个性化的额外增益&#xff1a;对于后门攻击的鲁棒性 https://github.com/alibaba/FederatedScope/tree/backdoor-bench 摘要…

MySQL两种安装方式

数据库&#xff1a; 一、 二、 三、 四、 五、MySQL的两种安装方式 .zip包的安装方式&#xff1a; .msi方式安装的需要到控制面板卸载 密码默认是空密码 5.7和8.0开始&#xff1a;加强安全相关操作&#xff0c;安装有所不同 前三步一样&#xff0c;第四步在cmd&#xff0c;以…