首页 > 其他分享 >FlexRay总线协议介绍(1)- 媒体访问控制

FlexRay总线协议介绍(1)- 媒体访问控制

时间:2024-09-14 19:49:13浏览次数:3  
标签:slot 访问控制 总线 传输 静态 动态 FlexRay 节点 cycle

Media Access Control

Communication cycle(通信周期)

概述

cycle长度:常数,由协议参数gMacroPerCycle 定义

cycle数量:0-63递增,由协议参数cCycleCountMax定义

cycle组成:分为静态段,动态段,符号窗口段,网络空闲时段,仅静态段和网络空闲时段是必须的。

Action Point: Macrotick(MT)的边界,是静态段/动态段/符号窗口段Slot传输开始的特定时刻。

静态段

作用:进行时间同步和周期性的数据传输

静态段由多个静态slot组成,每个静态段的长度相等,是每个cycle最先传输的部分。

静态slot的数量由协议参数gNumberOfStaticSlots定义,从1开始计数,至少2,最多1023,静态slot总是分配给唯一的节点。每个静态slot的长度相等,由参数gdStaticSlot定义。

每个静态slot包含一个Action Point, 是每个slot开始传输前的偏移量,由全局常量gdActionPointOffset定义,表征一个静态slot的传输开始。

为了规划传输,每个节点都会维护一个slot计数器,由参数vSlotCounter描述,在通讯周期的开始时从1计数,每传输完一个slot后增加1。

静态段在通信时有以下限制:

  1. 如果节点内包含一个或多个Key slots, 这个节点应该通过该key slot(s)向连接的全部通道内全部通信cycle发送Flexray报文。
  2. 在slots但不是Key slot(s), Flexray报文可以发送到单个通道,或者两个都发送。
  3. 在给定的通信cycle, 不得有一个以上节点在指定信道上传输具有指定ID 的帧。但允许不同节点在不同的通信cycle内在同一信道上传输具有相同帧 ID 的帧。
  4. 如果一个no-sync node被配置为在启动后进入key slot模式(pKeySlotOnlyEnabled is true),节点应通过参数pKeySlotID指定一帧作为Key Slot帧。

静态帧通过静态Slot进行传输,每个slot传输一帧静态帧,由于每个静态slot是等长的,所以每个FlexRay的报文长度必须相等。静态帧由header, payload, trailer三部分组成,且在每帧结束后,会有一个11位长的通道空闲界定符(CID)。静态帧的ID范围从1到cSlotIDMax。

动态段

位于静态段之后,是可选的动态段,用于事件触发的信息发送。被划分位多个minislots, 每个通信cycle内的动态段长度总是相等的。minislot的数量和长度分别由全局常量gNumberOfMinislots和gdMinislot定义。当有节点需要发送数据时,则由一定数量的minislot组成一个动态Slot。不同于静态slot,动态slot的长度是可变的。

本地slot计数器(vSlotCounter)会持续记录slot的数量以决定当前的动态段slot的ID,静态段没被使用到的ID仍可以在动态段中被使用,最大可被分配的slot ID = 2047(cSlotIDMax),  minislot会接着动态slot的计数器继续计数。直到通道的slot计数达到cSlotIDMax或者动态段达到了gNumberOfMinislots. 之后计数器会归零,并通知当前的通信cycle。

每个minislot包含一个action point, 用于指示minislot中帧传输的起始位置。除了第一个动态slot外,该偏移都是gdMinislotActionPointOffset,单位为MT。gdMinislotActionPointOffset对于给定的cluster为全局常量。 帧的传输也以action point结束。

与静态段不同的是,动态段包含两个不同的阶段:强制动态slot传输段和可选动态slot空闲段。动态slot传输段的范围是从动态slot的起始到最后一个minislot传输结束。动态slot空闲段(可选)的范围是从动态slot传输段结束到动态slot结束。

