DEENESPTFRRUARHIKOZHNL

LIN Transceiver Driver (LinTrcv)

ModulLinTrcv (LIN Transceiver Driver)
BSW-Modul-ID64
Standard-Header#include "LinTrcv.h"
SWS-SpezifikationAUTOSAR_SWS_LINTransceiverDriver.pdf
ClusterLIN

模块指南人工智能生成

控制LIN收发器芯片:设置与查询操作模式,检测唤醒并报告给LIN接口。
AI 生成 未审核 模型: claude-opus-5-5 · 推理强度: high · 温度: 不可控 · 提示词: 4cf0c894f837 来源 未决问题(4)
因果锚点:R20-11 自 R20-11 起有效 为此规范版本重新合成。
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

控制LIN收发器芯片:设置与查询操作模式,检测唤醒并报告给LIN接口。

LIN Transceiver Driver控制通道的物理LIN收发器,并将LinIf与硬件解耦。根据LinTrcv_Init,初始模式为SLEEP。LinTrcv_SetOpMode在NORMAL、STANDBY和SLEEP之间切换,并在切换失败时返回E_NOT_OK [SWS_LinTrcv_00002]。外部唤醒通过ICU进行检测,并在LinIf调用LinTrcv_CheckWakeup时进行报告。在R20-11中,E_OK在此表示“检测到唤醒”[SWS_LinTrcv_00012]。状态切换的等待时间应使用Tm_BusyWait1us16bit实现。

LIN Transceiver Driver控制通道的物理LIN收发器,并将LIN接口与硬件解耦。LinIf直接调用其服务:例如LinIf_SetTrcvMode调用LinTrcv_SetOpMode并不加修改地返回其结果[SWS_LinTrcv_00002] LinIf-SWS 第90页。软件状态和硬件状态是分离的。软件模式覆盖哪些硬件状态由实现决定LinTrcv-SWS 第16页。

驱动程序支持模式LINTRCV_TRCV_MODE_NORMAL、LINTRCV_TRCV_MODE_STANDBY和LINTRCV_TRCV_MODE_SLEEP [SWS_LinTrcv_00168]。上电后,它处于未激活状态。LinTrcv_Init使用配置集[SWS_LinTrcv_00001]将其激活,初始模式为SLEEP LinTrcv-SWS 第1页。STANDBY是可选的,可以是一个纯内部状态LinTrcv-SWS 图 7.1 第15页。

LinTrcvModi cluster_power_on POWER_ON cluster_active ACTIVE PowerOn Power On NOT_ACTIVE NOT_ACTIVE PowerOn->NOT_ACTIVE [Power On] PowerOff Power Off NOT_ACTIVE->PowerOff [Power Off] SLEEP LINTRCV_TRCV_MODE_SLEEP NOT_ACTIVE->SLEEP LinTrcv_Init(ConfigPtr) Ausgangsmodus SLEEP NORMAL LINTRCV_TRCV_MODE_NORMAL SLEEP->NORMAL LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_NORMAL) NORMAL->SLEEP LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_SLEEP) STANDBY LINTRCV_TRCV_MODE_STANDBY (可选,视情况仅限内部) NORMAL->STANDBY optional: LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_STANDBY) STANDBY->SLEEP optional: LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_SLEEP) STANDBY->NORMAL LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_NORMAL)

状态图:从上电经过LinTrcv_Init直至使用LinTrcv_SetOpMode进行模式切换的生命周期。可选转换经过重建(解释)。来源:LinTrcv-SWS 图 7.1 第15页 [SWS_LinTrcv_00168]

驱动程序不通过自身的ISR检测外部唤醒,而是通过ICU检测LinTrcv-SWS 第17页。LinIf使用LinTrcv_CheckWakeup对其进行查询。在R20-11中,E_OK在此表示“检测到唤醒”[SWS_LinTrcv_00012]。后续版本对此有不同的定义。检测到的唤醒通过LinIf_WakeupConfirmation报告[SWS_LinTrcv_91002]。LinTrcv_SetWakeupMode启用、禁用通知或清除已存储的事件[SWS_LinTrcv_00169]。

