DEENESPTFRRUARHIKOZHNL

LIN Interface (LinIf)

ModulLinIf (LIN Interface)
BSW-Modul-ID62
Standard-Header#include "LinIf.h"
SWS-SpezifikationAUTOSAR_SWS_LINInterface.pdf
ClusterLIN

模块指南人工智能生成

在上层与 LIN 驱动之间转发 LIN 报文帧,并控制调度表、休眠、唤醒以及 LIN-TP。
AI 生成 未审核 模型: claude-opus-5-5 · 推理强度: high · 温度: 不可控 · 提示词: 2c16f0f64a13 来源 未决问题(2)
因果锚点:R20-11 自 R20-11 起有效 为此规范版本重新合成。
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

在上层与 LIN 驱动之间转发 LIN 报文帧,并控制调度表、休眠、唤醒以及 LIN-TP。

LIN Interface 连接上层通信模块与 LIN 驱动及收发器,并且还包含 LIN 传输协议。作为 Master,通道执行通过LinIf_ScheduleRequest选择的调度表[SWS_LinIf_00202]。相比之下,作为 Slave,它仅响应驱动的报头消息[SWS_LinIf_91004]。此外,它按通道控制休眠与唤醒、诊断传输以及 Slave 中的 Node Configuration。哪些服务可用取决于通道所配置的节点类型。

LIN Interface(LinIf)在上层通信模块与 LIN 驱动之间进行协调,并同时包含 LIN 传输协议[SWS_LinIf_00351]。向上,它在 R20-11 中调用可配置的标注(Callout)<User_TriggerTransmit>、<User_TxConfirmation>和<User_RxIndication>[SWS_LinIf_00528][SWS_LinIf_00529][SWS_LinIf_00530];使用者为 PduR 或 CDD。它通过<User>_…Confirmation标注向 LinSM 回报模式切换[SWS_LinIf_00521]。向下它使用 Lin 以及可选的 LinTrcv[SWS_LinIf_00359]。

kontext Nutzer PduR / CDD (<User_…>-Callouts) LinIf LinIf (inkl. LinTp) Nutzer->LinIf LinIf_Transmit, LinTp_Transmit LinSM LinSM (<User>-Callouts) LinSM->LinIf LinIf_ScheduleRequest, LinIf_GotoSleep, LinIf_Wakeup BswM BswM Com Com EcuM EcuM EcuM->LinIf LinIf_CheckWakeup Mirror Mirror (Bus Mirroring) Det Det LinIf->Nutzer <User_TriggerTransmit>, <User_TxConfirmation>, <User_RxIndication> LinIf->LinSM <User>_ScheduleRequestConfirmation, <User>_GotoSleepConfirmation, <User>_WakeupConfirmation LinIf->BswM BswM_LinTp_RequestMode (LinTp_Mode) LinIf->Com Com_SendSignal (response_error) LinIf->Mirror Mirror_ReportLinFrame LinIf->Det Det_ReportError, Det_ReportRuntimeError Lin Lin (LIN-Treiber) LinIf->Lin Lin_SendFrame, Lin_GetStatus, Lin_GoToSleepInternal, Lin_Wakeup LinTrcv LinTrcv (optional) LinIf->LinTrcv 模式和唤醒服务 (LinTrcv_SetOpMode 等) Lin->LinIf LinIf_HeaderIndication, LinIf_RxIndication, LinIf_TxConfirmation, LinIf_LinErrorIndication, LinIf_WakeupConfirmation

上下文图:LinIf 位于使用者、LinSM、BswM、EcuM、Mirror 以及 Lin 和 LinTrcv 之间。来源:[SWS_LinIf_00360][SWS_LinIf_00469]

在LinIf_Init[SWS_LinIf_00198]之后,每个通道均处于LINIF_CHANNEL_SLEEP状态。LinIf 仅在LINIF_CHANNEL_OPERATIONAL中处理报文帧SWS LinIf 第45页。每个通道由其专属的 MainFunction 处理工作[SWS_LinIf_00384]。

linif_zustand cluster_init LINIF_INIT(每个通道的子状态) Reset Reset UNINIT LINIF_UNINIT Reset->UNINIT SLEEP LINIF_CHANNEL_SLEEP UNINIT->SLEEP LinIf_Init (无 Go-to-sleep 命令) OP LINIF_CHANNEL_OPERATIONAL SLEEP->OP LinIf_Wakeup OP->SLEEP LinIf_GotoSleep (Slave:在 Go-to-sleep 命令 或总线空闲超时之后)

状态图:初始化进入休眠状态;LinIf_Wakeup 与 LinIf_GotoSleep 在通道状态之间切换。来源:SWS LinIf 第45页

Master 和 Slave 的工作方式截然不同。Master 通道执行调度表,通过索引 1..255 的LinIf_ScheduleRequest进行选择;0 代表NULL_SCHEDULE[SWS_LinIf_00197][SWS_LinIf_00202]。在此过程中,LinIf_Transmit仅标记偶发帧(Sporadic Frames);LinIf 仅在相应时隙到期时才获取数据[SWS_LinIf_00706]。相比之下,Slave 仅对LinIf_HeaderIndication作出响应。它根据 PID 决定发送、接收还是忽略[SWS_LinIf_00738][SWS_LinIf_00733][SWS_LinIf_00748],并自主管理response_error信号[SWS_LinIf_00763]。