需要注意的是,对于动态段的起始,第一个action point的位置位于的gdActionPointOffset和gdMinislotActionPointOffset中较大的值。

由于动态slot的长度是可变的,因此动态帧的长度也同样可变。每个动态slot包含一个动态帧,动态帧同样由header,  payload, trailer三部分组成,其中header和trailer的长度以及CID都与静态slot一样,payload的长度为可变长度。在同一通信cycle,不同slot的帧长度可以不同,在不同通信cycle,具有相同ID的slot的帧长度也可以不同。不同通信cycle中具有相同ID的slot的帧的长度也可能不同。

在每个动态slot中,通过使用DTS(Dynamic Trailing Sequence)动态尾部序列,可以在minislot的间隙中插入一些必要的位,可以防止接受方过早的检测到通信通道处于空闲的状态。

动态段在通信时有以下限制:

  1. 不允许发送同步帧,启动帧和空帧。
  2. 在给定通信cycle,被指定的帧可以在任一通道、两个通道传输或两个通道都不传输。由于基于通道的媒体访问过程具有独立性,在两个通道上尝试传输的帧有可能在一个通道上成功,但在另一个通道上却不成功。在两个通道上成功传输的帧也有可能是在不同通道上的不同时间点传输的。
  3. 在给定的通信cycle内,不得有超过一个节点在给定通道上传输具有给定帧 ID 的帧。但允许不同节点在不同的通信cycle内在同一通道上传输具有相同帧 ID 的帧。
  4. 当节点在key slot的模式下运行时,不能在动态段中发送帧,因此,节点所包含的key slot帧不能在动态段发送。

符号窗口段

位于动态段之后,是可选符号窗口段,每个cycle可通过符号窗口发送一个符号。符号窗口段的长度由全局变量gdSymbolWindow定义,为固定长度。当前,仅媒体访问测试符号是可用的。主要用于检查可选的本地Bus Guardian,作用类似与CAS(冲突避免符号)。他们都是由30个低位电平组成。符号窗口在传输符号的过程中不会对有用的数据进行传输。从3.0.1开始,唤醒模式可能也会通过符号窗口进行传输。这样就可以在正在进行通信的过程中唤醒之后的节点。

当没有符号需要传输时,可以将gdSymbolWindow配置为0。

FR协议不规定symbol window中冲突的解决情况,需要应用程序进行处理。

网络空闲时段

每个循环都必须以网络空闲时段(NIT)结束。由通道空闲和偏移补偿两部分组成。从通道的角度看,在NIT阶段,没有数据会在总线上可见。因此,NIT则为空闲时间。在此期间,节点可以进行同步或者必要的计算。偏移补偿在上一部分的NIT时段完成,故又名偏移补偿段。NIT由协议参数gdNit定义。

运行模式

协议运行控制(POC)流程设置了每个通信周期的媒体访问控制(MAC)的工作模式。

主要包括:

  1. STANDBY mode: MAC被有效停止
  2. NOCE mode: MAC被执行,但是没有帧或者符号传输到配置的通道上
  3. STARTUPFRAMECAS mode:如果节点被配置发送启动帧,则每个通信周期,每个key Slot只能在每个配置通道上传输一个启动空帧。此外,节点还会在第一个通信周期之前传输一个初始 CAS 符号。
  4. STARTUPFRAME mode:如果节点被配置发送启动帧,则每个通信周期每个Key Slot只能在每个配置通道上传输一个启动空帧。
  5. KEYSLOTONLY mode: 传输受限于不同的节点同步类型。
  • TTD同步,每个通信周期只允许在配置的通道上传输一个同步帧。
  • TTE/TT-L同步,冷启动节点每个通信周期只允许在配置的通道上传输两个启动帧。
  • 非同步节点,在任何同步下都只允许在每个通信周期内在配置的通道上传输一个key slot的帧。

    6. 所有模式下,帧和符号的发送都依据节点分配的slot进行传输。