外部唤醒(依据 R20-11 的返回值)LIN-Bus / TransceiverIcuLinTrcvLinIfUse Case: VorbereitungIcu_EnableNotification(切换至 STANDBY 时)Use Case: Wakeup-EreignisWakeup-Ereignis (dominanter Buspegel或唤醒引脚上的边沿)从 ICU 通知到由 LinIf 调用的路径由 LinIf 执行,位于 LinTrcv 之外(有效负载中未描述)LinTrcv_CheckWakeup(LinNetwork)在如下对象上唤醒:adressierten Netz auswertenaltWakeup erkanntLinIf_WakeupConfirmation(WakeupSource)设置通道的唤醒标志E_OKkein Wakeup erkanntE_NOT_OKUse Case: 查询唤醒原因(通过 LinIf_GetTrcvWakeupReason)LinTrcv_GetBusWuReason(LinNetwork, Reason)E_OK, Reason z. B.LINTRCV_WU_BY_BUS

时序图:从ICU检测经过LinTrcv_CheckWakeup和LinIf_WakeupConfirmation直至查询原因的外部唤醒。来源:[SWS_LinTrcv_00012] [SWS_LinTrcv_91002] LinTrcv-SWS 第17页

运行适用以下边界条件:

DET错误码仅在后续版本中得到证实。由于R21-11清理了错误码,它们的名称在R20-11中可能会有所不同LinTrcv-SWS 第1页。

在LIN接口与收发器芯片之间的角色

LIN Transceiver Driver(LinTrcv)封装了物理LIN收发器的控制。其接口由七个服务组成:

所有服务均为同步服务。驱动程序的软件状态与器件的硬件状态相互独立。器件支持的状态转换可以多于驱动程序。软件状态具体涵盖哪些硬件状态由实现决定。但实现必须完整提供所描述的功能 LinTrcv-SWS 第16页。

在向上方向,LIN 接口(LinIf)是有效负载中占用的用户。各 LinIf 服务分别调用一个 LinTrcv 服务:

类型 LinTrcv_TrcvModeType 和 LinTrcv_TrcvWakeupModeType 可通过 Lin_GeneralTypes.h 获取 [SWS_LinTrcv_00168] [SWS_LinTrcv_00169]。LinIf 在其签名中直接使用它们。原有的专有类型 LinIf_TrcvModeType 在版本 3.1.5 中被 LinTrcv_TrcvModeType 取代 LinIf-SWS 第4页。

在向下方向,驱动程序使用以下服务:

驱动程序通过 LinIf_WakeupConfirmation 向 LinIf 报告检测到的唤醒 [SWS_LinTrcv_91002]。LinIf 随后设置受影响通道的唤醒标志 LinIf-SWS 第98页。

LinTrcvKontext LinIf LinIf LinTrcv LinTrcv LinIf->LinTrcv LinTrcv_SetOpMode, LinTrcv_GetOpMode, LinTrcv_GetBusWuReason, LinTrcv_SetWakeupMode, LinTrcv_CheckWakeup LinTrcv->LinIf LinIf_WakeupConfirmation Dio Dio LinTrcv->Dio Dio-Lese-/Schreibdienste (LinTrcvDioAccess) Spi Spi LinTrcv->Spi SPI-Sequenz (LinTrcvSpiSequence) Icu Icu LinTrcv->Icu Icu_EnableNotification / Icu_DisableNotification Tm Tm LinTrcv->Tm Tm_BusyWait1us16bit Det DET LinTrcv->Det Det_ReportError EcuM EcuM LinTrcv->EcuM EcuM_SetWakeupEvent HW LIN-Transceiver-Baustein Dio->HW Pins Spi->HW SPI HW->Icu Wakeup-Signal

上下文图:LinTrcv 位于 LinIf 与底层硬件服务 Dio/Spi、Icu 及 Tm 之间,并将唤醒报告回 LinIf。来源:[SWS_LinTrcv_91001] [SWS_LinTrcv_91002] [SWS_LinTrcv_91003] [SWS_LinTrcv_00171] LinTrcv-SWS 第17页 LinTrcv-SWS 图 10.3 第45页

从上电到 Sleep 的操作模式生命周期

该驱动程序具有三种软件操作模式:LINTRCV_TRCV_MODE_NORMAL、LINTRCV_TRCV_MODE_STANDBY 和 LINTRCV_TRCV_MODE_SLEEP [SWS_LinTrcv_00168]。规范中的图 7.1 将它们归入一个生命周期中 LinTrcv-SWS 图 7.1 第15页:

  • 上电后,驱动程序处于状态 NOT_ACTIVE。
  • LinTrcv_Init 将其转换为状态 ACTIVE。这三种模式均位于 ACTIVE 之内。
  • 掉电将终止该生命周期。