Slave 在收到休眠命令(Go-to-sleep)或总线空闲超时后进入休眠[SWS_LinIf_00750][SWS_LinIf_00755]。它仅在收到第一个报头时才确认唤醒[SWS_LinIf_00761]。对于诊断,LinTp 在 Master 中通过BswM_LinTp_RequestMode切换调度表[SWS_LinIf_00629]。在 Slave 中,LinIf 支持符合 ISO 17987-3 的 Node Configuration[SWS_LinIf_00771]。LinIf 向 DET 报告错误,例如LINIF_E_RESPONSE[SWS_LinIf_00729]。发生超时时,它以E_NOT_OK中止 TP 传输[SWS_LinIf_00801][SWS_LinIf_00806]。

LIN Interface 在使用者、驱动与收发器之间的角色

LIN Interface(LinIf)在上层通信模块与 LIN 驱动之间进行协调。它同时包含 LIN 传输协议:其诸如LinTp_Init和LinTp_Transmit之类的服务也可通过LinIf.h使用[SWS_LinIf_00350][SWS_LinIf_00351]。向下,LinIf 使用驱动服务,如Lin_GoToSleepInternal、Lin_Wakeup和Lin_WakeupInternal[SWS_LinIf_00359]。可选地,还可以添加 LIN Transceiver Driver,LinIf 将所有收发器的模式服务和唤醒服务映射到统一接口上SWS LinIf 第24页。为此,LinIf_SetTrcvMode、LinIf_GetTrcvMode、LinIf_GetTrcvWakeupReason和LinIf_SetTrcvWakeupMode将调用转发给收发器驱动[SWS_LinIf_00544][SWS_LinIf_00545][SWS_LinIf_00547][SWS_LinIf_00550]。

向上,LinIf 通过可配置的标注调用其使用者:<User_TriggerTransmit>、<User_TxConfirmation>和<User_RxIndication>[SWS_LinIf_00528][SWS_LinIf_00529][SWS_LinIf_00530]。使用者为 PduR(此时应填入PduR_LinIfTriggerTransmit[SWS_LinIf_00722])或 CDD(LinIf 包含其回调头文件[SWS_LinIf_00669])。LinIf 通过<User>_ScheduleRequestConfirmation、<User>_GotoSleepConfirmation和<User>_WakeupConfirmation回报模式切换[SWS_LinIf_00520][SWS_LinIf_00521][SWS_LinIf_00522]。这些消息的接收者是 LinSMSWS LinSM 第24页。此外,LinIf 需要服务BswM_LinTp_RequestMode、Com_SendSignal和Det_ReportError[SWS_LinIf_00360]。从 R24-11 起,LSduR 取代 PduR 或 CDD 成为上层使用者SWS LinIf 第1页。对于 R20-11,适用<User_…>标注。

每个通道要么是 Master,要么是 Slave。仅当配置了至少一个 Slave 通道时,诸如LinIf_HeaderIndication或LinIf_GetConfiguredNAD之类的 Slave 服务才存在[SWS_LinIf_00863][SWS_LinIf_00861]。仅当存在至少一个 Master 通道时,LinIf_ScheduleRequest才存在[SWS_LinIf_00858]。周期性处理在LinIf_MainFunction_<LinIfChannel.ShortName>中运行[SWS_LinIf_00384]。该函数在每个通道存在一个SWS LinIf 第119页,并以周期LinIfMainFunctionPeriod被调用。在 Master 中它查询 Schedule Table Manager,在 Slave 中它监控时间条件SWS LinIf 第45页。总线镜像(Bus Mirroring)通过LinIf_EnableBusMirroring按通道激活;之后,LinIf 向 Mirror 模块报告接收和发送的报文帧[SWS_LinIf_00876][SWS_LinIf_00838][SWS_LinIf_00873]。

kontext Nutzer PduR / CDD (<User_…>-Callouts) LinIf LinIf (inkl. LinTp) Nutzer->LinIf LinIf_Transmit, LinTp_Transmit LinSM LinSM (<User>-Callouts) LinSM->LinIf LinIf_ScheduleRequest, LinIf_GotoSleep, LinIf_Wakeup BswM BswM Com Com EcuM EcuM EcuM->LinIf LinIf_CheckWakeup Mirror Mirror (Bus Mirroring) Det Det LinIf->Nutzer <User_TriggerTransmit>, <User_TxConfirmation>, <User_RxIndication> LinIf->LinSM <User>_ScheduleRequestConfirmation, <User>_GotoSleepConfirmation, <User>_WakeupConfirmation LinIf->BswM BswM_LinTp_RequestMode (LinTp_Mode) LinIf->Com Com_SendSignal (response_error) LinIf->Mirror Mirror_ReportLinFrame LinIf->Det Det_ReportError, Det_ReportRuntimeError Lin Lin (LIN-Treiber) LinIf->Lin Lin_SendFrame, Lin_GetStatus, Lin_GoToSleepInternal, Lin_Wakeup LinTrcv LinTrcv (optional) LinIf->LinTrcv 模式和唤醒服务 (LinTrcv_SetOpMode 等) Lin->LinIf LinIf_HeaderIndication, LinIf_RxIndication, LinIf_TxConfirmation, LinIf_LinErrorIndication, LinIf_WakeupConfirmation