注:文中引用图片为协议原文图片以及Vector B站培训视频图片。

标签:slot,访问控制,总线,传输,静态,动态,FlexRay,节点,cycle
From: https://blog.csdn.net/m0_50114467/article/details/142259690

相关文章

  • APB总线总结
    APB总结一、简介APB提供了一个低功耗的接口,并降低了接口的复杂性。APB接口用在低带宽和不需要高性能总线的外围设备上。APB是非流水线结构,所有的信号仅与时钟上升沿相关,这样就可以简化APB外围设备的设计流程,每个传输至少耗用两个周期。二、信号列表信号名来源描述PC......
  • [linux 驱动]i2c总线设备驱动详解与实战
    目录1描述2结构体2.1bus_type2.2i2c_bus_type2.2.1i2c_device_match2.2.2i2c_device_probe2.2.3i2c_device_remove2.2.4i2c_device_shutdown2.2i2c_adapter2.3i2c_algorithm2.4i2c_driver2.5i2c_client3i2c核心3.1注册i2c适配器3.2注册i2c设备......
  • USB总线-Linux内核USB3.0设备控制器中断处理程序分析(九)
    1.概述USB设备枚举、请求处理、数据交互都涉及USB设备控制器中断。当有事件发生时,USB设备控制器首先将事件信息通过DMA写入到事件缓冲区中,然后向CPU发出中断,随后CPU调用中断处理函数开始处理中断事件。2.事件dwc3USB设备控制器事件使用dwc3_event数据结构描述,由4个字节组成。......
  • Linux字符设备驱动:分层/分离思想、总线设备驱动模型和设备树
    本文章参考韦东山嵌入式Linux应用开发完全手册......
  • USB总线-Linux内核USB3.0主机控制器驱动框架分析(十二)
    1.概述如下图所示,Linux内核中USB主机体系结构由五部分组成,分别为ApplicationSoftware、USBClassDriver、USBCore((USBDriver)、USBHostControllerDriver、USBHostController。应用程序处于用户空间,通过系统调用访问ClassDriver,从而间接的访问USB设备,如主机端的应用程......
  • 51单片机-AT24C02(IIC总线介绍及其时序编写步骤)-第一节(下一节实战)
    IIC开始通信(6大步)我以前的文章也有对基本常用的通信协议讲解,如SPIUARTIICRS232RS485CAN的讲解,可前往主页查询,(2024.9.12,晚上20:53,将AT24C02存储芯片,掉电不丢失,容量256字节)......
  • Can总线介绍
    1: 一文读懂CAN总线协议(超详细配34张高清图)_can总线通信协议-CSDN博客2:CAN串行通信总线协议(CAN总线特点、应用场景、物理层、协议层、位时序、硬件同步和再同步、总线仲裁、STM32CAN控制器、CAN相关寄存器和HAL库驱动、CAN基本驱动步骤)_can总线通信协议-CSDN博客3:CAN总线协议......
  • 什么是ESB(企业服务总线)?
    企业服务总线EnterpriseServiceBus(简称ESB),是传统中间件技术与XML、JSON、API、WEB服务等技术相互结合的产物,用于实现企业应用不同消息和信息的准确、高效和安全传递。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。一、ESB出现和发展国外的信息化起步较......
  • 【Kubernetes】K8s 的鉴权管理(一):基于角色的访问控制(RBAC 鉴权)
    K8s的鉴权管理(一):基于角色的访问控制(RBAC鉴权)1.Kubernetes的鉴权管理1.1审查客户端请求的属性1.2确定请求的操作2.基于角色的访问控制(RBAC鉴权)2.1基于角色的访问控制中的概念2.1.1角色2.1.2角色绑定2.1.3主体2.2实现基于角色的访问控制1.Kuber......
  • 电子电气架构---私有总线通信和诊断规则
    电子电气架构—私有总线通信和诊断规则我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益......