LinTrcv_Init 接收指向所选配置集的指针 [SWS_LinTrcv_00001]。结构体 LinTrcv_ConfigType 是特定于实现的 [SWS_LinTrcv_00172]。自版本 4.3.1 起,初始化后的初始模式被限制为 LINTRCV_TRCV_MODE_SLEEP LinTrcv-SWS 第1页。

在状态 ACTIVE 下,LinTrcv_SetOpMode 将寻址通道的内部状态切换至传入的模式 [SWS_LinTrcv_00002] LinTrcv-SWS 第25页。模式 LINTRCV_TRCV_MODE_STANDBY 是可选的。它可以是一个纯内部状态,供硬件用于状态转换。具体的硬件可能不需要所有接口 LinTrcv-SWS 图 7.1 第15页。此外,规范还指出了 LinTrcv_SetOpMode 将通道切换至 STANDBY 的条件。这些条件在当前摘录中被截断,在此不予展开 LinTrcv-SWS 第25页。

LinTrcv_GetOpMode 在输出参数 OpMode 中返回驱动程序的当前软件状态 [SWS_LinTrcv_00005] LinTrcv-SWS 第26页。这并不一定是器件的状态。调用者可借此在模式切换之前检查通道处于何种模式。通过 LinIf,该查询作为 LinIf_GetTrcvMode 提供 LinIf-SWS 第91页。

LinTrcvModi cluster_power_on POWER_ON cluster_active ACTIVE PowerOn Power On NOT_ACTIVE NOT_ACTIVE PowerOn->NOT_ACTIVE [Power On] PowerOff Power Off NOT_ACTIVE->PowerOff [Power Off] SLEEP LINTRCV_TRCV_MODE_SLEEP NOT_ACTIVE->SLEEP LinTrcv_Init(ConfigPtr) Ausgangsmodus SLEEP NORMAL LINTRCV_TRCV_MODE_NORMAL SLEEP->NORMAL LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_NORMAL) NORMAL->SLEEP LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_SLEEP) STANDBY LINTRCV_TRCV_MODE_STANDBY (可选,视情况仅限内部) NORMAL->STANDBY optional: LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_STANDBY) STANDBY->SLEEP optional: LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_SLEEP) STANDBY->NORMAL LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_NORMAL)

状态图:上电后驱动程序处于非活动状态。LinTrcv_Init 进入初始模式为 SLEEP 的活动区域,LinTrcv_SetOpMode 在各模式之间切换。可选转换是根据图 7.1 的图注文字重构的(解释)。未展示切换至 STANDBY 的条件转换。来源:LinTrcv-SWS 图 7.1 第15页 [SWS_LinTrcv_00168] [SWS_LinTrcv_00001] LinTrcv-SWS 第1页

通过 LIN 接口进行模式切换与查询

各服务均通过类型为 uint8 的参数 LinNetwork 来寻址通道 [SWS_LinTrcv_00002] [SWS_LinTrcv_00005]。在 LinIf 中,对应的参数名为 Channel,类型为 NetworkHandleType LinIf-SWS 第90页。

LinTrcv_SetOpMode 是同步且不可重入的,服务 ID 为 0x01。返回值的含义如下 [SWS_LinTrcv_00002]:

  • E_OK:收发器状态已切换至请求的模式。
  • E_NOT_OK:切换未被接受、已失败,或参数超出允许范围。

即使硬件不支持某种模式,LinIf 也必须允许对所有收发器和所有模式进行调用 LinIf-SWS 第90页。因此,映射到硬件仍属于 LinTrcv 的职责。

驱动程序使用 Tm_BusyWait1us16bit 实现状态切换期间的等待时间 [SWS_LinTrcv_00171]。由于 LinTrcv_SetOpMode 采用同步工作方式 [SWS_LinTrcv_00002],这种主动等待时间很可能会产生在调用内部并延长其执行时间(解释)。 问题 Q-54fe21bbe7c737d9 (未决)在切换至待机模式时,驱动程序还会激活用于唤醒检测的 ICU 通道 LinTrcv-SWS 第17页。