上下文图:LinIf(包含 LinTp)位于上层的使用者、模式管理和诊断/镜像服务,与下层的 Lin 及 LinTrcv 之间。来源:[SWS_LinIf_00359][SWS_LinIf_00360][SWS_LinIf_00469][SWS_LinIf_00872]SWS LinIf (Abb.) 第17页

通道与 LinTp 的初始化及状态机

LinIf_Init 接收指向 LinIf_ConfigType 的指针 [SWS_LinIf_00198] [SWS_LinIf_00668],并将模块从 LINIF_UNINIT 引导至 LINIF_INIT SWS LinIf 第47页。每个通道都拥有独立的子状态机。初始化完成后,通道处于 LINIF_CHANNEL_SLEEP 状态,而无需发送 Go-to-sleep 命令。LinIf 仅在 LINIF_CHANNEL_OPERATIONAL 状态下处理报头与响应 SWS LinIf 第45页。主节点通道以 NULL_SCHEDULE 启动 SWS LinIf 第90页。从节点通道从配置中获取初始及配置的 NAD 以及 PID [SWS_LinIf_00767] [SWS_LinIf_00768],并提供 LIN Product Identification [SWS_LinIf_00769]。

linif_zustand cluster_init LINIF_INIT(每个通道的子状态) Reset Reset UNINIT LINIF_UNINIT Reset->UNINIT SLEEP LINIF_CHANNEL_SLEEP UNINIT->SLEEP LinIf_Init (无 Go-to-sleep 命令) OP LINIF_CHANNEL_OPERATIONAL SLEEP->OP LinIf_Wakeup OP->SLEEP LinIf_GotoSleep (Slave:在 Go-to-sleep 命令 或总线空闲超时之后)

状态图:LinIf 的生命周期与通道子状态;初始化进入睡眠状态,唤醒和睡眠在通道状态之间切换。来源:SWS LinIf 第45页 [SWS_LinIf_00204] [SWS_LinIf_00205] [SWS_LinIf_00755]

传输协议为每个通道配备了独立的状态机。LinTp_Init [SWS_LinIf_00350] 将 LINTP_INIT 设置为带有子状态 LINTP_CHANNEL_IDLE [SWS_LinIf_00710] SWS LinIf 第99页。在 LINTP_CHANNEL_BUSY 之后,一旦 FF 或 SF 被识别为 TP 报文 [SWS_LinIf_00322] [SWS_LinIf_00323] 或 LinTp_Transmit 被调用 SWS LinIf 第108页,通道即发生切换。LinTp_Shutdown [SWS_LinIf_00355] 关闭所有打开的连接,并将所有通道设置为 LINTP_UNINIT SWS LinIf 第102页。LinTp 是否包含在内,由 LinIfTpSupported 在编译时确定 SWS LinIf 第61页。

lintp_zustand cluster_init LINTP_INIT (je Kanal) Reset Reset UNINIT LINTP_UNINIT Reset->UNINIT IDLE LINTP_CHANNEL_IDLE UNINIT->IDLE LinTp_Init IDLE->UNINIT LinTp_Shutdown BUSY LINTP_CHANNEL_BUSY IDLE->BUSY TP 报文开始 (检测到 LinTp_Transmit 或 FF/SF) BUSY->UNINIT LinTp_Shutdown (关闭连接) BUSY->IDLE TP-Nachricht beendet

状态图:LINTP_INIT 内在 IDLE 和 BUSY 之间的 LinTp 通道。来源:SWS LinIf (Abb.) 第43页 [SWS_LinIf_00322] [SWS_LinIf_00710] [SWS_LinIf_00355]

主节点通道:调度表决定总线通信

在主节点中,调度表构成了所有通信的基础。每个通道都有一个空的 NULL_SCHEDULE,且帧之间的间距为 LinIfMainFunctionPeriod 的整数倍 SWS LinIf 第44页。LinIf_SchHandleType 将 NULL_SCHEDULE 编码为 0x00,将其余表编码为索引 1..255。该索引在通道内是唯一的,但并非在每个 ECU 内唯一 [SWS_LinIf_00197]。LinIf_ScheduleRequest 采用异步工作方式 [SWS_LinIf_00202];已完成的切换由 <User>_ScheduleRequestConfirmation 上报 [SWS_LinIf_00520]。在配置中,每个表都被分配了一个 LinIfRunMode,即 RUN_CONTINUOUS 或 RUN_ONCE ECUC-Parameter 第265页。参数 Schedule 直到 R22-11 才被重命名 SWS LinIf 第1页。

LinIf_Transmit [SWS_LinIf_00201] 不会触发立即发送。它仅将偶发帧(主节点)或事件触发帧(从节点)标记为挂起 SWS LinIf 第79页。对于其他帧,它仍返回 E_OK [SWS_LinIf_00700],但在 NULL_SCHEDULE 期间则返回 E_NOT_OK [SWS_LinIf_00719]。当发送时隙到期时,LinIf 通过 <User_TriggerTransmit> 获取数据,并通过 Lin_SendFrame 传递给驱动程序 SWS LinIf 第37页。若用户返回 E_NOT_OK,则该帧被忽略 [SWS_LinIf_00706]。LinIf 使用 Lin_GetStatus 检查结果,最早在最大帧长度之后,最晚在下一个表条目时 SWS LinIf 第35页。LIN_TX_ERROR 和 LIN_TX_BUSY 导致带有 E_NOT_OK 的 <User_TxConfirmation> [SWS_LinIf_00728],LIN_TX_OK 则导致 E_OK SWS LinIf 第40页。

