LIN State Manager (LinSM)
Manages state transitions of LIN networks.
Funktionen — Übersicht
void LinSM_Init (const LinSM_ConfigType* ConfigPtr);This function initializes the Lin SM.Std_ReturnType LinSM_ScheduleRequest (NetworkHandleType network, LinIf_SchHandleType schedule);The upper layer requests a schedule table to be changed on one LIN network.void LinSM_GetVersionInfo (Std_VersionInfoType* versioninfo);-Std_ReturnType LinSM_GetCurrentComMode (NetworkHandleType network, ComM_ModeType* mode);Function to query the current communication mode.Std_ReturnType LinSM_RequestComMode (NetworkHandleType network, ComM_ModeType mode);Requesting of a communication mode.void LinSM_MainFunction (void);Periodic function that runs the timers of different request timeoutsvoid LinSM_ScheduleRequestConfirmation (NetworkHandleType network, LinIf_SchHandleType schedule);The Lin If module will call this callback when the new requested schedule table is active.void LinSM_GotoSleepIndication (NetworkHandleType Channel);The Lin If will call this callback when the go to sleep command is received on the network or a bus idle timeout occurs.void LinSM_GotoSleepConfirmation (NetworkHandleType network, boolean success);The Lin If will call this callback when the go to sleep command is sent successfully or not sent successfully on the network.void LinSM_WakeupConfirmation (NetworkHandleType network, boolean success);The Lin If will call this callback when the wake up signal command is sent not successfully/ successfully on the network.
Typen — Übersicht
enum LinSM_ModeTypeType used to report the current mode to the Bsw Mstruct LinSM_ConfigTypeData structure type for the post - build configuration parameters.
Funktionen & Typen — Detailansicht
函数 LinSM_Init [SWS_LinSM_00155] 📄 PDF
void LinSM_Init (const LinSM_ConfigType* ConfigPtr);
This function initializes the Lin SM.
函数 LinSM_Init 用于在 AUTOSAR Classic 平台中初始化软件模块 LIN State Manager(LinSM)[SWS_LinSM_00155]。
使用与接口参数:
- 调用同步:初始化函数的执行被指定为同步(
Synchronous)[SWS_LinSM_00155]。 - 输入参数:作为唯一参数传递类型为
const LinSM_ConfigType*的ConfigPtr[SWS_LinSM_00155]。它充当指向 LinSM 的 Post-Build 配置数据的指针 [SWS_LinSM_00155]。 - 其他参数与返回值:该接口不返回任何返回值(
void)[SWS_LinSM_00155]。不存在附加的输入/输出参数或纯输出参数 [SWS_LinSM_00155]。 - 头文件与服务标识:声明通过头文件
LinSM.h提供,并带有服务 ID0x01[SWS_LinSM_00155]。
并发性与限制:
对于 LinSM_Init 的执行,规定该函数是不可重入的(Non reentrant)[SWS_LinSM_00155]。因此,不得通过多个线程并行调用,也不得由更高优先级的上下文抢占调用 [SWS_LinSM_00155]。
此使用说明基于 AUTOSAR CP R20-11 规范自动生成。
实现者指南即将推出(复杂度 I2)
函数 LinSM_ScheduleRequest [SWS_LinSM_00113] 📄 PDF
Std_ReturnType LinSM_ScheduleRequest (NetworkHandleType network, LinIf_SchHandleType schedule);
The upper layer requests a schedule table to be changed on one LIN network.
使用
上层调用函数 LinSM_ScheduleRequest 以请求在指定的 LIN 通道上切换调度表 [SWS_LinSM_00113]。该接口在头文件 LinSM.h 中定义,服务 ID 为 0x10,并以异步和可重入方式工作 [SWS_LinSM_00113]。调用时,通过参数 network(NetworkHandleType)传递受影响的通道,并通过 schedule(LinIf_SchHandleType)传递所需的新表 [SWS_LinSM_00113]。
错误处理与返回值
如果模块接受了切换表的请求,函数返回 E_OK [SWS_LinSM_00113]。反之,如果无法执行调用(例如因为模块尚未初始化),则函数返回返回值 E_NOT_OK [SWS_LinSM_00113]。该服务未列出 DET 或 DEM 的特定错误码。
约束条件与交互
该函数的提供主要取决于配置参数 LinSMNodeType:LinSM_ScheduleRequest 仅在模块在至少一个通道上配置为 LIN 主节点时可用,在纯 LIN 从节点配置中则省略 [SWS_LinSM_00241]。同样,对应的确认函数 LinSM_ScheduleRequestConfirmation 也需要主节点配置 [SWS_LinSM_00242]。关于成功完成异步表切换向上层的反馈 vermutlich 应当通过该确认函数进行。 问题 Q-34c3ec02381c72ca (未决)
该文本由 AI 生成;以 AUTOSAR 规范为准。
实现者指南即将推出(复杂度 I1)
函数 LinSM_GetVersionInfo [SWS_LinSM_00117] 📄 PDF
void LinSM_GetVersionInfo (Std_VersionInfoType* versioninfo);
-
函数 LinSM_GetCurrentComMode [SWS_LinSM_00122] 📄 PDF
Std_ReturnType LinSM_GetCurrentComMode (NetworkHandleType network, ComM_ModeType* mode);
Function to query the current communication mode.
函数 LinSM_RequestComMode [SWS_LinSM_00126] 📄 PDF
Std_ReturnType LinSM_RequestComMode (NetworkHandleType network, ComM_ModeType mode);
Requesting of a communication mode. The mode switch will not be made instant. The Lin SM will notify the caller when mode transition is made.
用法与调用上下文
在头文件 LinSM.h 中声明的函数 LinSM_RequestComMode(服务 ID 0x12)用于为传入的 LIN 网络异步请求通信模式 [SWS_LinSM_00126]。通过 NetworkHandleType 类型的参数 network 标识相关 LIN 通道,而 ComM_ModeType 类型的 mode 指定所需的通信模式 [SWS_LinSM_00126]。实际的模式切换并非瞬间完成;LinSM 仅在模式转换成功完成后才通知调用者 [SWS_LinSM_00126]。Interpretation: 作为主调用者,ComM 可能会承担此角色,因为模式切换是在通道级别请求和确认的。 问题 Q-0fcce16df8a29149 (未决)
返回值和并发性
该接口被指定为可重入的,并返回 Std_ReturnType 类型的状态值 [SWS_LinSM_00126]:
E_OK:该请求已被 LinSM 成功接受 [SWS_LinSM_00126]。E_NOT_OK:无法执行该请求,例如在 LinSM 模块尚未初始化时 [SWS_LinSM_00126]。
错误处理与交互
在错误处理框架内,定义了与 LIN 接口的交互:如果对 LinIf_GotoSleep 的底层调用提供了返回值 E_NOT_OK,则 LinSM_RequestComMode 必须同样返回 E_NOT_OK [SWS_LinSM_00177]。当该函数返回 E_NOT_OK 时,LinSM 中必须保持或设置相同状态,以便向 ComM_BusSM_ModeIndication 和 BswM_LinSM_CurrentState 发出相应反馈 [SWS_LinSM_00177]。
本文由系统自动生成。所有技术陈述均完全基于 AUTOSAR R20-11 的规范数据。
实现者指南即将推出(复杂度 I2)
函数 LinSM_MainFunction [SWS_LinSM_00156] 📄 PDF
void LinSM_MainFunction (void);
Periodic function that runs the timers of different request timeouts
使用
函数 LinSM_MainFunction 充当 AUTOSAR Classic 架构内 LIN State Manager 模块(LinSM)的核心周期性主函数 [SWS_LinSM_00156]。根据规范,它具有语法 void LinSM_MainFunction (void) 和十六进制服务 ID 0x30 [SWS_LinSM_00156]。由于它既不接收参数也不提供返回值,因此在模块内纯粹基于状态运行 [SWS_LinSM_00156]。其主要功能任务是持续运行并更新内部定时器,这些定时器负责监视各种请求超时(Request Timeouts)[SWS_LinSM_00156]。
调用上下文与调度
接口的声明通过头文件 SchM_LinSm.h 进行 [SWS_LinSM_00156]。Interpretation:由于这种集成到 Schedule Manager 的方式,该函数应当由 BSW 调度器在操作系统任务的上下文中周期性调用。 问题 Q-d83f7b3f0b251f4f (未决)这种规律的周期对于能够确定性地检测和处理 LIN 通道和状态请求时挂起的超时条件至关重要。在当前规范范围内,未对此服务指定诸如 DET 错误码或 DEM 事件等特定错误处理以及形式重入标准,因此予以省略。
本使用说明是基于 AUTOSAR R20-11 的规范自动生成的。
实现者指南即将推出(复杂度 I1)
函数 LinSM_ScheduleRequestConfirmation [SWS_LinSM_00129] 📄 PDF
void LinSM_ScheduleRequestConfirmation (NetworkHandleType network, LinIf_SchHandleType schedule);
The Lin If module will call this callback when the new requested schedule table is active.
使用
函数 LinSM_ScheduleRequestConfirmation 用作模块 LinSM 的回调接口,具有服务 ID 0x20 [SWS_LinSM_00129]。它可通过头文件 LinSM.h 获取,并在先前请求的新调度表在 LIN 总线上变为活动状态后由 LIN 接口(LinIf)调用 [SWS_LinSM_00129]。
该接口没有返回值(void),并向 LinSM 传递两个输入参数 [SWS_LinSM_00129]:
network(NetworkHandleType):用于唯一标识受影响的 LIN 通信通道 [SWS_LinSM_00129]。schedule(LinIf_SchHandleType):传递新激活的调度表的标识符或指针 [SWS_LinSM_00129]。
并发性与交互
LinSM_ScheduleRequestConfirmation 的执行被指定为同步且可重入 [SWS_LinSM_00129]。不存在输入和输出参数(inout 或 out)[SWS_LinSM_00129]。相互协作与模块 LinIf 紧密耦合,LinIf 调用此回调函数以向 LinSM 确认调度表的状态更改 [SWS_LinSM_00129]。Interpretation:由于 LinIf 充当调用者,调用上下文应当与 LinIf 驱动程序或接口的执行处理相绑定。 问题 Q-500d6a653bfbaac0 (未决)
本使用说明基于 AUTOSAR 规范自动创建。
实现者指南即将推出(复杂度 I1)
函数 LinSM_GotoSleepIndication [SWS_LinSM_91000] 📄 PDF
void LinSM_GotoSleepIndication (NetworkHandleType Channel);
The Lin If will call this callback when the go to sleep command is received on the network or a bus idle timeout occurs. Only applicable for LIN slave nodes.
回调函数 LinSM_GotoSleepIndication ([SWS_LinSM_91000]) 用于向 LIN State Manager 通知通道进入睡眠状态。一旦在网络上接收到 Go-to-Sleep 命令或发生总线空闲超时,LIN Interface (LinIf) 就会执行调用。
用法与调用上下文
该函数同步执行且无返回值([SWS_LinSM_91000])。它通过头文件 LinSM.h 提供,并具有服务 ID 0x03。其唯一参数用于通道标识:
Channel(In):通过类型NetworkHandleType([SWS_LinSM_91000]) 标识受影响的 LIN 通道。
未指定输入/输出参数(inout)或输出参数(out)([SWS_LinSM_91000])。
并发性与限制
关于并发性,该接口被定义为可重入的([SWS_LinSM_91000])。一个重大的功能限制涉及节点属性:该回调仅适用于 LIN 从节点([SWS_LinSM_91000])。
此使用说明完全基于来自 AUTOSAR Release R20-11 的规范数据。
实现者指南即将推出(复杂度 I1)
函数 LinSM_GotoSleepConfirmation [SWS_LinSM_00135] 📄 PDF
void LinSM_GotoSleepConfirmation (NetworkHandleType network, boolean success);
The Lin If will call this callback when the go to sleep command is sent successfully or not sent successfully on the network.
根据 [SWS_LinSM_00135],一旦 Go-to-Sleep 命令在 LIN 网络上传输完毕或传输失败,LIN Interface(LinIf)就会调用回调函数 LinSM_GotoSleepConfirmation。
用法与参数
该回调具有服务 ID 0x22,通过头文件 LinSM.h 声明,且没有返回值 [SWS_LinSM_00135]。使用两个传入参数进行标识和状态传输:
network:通过类型NetworkHandleType标识受影响的 LIN 通道 [SWS_LinSM_00135]。success:作为布尔值指示 Go-to-Sleep 命令是否已成功在总线上发送(true)或未成功(false)[SWS_LinSM_00135]。
执行上下文与并发性
规范将该调用定义为同步且可重入 [SWS_LinSM_00135]。Interpretation:模块 LinSM 应当根据参数 success 更新其针对相应网络的内部状态,并确定总线上进入休眠状态的转换是否已确认。 问题 Q-b5dfd51188b9ff0b (未决)有效负载中未为此接口指定错误处理、返回值或特定的 DET/DEM 消息 [SWS_LinSM_00135]。
本文由 AI 生成;唯有 AUTOSAR 规范具有约束力。
实现者指南即将推出(复杂度 I1)
函数 LinSM_WakeupConfirmation [SWS_LinSM_00132] 📄 PDF
void LinSM_WakeupConfirmation (NetworkHandleType network, boolean success);
The Lin If will call this callback when the wake up signal command is sent not successfully/ successfully on the network.
LIN 状态管理器中的回调函数 LinSM_WakeupConfirmation 用于确认在 LIN 网络上发送唤醒信号 [SWS_LinSM_00132]。一旦在网络上发送唤醒信号的命令成功或未成功传输,它就会被 LIN 接口(LinIf)调用 [SWS_LinSM_00132]。
以下规范特性适用于调用上下文、并发性和参数传递 [SWS_LinSM_00132]:
- 同步行为与可重入性:该函数同步执行(Synchronous),并被归类为可重入的(Reentrant)[SWS_LinSM_00132]。
- 通道标识(
network):传入的NetworkHandleType类型输入参数指定了发生发送过程的相应 LIN 通道 [SWS_LinSM_00132]。 - 成功状态(
success):布尔参数指示唤醒信号是否能够成功发送(true)或传输是否失败(false)[SWS_LinSM_00132]。 - 返回值和输入/输出参数:该函数没有返回值(
void),并且既未定义输出参数,也未定义输入/输出参数 [SWS_LinSM_00132]。
该接口具有服务 ID 0x21,并通过头文件 LinSM.h 提供 [SWS_LinSM_00132]。规范元素中未指定具体错误代码以及通过 Default Error Tracer (DET) 或 Diagnostic Event Manager (DEM) 模块进行错误处理的要求 [SWS_LinSM_00132]。
本使用说明基于 AUTOSAR Classic Release R20-11 规范。
类型 LinSM_ModeType [SWS_LinSM_00220] 📄 PDF
Type used to report the current mode to the Bsw M
数据类型 LinSM_ModeType 是 LIN State Manager 的标准类型,它基于基本类型 uint8 构建,并通过头文件 LinSM.h 提供 [SWS_LinSM_00220]。该类型的主要任务是将 LIN 网络的当前通信模式报告给 BSW Mode Management(BswM)[SWS_LinSM_00220]。
在取值范围中为 LinSM_ModeType 指定了两种状态 [SWS_LinSM_00220]:
LINSM_FULL_COM(数值0x01):指示无限制完全通信(Full communication)状态 [SWS_LinSM_00220]。LINSM_NO_COM(数值0x02):表示无正在进行通信(No communication)的状态 [SWS_LinSM_00220]。
在错误处理和并发性方面,由于这是基本类型声明,类型定义不包含其自身的错误码、DET 消息或 DEM 事件 [SWS_LinSM_00220]。Interpretation:将此类型的值传递给 BswM 应当在 LinSM 的上层状态转换过程中进行,调用者必须确保不传递定义状态之外的无效值。 问题 Q-fe193732b8be2388 (未决)
本使用说明由 AI 创建。
实现者指南即将推出(复杂度 I1)
类型 LinSM_ConfigType [SWS_LinSM_00221] 📄 PDF
Data structure type for the post - build configuration parameters.
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_LinSM- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_LinSM@rel:R20-11#722f7642- Content hash
722f7642- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINStateManager.pdf#nameddest=SWS_LinSM_00155
gemini-3.8-flash-low· 2026-10-13 · 德文原文