查询服务是可重入的。LinTrcv_GetBusWuReason 以类型 LinTrcv_TrcvWakeupReasonType 返回检测到的唤醒原因 [SWS_LinTrcv_00007]。其取值包括 LINTRCV_WU_ERROR、LINTRCV_WU_NOT_SUPPORTED、LINTRCV_WU_BY_BUS 和 LINTRCV_WU_BY_PIN [SWS_LinTrcv_00170]。具体能以何种精度区分唤醒原因,在很大程度上取决于收发器硬件 LinTrcv-SWS 第28页。LinTrcv_GetVersionInfo 以 Std_VersionInfoType 形式返回版本信息 [SWS_LinTrcv_00008] LinTrcv-SWS 第29页。

通过 LinIf_SetTrcvMode 切换模式Aufrufer oberhalb LinIfLinIfLinTrcvDio / SpiTmIcuLinIf_SetTrcvMode(Channel,TransceiverMode)检查通道(ggf. LINIF_E_NONEXISTENT_CHANNEL)LinTrcv_SetOpMode(LinNetwork, OpMode)Baustein ansteuern (Interpretation:DIO 引脚或 SPI 序列)Tm_BusyWait1us16bit(Wartezeit Zustandswechsel)等待时间已过optOpMode == LINTRCV_TRCV_MODE_STANDBYIcu_EnableNotification(使能用于唤醒的 ICU 通道)E_OK / E_NOT_OK返回值来自LinTrcv_SetOpMode

时序图:模式切换流程从 LinIf 执行至 LinTrcv。LinTrcv 通过 Tm 等待,在切换至 STANDBY 时激活 ICU 通知,并通过 LinIf 原样返回其结果。通过 Dio/Spi 的控制以及调用内等待时间的位置属于解释。来源:[SWS_LinTrcv_00002] [SWS_LinTrcv_00171] LinIf-SWS 第90页 LinTrcv-SWS 第17页

检测、报告与控制唤醒

驱动程序区分两种唤醒类型 LinTrcv-SWS 第17页:

  • 内部唤醒:由上层触发,例如通过 LinTrcv_Init 或 LinTrcv_SetOpMode。
  • 外部唤醒:驱动程序在 LIN 通道上检测到该唤醒。LinIf 必须调用 LinTrcv_CheckWakeup,以便将唤醒向上传报。

驱动程序没有为唤醒提供专用的 ISR。检测通过带有 Icu_EnableNotification 和 Icu_DisableNotification 的 ICU 进行。唤醒类型通过配置参数 LinTrcvWakeUpSupport 选择。使用 LinTrcvWakeupByBusUsed 可以按通道启用和禁用唤醒支持 LinTrcv-SWS 第17页。

LinTrcv_CheckWakeup 评估被寻址网络上的唤醒,例如显性总线电平或唤醒引脚上的下降沿 LinTrcv-SWS 第30页。在 R20-11 中,返回值的含义为 [SWS_LinTrcv_00012]:

  • E_OK:检测到唤醒。
  • E_NOT_OK:未检测到唤醒。

来自后续版本中的文档位置对这些值的定义有所不同,定义为“调用已接受/未接受”。该变更引入自 R22-11,不适用于 R20-11 LinTrcv-SWS 第1页 LinTrcv-SWS 第30页。在成功检测后,驱动程序通过 LinIf_WakeupConfirmation 报告唤醒源 [SWS_LinTrcv_91002]。LinTrcv 不提供自身的回调通知 LinTrcv-SWS 第32页。因此必须主动调用 LinTrcv_CheckWakeup。

LinTrcv_SetWakeupMode 是同步且不可重入的。它通过 LinTrcv_TrcvWakeupModeType 控制各网络的唤醒通知 [SWS_LinTrcv_00009] [SWS_LinTrcv_00169]:

  • LINTRCV_WUMODE_ENABLE 启用通知。
  • LINTRCV_WUMODE_DISABLE 禁用通知。
  • LINTRCV_WUMODE_CLEAR 清除已存储的唤醒事件。

如果在启用时已存在已存储的事件,驱动程序将在调用期间或紧随其后执行通知 LinTrcv-SWS 第31页。LinIf 将该控制作为 LinIf_SetTrcvWakeupMode 提供 LinIf-SWS 第93页。

