LIN协议栈 AUTOSAR架构下 状态管理

2024-09-05 07:36

本文主要是介绍LIN协议栈 AUTOSAR架构下 状态管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、LIN State Manager 概述

  • 功能 :负责控制 LIN 总线的通信状态,包括切换调度表(仅 LIN 主节点)、处理睡眠和唤醒操作、通知上层新状态等。
  • 约束 :每个 ECU 中最多有一个实例;所有关于调度表的操作仅适用于 LIN 主节点;适用于所有使用 LIN 的汽车领域。
  • 依赖关系 :依赖于 Communication Manager(ComM)和 LIN Interface(LinIf),与操作系统、Default Error Tracer(DET)、Diagnostic Event Manager(DEM)、BSW Mode Manager 等有交互。

二、状态和转换

  • LINSM_UNINIT
  • 定义 :初始状态,在启动时激活,在任何 API 调用之前。
  • 激活条件 :在启动时自动激活,且在任何 API 调用之前保持该状态。
  • LINSM_INIT
  • 定义 :初始化后激活的状态。
  • 进入条件 :当 LinSM_Init 函数被调用时,从任何状态或子状态转换到此状态。
  • 子状态设置 :进入此状态时,所有网络的子状态将转换为 LINSM_NO_COM。
  • 初始化设置 :进入此状态时,将相关全局变量等设置为默认值(复位值)。
  • 默认子状态 :进入此状态时,对于所有网络,子状态 LINSM_NO_COM 将被激活。
  • 与 LinIf 的关系 :LinSM_Init 函数应将每个配置通道的调度类型设置为 NULL_SCHEDULE(仅适用于 LIN 主节点),且在此函数中不应调用 LinIf 的某些 API(如 LinIf_SetTrcvMode)。
  • LINSM_NO_COM
  • 定义 :在初始化后、ComM 模块请求无通信(LIN 主节点)或 LinIf 指示总线睡眠事件(LIN 从节点)时激活的子状态。
  • 状态通知 :进入此状态时,LinSM 模块应通知 ComM 和 BswM(除特殊情况外)关于状态的变化。
  • 特殊情况 :当 LinSM 正在执行 LinSM_Init 函数时,不应进行状态通知。
  • 通信限制 :在此状态下,LinSM 模块不应命令 LinIf 模块为所选网络进行通信,即总线应保持静默。
  • 收发器设置 :进入此状态时,根据 LinSMTransceiverPassiveMode 的值,通过 LinIf_SetTrcvMode 设置收发器为 STANDBY 或 SLEEP(仅当 LinSMTransceiverPassiveMode 为该通道配置时适用)。
  • LINSM_FULL_COM
  • 定义 :允许在 LIN 总线上进行通信的状态,每个网络可独立进入此状态。
  • 状态通知 :进入此状态时,应通知 ComM 和 BswM 关于状态的变化。
  • 收发器设置 :进入此状态时,通过 LinIf_SetTrcvMode 将收发器设置为活动状态(仅当 LinSMTransceiverPassiveMode 为该通道配置时适用)。
  • 子状态进入 :进入此状态时,子状态 LINSM_RUN_COMMUNICATION 将被进入。
  • 睡眠操作(Goto sleep)
  • 主节点 :当状态为 LINSM_FULL_COM 且 ComM 请求 COMM_NO_COMMUNICATION 时,LinSM 应调用 LinIf_GotoSleep 发送睡眠命令。
  • 从节点 :当状态为 LINSM_FULL_COM 且 ComM 请求 COMM_NO_COMMUNICATION 时,LinSM 应存储请求的通信模式并返回 E_OK。
  • 通用规则 :LinSM 模块仅在 LINSM_FULL_COM 和 LINSM_RUN_COMMUNICATION 状态下才可调用 LinIf_GotoSleep API;当 LinSM_GotoSleepConfirmation 被调用且当前状态为 LINSM_FULL_COM/LINSM_GOTOSLEEP 时,LinSM 应将状态设置为 LINSM_NO_COM(与 “success” 参数无关),在其他状态下应忽略该确认;若 LinIf_GotoSleep 返回 E_OK,则 LinSM 应设置子状态为 LINSM_GOTOSLEEP。
  • 唤醒操作(Wake up)
  • 触发条件 :由 ComM 模块通过 LinSM_RequestComMode 请求唤醒或 LIN 节点传输唤醒信号触发。
  • 处理方式 :当 ComM 请求 COMM_FULL_COMMUNICATION 时,LinSM 应直接调用 LinIf_Wakeup 发送唤醒信号(在特定情况下除外),并重置最大重试次数计数器;若 LinIf_Wakeup 返回 E_NOT_OK,LinSM_RequestComMode 应直接返回 E_NOT_OK 且不进行其他操作;当 LinIf 通知唤醒成功发送时,状态应设置为 LINSM_FULL_COM,在其他情况下,状态应设置为与请求前相同的状态。

三、状态管理相关的其他要点

  • 错误分类 :包括开发错误、运行时错误、瞬态故障、生产错误和扩展生产错误。
  • API 规范 :提供了如 LinSM_Init、LinSM_ScheduleRequest、LinSM_GetVersionInfo 等与状态管理相关的 API 函数。
  • 配置规范 :定义了配置参数和其聚类到容器中的方式,LinSM_Configuration 包含 LinSM、LinSMConfigSet、LinSMChannel、LinSMGeneral、LinSMSchedule 等容器和参数,这些配置与状态管理的各种设置和行为相关。

总之,LIN State Manager 通过对这些状态的管理和转换,实现了对 LIN 总线通信状态的精确控制,以满足汽车电子系统中不同场景的需求。

这篇关于LIN协议栈 AUTOSAR架构下 状态管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

hdu1565(状态压缩)

本人第一道ac的状态压缩dp,这题的数据非常水,很容易过 题意:在n*n的矩阵中选数字使得不存在任意两个数字相邻,求最大值 解题思路: 一、因为在1<<20中有很多状态是无效的,所以第一步是选择有效状态,存到cnt[]数组中 二、dp[i][j]表示到第i行的状态cnt[j]所能得到的最大值,状态转移方程dp[i][j] = max(dp[i][j],dp[i-1][k]) ,其中k满足c

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

状态dp总结

zoj 3631  N 个数中选若干数和(只能选一次)<=M 的最大值 const int Max_N = 38 ;int a[1<<16] , b[1<<16] , x[Max_N] , e[Max_N] ;void GetNum(int g[] , int n , int s[] , int &m){ int i , j , t ;m = 0 ;for(i = 0 ;

hdu3006状态dp

给你n个集合。集合中均为数字且数字的范围在[1,m]内。m<=14。现在问用这些集合能组成多少个集合自己本身也算。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.Inp

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。