LIN Interface (LinIf)
Abstracts LIN hardware and manages schedule tables and frame transmission.
Funktionen — Übersicht
void LinIf_Init (const LinIf_ConfigType* ConfigPtr);Initializes the LIN Interface.void LinIf_GetVersionInfo (Std_VersionInfoType* versioninfo);Returns the version information of this module.Std_ReturnType LinIf_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);Re quests transmission of a PDU.Std_ReturnType LinIf_ScheduleRequest (NetworkHandleType Channel, LinIf_SchHandleType Schedule);Requests a schedule table to be executed.Std_ReturnType LinIf_GotoSleep (NetworkHandleType Channel);Initiates a transition into the Sleep Mode on the selected channel.Std_ReturnType LinIf_Wakeup (NetworkHandleType Channel);Initiates the wake up process.Std_ReturnType LinIf_SetTrcvMode (NetworkHandleType Channel, LinTrcv_TrcvModeType TransceiverMode);Set the given LIN transceiver to the given mode.Std_ReturnType LinIf_GetTrcvMode (NetworkHandleType Channel, LinTrcv_TrcvModeType* TransceiverModePtr);Returns the actual sta te of a LIN Transceiver Driver.Std_ReturnType LinIf_GetTrcvWakeupReason (NetworkHandleType Channel, LinTrcv_TrcvWakeupReasonType* TrcvWuReasonPtr);Returns the reason for the wake up that has been detected by the LIN Transceiver Driver.Std_ReturnType LinIf_SetTrcvWakeupMode (NetworkHandleType Channel, LinTrcv_TrcvWakeupModeType LinTrcvWakeupMode);This API enables, disables and cl ears the notification for wakeup events on the addressed networkStd_ReturnType LinIf_GetPIDTable (NetworkHandleType Channel, Lin_FramePidType* PidBuffer, uint8* PidBufferLength);Retrieves all assigned PID values.Std_ReturnType LinIf_SetPIDTable (NetworkHandleType Channel, Lin_FramePidType* PidBuffer, uint8 PidBufferLength);Sets all assigned PID values.Std_ReturnType LinIf_GetConfiguredNAD (NetworkHandleType Channel, uint8* Nad);Reports the current configured NAD.Std_ReturnType LinIf_SetConfiguredNAD (NetworkHandleType Channel, uint8 Nad);Sets the current configured NAD.void LinTp_Init (const LinTp_ConfigType* ConfigPtr);Initializes the LIN Transport Layer.Std_ReturnType LinTp_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);Requests transmission of a PDU.void LinTp_GetVersionInfo (Std_VersionInfoType* versioninfo);Returns the version information of this module.void LinTp_Shutdown (void);Shutdowns the LIN TP.Std_ReturnType LinTp_ChangeParameter (PduIdType id, TPParameterType parameter, uint16 value);Request to change a specific transport protocol parameter (e.Std_ReturnType LinIf_CheckWakeup (EcuM_WakeupSourceType WakeupSource);Will be called when the Ecu M has been notified about a wakeup on a specific LIN channel.Std_ReturnType LinIf_EnableBusMirroring (NetworkHandleType Channel, boolean MirroringActive);Enables or disables mirroring for a LIN channel.void LinIf_WakeupConfirmation (EcuM_WakeupSourceType WakeupSource);The LIN Driver or LIN Transceiver Driver will call this function to report the wake up source after the successful wakeup...Std_ReturnType LinIf_HeaderIndication (NetworkHandleType Channel, Lin_PduType* PduPtr);The LIN Driver will call this function to report a received LIN header.void LinIf_RxIndication (NetworkHandleType Channel, uint8* Lin_SduPtr);The LIN Driver will call this function to report a successfully received response and provides the reception data to the LIN...void LinIf_TxConfirmation (NetworkHandleType Channel);The LIN Driver will call this function to report a successfully transmitted response.void LinIf_LinErrorIndication (NetworkHandleType Channel, Lin_SlaveErrorType ErrorStatus);The LIN Driver will call this function to report a detected error event during header or response processing.Std_ReturnType <User_TriggerTransmit> (PduIdType TxPduId, PduInfoType* PduInfoPtr);Within this API, the upper layer module (called module) shall check whether the available data fits into the b uffer size...void <User_TxConfirmation> (PduIdType TxPduId, Std_ReturnType result);The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.void <User_RxIndication> (PduIdType RxPduId, const PduInfoType* PduInfoPtr);Indication of a received PDU from a lower layer communication interface module.void <User_ResponseErrorSignalChanged> (NetworkHandleType Channel, boolean RespErrSigValue);Notifies the change of the response error signal with the new value.boolean <User_SaveConfigurationRequest> (NetworkHandleType Channel);Notifies the reception of a Save Configuration request.
Typen — Übersicht
LinIf_SchHandleTypeIndex of the schedule table that is selectable and followed by LIN Interface.struct LinIf_ConfigTypeA pointer to an instance of this structure will be used in the initialization of the LIN Interface.struct LinTp_ConfigTypeThis is the base type for the configuration of the LIN Transport Protocol A pointer to an instance of this structure will be...LinTp_ModeThis type denotes which Schedule table can be requested by LIN TP during diagnostic session
Funktionen & Typen — Detailansicht
函数 LinIf_Init [SWS_LinIf_00198] 📄 PDF
void LinIf_Init (const LinIf_ConfigType* ConfigPtr);
Initializes the LIN Interface.
同步函数 LinIf_Init 用于根据 [SWS_LinIf_00198] 初始化 LIN 接口。该接口的服务 ID 为 0x01,可通过头文件 LinIf.h 获取,并且以同步方式执行。
调用上下文与参数
该函数仅需要一个参数 ConfigPtr(const LinIf_ConfigType*),用作指向 LIN 接口配置的指针 [SWS_LinIf_00198]。它没有返回值,也不包含输入/输出参数或纯输出参数。
初始化流程与交互
在初始化过程中,LIN 接口会对从节点进行特定设置:
- 根据 [SWS_LinIf_00767],该模块在
LinIf_Init中根据配置参数LinIfInitialNAD和LinIfConfiguredNAD初始化从节点的初始节点地址(initial NAD)和已配置节点地址(configured NAD)。 - 根据 [SWS_LinIf_00768],该模块在
LinIf_Init中通过配置参数LinIfFrameId从配置数据中初始化从节点的已配置 PID。
并发性与限制
该函数被指定为不可重入(Non Reentrant)[SWS_LinIf_00198]。因此,不允许进行并发或重叠调用。在提供的规范范围内,未指定该服务的特定错误码或 DET 消息。
本使用说明基于 AUTOSAR 规范 R20-11 自动生成。
实现者指南即将推出(复杂度 I1)
函数 LinIf_GetVersionInfo [SWS_LinIf_00340] 📄 PDF
void LinIf_GetVersionInfo (Std_VersionInfoType* versioninfo);
Returns the version information of this module.
函数 LinIf_Transmit [SWS_LinIf_00201] 📄 PDF
Std_ReturnType LinIf_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);
Re quests transmission of a PDU.
用法与调用上下文
在 LinIf.h 中声明的函数 LinIf_Transmit(服务 ID 0x49)用于同步请求传输 PDU [SWS_LinIf_00201]。作为输入参数,它需要用于唯一标识待发送 PDU 的 TxPduId 以及指向 PduInfoType 结构的指针 PduInfoPtr,该结构除数据长度和实际有效载荷数据外,还可以引用元数据 [SWS_LinIf_00201]。不存在额外的输入/输出或输出参数 [SWS_LinIf_00201]。
返回值和行为要求
该服务返回状态 Std_ReturnType 作为返回值 [SWS_LinIf_00201]:
E_OK:传输请求已被 LIN 接口成功接受 [SWS_LinIf_00201]。E_NOT_OK:无法接受传输请求 [SWS_LinIf_00201]。
与帧类型的交互由 [SWS_LinIf_00700] 明确规定:在 LIN 接口已初始化的情况下,如果 PDU 属于 LIN 主节点上的非偶发帧或 LIN 从节点上的非事件触发帧,LinIf_Transmit 也会返回 E_OK。
并发性
关于执行环境,LinIf_Transmit 针对不同的 PDU ID 是可重入的,但对于相同的 TxPduId 不得同时或并发调用 [SWS_LinIf_00201]。
此使用说明基于 AUTOSAR 规范 R20-11 自动生成。
实现者指南即将推出(复杂度 I1)
函数 LinIf_ScheduleRequest [SWS_LinIf_00202] 📄 PDF
Std_ReturnType LinIf_ScheduleRequest (NetworkHandleType Channel, LinIf_SchHandleType Schedule);
Requests a schedule table to be executed. Only used for LIN master nodes.
函数 LinIf_ScheduleRequest 仅用于在 LIN 主节点上请求执行给定的调度表 [SWS_LinIf_00202]。该调用采用异步处理,并设计为可重入 [SWS_LinIf_00202]。
参数与返回值
通过参数 Channel 传递受影响的 LIN 通道索引,而 Schedule 则指定要新执行的调度表的标识 [SWS_LinIf_00202]。该函数以 Std_ReturnType 形式返回状态:
E_OK:调度表的切换请求已成功接收 [SWS_LinIf_00202]。E_NOT_OK:切换已被拒绝 [SWS_LinIf_00202]。
错误条件与限制
根据规范,在以下错误情况下会返回 E_NOT_OK [SWS_LinIf_00202]:
- LIN 接口尚未初始化。
- 引用的通道不存在,或传入的索引超出取值范围。
- 引用的调度表不存在,或其标识无效。
- 当前状态为 Sleep。
相互作用
调度请求的失败会影响上层传输流程:如果在 LinTp_Transmit 调用过程中通过 BswM_LinTp_RequestMode 经由 LinIf_ScheduleRequest 发起调度切换,当 LinIf_ScheduleRequest 返回 E_NOT_OK 时,LinTp_Transmit 必须返回 E_NOT_OK [SWS_LinIf_00878]。
本使用说明完全基于 AUTOSAR Classic R20-11 的规范数据。
实现者指南即将推出(复杂度 I1)
函数 LinIf_GotoSleep [SWS_LinIf_00204] 📄 PDF
Std_ReturnType LinIf_GotoSleep (NetworkHandleType Channel);
Initiates a transition into the Sleep Mode on the selected channel.
使用
函数 LinIf_GotoSleep(服务 ID 0x06,声明于 LinIf.h)启动所指定 LIN 通道向休眠模式的转换 [SWS_LinIf_00204]。该调用以异步方式进行,并接收类型为 NetworkHandleType 的 Channel 作为输入参数,用于标识相关通道 [SWS_LinIf_00204]。
返回值与错误处理
该服务返回类型为 Std_ReturnType 的返回值,具有以下含义 [SWS_LinIf_00204]:
E_OK:切换到休眠模式的请求已成功接受,向休眠模式的状态转换已在进行中,或者控制器已处于休眠状态 [SWS_LinIf_00204]。E_NOT_OK:请求未被接受。可能的原因包括 LIN 接口尚未初始化,或者通道标识符不存在或超出有效取值范围 [SWS_LinIf_00204]。
并发性与系统交互
该接口定义为不可重入 (Non Reentrant) [SWS_LinIf_00204]。如果调用了 LinIf_GotoSleep,LIN 接口必须立即调用函数 Lin_GotoSleepInternal,而不得等待至主函数的下一个周期 [SWS_LinIf_00757]。
本使用说明基于 AUTOSAR 规范 R20-11 自动生成。
实现者指南即将推出(复杂度 I1)
函数 LinIf_Wakeup [SWS_LinIf_00205] 📄 PDF
Std_ReturnType LinIf_Wakeup (NetworkHandleType Channel);
Initiates the wake up process.
可重入函数 LinIf_Wakeup 为由参数 Channel 标识的 LIN 通道触发异步唤醒过程 [SWS_LinIf_00205]。它可通过头文件 LinIf.h 获取 [SWS_LinIf_00205]。
返回值 Std_ReturnType 提供有关请求是否被接受的信息 [SWS_LinIf_00205]:
E_OK表示唤醒请求已被接受,或者控制器已不再处于休眠状态 [SWS_LinIf_00205]。- 在 LIN 接口未初始化、传入的通道 ID 超出有效范围,或者底层驱动程序调用
Lin_Wakeup或Lin_WakeupInternal失败并返回E_NOT_OK时,将返回E_NOT_OK[SWS_LinIf_00205]。
与用户的交互通过回调函数 <User>_WakeupConfirmation 进行:
- 发生错误时,LIN 接口在返回
E_NOT_OK之前必须调用<User>_WakeupConfirmation(FALSE)[SWS_LinIf_00762]。 - 成功接受 (
E_OK) 时,LIN 接口异步确认唤醒:仅当随后首次调用函数LinIf_HeaderIndication时,该模块才会发起调用<User>_WakeupConfirmation(TRUE)[SWS_LinIf_00761]。
此文本为自动生成。它基于 AUTOSAR 规范的要求。
实现者指南即将推出(复杂度 I1)
函数 LinIf_SetTrcvMode [SWS_LinIf_00544] 📄 PDF
Std_ReturnType LinIf_SetTrcvMode (NetworkHandleType Channel, LinTrcv_TrcvModeType TransceiverMode);
Set the given LIN transceiver to the given mode.
同步且可重入的函数 LinIf_SetTrcvMode(服务 ID 0x08)用于将指定的 LIN 收发器切换到请求的工作模式 [SWS_LinIf_00544]。该接口可通过头文件 LinIf.h 获取 [SWS_LinIf_00544]。
参数与返回值
该调用需要两个输入参数 [SWS_LinIf_00544]:
Channel(NetworkHandleType):标识要控制的 LIN 通道 [SWS_LinIf_00544]。TransceiverMode(LinTrcv_TrcvModeType):确定收发器所请求的状态转换 [SWS_LinIf_00544]。
类型为 Std_ReturnType 的返回值指示切换过程的结果 [SWS_LinIf_00544]:
E_OK:在收发器状态成功切换到请求的模式时返回 [SWS_LinIf_00544]。E_NOT_OK:指示状态更改失败或至少一个参数超出允许范围。收发器的先前状态保持不变 [SWS_LinIf_00544]。
执行与错误行为
该函数同步执行并被指定为可重入 [SWS_LinIf_00544]。规范元素中未单独列出特定的 DET 或 DEM 错误消息;模式更改失败或不允许的参数值会直接导致返回值 E_NOT_OK [SWS_LinIf_00544]。
本使用说明基于 AUTOSAR CP R20-11 规范自动生成。
实现者指南即将推出(复杂度 I1)
函数 LinIf_GetTrcvMode [SWS_LinIf_00545] 📄 PDF
Std_ReturnType LinIf_GetTrcvMode (NetworkHandleType Channel, LinTrcv_TrcvModeType* TransceiverModePtr);
Returns the actual sta te of a LIN Transceiver Driver.
函数 LinIf_GetTrcvWakeupReason [SWS_LinIf_00547] 📄 PDF
Std_ReturnType LinIf_GetTrcvWakeupReason (NetworkHandleType Channel, LinTrcv_TrcvWakeupReasonType* TrcvWuReasonPtr);
Returns the reason for the wake up that has been detected by the LIN Transceiver Driver.
函数 LinIf_SetTrcvWakeupMode [SWS_LinIf_00550] 📄 PDF
Std_ReturnType LinIf_SetTrcvWakeupMode (NetworkHandleType Channel, LinTrcv_TrcvWakeupModeType LinTrcvWakeupMode);
This API enables, disables and cl ears the notification for wakeup events on the addressed network
同步且可重入的函数 LinIf_SetTrcvWakeupMode 用于启用、禁用或重置指定 LIN 通道上的唤醒事件通知 [SWS_LinIf_00550]。该声明通过头文件 LinIf.h 提供,并具有服务 ID 0x0b [SWS_LinIf_00550]。
该接口需要两个输入参数 [SWS_LinIf_00550]:
Channel:要寻址的 LIN 网络或通道的唯一标识符,类型为NetworkHandleType[SWS_LinIf_00550]。LinTrcvWakeupMode:所请求的收发器唤醒模式,类型为LinTrcv_TrcvWakeupModeType[SWS_LinIf_00550]。
该函数作为返回值提供状态 Std_ReturnType [SWS_LinIf_00550]:
E_OK:对 LIN 收发器驱动程序 API 服务的调用成功,并返回了E_OK[SWS_LinIf_00550]。E_NOT_OK:LIN 收发器驱动程序的 API 服务失败(返回E_NOT_OK),或者传入的通道或模式参数中至少有一个无效 [SWS_LinIf_00550]。
关于相互协作,该函数将请求委托给 LIN 收发器驱动程序;vermutlich LinIf 在此充当上层与收发器硬件之间的中介接口 [SWS_LinIf_00550]。 问题 Q-07b525a14a2c5fcd (未决)由于该服务被指定为可重入,因此可以针对不同通道或同一通道并行执行 [SWS_LinIf_00550]。
本文由 AI 生成,仅供参考。一切以 AUTOSAR 官方规范文档为准。
实现者指南即将推出(复杂度 I1)
函数 LinIf_GetPIDTable [SWS_LinIf_91002] 📄 PDF
Std_ReturnType LinIf_GetPIDTable (NetworkHandleType Channel, Lin_FramePidType* PidBuffer, uint8* PidBufferLength);
Retrieves all assigned PID values. The order is congruent to the LIN frame index. Only applicable for LIN slave nodes.
函数 LinIf_SetPIDTable [SWS_LinIf_91003] 📄 PDF
Std_ReturnType LinIf_SetPIDTable (NetworkHandleType Channel, Lin_FramePidType* PidBuffer, uint8 PidBufferLength);
Sets all assigned PID values. The order is congruent to the LIN frame index. Only applicable for LIN slave nodes.
函数 LinIf_GetConfiguredNAD [SWS_LinIf_00829] 📄 PDF
Std_ReturnType LinIf_GetConfiguredNAD (NetworkHandleType Channel, uint8* Nad);
Reports the current configured NAD. Only applicable for LIN slave nodes.
函数 LinIf_SetConfiguredNAD [SWS_LinIf_00833] 📄 PDF
Std_ReturnType LinIf_SetConfiguredNAD (NetworkHandleType Channel, uint8 Nad);
Sets the current configured NAD. Only applicable for LIN slave nodes.
函数 LinTp_Init [SWS_LinIf_00350] 📄 PDF
void LinTp_Init (const LinTp_ConfigType* ConfigPtr);
Initializes the LIN Transport Layer.
用法与调用上下文
函数 LinTp_Init 用于初始化 LIN 协议的传输层([SWS_LinIf_00350])。根据规范 [SWS_LinIf_00350],该函数调用为同步执行。
函数签名为 void LinTp_Init (const LinTp_ConfigType* ConfigPtr)。配置通过输入参数进行传递:
ConfigPtr(输入):指向类型为LinTp_ConfigType的 LIN 传输层配置数据的指针([SWS_LinIf_00350])。
该函数不提供返回值(void),并且既未定义输出参数也未定义输入/输出参数([SWS_LinIf_00350])。其十六进制服务 ID 为 0x40,并通过头文件 LinIf.h 提供([SWS_LinIf_00350])。
错误处理
需求 [SWS_LinIf_00350] 未为该函数定义特定的错误码、DET 消息或 DEM 事件。不向调用者返回任何错误状态([SWS_LinIf_00350])。
并发性与限制
函数 LinTp_Init 被显式归类为不可重入(Non Reentrant)([SWS_LinIf_00350])。因此,不得从多个线程、任务或中断例程中对其进行并发调用。Interpretation:该调用通常应在基础软件初始化序列中集中进行,然后才能处理后续的通信请求。 问题 Q-6e391bdf8abb1a09 (未决)
相互作用
在当前摘录中,对于 LinTp_Init 未列出与其他规范需求或相邻函数的直接关联([SWS_LinIf_00350])。模块 LinIf 提供该声明([SWS_LinIf_00350])。
此使用说明基于 AUTOSAR Classic Release R20-11 规范自动生成。
实现者指南即将推出(复杂度 I1)
函数 LinTp_Transmit [SWS_LinIf_00351] 📄 PDF
Std_ReturnType LinTp_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);
Requests transmission of a PDU.
同步函数 LinTp_Transmit 用于通过 LIN 传输协议 ([SWS_LinIf_00351]) 请求 PDU 传输。作为传入参数,它需要 PDU 标识符 TxPduId 以及指针 PduInfoPtr,该指针提供数据长度以及指向 PDU 数据和元数据的指针 ([SWS_LinIf_00351])。如果成功接受发送请求,则返回值是 E_OK;如果被拒绝,则返回值是 E_NOT_OK ([SWS_LinIf_00351])。
运行时行为以及与 LIN 接口的交互遵循以下规定:
- 调度请求:如果作为通过
BswM_LinTp_RequestMode进行调用的一部分在LinIf_ScheduleRequest处发起的调度切换失败并返回E_NOT_OK,则LinTp_Transmit也必须直接以E_NOT_OK进行响应 ([SWS_LinIf_00878])。 - 确认:仅当
LinTp_Transmit成功时(返回值E_OK),LIN 接口才会在成功或失败的调度表切换后,以肯定或否定的结果调用函数PduR_LinTpTxConfirmation([SWS_LinIf_00702])。如果发送请求被拒绝,则完全不执行该调用 ([SWS_LinIf_00702])。 - 中断正在进行的操作:如果在等待物理响应期间或在接收响应期间通过
LinTp_Transmit触发了新的物理请求,则 LIN 接口会中止正在进行的 TP 处理以及接收与 N_Cr 和 P2 超时监控,并接受新的请求 ([SWS_LinIf_00708])。
关于并发性,LinTp_Transmit 针对不同的 TxPduId 是可重入的,但对于相同的 TxPduId 不得并发执行 ([SWS_LinIf_00351])。
本使用说明基于 AUTOSAR Classic R20-11 规范。
实现者指南即将推出(复杂度 I1)
函数 LinTp_GetVersionInfo [SWS_LinIf_00352] 📄 PDF
void LinTp_GetVersionInfo (Std_VersionInfoType* versioninfo);
Returns the version information of this module.
函数 LinTp_Shutdown [SWS_LinIf_00355] 📄 PDF
void LinTp_Shutdown (void);
Shutdowns the LIN TP.
函数 LinTp_Shutdown 用于受控关闭 LIN 传输协议([SWS_LinIf_00355])。通过对其调用,终止 LIN-TP 组件的运行([SWS_LinIf_00355])。该函数声明可通过头文件 LinIf.h 获取([SWS_LinIf_00355])。
对于使用和执行,以下规范特性适用([SWS_LinIf_00355]):
- 参数与返回值:该函数没有输入、输入/输出或输出参数(
void),且不返回任何返回值(void)([SWS_LinIf_00355])。 - 服务标识:该服务在服务 ID
0x43下定义([SWS_LinIf_00355])。 - 同步性:调用以同步方式处理([SWS_LinIf_00355])。
- 重入性:该函数不可重入(Non Reentrant)([SWS_LinIf_00355])。不允许从不同上下文进行并发或嵌套调用。
源材料中未对该函数描述特定错误码、向开发错误跟踪器(DET)的反馈或发生错误时的特殊处理([SWS_LinIf_00355])。同样也缺少有关相关需求或确切调用者的信息;vermutlich 该调用由上层 BSW 状态管理在通信栈的顺序去初始化过程中发起。 问题 Q-e25a3c9531527c4f (未决)
本使用说明由自动生成。其完全基于 Release R20-11 中 AUTOSAR 元素的规范说明。
实现者指南即将推出(复杂度 I1)
函数 LinTp_ChangeParameter [SWS_LinIf_00501] 📄 PDF
Std_ReturnType LinTp_ChangeParameter (PduIdType id, TPParameterType parameter, uint16 value);
Request to change a specific transport protocol parameter (e.g. block size).
用法与语义
同步函数 LinTp_ChangeParameter 用于在运行时调整特定 PDU 的传输协议特定参数 [SWS_LinIf_00501]。传入的参数包括 PDU 标识(id)、要更改的传输协议参数标识符(parameter,例如块大小)以及新的目标值(value)[SWS_LinIf_00501]。声明通过头文件 LinIf.h 提供 [SWS_LinIf_00501]。
返回值与错误情况下的行为
该函数通过其类型为 Std_ReturnType 的返回值直接指示请求结果 [SWS_LinIf_00501]:
E_OK:请求的参数已成功更改为新值 [SWS_LinIf_00501]。E_NOT_OK:更改被 LIN 传输协议拒绝 [SWS_LinIf_00501]。这通常在参数无效或正在进行的传输阻止修改时发生。 问题 Q-84aaf28c12dee2e9 (未决)
并发性与限制
根据规范,LinTp_ChangeParameter 被归类为不可重入(Non Reentrant)[SWS_LinIf_00501]。因此,对于相同或并行的上下文,并发或嵌套调用均属无效,且必须由调用者予以避免。同步过程会阻塞调用者,直到就采用参数值做出决定为止 [SWS_LinIf_00501]。
该文本由 AI 生成,且完全基于 AUTOSAR R20-11 的规范数据。
函数 LinIf_CheckWakeup [SWS_LinIf_00378] 📄 PDF
Std_ReturnType LinIf_CheckWakeup (EcuM_WakeupSourceType WakeupSource);
Will be called when the Ecu M has been notified about a wakeup on a specific LIN channel.
用法与调用上下文
一旦模块 EcuM 收到关于特定 LIN 通道上唤醒事件的通知,就会调用同步函数 LinIf_CheckWakeup [SWS_LinIf_00378]。调用时传入类型为 EcuM_WakeupSourceType 的输入参数 WakeupSource [SWS_LinIf_00378]。该参数指定发起唤醒事件的源设备,其可以是 LIN 控制器或 LIN 收发器 [SWS_LinIf_00378]。
错误处理与返回值
作为返回值,该函数提供类型为 Std_ReturnType 的状态[SWS_LinIf_00378]:
E_OK:接口执行期间未发生错误 [SWS_LinIf_00378]。E_NOT_OK:接口执行时发生错误,或为WakeupSource传入了无效值 [SWS_LinIf_00378]。
并发与集成
该接口被指定为可重入,具有服务 ID 0x60,并通过头文件 LinIf.h 提供 [SWS_LinIf_00378]。它将 EcuM 的唤醒处理直接与 LIN 接口的通道相连接 [SWS_LinIf_00378]。
此文本由 AI 基于 AUTOSAR CP R20-11 规范生成。
函数 LinIf_EnableBusMirroring [SWS_LinIf_00876] 📄 PDF
Std_ReturnType LinIf_EnableBusMirroring (NetworkHandleType Channel, boolean MirroringActive);
Enables or disables mirroring for a LIN channel.
同步且可重入的函数 LinIf_EnableBusMirroring 针对单个 LIN 通道启用或禁用总线镜像 [SWS_LinIf_00876]。该函数可通过头文件 LinIf.h 获取;如果未通过配置参数 LinIfBusMirroringSupport 启用总线镜像,则可以省略 [SWS_LinIf_00875]。Mirror 模块通常应当作为调用者。 问题 Q-1703af5207cb7ade (未决)
通过参数 Channel 传递受影响的 LIN 通道,而 MirroringActive 控制模式 [SWS_LinIf_00876]:传入 TRUE 时启用镜像,传入 FALSE 时禁用镜像 [SWS_LinIf_00876]。如果成功更改了镜像模式,函数返回 E_OK;如果指定了无效通道或全局禁用了镜像,则返回 E_NOT_OK [SWS_LinIf_00876]。函数定义中未列出特定的 DET 或 DEM 错误消息 [SWS_LinIf_00876]。
如果总线镜像通过 LinIfBusMirroringSupported 全局启用并针对相应通道启用,则 LIN 接口将相关事件转发至 Mirror_ReportLinFrame:
- 在
LinIf_RxIndication处接收到的帧,带有状态LIN_RX_OK和指向有效数据的指针 [SWS_LinIf_00838],以及在读取 Rx 时隙的 LIN 驱动程序状态时 [SWS_LinIf_00873]。 - 在
LinIf_TxConfirmation处发送的帧,带有状态LIN_TX_OK和指向已传输数据的指针 [SWS_LinIf_00839],以及在读取 Tx 时隙的 LIN 驱动程序状态时 [SWS_LinIf_00874]。 - 在
LinIf_LinErrorIndication处除LIN_ERR_HEADER之外的所有错误码的错误通知,带有错误状态和作为数据内容的 NULL 指针 [SWS_LinIf_00869]。
本使用说明由 AI 基于 AUTOSAR Classic R20-11 规范生成。
实现者指南即将推出(复杂度 I1)
函数 LinIf_WakeupConfirmation [SWS_LinIf_00715] 📄 PDF
void LinIf_WakeupConfirmation (EcuM_WakeupSourceType WakeupSource);
The LIN Driver or LIN Transceiver Driver will call this function to report the wake up source after the successful wakeup detection during Check Wakeup or after power on by bus.
函数 LinIf_WakeupConfirmation 用于向 LIN 接口报告成功检测到唤醒事件 [SWS_LinIf_00715]。
调用与参数
在 Check Wakeup 期间或通过总线通电(power on by bus)后成功检测到唤醒时,由 LIN 驱动程序(LIN Driver)或 LIN 收发器驱动程序(LIN Transceiver Driver)进行调用 [SWS_LinIf_00715]。作为传入参数传递类型为 EcuM_WakeupSourceType 的 WakeupSource,它指示发起唤醒事件的源设备(LIN 控制器或 LIN 收发器)[SWS_LinIf_00715]。
执行属性与接口
- 语义:该调用以同步方式处理 [SWS_LinIf_00715]。
- 重入性:该函数被指定为可重入 [SWS_LinIf_00715]。
- 返回值:无返回值(
void)[SWS_LinIf_00715]。 - 头文件:声明通过
LinIf.h提供(服务 ID:0x61)[SWS_LinIf_00715]。
此文本由 AI 基于 AUTOSAR 规范生成。
函数 LinIf_HeaderIndication [SWS_LinIf_91004] 📄 PDF
Std_ReturnType LinIf_HeaderIndication (NetworkHandleType Channel, Lin_PduType* PduPtr);
The LIN Driver will call this function to report a received LIN header. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).
回调函数 LinIf_HeaderIndication 由 LIN 驱动程序同步调用,以通知从通道上接收到 LIN 报头 [SWS_LinIf_91004]。仅当 ECU 具有至少一个已配置的 LIN 从通道时,它才可用 [SWS_LinIf_91004]。该函数针对不同通道是可重入的,但对于同一通道不得并发调用 [SWS_LinIf_91004]。
驱动程序通过输入输出参数 PduPtr 传递接收到的标识符 (PID) 以及指向 SDU 数据缓冲区的指针 [SWS_LinIf_91004]。LinIf 评估 PID 并控制从节点的反应:
- 接收帧:如果 PID 属于配置的接收帧,LinIf 会在返回前设置校验和类型
PduPtr->Cs、数据长度PduPtr->Dl,并将PduPtr->Drc赋值为LIN_FRAMERESPONSE_RX[SWS_LinIf_00733]。 - 发送帧:如果是发送帧,LinIf 通过
<User_TriggerTransmit>请求有效载荷数据 [SWS_LinIf_00738]。成功提供时(节点配置处理程序/传输协议返回返回值E_OK或 SRF 数据),将配置校验和与长度,并将PduPtr->Drc设置为LIN_FRAMERESPONSE_TX[SWS_LinIf_00739]。如果查询失败并返回E_NOT_OK,则将PduPtr->Drc设置为LIN_FRAMERESPONSE_IGNORE[SWS_LinIf_00740]。 - 无关帧:如果该帧与从节点无关,LinIf 同样将
PduPtr->Drc设置为LIN_FRAMERESPONSE_IGNORE[SWS_LinIf_00748]。
此外,每次调用都会重新加载正在运行的总线空闲定时器 [SWS_LinIf_00754]。如果在成功执行 LinIf_Wakeup 后首次进行该调用,则会触发 <User>_WakeupConfirmation(TRUE) [SWS_LinIf_00761]。在接收到 SRF 报头时,LinIf 还会为连续帧 (CF) 启动 N_As 定时器 [SWS_LinIf_00800]。作为返回值,E_OK 指示接受请求,而 E_NOT_OK 则指示开发或生产错误 [SWS_LinIf_91004]。
本段文本由人工智能基于 AUTOSAR 规范 R20-11 生成。
实现者指南即将推出(复杂度 I2)
函数 LinIf_RxIndication [SWS_LinIf_91005] 📄 PDF
void LinIf_RxIndication (NetworkHandleType Channel, uint8* Lin_SduPtr);
The LIN Driver will call this function to report a successfully received response and provides the reception data to the LIN Interface. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).
回调函数 LinIf_RxIndication 由 LIN 驱动程序同步调用,以向 LIN 接口通知成功接收到响应(包括接收数据)[SWS_LinIf_91005]。该函数仅在具有至少一个已配置 LIN 从通道的 ECU 上可用 [SWS_LinIf_91005]。
关于参数化和并发性,适用以下条件:
- 参数:传递通道标识
Channel以及指向影子缓冲区或 LIN 硬件的内存映射接收缓冲区的指针Lin_SduPtr[SWS_LinIf_91005]。该指针仅在实际接收到响应时有效 [SWS_LinIf_91005]。 - 返回值:该函数无返回值(
void)[SWS_LinIf_91005]。 - 重入性:该接口针对不同的 LIN 通道是可重入的,但针对同一通道不可重入 [SWS_LinIf_91005]。
在与模块行为的交互中,该调用会触发多项协调操作:
- 通过
<User_RxIndication>将接收到的有效载荷数据和有效载荷数据长度转发给上层 [SWS_LinIf_00734]。 - 检查休眠命令:如果是 NAD 为 0 的主请求帧 (MRF),LIN 接口会识别出进入休眠命令并启动向休眠模式的转换 [SWS_LinIf_00750]。
- 定时器控制:每次调用都会重新加载总线空闲定时器 [SWS_LinIf_00754]。此外,对于 MRF 帧(FF、CF),该调用会控制 N_Cr 定时器(在 FF 以及最后一个帧之前的 CF 处启动/重启,在最后一个 CF 处停止)[SWS_LinIf_00805]。
- 总线镜像:如果镜像已全局且针对该通道激活,则 LIN 接口通过
Mirror_ReportLinFrame()进一步上报状态为LIN_RX_OK的帧 [SWS_LinIf_00838]。
本使用说明基于 AUTOSAR 规范 R20-11 自动生成。
实现者指南即将推出(复杂度 I1)
函数 LinIf_TxConfirmation [SWS_LinIf_91006] 📄 PDF
void LinIf_TxConfirmation (NetworkHandleType Channel);
The LIN Driver will call this function to report a successfully transmitted response. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).
同步回调函数 LinIf_TxConfirmation(服务 ID 0x7a,声明于 LinIf.h)由 LIN 驱动程序调用,以确认在指定通道上成功传输了响应 [SWS_LinIf_91006]。该函数没有返回值,并且仅适用于具有至少一个已配置 LIN 从通道的 ECU [SWS_LinIf_91006]。
收到确认后,LIN 接口执行若干后续处理:
- 上层通知:该模块通过具有返回值
E_OK的回调函数<User_TxConfirmation>将发送事件转发给上层 [SWS_LinIf_00741]。 - 错误状态:如果成功发送的帧包含错误信号
response_error,LIN 接口将重置该信号 [SWS_LinIf_00747]。 - 总线静默监控:每次调用
LinIf_TxConfirmation都会重新加载该通道正在运行的总线空闲定时器 [SWS_LinIf_00754]。 - 传输协议 (LinTp):如果驱动程序确认了对 SRF 报头(从响应帧)的响应,该接口将停止监控定时器
N_As[SWS_LinIf_00800]。 - 总线镜像:如果通过
LinIfBusMirroringSupported全局配置了镜像并通过LinIf_EnableBusMirroring()激活,该接口将向Mirror_ReportLinFrame()上报该帧(状态为LIN_TX_OK并带有指向发送数据的指针)[SWS_LinIf_00839]。
关于并发性,LinIf_TxConfirmation 针对不同的 LIN 通道被设计为可重入,但针对同一通道不得以可重入方式调用 [SWS_LinIf_91006]。
本使用说明是基于规范 AUTOSAR R20-11 自动生成的。
实现者指南即将推出(复杂度 I1)
函数 LinIf_LinErrorIndication [SWS_LinIf_91007] 📄 PDF
void LinIf_LinErrorIndication (NetworkHandleType Channel, Lin_SlaveErrorType ErrorStatus);
The LIN Driver will call this function to report a detected error event during header or response processing. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).
用法与调用上下文
同步函数 LinIf_LinErrorIndication 由 LIN 驱动程序调用,以报告在处理报头或响应期间发生的错误 [SWS_LinIf_91007]。它仅适用于 LIN 从节点,并要求 ECU 至少具有一个配置的 LIN 从通道 [SWS_LinIf_91007]。通道标识 Channel 以及 Lin_SlaveErrorType 类型的已发生错误状态 ErrorStatus 作为参数传递 [SWS_LinIf_91007]。
错误处理与并发
该函数对于不同通道是可重入的,但不得对同一通道进行并发调用 [SWS_LinIf_91007]。在调用时,LIN 接口将响应或传输的帧视为丢失,并向 Default Error Tracer (DET) 报告运行时错误 LINIF_E_RESPONSE,除非报告的错误状态为 LIN_ERR_HEADER [SWS_LinIf_00735], [SWS_LinIf_00743]。
交互与总线监控
无论传递何种错误代码,LIN 接口在每次调用 LinIf_LinErrorIndication 时都会重新加载正在运行的总线空闲定时器 [SWS_LinIf_00754]。如果在接收到 SRF 报头后的 SRF 响应期间发生错误,LIN 接口将中止传输,并通过 PduR_LinTpTxConfirmation 向上一层报告此情况,结果为 E_NOT_OK [SWS_LinIf_00796]。
如果总线镜像通过 LinIfBusMirroringSupported 全局激活并针对该通道启用,LIN 接口将通过 Mirror_ReportLinFrame() 转发不等于 LIN_ERR_HEADER 的错误,其中数据内容使用 NULL 指针 [SWS_LinIf_00869]。在此过程中,驱动程序错误代码预先被转换为 Lin_StatusType 类型的相应状态值 [SWS_LinIf_00870]。
此使用说明基于 AUTOSAR Classic R20-11 规范自动生成。
实现者指南即将推出(复杂度 I2)
函数 <User_TriggerTransmit> [SWS_LinIf_00528] 📄 PDF
Std_ReturnType <User_TriggerTransmit> (PduIdType TxPduId, PduInfoType* PduInfoPtr);
Within this API, the upper layer module (called module) shall check whether the available data fits into the b uffer size reported by Pdu Info Ptr - >Sdu Length. If it fits, it shall copy its data into the buffer provided by Pdu Info Ptr - >Sdu Data Ptr and update the length of the actual copied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without ch anging Pdu Info Ptr.
可配置接口 <User_TriggerTransmit> 用于在即将进行传输时从上层模块同步检索 SDU 数据 [SWS_LinIf_00528]。
通过参数 TxPduId 标识请求的 SDU,同时将 PduInfoPtr 作为指向包含目标缓冲区(SduDataPtr)和可用缓冲区大小(SduLength)的结构的指针传入 [SWS_LinIf_00528]。被调用的上层模块在此 API 内检查待发送数据是否适合所报告的缓冲区大小 [SWS_LinIf_00528]。如果有足够空间,该模块将其数据复制到 SduDataPtr,用实际复制的字节数更新 SduLength,并通过返回值 E_OK 提示成功 [SWS_LinIf_00528]。
反之,如果缓冲区大小不足,则不复制任何 SDU 数据,模块返回 E_NOT_OK 且不更改 PduInfoPtr [SWS_LinIf_00528]。当返回值为 E_NOT_OK 时,调用者绝不能使用 PduInfoPtr,因为其可能指向无效数据或是 NULL 指针 [SWS_LinIf_00528]。
在并发性方面,该函数对于不同的 PDU ID 是可重入的,但对于相同的 PDU ID 是不可重入的 [SWS_LinIf_00528]。
本使用说明基于 AUTOSAR 规范 SWS_LinIf_00528。
函数 <User_TxConfirmation> [SWS_LinIf_00529] 📄 PDF
void <User_TxConfirmation> (PduIdType TxPduId, Std_ReturnType result);
The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.
可配置回调函数 <User_TxConfirmation> 由下层通信接口模块调用,以向上层确认 PDU 的传输或传输失败 [SWS_LinIf_00529]。该调用为同步执行,且不返回任何返回值 [SWS_LinIf_00529]。
参数与语义
TxPduId(输入):表示已传输 PDU 的标识,类型为PduIdType[SWS_LinIf_00529]。result(输入):以Std_ReturnType形式报告传输的成功状态,在 PDU 传输成功时取值为E_OK,在传输失败时取值为E_NOT_OK[SWS_LinIf_00529]。
并发与错误处理
在重入性方面,该函数针对不同 PDU ID 设计为可重入,但对于相同 PDU ID 不得重入调用 [SWS_LinIf_00529]。该模块未为此接口指定单独的错误码或 DET/DEM 消息;传输失败将改为通过参数值 E_NOT_OK 进行指示 [SWS_LinIf_00529]。由于该服务被声明为可配置,实际的函数标识符 vermutlich 取决于配置的用户层,属于特定于集成的设定 [SWS_LinIf_00529]。 问题 Q-35de931161f26cb8 (未决)
本文本由 AI 基于规范生成。
函数 <User_RxIndication> [SWS_LinIf_00530] 📄 PDF
void <User_RxIndication> (PduIdType RxPduId, const PduInfoType* PduInfoPtr);
Indication of a received PDU from a lower layer communication interface module.
回调函数 <User_RxIndication> 用于将接收到的 PDU 从下层通信接口模块通知给上层 [SWS_LinIf_00530]。该调用采用同步语义,且没有返回值 [SWS_LinIf_00530]。
参数与接口规范
该函数向上层传递两个输入参数 [SWS_LinIf_00530]:
RxPduId:接收到的 PDU 标识符,类型为PduIdType[SWS_LinIf_00530]。PduInfoPtr:指向类型为PduInfoType的结构的指针,该结构提供有效负载长度(SduLength)、指向包含有效负载的数据缓冲区的指针(SduDataPtr)以及 PDU 的相关元数据 [SWS_LinIf_00530]。
该接口既未提供输入/输出参数,也未提供纯输出参数 [SWS_LinIf_00530]。
并发与配置
关于重入性,该函数对于不同的 PDU ID 设计为可重入,但对于相同的 PDU ID 则被显式指定为不可重入 [SWS_LinIf_00530]。因此,调用者必须确保对于同一个 RxPduId 不会发生重叠调用。该函数被声明为可配置接口 [SWS_LinIf_00530];上层的具体函数名称 vermutlich 因而通过模块配置确定。 问题 Q-94175e8cd86775b6 (未决)
本使用说明基于规范 SWS_LinIf_00530 自动生成。
函数 <User_ResponseErrorSignalChanged> [SWS_LinIf_00856] 📄 PDF
void <User_ResponseErrorSignalChanged> (NetworkHandleType Channel, boolean RespErrSigValue);
Notifies the change of the response error signal with the new value. Only applicable for LIN slave nodes. AUTOSAR CP R20 - of Document ID : AUTOSAR_ SWS_ LINInterface
接口 <User_ResponseErrorSignalChanged> 在 LinIf 模块中用作通知函数,用于报告 Response-Error 信号的值更改及新的信号值 [SWS_LinIf_00856]。调用以同步方式进行,并具有服务 ID 0x74 [SWS_LinIf_00856]。既未提供输入/输出参数也未提供返回值;其签名使用返回类型 void 定义 [SWS_LinIf_00856]。
作为传入参数,该函数需要两个纯输入值 [SWS_LinIf_00856]:
Channel(类型NetworkHandleType):受影响 LIN 通道的唯一标识 [SWS_LinIf_00856]。RespErrSigValue(类型boolean):Response-Error 信号的当前值。当信号设置为 1 时,该参数为true,否则为false[SWS_LinIf_00856]。
关于并发性和调用上下文,规定该函数针对不同的通道是可重入的,但不得针对同一通道进行重入调用 [SWS_LinIf_00856]。一个功能性边界条件是该通知服务仅适用于 LIN 从节点 [SWS_LinIf_00856]。其声明通过头文件 LinIf_Externals.h 提供 [SWS_LinIf_00856]。
本文由 AI 基于 AUTOSAR R20-11 规范生成。
函数 <User_SaveConfigurationRequest> [SWS_LinIf_00857] 📄 PDF
boolean <User_SaveConfigurationRequest> (NetworkHandleType Channel);
Notifies the reception of a Save Configuration request. Only applicable for LIN slave nodes.
回调函数 <User_SaveConfigurationRequest>(服务 ID 0x75)通知上层接收到“Save Configuration”请求,并在 LinIf_Externals.h 中声明 [SWS_LinIf_00857]。该接口仅适用于 LIN 从节点 [SWS_LinIf_00857]。
该调用同步进行,并被指定为可重入 [SWS_LinIf_00857]:
- 参数:通过类型为
NetworkHandleType的输入参数Channel传递受影响的 LIN 通道 [SWS_LinIf_00857]。不存在附加的输入或输出参数 [SWS_LinIf_00857]。 - 返回值:该函数返回一个类型为
boolean的值 [SWS_LinIf_00857]。返回值TRUE表示应在 LIN 总线上发送肯定响应,而FALSE则阻止发送任何响应 [SWS_LinIf_00857]。
在错误处理方面,规范既未定义特定的错误码,也未定义 DET 或 DEM 消息 [SWS_LinIf_00857]。发生错误或拒绝时的行为直接通过布尔返回值控制,即通过 FALSE 阻止响应的发送 [SWS_LinIf_00857]。由于调用被归类为可重入,该函数应当设计为可在不同通道上并发调用 [SWS_LinIf_00857]。 问题 Q-84432030c1aff644 (未决)
本文由 AI 基于 AUTOSAR R20-11 规范生成。
类型 LinIf_SchHandleType [SWS_LinIf_00197] 📄 PDF
Index of the schedule table that is selectable and followed by LIN Interface. Value is unique per LIN c hannel/ controller, but not per ECU. The number of schedule tables is limited to 255
类型 LinIf_ConfigType [SWS_LinIf_00668] 📄 PDF
A pointer to an instance of this structure will be used in the initialization of the LIN Interface. The outline of the structure is defined in chapter 10 Configuration Specification.
类型 LinTp_ConfigType [SWS_LinIf_00426] 📄 PDF
This is the base type for the configuration of the LIN Transport Protocol A pointer to an instance of this structure will be used in the initialization of the LIN Transport Protocol. The outline of the structure is defined in chapter 10 Configuration Specification
类型 LinTp_Mode [SWS_LinIf_00629] 📄 PDF
This type denotes which Schedule table can be requested by LIN TP during diagnostic session
枚举类型 LinTp_Mode 在头文件 LinIf.h 中定义,并确定在诊断会话期间可由 LIN 传输协议 (LIN TP) 请求哪种调度表模式 [SWS_LinIf_00629]。
取值范围包括三个用于控制 LIN 总线上调度切换的枚举字面量 [SWS_LinIf_00629]:
LINTP_APPLICATIVE_SCHEDULE:选择用于常规报文通信的应用程序调度表 [SWS_LinIf_00629]。LINTP_DIAG_REQUEST:选择用于传输诊断请求的主请求调度表 [SWS_LinIf_00629]。LINTP_DIAG_RESPONSE:选择用于接收诊断响应的从响应调度表 [SWS_LinIf_00629]。
关于交互,该类型用于在 LIN 接口内于诊断传输与常规应用程序通信之间进行切换 [SWS_LinIf_00629]。对于该纯数据类型,源数据中未指定具体的调用上下文、重入属性或错误处理(例如 DET 或 DEM 消息);据推测,该类型会在 LIN 传输协议对 LIN 接口进行控制调用时作为函数参数传递。 问题 Q-1bf7553401882471 (未决)
此文本由 AI 创建,仅基于 AUTOSAR 版本 R20-11 的规范。
实现者指南即将推出(复杂度 I1)
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_LinIf- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_LinIf@rel:R20-11#7145caf3- Content hash
7145caf3- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINInterface.pdf#nameddest=SWS_LinIf_00198
gemini-3.8-flash-low· 2026-10-13 · 德文原文