外部唤醒(依据 R20-11 的返回值)LIN-Bus / TransceiverIcuLinTrcvLinIfUse Case: VorbereitungIcu_EnableNotification(切换至 STANDBY 时)Use Case: Wakeup-EreignisWakeup-Ereignis (dominanter Buspegel或唤醒引脚上的边沿)从 ICU 通知到由 LinIf 调用的路径由 LinIf 执行,位于 LinTrcv 之外(有效负载中未描述)LinTrcv_CheckWakeup(LinNetwork)在如下对象上唤醒:adressierten Netz auswertenaltWakeup erkanntLinIf_WakeupConfirmation(WakeupSource)设置通道的唤醒标志E_OKkein Wakeup erkanntE_NOT_OKUse Case: 查询唤醒原因(通过 LinIf_GetTrcvWakeupReason)LinTrcv_GetBusWuReason(LinNetwork, Reason)E_OK, Reason z. B.LINTRCV_WU_BY_BUS

时序图:外部唤醒通过 ICU 被检测到。LinIf 使用 LinTrcv_CheckWakeup 对其进行检查,LinTrcv 通过 LinIf_WakeupConfirmation 予以确认,随后可查询原因(返回值遵循 R20-11)。来源:[SWS_LinTrcv_00012] [SWS_LinTrcv_91002] [SWS_LinTrcv_00007] LinTrcv-SWS 第17页 LinIf-SWS 第98页

SetWakeupMode Start LinTrcv_SetWakeupMode(LINNetwork, TrcvWakupMode) Modus TrcvWakupMode? Start->Modus Gespeichert Wakeup-Ereignis gespeichert? Modus->Gespeichert LINTRCV_WUMODE_ENABLE Gesperrt 已禁止针对唤醒事件的 通知 Modus->Gesperrt LINTRCV_WUMODE_DISABLE Geloescht 已清除保存的 唤醒事件 Modus->Geloescht LINTRCV_WUMODE_CLEAR Sofort 调用中通知 或紧随其后通知 Gespeichert->Sofort 是 Frei 已使能针对唤醒事件的 通知 Gespeichert->Frei 不 Ende 返回 E_OK (若模式未设置则为 E_NOT_OK) Sofort->Ende Frei->Ende Gesperrt->Ende Geloescht->Ende

活动图:LinTrcv_SetWakeupMode 根据请求的模式进行分支。仅当在 ENABLE 且存在已存储事件的情况下,才会立即进行通知。来源:[SWS_LinTrcv_00009] [SWS_LinTrcv_00169] LinTrcv-SWS 第31页

硬件访问、通道配置与分区

选择容器 LinTrcvAccess 确定驱动程序如何访问器件 LinTrcv-SWS 图 10.3 第45页。必须在两种变体中严格选择一种:

  • LinTrcvDioAccess:收发器引脚映射到 DIO 通道。
  • LinTrcvSpiSequence:支持 SPI 的器件通过 SPI 序列进行寻址。

该图表源自 R23-11 及更高版本。但 DIO 读写服务以及 SPI 类型在 R20-11 中就已作为所使用的接口或导入的类型列出 [SWS_LinTrcv_91003] [SWS_LinTrcv_91001]。

对于多核系统,在 R20-11 中适用以下规则:

  • 驱动程序必须拒绝具有不受支持的分区分配的配置 [SWS_LinTrcv_00174]。
  • 通过 LinTrcvChannelEcucPartitionRef 引用的分区必须是通过 LinTrcvEcucPartitionRef 引用的分区的子集。若模块引用了分区,则每个通道必须恰好引用其中一个分区 [SWS_LinTrcv_00176]。
  • 同一通信通道的 LinTrcvChannel 和 LinChannel 必须引用相同的分区 [SWS_LinTrcv_00177]。

多核分布引入自 R19-11,并在 R24-11 中得到了进一步细化 LinTrcv-SWS 第1页。

发生错误时的行为

运行时错误体现在返回值中:

驱动程序通过 Det_ReportError 报告开发错误 [SWS_LinTrcv_91003]。在 R20-11 中,它们在 LinTrcv_GetOpMode 和 LinTrcv_GetBusWuReason 时导致 E_NOT_OK [SWS_LinTrcv_00005] [SWS_LinTrcv_00007]。来自后续版本的文档位置给出了具体的检查项 LinTrcv-SWS 第26页 LinTrcv-SWS 第30页 LinTrcv-SWS 第29页:

  • 初始化前调用:LINTRCV_E_UNINIT
  • 无效网络编号:LINTRCV_E_INVALID_LIN_NETWORK
  • LinTrcv_GetVersionInfo 处的空指针:LINTRCV_E_PARAM_POINTER