Master 通道中的帧传输Nutzer (PduR/CDD)LinIfLinBSW-TaskUse Case: 注册(仅限零星帧)LinIf_Transmit(TxPduId, PduInfoPtr)CheckId()SetFlag()E_OK(对于 NULL_SCHEDULE 则为 E_NOT_OK)Use Case: 发送时隙到期LinIf_MainFunction_<LinIfChannel.ShortName>()<User_TriggerTransmit>(TxPduId, PduInfoPtr)E_OK / E_NOT_OKaltE_OKLin_SendFrame(...)E_NOT_OK不发送帧Use Case: 在最大帧长度后进行状态检查LinIf_MainFunction_<LinIfChannel.ShortName>()Lin_GetStatus(...)LIN_TX_OK / LIN_TX_BUSY / LIN_TX_ERROR<User_TxConfirmation>(TxPduId, result)对于 LIN_TX_OK 为 E_OK,否则为 E_NOT_OK

时序图:主节点发送过程中的请求登记、基于时隙的数据获取以及状态评估。来源:[SWS_LinIf_00201] [SWS_LinIf_00706] [SWS_LinIf_00728] SWS LinIf 第125页 SWS PduR 第107页

从节点通道:对主节点报头的响应

从节点没有调度表。它仅对 LinIf_HeaderIndication [SWS_LinIf_91004] SWS LinIf 第39页 做出响应。LinIf 首先评估 PID:

成功接收后,驱动程序调用 LinIf_RxIndication,LinIf 将数据转发至 <User_RxIndication> [SWS_LinIf_91005] [SWS_LinIf_00734]。成功发送后,驱动程序调用 LinIf_TxConfirmation,LinIf 通过 E_OK 确认 [SWS_LinIf_91006] [SWS_LinIf_00741]。对于事件触发帧,关联的无条件帧的 PID 位于第一个数据字节中 [SWS_LinIf_00731]。成功传输后,挂起标志会被清除 [SWS_LinIf_00732]。

LinIf 独立管理每个从节点通道的 response_error 信号 [SWS_LinIf_00763],并通过 Com_SendSignal 进行更新 [SWS_LinIf_00764]。传输成功后该信号被清除 [SWS_LinIf_00747]。任何更改都可以选择通过 <User_ResponseErrorSignalChanged> 进行报告 [SWS_LinIf_00765] [SWS_LinIf_00766]。NAD 和 PID 列表可在运行时读取和写入 [SWS_LinIf_00829] [SWS_LinIf_00833] [SWS_LinIf_91002] [SWS_LinIf_91003]。MRF 和 SRF 的 PID 除外 [SWS_LinIf_00809] [SWS_LinIf_00824]。这些值的典型来源是非易失性存储器 SWS LinIf 第57页。

Slave 通道中由 Header 驱动的帧处理LinController/UARTLinLinIfNutzer (PduR/CDD)Interrupt (Header empfangen)LinIf_HeaderIndication(Channel, PduPtr)EvaluatePID()altSende-Frame<User_TriggerTransmit>(TxPduId, PduInfoPtr)SduDataPtr = PduPtr->SduPtrE_OKCs, Dl setzenDrc = LIN_FRAMERESPONSE_TXEmpfangs-FrameCs, Dl setzenDrc = LIN_FRAMERESPONSE_RX不相关或 TriggerTransmit = E_NOT_OKDrc = LIN_FRAMERESPONSE_IGNOREE_OKInterrupt (Response abgeschlossen)altResponse gesendetLinIf_TxConfirmation(Channel)<User_TxConfirmation>(TxPduId, E_OK)Response empfangenLinIf_RxIndication(Channel, Lin_SduPtr)<User_RxIndication>(RxPduId, PduInfoPtr)Fehler erkanntLinIf_LinErrorIndication(Channel, ErrorStatus)

时序图:从节点中的报头评估,按帧方向分支,随后进行确认、接收通知或错误通知。来源:[SWS_LinIf_91004] [SWS_LinIf_00738] [SWS_LinIf_00733] [SWS_LinIf_00748] SWS LinIf 第121页 SWS LinIf (Abb.) 第133页

LIN 通道的睡眠与唤醒

主节点根据请求发送 Go-to-sleep 命令。从节点在接收到该命令或总线保持空闲时进入睡眠 SWS LinIf 第48页。在从节点中,NAD 为 0 的 MRF 被视作 Go-to-sleep 命令 [SWS_LinIf_00750]。总线空闲监控在状态 LINIF_CHANNEL_OPERATIONAL 下运行 [SWS_LinIf_00751] [SWS_LinIf_00752] [SWS_LinIf_00753]。每个驱动程序回调都会重启定时器 [SWS_LinIf_00754]。在这两种情况下,LinIf 都会调用 <User>_GotoSleepIndication [SWS_LinIf_00756]。如果用户随后调用 LinIf_GotoSleep [SWS_LinIf_00204],紧接着将执行 Lin_GoToSleepInternal [SWS_LinIf_00757]。之后 LinIf 清除唤醒标志 [SWS_LinIf_00758] 并通过 TRUE 确认 [SWS_LinIf_00759]。在主节点中,根据示意图,MainFunction 通过 Lin_GoToSleep 发送命令,并在状态检查后通过 SWS LinIf (Abb.) 第93页 进行确认 [SWS_LinIf_00521]。

