OSEK网络管理入门

2023-05-16

目录

    • OSEK初级认知
    • OSEK中级认知
        • 结构说明
        • 1. 正常上线、建环、传递令牌(Taken)及休眠
        • 2. 已建环有403新节点插入
        • 3. 已建环现有节点403异常掉线
        • 4. 上线未发现其他节点建环失败(跛足模式)
    • OSEK高级认知
        • 网络管理分类
        • 网络管理作用(巧记:同时休眠,提供状态)
        • 时间参数
    • OSEK网络管理总结

以下分级纯粹个人瞎分,专业人士请忽略

OSEK初级认知

有几个小朋友要玩“击鼓传花”游戏,游戏规则很简单:
1、想玩的人自己随机报个数,所有人报完后自己心里排个序,花从小数往大数传,最大数者传给最小数,花到谁手里谁发言:表明想继续玩还是想退出
2、第一个报数的人等一段时间后看没人再报数了就可以开始传花了。
3、花到谁手里发言前,他需要检查一下是否所有人都申请过想退出,如果是,他就通知大家:散场
4、当然如果中途有人表明:想继续玩,那他之前所有人的申请都作废,大家重新表明态度,直到出现第一个发现所有人都提过申请退出的人,这个人才正式通知大家:散场

初级中规则其实是为了让大家好几好回忆,理解规则后现在上数据玩真的

OSEK中级认知

实际场景中遇到的情况主要有以下四种情况:

  1. 正常上线、建环、传递令牌(Taken)及休眠(初级中描述的情况)
  2. 已建环有新节点插入
  3. 已建环现有节点异常掉线
  4. 上线未发现其他节点建环失败(跛足模式)

结构说明

  • data[1]表明自己节点当前状态
    • 0x01 Alive(上线,玩游戏前自我报数过程)
    • 0x02 Ring(建环,玩游戏传花中)
    • 0x04 LimpHome(跛足,网络无人响应无法建环)
    • 0x10 SleepIndicatio(休眠申请,游戏中申请退出)
    • 0x20 SleepAcknowledege(应答申请,游戏中通知大伙散场)
    • 以上命令可以组合比如建环中想申请休眠就是0x12
  • OSEK网络管理报文CAN ID 一般为4XX,其中XX就是自己的网络ID,data[0]在Alive状态时填充自己ID,但注意[1]建环前表明身份还是靠监听CAN ID XX而不是Alive时的data[0],在Ring状态时填充传递Taken的ID
    在这里插入图片描述

1. 正常上线、建环、传递令牌(Taken)及休眠

注意几个点:

  • 表格中时间是时间间隔,Alive在100ms内随机响应,Ring响应间隔是100ms
  • 当轮到自己发言0x12表明休眠申请后,只需处理3种状态:
    1. Taken未到自己(即下轮发言未轮到自己)时监听到休眠应答(其他节点发22或32)则进入休眠等待(1.5s)
    2. Taken未到自己时监听到有节点不想休眠发02,则退出休眠申请状态,轮到自己时重新发起
    3. Taken到自己时监听并检查所有节点都发出过10休眠申请,则自己发32广播集体休眠,进入休眠等待(1.5s)
  • 发出32休眠应答命令1.5s内有任何报文,则退出休眠重新申请
    -在这里插入图片描述
    [ tWaitBusSleep = 1500ms ]

2. 已建环有403新节点插入

在这里插入图片描述

  • 新节点03发Alive表明上线,同时节点00将下家节点从07更新为03
    在这里插入图片描述
  • 03上线后监听到09有发言,就把自己的下家节点更新为09
    在这里插入图片描述
    在这里插入图片描述
  • 03上线后只有09号比自己大,就理所当然到发言时通知09,这让07发现自己被忽略了
    在这里插入图片描述
  • 07继续通知09,不再发02Ring报文,而是发01Alive广播(这就是注意[1]里的原因,Alive时data[0]也不一定代表自己),次时03发现有个07在自己和下家09之间,则更新下家为07
    在这里插入图片描述
    在这里插入图片描述