从内容上看,这些检查应该也适用于 R20-11(解释)。 问题 Q-58e3d310b525b810 (未决)然而,R20-11 清理了错误分类,而 R21-11 清理了错误代码。因此,这些标识符在 R20-11 中可能会有所不同 LinTrcv-SWS 第1页。

LinIf 已经拦截了部分误操作。在 Channel 无效时,LinIf_SetTrcvMode 和 LinIf_GetTrcvMode 报告错误 LINIF_E_NONEXISTENT_CHANNEL LinIf-SWS 第90页。在通道无效或存在空指针时,LinIf_GetTrcvMode 还会返回 E_NOT_OK LinIf-SWS 第91页。如果 LinIf_WakeupConfirmation 收到无效的唤醒源,则在错误检测已激活时触发 LINIF_E_PARAM_WAKEUPSOURCE LinIf-SWS 第98页。

进一步详细证据

AI 生成的指南。基于 R20-11 的规范性需求及所分配的文档位置,部分源自 R23-11 至 R25-11。各版本之间的差异已在正文中注明。仅规范本身具有约束力。

LIN Transceiver Driver (LinTrcv)

Controls physical bus transceiver states and wakeup on LIN lines.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

函数 LinTrcv_Init [SWS_LinTrcv_00001] 📄 PDF

void LinTrcv_Init (const LinTrcv_ConfigType* ConfigPtr);

Initializes the Lin Transceiver Driver module.

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

函数 LinTrcv_Init 用于根据 [SWS_LinTrcv_00001] 中的规范对 LIN 收发器驱动模块进行基本初始化。该接口通过头文件 LinTrcv.h 声明,具有数值服务 ID 0x00 [SWS_LinTrcv_00001]。

用法与参数

对 LinTrcv_Init 的调用以同步方式执行,且没有返回值(void)[SWS_LinTrcv_00001]。作为唯一的传入参数,传递类型为 const LinTrcv_ConfigType* 的输入指针 ConfigPtr,该指针指向所选的 LIN 收发器配置数据集 [SWS_LinTrcv_00001]。此例程不存在诸如输入/输出或纯输出参数等其他参数 [SWS_LinTrcv_00001]。

并发性与限制

关于并发行为,LinTrcv_Init被强制归类为不可重入(Non Reentrant)[SWS_LinTrcv_00001]。因此,系统中必须杜绝对此函数的并发或中断性调用。此外,在初始化期间不得发生竞争访问。解释:初始化函数的执行通常应集中在系统启动阶段进行,尚在调用 LIN 收发器驱动程序的其他服务之前。 问题 Q-9845a0c76e3146fa (未决)

本文字由人工智能生成;所有内容均基于 AUTOSAR 标准的要求。

实现者指南即将推出(复杂度 I1)

函数 LinTrcv_SetOpMode [SWS_LinTrcv_00002] 📄 PDF

Std_ReturnType LinTrcv_SetOpMode (uint8 LinNetwork, LinTrcv_TrcvModeType OpMode);

The internal state of the LIN transceiver driver is switched to mode given in the parameter Op Mode.

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

函数 LinTrcv_SetOpMode 用于根据 [SWS_LinTrcv_00002] 将 LIN 收发器驱动程序的内部状态切换到传入的工作模式。

用法与语义

  • 调用上下文和参数:该调用通过参数 LinNetwork 寻址相应的 LIN 网络,而 OpMode(类型 LinTrcv_TrcvModeType)指定目标工作模式([SWS_LinTrcv_00002])。该接口可通过 LinTrcv.h 获取。
  • 返回值:一旦收发器的状态成功切换到请求的模式,该函数便返回 E_OK。如果状态切换失败、未被接受或参数超出允许范围,则返回 E_NOT_OK ([SWS_LinTrcv_00002])。
  • 同步执行:该服务在服务 ID 0x01 下同步工作(Sync/Async: Synchronous)([SWS_LinTrcv_00002])。

并发性与限制

该接口被指定为不可重入的(Non Reentrant)([SWS_LinTrcv_00002])。因此调用者必须确保避免对同一模块或网络进行并发调用。