转换到睡眠状态(Slave 通道)LinLinIfLinTrcvLinIf User (LinSM)altGo-to-sleep-Kommando empfangenLinIf_RxIndication(Channel, Lin_SduPtr)NAD = 0 的 MRFBus-Idle-TimeoutBus-Idle-Timer abgelaufen<User>_GotoSleepIndication()LinIf_GotoSleep(Channel)Lin_GoToSleepInternal(Channel)立即执行,而不是在 MainFunction 中才执行清除通道的唤醒标志<User>_GotoSleepConfirmation(channel, TRUE)E_OKopt收发器驱动支持LinIf_SetTrcvMode(LINTRCV_TRCV_MODE_SLEEP)LinTrcv_SetOpMode(LINTRCV_TRCV_MODE_SLEEP)

时序图:接收到 Go-to-sleep 命令或总线空闲超时后从节点通道转换至睡眠状态。来源:[SWS_LinIf_00750] [SWS_LinIf_00755] [SWS_LinIf_00756] [SWS_LinIf_00757] [SWS_LinIf_00759] SWS LinIf 第137页

唤醒既可由用户通过 LinIf_Wakeup 发起,也可由检测到的总线唤醒发起。LinIf 通过 LinIf_CheckWakeup 检查总线唤醒 SWS LinIf 第51页。为此,LinIf_CheckWakeup [SWS_LinIf_00378] 调用 Lin_CheckWakeup 或 LinTrcv_CheckWakeup SWS LinIf 第112页。驱动程序通过 LinIf_WakeupConfirmation 报告检测到的唤醒 [SWS_LinIf_00715],随后 LinIf 设置通道的唤醒标志 SWS LinIf 第98页。LinIf_Wakeup [SWS_LinIf_00205] 的行为因状态而异。在已处于唤醒状态的通道上,它会模拟成功。在没有唤醒标志的睡眠通道上,它调用 Lin_Wakeup SWS LinIf 第89页。如果唤醒标志已设置,Lin_WakeupInternal 应该可以在不产生唤醒脉冲的情况下激活通道 [SWS_LinIf_00359]。 问题 Q-2efc22e03c8e284e (未决)

在主节点中,确认来自 MainFunction SWS LinIf (Abb.) 第87页。在从节点中,确认伴随首个接收到的报头而来 [SWS_LinIf_00761]。在返回 E_NOT_OK 之前,LinIf 报告 FALSE [SWS_LinIf_00762]。如果主节点不发送报头,确认将不会到来,LinSM 将发生超时 SWS LinIf 第52页。如果在进入睡眠期间收到唤醒请求,主节点仍保持运行 SWS LinIf 第56页。在这种情况下,从节点会重新启动唤醒 SWS LinIf 第53页。

唤醒检查和唤醒请求EcuMLinIf User (LinSM)LinIfLin / LinTrcvBSW-TaskUse Case: Bus-Wakeup (falls aufgetreten)LinIf_CheckWakeup(WakeupSource)Lin_CheckWakeup / LinTrcv_CheckWakeupLinIf_WakeupConfirmation(WakeupSource)设置通道的唤醒标志Use Case: WeckanforderungLinIf_Wakeup(Channel)alt通道处于睡眠状态,未设置唤醒标志Lin_Wakeup(Channel)通道处于睡眠状态,已设置唤醒标志(假定)Lin_WakeupInternal(Channel)通道已唤醒kein Treiberaufruf, Erfolg simulierenE_OKVor E_NOT_OK ruft LinIf<User>_WakeupConfirmation(channel, FALSE)altMasterLinIf_MainFunction_<LinIfChannel.ShortName>()<User>_WakeupConfirmation(channel, TRUE)SlaveLinIf_HeaderIndication(Channel, PduPtr)LinIf_Wakeup 之后的首个 Header<User>_WakeupConfirmation(channel, TRUE)

时序图:通过 EcuM 进行唤醒检查、用户的唤醒请求以及取决于节点的确认。来源:[SWS_LinIf_00378] [SWS_LinIf_00715] [SWS_LinIf_00205] [SWS_LinIf_00761] [SWS_LinIf_00762] SWS EcuM 第182页

诊断:LIN TP 与节点配置

在主节点中,只要 LinTpScheduleChangeDiag 处于激活状态,LinTp 便通过带有 LinTp_Mode 的 BswM_LinTp_RequestMode 控制调度表 [SWS_LinIf_00629]。在 LinTp_Transmit [SWS_LinIf_00351] 时,LinTp 请求诊断请求调度表。在物理请求之后跟随诊断响应调度表,在响应之后跟随应用程序调度表 SWS LinIf 第62页。在功能请求之后,通道返回到先前的调度表 [SWS_LinIf_00707]。PduR_LinTpTxConfirmation 仅在调度表切换结束后执行 [SWS_LinIf_00702]。新的物理请求将终止正在进行的 TP 处理 [SWS_LinIf_00708]。LinTp_ChangeParameter [SWS_LinIf_00501] 仅是一个占位符并拒绝任何更改 SWS LinIf 第103页。