3. 已建环现有节点403异常掉线

  • 以下图文是演示403节点掉线又上线的过程,如果403直接掉线,则400把Taken传给403超时未响应时,所有节点重新发Alive报文重新建环
    在这里插入图片描述
    在这里插入图片描述

4. 上线未发现其他节点建环失败(跛足模式)

在这里插入图片描述

  • 发Alive报文100m后发特殊Ring报文(正常的Ring报文data[0]应该指示下家节点,现在找不到只能填充自己节点ID)并监听网络,260ms超时后再次重发Alive报文
  • 在这里插入图片描述在这里插入图片描述

OSEK高级认知

网络管理分类

  • 直接网络管理(OSEK, AUTOSAR等专门网络报文进行整车节点控制唤醒休眠)
  • 间接网络管理(个人理解就是没有网络管理,IGN ON 发应用报文,OFF停发应用报文)

(本文中提及的网络管理都是指直接网络管理

网络管理作用(巧记:同时休眠,提供状态)

  • 协调各ECU节点同时进入休眠
  • 监控网络配置
  • 提供本身系统状态

时间参数

  1. ECU本地唤醒(IGN等)一般要求150ms内使能CAN接收处理应用报文,并在200ms内发出第一条报文且必须为Alive报文而非应用报文,并在第一条Alive后[60~120ms]间发送第一条应用报文,在700ms内所有周期报文至少发送一次(此要求依赖车厂)
    在这里插入图片描述
    2.ECU远程唤醒(收到网络报文)一般要求50ms内发出第一帧Alive报文,并在700ms内发送完成所有周期报文
    3.ECU休眠 当节点发出休眠申请后开始监听网络,当收到休眠应答(或轮到自己广播休眠应答)后进入1500ms休眠等待时间,时间到后关闭所有发送进入休眠。未避免反复唤醒,唤醒后至少5s才能下一轮休眠
    4.ECU跛足模式 当ECU连续4次发Alive报文无法建环时,进入LimpHome模式,以1000ms周期发送LimpHome 04报文
    在这里插入图片描述
    5.时间参数在这里插入图片描述

OSEK网络管理总结

1、建环机制:网络管理报文ID从小到大发送,然后从最大节点到最小节点依次建成逻辑环。

2、OSEK网络管理报文规则:ID:4xx,其中4代表此帧报文为网络管理报文。xx代表当前节点的基地址,在OSEK网络管理中会给每个节点分配一个基地址(00~FF)

  • Byte0:代表此帧网络管理报文发送的目标地址(一般情况)。通俗说就是这帧网络管理报文是发送给BCM还是给PEPS或者其他节点。

  • Byte1:代表发送的网络管理报文的类型即是ring报文还是Alive报文或者LimpHome报文;

    • 01:代表 Alive报文,在总线上声明自己的存在,请求其他节点与自己建环。

    • 02:代表Ring报文;

    • 12:代表当前节点已无通讯请求(睡眠标志位ind置位),即告知其他节点我已满足睡眠条件;

    • 32:即将其睡眠应答位置1,当检测到其他节点都在发送12ring报文后,最后一个节点发送此应答报文,告知其他节点当前整个网络无通信请求,可以睡眠。此时进入睡眠等待状态即Twbs状态。

    • 04:代表跛行报文,如果网络管理报文接收计数器和发送计数器超限后,发送跛行报文即无其他节点与此节点建环,只有一个节点存在。

  • 其余字节预留。

3、OSEK网络管理可以被应用报文唤醒。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OSEK网络管理入门 的相关文章

  • MISSION_MAVLINK

    上传航点的mavlink包 MISSION ITEM 39 Message encoding a mission item This message is emitted to announce the presence of a miss
  • VS2017使用libcurl,链接错误

    当使用libcurl库出现链接错误 xff0c 如下 1 gt WebSocketMsg obj error LNK2001 unresolved external symbol imp curl global init 1 gt WebS
  • Linux Shell 实现一键部署Msql8

    mysql前言 MySQL 是最流行的关系型数据库管理系统 xff0c 在 WEB 应用方面 MySQL 是最好的 RDBMS Relational Database Management System xff1a 关系数据库管理系统 应用
  • Linux Shell 实现一键部署Msql5

    mysql前言 MySQL 是最流行的关系型数据库管理系统 xff0c 在 WEB 应用方面 MySQL 是最好的 RDBMS Relational Database Management System xff1a 关系数据库管理系统 应用
  • Linux Shell 实现一键部署tomcat10+java13

    tomcat 前言 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器 xff0c 属于轻量级应用服务器 xff0c 在中小型系统和并发访问用户不是很多的场合下被普遍使用 xff0c 是开发和调试JSP 程序的首选 对于一个初学
  • Linux Shell 实现一键部署SQL_Server2022

    sql Server 前言 Microsoft SQL Server 是一个全面的数据库平台 xff0c 使用集成的商业智能 BI 工具提供了企业级的数据管理 Microsoft SQL Server 数据库引擎为关系型数据和结构化数据提供
  • Linux Shell 实现一键部署Redis6

    redis 前言 Redis xff08 Remote Dictionary Server xff0c 即远程字典服务 xff0c 是一个开源的使用ANSI C语言编写 支持网络 可基于内存亦可持久化的日志型 Key Value数据库 xf
  • Linux Shell 实现一键部署Rabbitmq

    rabbitmq 前言 RabbitMQ是实现了高级消息队列协议 xff08 AMQP xff09 的开源消息代理软件 xff08 亦称面向消息的中间件 xff09 RabbitMQ服务器是用Erlang语言编写的 xff0c 而集群和故障
  • [linux]mount与nfs挂载简介

    文章目录 挂载mount目录间挂载卸载与fuserfstabNFS Server配置命令 NFS client mount用于挂载设备 xff1a 挂载分区 xff1a mount dev sdb1 data xff1b 文件夹间 xff1
  • Linux Shell 实现一键部署Nginx

    nginx前言 nginx engine x 是 HTTP 和反向代理服务器 邮件代理服务器和通用 TCP UDP 代理服务器 xff0c 最初由Igor Sysoev编写 很长一段时间以来 xff0c 它一直在许多负载重的俄罗斯网站上运行
  • Linux Shell 实现一键部署二进制Rabbitmq

    rabbitmq 前言 RabbitMQ是实现了高级消息队列协议 xff08 AMQP xff09 的开源消息代理软件 xff08 亦称面向消息的中间件 xff09 RabbitMQ服务器是用Erlang语言编写的 xff0c 而集群和故障
  • Linux Shell 实现一键部署二进制docker+docker_compose

    docker 前言 Docker 是一个开源的应用容器引擎 xff0c 让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中 xff0c 然后发布到任何流行的 Linux或Windows 机器上 xff0c 也可以实现虚拟化 容器是完全
  • PowerShell install Docker+docker-compoer

    docker 前言 Docker 是一个开源的应用容器引擎 xff0c 让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中 xff0c 然后发布到任何流行的 Linux或Windows 机器上 xff0c 也可以实现虚拟化 容器是完全
  • PoweShell Win_server install wsl

    什么是 WSL 2 WSL 2 是适用于 Linux 的 Windows 子系统体系结构的一个新版本 xff0c 它支持适用于 Linux 的 Windows 子系统在 Windows 上运行 ELF64 Linux 二进制文件 它的主要目
  • PoweShell Win_desktop install wsl

    什么是 WSL 2 WSL 2 是适用于 Linux 的 Windows 子系统体系结构的一个新版本 xff0c 它支持适用于 Linux 的 Windows 子系统在 Windows 上运行 ELF64 Linux 二进制文件 它的主要目
  • Linux Shell 实现一键部署二进制go+caddy+filebrowser

    filebrowser filebrowser 是一个使用go语言编写的软件 xff0c 功能是可以通过浏览器对服务器上的文件进行管理 可以是修改文件 xff0c 或者是添加删除文件 xff0c 甚至可以分享文件 xff0c 是一个很棒的文
  • PowerShell install go+caddy+filebrowser+nssm 实现部署文件系统

    filebrowser filebrowser 是一个使用go语言编写的软件 xff0c 功能是可以通过浏览器对服务器上的文件进行管理 可以是修改文件 xff0c 或者是添加删除文件 xff0c 甚至可以分享文件 xff0c 是一个很棒的文
  • Linux Shell 实现一键部署http+用户名密码登录

    Apache 前言 Apache 音译为阿帕奇 是世界使用排名第一的Web服务器软件 它可以运行在几乎所有广泛使用的计算机平台上 xff0c 由于其跨平台和安全性被广泛使用 xff0c 是最流行的Web服务器端软件之一 它快速 可靠并且可通
  • PowerShell install 一键部署http+用户名密码登录实现文件系统

    Apache 前言 Apache 音译为阿帕奇 是世界使用排名第一的Web服务器软件 它可以运行在几乎所有广泛使用的计算机平台上 xff0c 由于其跨平台和安全性被广泛使用 xff0c 是最流行的Web服务器端软件之一 它快速 可靠并且可通
  • [python]异常处理与try语句

    文章目录 异常处理try语句异常信息抛出异常 异常类型自定义异常预定义异常 使用 try except else 来捕获异常 xff0c 且要求异常必须继承自Exception类 异常处理 运行期检测到错误称为异常 try语句 python

随机推荐

  • 大杂烩·OSI和TCP/IP协议与ZigBee技术·一

    1 ZigBee技术 ZigBee是基于IEEE802 15 4标准的低功耗局域网协议 根据国际标准规定 xff0c ZigBee技术是一种短距离 低功耗的无线通信技术 这一名称 xff08 又称紫蜂协议 xff09 来源于蜜蜂的八字舞 x
  • Linux Shell 实现一键部署subversion

    subversion SVN是subversion的缩写 xff0c 是一个开放源代码的版本控制系统 xff0c 通过采用分支管理系统的高效管理 xff0c 简而言之就是用于多个人共同开发同一个项目 xff0c 实现共享资源 xff0c 实
  • PowerShell install 一键部署TortoiseSVN

    TortoiseSVN TortoiseSVN是 Subversion 版本控制系统的一个免费开源客户端 xff0c 可以超越时间的管理文件和目录 文件保存在中央版本库 xff0c 除了能记住文件和目录的每次修改以外 xff0c 版本库非常
  • PowerShell install 一键部署subversion

    subversion SVN是subversion的缩写 xff0c 是一个开放源代码的版本控制系统 xff0c 通过采用分支管理系统的高效管理 xff0c 简而言之就是用于多个人共同开发同一个项目 xff0c 实现共享资源 xff0c 实
  • ROS(1)安装

    1 ros安装 安装过程参考https www cnblogs com letisl p 11815191 html安装wsl略 xff0c 利用mobaxterm进行连接与可视化 1 1 添加源 sudo sh c 39 etc lsb
  • ROS(11)move_base详解

    11 move base详解 11 1 move base配置参数解读 参考链接 xff1a https blog csdn net banzhuan133 article details 90239252 https wenku baid
  • vscode c/c++ global插件实现代码跳转

    问题 在打开某些大的工程 xff0c 如ROS时 xff0c 有些类成员或接口无法进行自动跳转 xff0c 比较难受 vscode插件安装 安装C C 43 43 GNU Global插件 安装C 43 43 Intellsense插件 G
  • gammaray剖析QT程序——如何解析qt版本不同的exe

    gammaray是个非常牛逼的工具 xff0c 但是当我们要分析的exe和当前编译gammaray不一致时 xff0c 是没法使用的 方法很简单 xff0c 其实版本和exe无关 xff0c 和exe依赖的qt dll库有关 xff0c 我
  • do{}while(0)用法

    linux内核和其他一些开源的代码中 xff0c 经常会遇到这样的代码 xff1a do while 0 这样的代码一看就不是一个循环 xff0c do while表面上在这里一点意义都没有 xff0c 那么为什么要这么用呢 xff1f 实
  • windows下vscode安装go插件

    1 GIT安装 vscode安装 略 2 GO在win下安装及环境变量配置 安装完GO后 xff0c 创建一个目录作为工作区 xff0c 如G my project go xff0c 环境变量添加GOPATH并指向该目录 在该目录下创建三个
  • GDB调试中 如何在so共享库中打断点、保存断点以及加载断点

    最近在使用gdb的过程中 xff0c 需要对so文件进行调试 xff0c 在这里记录一下调试中的问题及解决方法 如何在so源文件中打断点 xff1f 首先编译so时需要 g指令 在gdb xxx指令后 xff0c 发现无法在so对应的源码文
  • [Net]SSE消息推送简介

    文章目录 SSE网络协议客户端服务端事件 SSE示例客户端服务端 SSE xff08 Server Sent Events xff09 是一种服务端到客户端 xff08 浏览器 xff09 的单向消息推送方式 SSE网络协议 SSE是基于H
  • 记录一次Windows下通过reimp和dlltool转换.lib到.a的过程

    背景是这样的 xff1a 在linux下的一个C 43 43 服务由于特殊原因 xff0c 需要在windows下跑 xff0c 该工程为cmake搭建 xff0c 用到了qt的一些基础库 xff0c 我们想在qtcreator中用ming
  • DGPS知识详解

    什么是DGPS xff1f DGPS Difference Global Positioning System英文单词的缩写 xff0c 即差分全球定位系统 由于当前GPS全球卫星定位系统精度不能满足人们定位导航的需要 xff0c 因此 x
  • CMake 指定gcc编译版本

    修改 CMakeLists txt 文件 xff0c 添加如下命令 SET CMAKE C COMPILER home hhb gcc 5 2 0 bin gcc SET CMAKE CXX COMPILER home hhb gcc 5
  • 避免头文件的多重包含

    避免头文件的多重包含 通过预处理器变量 xff0c 我们可以以头文件保护符的形式避免在已经见到头文件的情况下重新处理该头文件的内容 使用预处理器变量作为头文件保护符 预处理器变量有两种状态 xff1a 已定义与未定义 define指示接受一
  • 空气动力与电机力学

    空气动力学 1 空气阻力的公式 xff1a F 61 1 2 C SV 2 式中 xff1a C为空气阻力系数 xff1b 为空气密度 xff1b S物体迎风面积 xff1b V为物体与空气的相对运动速度 由上式可知 正常情况下空气阻力的大
  • java学习记录

    前言 Java系列课之基础入门 xff1a 钟洪发老师JAVA零基础入门笔记 JAVA学习指导 00 关于Java学习的一个开场白 01 常用dos命令和ava环境软件下载 在开始学习java之前 我们必须掌握一些常用的dos命令 一 di
  • GPS串口数据接收程序实例

    GPS串口数据接收程序实例 摘 要 xff1a 目前GPS xff08 全球定位系统 xff09 定位应用市场日趋成熟 xff0c 正在进入应用的高速发展时期 本文以一款EverMore公司的GM X205GPS接受模块为例 xff0c 介
  • OSEK网络管理入门

    目录 OSEK初级认知OSEK中级认知结构说明1 正常上线 建环 传递令牌 xff08 Taken 及休眠2 已建环有403新节点插入3 已建环现有节点403异常掉线4 上线未发现其他节点建环失败 xff08 跛足模式 xff09 OSEK