此文本由 AI 生成。它不能替代对相应 AUTOSAR 规范的研究。

实现者指南即将推出(复杂度 I1)

函数 LinTrcv_GetBusWuReason [SWS_LinTrcv_00007] 📄 PDF

Std_ReturnType LinTrcv_GetBusWuReason (uint8 LinNetwork, LinTrcv_TrcvWakeupReasonType* Reason);

This API provides the reason for the wakeup that the LIN transceiver has detected in the parameter "Reason". The ability to dete ct and differentiate the possible wakeup reasons depends strongly on the LIN transceiver hardware.

函数 LinTrcv_CheckWakeup [SWS_LinTrcv_00012] 📄 PDF

Std_ReturnType LinTrcv_CheckWakeup (uint8 LinNetwork);

Service LinTrcv_CheckWakeup.

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

同步函数 LinTrcv_CheckWakeup 用于检查寻址的 LIN 网络上是否检测到唤醒事件 [SWS_LinTrcv_00012]。它直接向调用方通报相应唤醒条件的存在 [SWS_LinTrcv_00012]。

调用与参数

该函数具有服务 ID 0x07,并通过头文件 LinTrcv.h 提供 [SWS_LinTrcv_00012]:

  • LinNetwork(输入参数,uint8):指定应用 API 调用的 LIN 网络 [SWS_LinTrcv_00012]。

返回值

类型为 Std_ReturnType 的返回值指示唤醒检查的结果 [SWS_LinTrcv_00012]:

并发性

LinTrcv_CheckWakeup 的执行完全同步,并被指定为可重入 [SWS_LinTrcv_00012]。同步执行过程确保在函数返回时立即可获得结果。

本使用说明由人工智能根据 AUTOSAR CP R20-11 中 LIN Transceiver Driver 的规范生成。

函数 LinTrcv_SetWakeupMode [SWS_LinTrcv_00009] 📄 PDF

Std_ReturnType LinTrcv_SetWakeupMode (uint8 LINNetwork, LinTrcv_TrcvWakeupModeType TrcvWakupMode);

This API enables, disables and clears the notification for wakeup events on the addressed network. A vailable via Lin Trcv.h

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

同步函数 LinTrcv_SetWakeupMode 用于启用、禁用和清除寻址 LIN 网络上的唤醒事件通知 [SWS_LinTrcv_00009]。它通过头文件 LinTrcv.h 声明,并具有服务 ID 0x05 [SWS_LinTrcv_00009]。

参数与返回值

该函数需要两个输入参数 [SWS_LinTrcv_00009]:

  • LINNetwork(uint8):指定应用该 API 的具体 LIN 网络 [SWS_LinTrcv_00009]。
  • TrcvWakupMode(LinTrcv_TrcvWakeupModeType):传递收发器请求的唤醒模式或原因 [SWS_LinTrcv_00009]。

返回值提供类型为 Std_ReturnType 的状态 [SWS_LinTrcv_00009]:

  • E_OK:表示收发器的状态已成功转换为请求的模式 [SWS_LinTrcv_00009]。
  • E_NOT_OK:指示调用由于开发错误而失败,或者无法设置所需的唤醒模式 [SWS_LinTrcv_00009]。

并发性与限制

该接口被指定为不可重入(non Reentrant),并同步执行状态更改 [SWS_LinTrcv_00009]。因此,调用组件必须确保不对同一接口发生并发调用。

本使用说明由 AI 基于 AUTOSAR Classic R20-11 规范生成。

实现者指南即将推出(复杂度 I1)

类型 LinTrcv_ConfigType [SWS_LinTrcv_00172] 📄 PDF

Configuration data structure of the Lin Trcv module. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_LINTransceiverDriver

类型 LinTrcv_TrcvModeType [SWS_LinTrcv_00168] 📄 PDF

Operating modes of the LIN Transceiver Driver

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

枚举类型 LinTrcv_TrcvModeType 根据 [SWS_LinTrcv_00168] 为 LIN 收发器驱动程序定义工作模式。该类型定义存放在头文件 Lin_GeneralTypes.h 中,从而可供上层软件层使用 [SWS_LinTrcv_00168]。