带有调度表切换的 Master 中 LIN TP 发送PduRLinIf (LinTp)BswMLinSMBSW-TaskLinTp_Transmit(TxPduId, PduInfoPtr)optLinTpScheduleChangeDiag = TRUEBswM_LinTp_RequestMode(Network, LINTP_DIAG_REQUEST)LinSM_ScheduleRequest(...)LinIf_ScheduleRequest(Channel, Schedule)E_OK(如果调度表切换被拒绝,则为 E_NOT_OK)loopje MRF (SF, FF, CF)LinIf_MainFunction_<LinIfChannel.ShortName>()PduR_LinTpCopyTxData(...)发送 MRF(类似于常规帧传输)optphysischer Request, Schedule-Wechsel aktiviertBswM_LinTp_RequestMode(Network, LINTP_DIAG_RESPONSE)PduR_LinTpTxConfirmation(id, result)调度表切换完成后

时序图:主节点中的 TP 发送,通过 BswM 和 LinSM 进行调度表切换。来源:[SWS_LinIf_00351] [SWS_LinIf_00702] [SWS_LinIf_00878] SWS LinIf (Abb.) 第90页 SWS LinIf 第139页

对于接收,LinIf 必须时刻准备就绪。FF 或 SF 通过 PduR_LinTpStartOfReception 启动接收处理。在此过程中,LinIf 将 NAD 分配给一个 N-SDU-Id,并通过 PduR_LinTpCopyRxData 复制每个帧 SWS LinIf 第67页。在从节点中,传输层与节点配置共享 MRF 和 SRF 帧 SWS LinIf 第54页。因此,LinIf 评估每个 MRF 的 NAD、PCI 和 SID [SWS_LinIf_00771],并进行相应分发 [SWS_LinIf_00772] [SWS_LinIf_00773] [SWS_LinIf_00774]。当有待发响应时,SRF 报头由节点配置处理程序提供服务;否则转至传输层 [SWS_LinIf_00775] [SWS_LinIf_00776]。支持以下服务:

肯定响应在下一个 SRF 报头时发出 [SWS_LinIf_00780]。

nodecfg mrf MRF empfangen (LinIf_RxIndication) eval 评估 NAD、PCI 和 SID mrf->eval pci PCI 是否有效? eval->pci ign1 Frame ignorieren pci->ign1 不 func 功能性 NAD 0x7E 且带有节点配置请求? pci->func 是 ign2 Anfrage ignorieren func->ign2 是 own 是否寻址自身节点? func->own 不 fremd 通知节点配置处理器和 传输层; 中止待处理的响应 own->fremd 不 nc 是否为有效的节点配置 请求? own->nc 是 srf 下一个 SRF Header: 是否有响应待处理? fremd->srf acc Anfrage annehmen, N_As-Timer starten, Transportschicht informieren nc->acc 是 tp MRF an Transportschicht weiterleiten nc->tp 不 acc->srf tp->srf resp Antwort durch Node-Configuration-Handler senden srf->resp 是 tpsrf SRF-Header an Transportschicht srf->tpsrf 不

活动图:在从节点中将接收到的 MRF 和 SRF 报头分发至节点配置处理程序和传输层。解释:检查顺序专为展示而选择。来源:[SWS_LinIf_00771] [SWS_LinIf_00772] [SWS_LinIf_00774] [SWS_LinIf_00788] [SWS_LinIf_00790] [SWS_LinIf_00776] SWS LinIf 第59页

发生错误时的行为

LinIf 向 DET 报告开发错误,其中包括 LINIF_E_UNINIT、LINIF_E_NONEXISTENT_CHANNEL、LINIF_E_PARAMETER、LINIF_E_PARAM_POINTER 和 LINIF_E_SCHEDULE_REQUEST_ERROR [SWS_LinIf_00376]。回调函数检查通道和指针 [SWS_LinIf_00843] [SWS_LinIf_00844]。LinIf 忽略在未接收报头的情况下对 LinIf_RxIndication 或 LinIf_TxConfirmation 的意外调用 [SWS_LinIf_00848] [SWS_LinIf_00852]。

LinIf 识别的运行时错误包括 LINIF_E_RESPONSE 和 LINIF_E_NC_NO_RESPONSE [SWS_LinIf_00729]。如果驱动程序在从节点中调用 LinIf_LinErrorIndication,则该帧被视为丢失。LinIf 随后报告 LINIF_E_RESPONSE,LIN_ERR_HEADER [SWS_LinIf_00735] [SWS_LinIf_00743] 除外。此外,它通过 E_NOT_OK 确认发送尝试 [SWS_LinIf_00742],并在发生响应错误时设置 response_error 信号 [SWS_LinIf_00736] [SWS_LinIf_00744]。在仍在等待响应时到达的新报头会使旧帧失效 [SWS_LinIf_00846]。在镜像功能激活时,LinIf 会报告此类错误并转换状态码 [SWS_LinIf_00869] [SWS_LinIf_00870]。