取值范围包含收发器的三种标准化状态 [SWS_LinTrcv_00168]:

  • LINTRCV_TRCV_MODE_NORMAL:表示 LIN 收发器的常规工作模式(Transceiver mode NORMAL)[SWS_LinTrcv_00168]。
  • LINTRCV_TRCV_MODE_STANDBY:表示收发器的待机模式(Transceiver mode STANDBY)[SWS_LinTrcv_00168]。
  • LINTRCV_TRCV_MODE_SLEEP:描述 LIN 收发器的睡眠模式(Transceiver mode SLEEP)[SWS_LinTrcv_00168]。

在用法和功能协作方面,该枚举类型用于对收发器状态进行统一建模 [SWS_LinTrcv_00168]。推测该类型将在驱动程序函数中用作参数或返回值,以请求或查询正常运行、就绪和省电睡眠状态之间的定向状态转换。 问题 Q-8966f1299f224eff (未决)具体的调用上下文、错误码以及并发和重入特性并不依附于该数据类型本身,而是取决于收发器驱动程序的相应 API [SWS_LinTrcv_00168]。

本文由 AI 生成,用于技术指导。

实现者指南即将推出(复杂度 I1)

类型 LinTrcv_TrcvWakeupModeType [SWS_LinTrcv_00169] 📄 PDF

Wake up operating modes of the LIN Transceiver Driver.

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

使用与取值范围

类型 LinTrcv_TrcvWakeupModeType 是一个枚举,用于定义 LIN 收发器驱动程序的唤醒事件工作模式 [SWS_LinTrcv_00169]。它通过头文件 Lin_GeneralTypes.h 提供 [SWS_LinTrcv_00169]。

该枚举包含以下用于控制寻址网络的值 [SWS_LinTrcv_00169]:

错误处理与边界条件

规范中未针对该类型本身定义特定的错误码、返回值或 DET/DEM 错误消息 [SWS_LinTrcv_00169]。作为数据类型,它不受直接的重入或执行限制。

相互作用

解释:该类型在 LIN 收发器驱动程序的 API 函数中可能用作传递参数,以针对特定网络开启或关闭唤醒检测,或重置唤醒状态 [SWS_LinTrcv_00169]。 问题 Q-cfb3e28d7baefc72 (未决)

本文字由人工智能生成。它完全基于来自 SWS_LinTrcv_00169 的规范数据。

实现者指南即将推出(复杂度 I1)

类型 LinTrcv_TrcvWakeupReasonType [SWS_LinTrcv_00170] 📄 PDF

This type denotes the wake up reason detected by the LIN transceiver in detail.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_LinTrcv
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_LinTrcv@rel:R20-11#8a7f0e2d
Content hash
8a7f0e2d
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINTransceiverDriver.pdf#nameddest=SWS_LinTrcv_00001

初始化与状态

This service provides the version information of this module through the parameter "versioninfo".

void LinTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);

Initializes the Lin Transceiver Driver module.

void LinTrcv_Init (const LinTrcv_ConfigType* ConfigPtr);

服务

Service LinTrcv_CheckWakeup.

Std_ReturnType LinTrcv_CheckWakeup (uint8 LinNetwork);

This API provides the reason for the wakeup that the LIN transceiver has detected in the parameter "Reason". The ability to dete ct and differentiate the possible wakeup reasons depends strongly on the LIN transceiver hardware.

Std_ReturnType LinTrcv_GetBusWuReason (uint8 LinNetwork, LinTrcv_TrcvWakeupReasonType* Reason);

API detects the actual software state of LIN transceiver driv er.

Std_ReturnType LinTrcv_GetOpMode (uint8 LinNetwork, LinTrcv_TrcvModeType* OpMode);

The internal state of the LIN transceiver driver is switched to mode given in the parameter Op Mode.

Std_ReturnType LinTrcv_SetOpMode (uint8 LinNetwork, LinTrcv_TrcvModeType OpMode);

This API enables, disables and clears the notification for wakeup events on the addressed network. A vailable via Lin Trcv.h

Std_ReturnType LinTrcv_SetWakeupMode (uint8 LINNetwork, LinTrcv_TrcvWakeupModeType TrcvWakupMode);

类型

Configuration data structure of the Lin Trcv module. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_LINTransceiverDriver

Operating modes of the LIN Transceiver Driver

Wake up operating modes of the LIN Transceiver Driver.

This type denotes the wake up reason detected by the LIN transceiver in detail.