LinTp 监控三个时间限制,并在超时时通过向 PduR 发送 E_NOT_OK 来中止:

出现缓冲区问题时,LinTp 也会中止 [SWS_LinIf_00676] [SWS_LinIf_00677]。在主节点中,这仅在返回到应用程序调度表后发生 [SWS_LinIf_00792] [SWS_LinIf_00879]。如果缓冲区仅略有不足,主节点将暂扣 SRF 报头 [SWS_LinIf_00679] SWS LinIf 第65页。或者,LinIf 会以长度 0 重复尝试复制,直到腾出空间或下一个 CF 到达 [SWS_LinIf_00793] [SWS_LinIf_00795]。此外,在错误的 NAD [SWS_LinIf_00655]、错误的序列号 [SWS_LinIf_00081]、CF 之后紧跟 FF 或 SF [SWS_LinIf_00653] 以及 SRF 响应出错 [SWS_LinIf_00796] 的情况下,也会通过 E_NOT_OK 中止。在发生 P2 超时时,LinIf 请求应用程序调度表 [SWS_LinIf_00877]。若 LinIf_ScheduleRequest 拒绝切换,则 LinTp_Transmit 返回 E_NOT_OK [SWS_LinIf_00878]。

在节点配置中,当 N_As 到期 [SWS_LinIf_00785] [SWS_LinIf_00786]、收到未知 NAD [SWS_LinIf_00787] 或收到新的有效请求 [SWS_LinIf_00789] 时,LinIf 会中止挂起的响应。然而,受损的 MRF 仍会保留挂起的响应 [SWS_LinIf_00791]。针对 LinTp 超时和被拒绝的调度表切换的 Extended Production Errors 直到 R23-11 才引入;它们不适用于 R20-11 SWS LinIf 第1页 SWS LinIf 第74页。

进一步详细证据

基于负载中包含的 R20-11 规范摘录的 AI 生成指南。链接的 Requirements 具有约束力。后续版本中的文档段落仅作为补充参考,且已注明差异。

LIN Interface (LinIf)

Abstracts LIN hardware and manages schedule tables and frame transmission.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

函数 LinIf_Init [SWS_LinIf_00198] 📄 PDF

void LinIf_Init (const LinIf_ConfigType* ConfigPtr);

Initializes the LIN Interface.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 5afc2b05c058 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步函数 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_Transmit [SWS_LinIf_00201] 📄 PDF

Std_ReturnType LinIf_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);

Re quests transmission of a PDU.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 26fe69f012f5 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与调用上下文

在 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]:

与帧类型的交互由 [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.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 7aff69ddc1f7 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 LinIf_ScheduleRequest 仅用于在 LIN 主节点上请求执行给定的调度表 [SWS_LinIf_00202]。该调用采用异步处理,并设计为可重入 [SWS_LinIf_00202]。

参数与返回值

通过参数 Channel 传递受影响的 LIN 通道索引,而 Schedule 则指定要新执行的调度表的标识 [SWS_LinIf_00202]。该函数以 Std_ReturnType 形式返回状态:

错误条件与限制

根据规范,在以下错误情况下会返回 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.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: e5eedba11183 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用

函数 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.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: dd3e56a193fd 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

可重入函数 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.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: cb7567440122 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步且可重入的函数 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

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: aabbd5422a4f 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步且可重入的函数 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.

函数 LinTp_Init [SWS_LinIf_00350] 📄 PDF

void LinTp_Init (const LinTp_ConfigType* ConfigPtr);

Initializes the LIN Transport Layer.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 24052c633b39 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与调用上下文

函数 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.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 444966ee5f38 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步函数 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_Shutdown [SWS_LinIf_00355] 📄 PDF

void LinTp_Shutdown (void);

Shutdowns the LIN TP.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: a1aa6e2da5f3 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 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).

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 17541ee3b055 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与语义

同步函数 LinTp_ChangeParameter 用于在运行时调整特定 PDU 的传输协议特定参数 [SWS_LinIf_00501]。传入的参数包括 PDU 标识(id)、要更改的传输协议参数标识符(parameter,例如块大小)以及新的目标值(value)[SWS_LinIf_00501]。声明通过头文件 LinIf.h 提供 [SWS_LinIf_00501]。

返回值与错误情况下的行为

该函数通过其类型为 Std_ReturnType 的返回值直接指示请求结果 [SWS_LinIf_00501]:

并发性与限制

根据规范,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.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: a8f712a4612b 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与调用上下文

一旦模块 EcuM 收到关于特定 LIN 通道上唤醒事件的通知,就会调用同步函数 LinIf_CheckWakeup [SWS_LinIf_00378]。调用时传入类型为 EcuM_WakeupSourceType 的输入参数 WakeupSource [SWS_LinIf_00378]。该参数指定发起唤醒事件的源设备,其可以是 LIN 控制器或 LIN 收发器 [SWS_LinIf_00378]。

错误处理与返回值

作为返回值,该函数提供类型为 Std_ReturnType 的状态[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.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 78f53a1bd6f3 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步且可重入的函数 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.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: ec4ca05f8c6e 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 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]。

执行属性与接口

此文本由 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).

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 19187e1b092a 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

回调函数 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).

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 6091ff4a3b4f 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

回调函数 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).

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 4b5b40f235ec 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步回调函数 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).

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: d5f182fa17f5 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与调用上下文

同步函数 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.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: f12957ea5e9a 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

可配置接口 <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.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 37f6ac5aed5e 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

可配置回调函数 <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.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: efc39fd11ced 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

回调函数 <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

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 7b27a8f9e901 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

接口 <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.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: f9fc99467908 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

回调函数 <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

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 237979748ffe 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

枚举类型 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

初始化与状态

Returns the version information of this module.

void LinIf_GetVersionInfo (Std_VersionInfoType* versioninfo);
LinIf_Init 函数

Initializes the LIN Interface.

void LinIf_Init (const LinIf_ConfigType* ConfigPtr);

Returns the version information of this module.

void LinTp_GetVersionInfo (Std_VersionInfoType* versioninfo);
LinTp_Init 函数

Initializes the LIN Transport Layer.

void LinTp_Init (const LinTp_ConfigType* ConfigPtr);

服务 · Get…

Reports the current configured NAD. Only applicable for LIN slave nodes.

Std_ReturnType LinIf_GetConfiguredNAD (NetworkHandleType Channel, uint8* Nad);

Retrieves all assigned PID values. The order is congruent to the LIN frame index. Only applicable for LIN slave nodes.

Std_ReturnType LinIf_GetPIDTable (NetworkHandleType Channel, Lin_FramePidType* PidBuffer, uint8* PidBufferLength);

Returns the actual sta te of a LIN Transceiver Driver.

Std_ReturnType LinIf_GetTrcvMode (NetworkHandleType Channel, LinTrcv_TrcvModeType* TransceiverModePtr);

Returns the reason for the wake up that has been detected by the LIN Transceiver Driver.

Std_ReturnType LinIf_GetTrcvWakeupReason (NetworkHandleType Channel, LinTrcv_TrcvWakeupReasonType* TrcvWuReasonPtr);

服务 · Set…

Sets the current configured NAD. Only applicable for LIN slave nodes.

Std_ReturnType LinIf_SetConfiguredNAD (NetworkHandleType Channel, uint8 Nad);

Sets all assigned PID values. The order is congruent to the LIN frame index. Only applicable for LIN slave nodes.

Std_ReturnType LinIf_SetPIDTable (NetworkHandleType Channel, Lin_FramePidType* PidBuffer, uint8 PidBufferLength);

Set the given LIN transceiver to the given mode.

Std_ReturnType LinIf_SetTrcvMode (NetworkHandleType Channel, LinTrcv_TrcvModeType TransceiverMode);

This API enables, disables and cl ears the notification for wakeup events on the addressed network

Std_ReturnType LinIf_SetTrcvWakeupMode (NetworkHandleType Channel, LinTrcv_TrcvWakeupModeType LinTrcvWakeupMode);

服务 · 其他

Will be called when the Ecu M has been notified about a wakeup on a specific LIN channel.

Std_ReturnType LinIf_CheckWakeup (EcuM_WakeupSourceType WakeupSource);

Enables or disables mirroring for a LIN channel.

Std_ReturnType LinIf_EnableBusMirroring (NetworkHandleType Channel, boolean MirroringActive);

Initiates a transition into the Sleep Mode on the selected channel.

Std_ReturnType LinIf_GotoSleep (NetworkHandleType Channel);

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).

Std_ReturnType LinIf_HeaderIndication (NetworkHandleType Channel, Lin_PduType* PduPtr);

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).

void LinIf_LinErrorIndication (NetworkHandleType Channel, Lin_SlaveErrorType ErrorStatus);

Requests a schedule table to be executed. Only used for LIN master nodes.

Std_ReturnType LinIf_ScheduleRequest (NetworkHandleType Channel, LinIf_SchHandleType Schedule);

Re quests transmission of a PDU.

Std_ReturnType LinIf_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);

Initiates the wake up process.

Std_ReturnType LinIf_Wakeup (NetworkHandleType Channel);

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.

void LinIf_WakeupConfirmation (EcuM_WakeupSourceType WakeupSource);

Request to change a specific transport protocol parameter (e.g. block size).

Std_ReturnType LinTp_ChangeParameter (PduIdType id, TPParameterType parameter, uint16 value);

Shutdowns the LIN TP.

void LinTp_Shutdown (void);

Requests transmission of a PDU.

Std_ReturnType LinTp_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);

回调

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).

void LinIf_RxIndication (NetworkHandleType Channel, uint8* Lin_SduPtr);

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).

void LinIf_TxConfirmation (NetworkHandleType Channel);

Callout 与预期接口

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

void <User_ResponseErrorSignalChanged> (NetworkHandleType Channel, boolean RespErrSigValue);

Indication of a received PDU from a lower layer communication interface module.

void <User_RxIndication> (PduIdType RxPduId, const PduInfoType* PduInfoPtr);

Notifies the reception of a Save Configuration request. Only applicable for LIN slave nodes.

boolean <User_SaveConfigurationRequest> (NetworkHandleType Channel);

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.

Std_ReturnType <User_TriggerTransmit> (PduIdType TxPduId, PduInfoType* PduInfoPtr);

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.

void <User_TxConfirmation> (PduIdType TxPduId, Std_ReturnType result);

类型

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.

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

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 类型

This type denotes which Schedule table can be requested by LIN TP during diagnostic session