DEENESPTFRRUARHIKOZHNL

LIN Transceiver Driver (LinTrcv)

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

Module guideAI-GENERATED

Controls LIN transceiver devices: sets and queries operating modes, detects wakeups, and reports them to the LIN interface.
AI-GENERATED unreviewed Model: claude-opus-5-5 · Effort: high · Temperature: not controllable · Prompt: 4cf0c894f837 Provenance Open questions (4)
Causal anchor: R20-11 Valid from R20-11 Synthesized for this specification release.
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Controls LIN transceiver devices: sets and queries operating modes, detects wakeups, and reports them to the LIN interface.

The LIN Transceiver Driver controls the physical LIN transceiver of a channel and decouples LinIf from the hardware. According to LinTrcv_Init, the initial mode is SLEEP. LinTrcv_SetOpMode switches between NORMAL, STANDBY, and SLEEP, and returns E_NOT_OK if the switch fails [SWS_LinTrcv_00002]. External wakeups are detected via the ICU and reported when LinIf invokes LinTrcv_CheckWakeup. In R20-11, E_OK means "wakeup detected" [SWS_LinTrcv_00012]. Wait times for state transitions must be implemented using Tm_BusyWait1us16bit.

The LIN Transceiver Driver controls the physical LIN transceiver of a channel and decouples the LIN interface from the hardware. LinIf calls its services directly: for example, LinIf_SetTrcvMode invokes LinTrcv_SetOpMode and returns its result unchanged [SWS_LinTrcv_00002] LinIf-SWS p. 90. Software and hardware states are separated. The implementation decides which hardware states are covered by a software mode LinTrcv-SWS p. 16.

The driver recognizes the modes LINTRCV_TRCV_MODE_NORMAL, LINTRCV_TRCV_MODE_STANDBY, and LINTRCV_TRCV_MODE_SLEEP [SWS_LinTrcv_00168]. It is inactive after power-on. LinTrcv_Init activates it with a configuration set [SWS_LinTrcv_00001]; the initial mode is SLEEP LinTrcv-SWS p. 1. STANDBY is optional and can be a purely internal state LinTrcv-SWS Fig. 7.1 p. 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 (optional, possibly internal only) 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)

State diagram: Lifecycle from power-on via LinTrcv_Init to the mode switches with LinTrcv_SetOpMode. The optional transitions are reconstructed (interpretation). Sources: LinTrcv-SWS Fig. 7.1 p. 15 [SWS_LinTrcv_00168]

The driver does not detect external wakeups via its own ISR, but via the ICU LinTrcv-SWS p. 17. LinIf queries them using LinTrcv_CheckWakeup. In R20-11, E_OK means "wakeup detected" [SWS_LinTrcv_00012]. Later releases define this differently. A detected wakeup is reported via LinIf_WakeupConfirmation [SWS_LinTrcv_91002]. LinTrcv_SetWakeupMode enables or disables notification, or clears stored events [SWS_LinTrcv_00169].

External wakeup (return values according to R20-11)LIN-Bus / TransceiverIcuLinTrcvLinIfUse Case: VorbereitungIcu_EnableNotification(When switching to STANDBY)Use Case: Wakeup-EreignisWakeup-Ereignis (dominanter BuspegelOr edge on wakeup pin)The path from ICU notification to callBy LinIf is outside LinTrcv(Not described in payload)LinTrcv_CheckWakeup(LinNetwork)Wakeup onadressierten Netz auswertenaltWakeup erkanntLinIf_WakeupConfirmation(WakeupSource)Set channel wakeup flagE_OKkein Wakeup erkanntE_NOT_OKUse Case: Query wakeup reason (via LinIf_GetTrcvWakeupReason)LinTrcv_GetBusWuReason(LinNetwork, Reason)E_OK, Reason z. B.LINTRCV_WU_BY_BUS

Sequence diagram: External wakeup from ICU detection via LinTrcv_CheckWakeup and LinIf_WakeupConfirmation to querying the reason. Sources: [SWS_LinTrcv_00012] [SWS_LinTrcv_91002] LinTrcv-SWS p. 17

The following boundary conditions apply to operation:

  • Wait times during state transitions must be implemented using Tm_BusyWait1us16bit [SWS_LinTrcv_00171].
  • On multi-core systems, LinTrcvChannel and LinChannel of a channel must reference the same partition [SWS_LinTrcv_00177].
  • In the event of faulty communication to the transceiver, the queries return E_NOT_OK LinTrcv-SWS p. 26.

The DET error codes are documented only from later releases. Because R21-11 cleaned up the error codes, their names may differ in R20-11 LinTrcv-SWS p. 1.

Role between LIN Interface and Transceiver Device

The LIN Transceiver Driver (LinTrcv) encapsulates the control of the physical LIN transceiver. Its interface consists of seven services:

All services are synchronous. The software states of the driver are separated from the hardware states of the device. The device may support more transitions than the driver. The implementation decides which hardware states are covered by a software state. However, it must fully provide the described functionality LinTrcv-SWS p. 16.

Upwards, the LIN interface (LinIf) is the user substantiated in the payload. The LinIf services each invoke a LinTrcv service:

  • LinIf_SetTrcvMode invokes LinTrcv_SetOpMode and returns its return value unchanged LinIf-SWS p. 90.
  • LinIf_GetTrcvMode invokes LinTrcv_GetOpMode LinIf-SWS p. 91.
  • LinIf_GetTrcvWakeupReason invokes LinTrcv_GetBusWuReason LinIf-SWS p. 92.
  • LinIf_SetTrcvWakeupMode invokes LinTrcv_SetWakeupMode LinIf-SWS p. 93.

The types LinTrcv_TrcvModeType and LinTrcv_TrcvWakeupModeType are available via Lin_GeneralTypes.h [SWS_LinTrcv_00168] [SWS_LinTrcv_00169]. LinIf uses them directly in its signatures. The former dedicated type LinIf_TrcvModeType was replaced by LinTrcv_TrcvModeType in version 3.1.5 LinIf-SWS p. 4.

Downwards, the driver uses the following services:

The driver reports detected wakeups to LinIf via LinIf_WakeupConfirmation [SWS_LinTrcv_91002]. LinIf then sets the wakeup flag of the affected channel LinIf-SWS p. 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

Context diagram: LinTrcv is located between LinIf and the hardware-oriented services Dio/Spi, Icu, and Tm, and reports wakeups back to LinIf. Sources: [SWS_LinTrcv_91001] [SWS_LinTrcv_91002] [SWS_LinTrcv_91003] [SWS_LinTrcv_00171] LinTrcv-SWS p. 17 LinTrcv-SWS Fig. 10.3 p. 45

Lifecycle of Operating Modes from Power-On to Sleep

The driver recognizes three software operating modes: LINTRCV_TRCV_MODE_NORMAL, LINTRCV_TRCV_MODE_STANDBY, and LINTRCV_TRCV_MODE_SLEEP [SWS_LinTrcv_00168]. Figure 7.1 of the specification places them into a lifecycle LinTrcv-SWS Fig. 7.1 p. 15:

  • After power-on, the driver is in the state NOT_ACTIVE.
  • LinTrcv_Init transitions it to the state ACTIVE. The three modes lie within ACTIVE.
  • A loss of power terminates the lifecycle.

LinTrcv_Init receives a pointer to the selected configuration set [SWS_LinTrcv_00001]. The structure LinTrcv_ConfigType is implementation-specific [SWS_LinTrcv_00172]. Since version 4.3.1, the initial mode after initialization is restricted to LINTRCV_TRCV_MODE_SLEEP LinTrcv-SWS p. 1.

In state ACTIVE, LinTrcv_SetOpMode switches the internal state of the addressed channel to the passed mode [SWS_LinTrcv_00002] LinTrcv-SWS p. 25. Mode LINTRCV_TRCV_MODE_STANDBY is optional. It can be a purely internal state used by the hardware for transitions. Specific hardware may not require all interfaces LinTrcv-SWS Fig. 7.1 p. 15. The specification also states conditions under which LinTrcv_SetOpMode switches the channel to STANDBY. These conditions are cut off in the present excerpt and are not detailed here LinTrcv-SWS p. 25.

LinTrcv_GetOpMode provides the current software state of the driver in the output parameter OpMode [SWS_LinTrcv_00005] LinTrcv-SWS p. 26. This is not necessarily the state of the device. A caller can use this prior to a mode switch to check which mode the channel is in. Via LinIf, this query is available as LinIf_GetTrcvMode LinIf-SWS p. 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 (optional, possibly internal only) 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)

State diagram: After power-on, the driver is inactive. LinTrcv_Init leads to the active area with SLEEP as the initial mode; LinTrcv_SetOpMode switches between the modes. The optional transitions are reconstructed from the captions of Fig. 7.1 (interpretation). Conditional switches to STANDBY are not shown. Sources: LinTrcv-SWS Fig. 7.1 p. 15 [SWS_LinTrcv_00168] [SWS_LinTrcv_00001] LinTrcv-SWS p. 1

Mode Switches and Queries via the LIN Interface

Each service addresses a channel via the parameter LinNetwork of type uint8 [SWS_LinTrcv_00002] [SWS_LinTrcv_00005]. In LinIf, the corresponding parameter is named Channel and has the type NetworkHandleType LinIf-SWS p. 90.

LinTrcv_SetOpMode is synchronous and non-reentrant; the service ID is 0x01. The return values indicate [SWS_LinTrcv_00002]:

  • E_OK: The transceiver state has switched to the requested mode.
  • E_NOT_OK: The switch was not accepted, failed, or the parameter is outside the permissible range.

LinIf must permit the call for all transceivers and all modes, even if the hardware does not support a mode LinIf-SWS p. 90. Mapping to the hardware therefore remains the responsibility of LinTrcv.

The driver implements wait times during state transitions using Tm_BusyWait1us16bit [SWS_LinTrcv_00171]. Because LinTrcv_SetOpMode operates synchronously [SWS_LinTrcv_00002], this active wait time likely occurs within the call and extends its execution time (interpretation). Question Q-54fe21bbe7c737d9 (open) When switching to standby mode, the driver also activates the ICU channels for wakeup detection LinTrcv-SWS p. 17.

The query services are reentrant. LinTrcv_GetBusWuReason returns the detected wakeup reason in type LinTrcv_TrcvWakeupReasonType [SWS_LinTrcv_00007]. Its values include LINTRCV_WU_ERROR, LINTRCV_WU_NOT_SUPPORTED, LINTRCV_WU_BY_BUS, and LINTRCV_WU_BY_PIN [SWS_LinTrcv_00170]. Exactly how wakeup reasons can be distinguished depends heavily on the transceiver hardware LinTrcv-SWS p. 28. LinTrcv_GetVersionInfo returns the version information as Std_VersionInfoType [SWS_LinTrcv_00008] LinTrcv-SWS p. 29.

Mode change via LinIf_SetTrcvModeAufrufer oberhalb LinIfLinIfLinTrcvDio / SpiTmIcuLinIf_SetTrcvMode(Channel,TransceiverMode)Check channel(ggf. LINIF_E_NONEXISTENT_CHANNEL)LinTrcv_SetOpMode(LinNetwork, OpMode)Baustein ansteuern (Interpretation:DIO pins or SPI sequence)Tm_BusyWait1us16bit(Wartezeit Zustandswechsel)Waiting time expiredoptOpMode == LINTRCV_TRCV_MODE_STANDBYIcu_EnableNotification(Enable ICU channels for wakeup)E_OK / E_NOT_OKReturn value ofLinTrcv_SetOpMode

Sequence diagram: A mode switch runs from LinIf to LinTrcv. LinTrcv waits via Tm, activates the ICU notification when switching to STANDBY, and returns its result unchanged via LinIf. Control via Dio/Spi and the placement of the wait time within the call are interpretations. Sources: [SWS_LinTrcv_00002] [SWS_LinTrcv_00171] LinIf-SWS p. 90 LinTrcv-SWS p. 17

Detecting, Reporting, and Controlling Wakeups

The driver distinguishes two types of wakeups LinTrcv-SWS p. 17:

  • Internal wakeup: An upper layer triggers it, for example via LinTrcv_Init or LinTrcv_SetOpMode.
  • External wakeup: The driver detects it on the LIN channel. LinIf must call LinTrcv_CheckWakeup so that the wakeup is reported upwards.

The driver does not provide a dedicated ISR for wakeup. Detection takes place via the ICU using Icu_EnableNotification and Icu_DisableNotification. The wakeup type is selected via the configuration parameter LinTrcvWakeUpSupport. Wakeup support can be enabled and disabled per channel using LinTrcvWakeupByBusUsed LinTrcv-SWS p. 17.

LinTrcv_CheckWakeup evaluates the wakeup on the addressed network, such as a dominant bus level or a falling edge on the wakeup pin LinTrcv-SWS p. 30. In R20-11, the return values indicate [SWS_LinTrcv_00012]:

  • E_OK: A wakeup was detected.
  • E_NOT_OK: No wakeup was detected.

The document passage from later releases defines the values differently, as "call accepted/not accepted". This change was introduced with R22-11 and does not apply to R20-11 LinTrcv-SWS p. 1 LinTrcv-SWS p. 30. After successful detection, the driver reports the wakeup source via LinIf_WakeupConfirmation [SWS_LinTrcv_91002]. LinTrcv does not offer its own callback notifications LinTrcv-SWS p. 32. Therefore, LinTrcv_CheckWakeup must be actively called.

LinTrcv_SetWakeupMode is synchronous and non-reentrant. It controls wakeup notification per network via LinTrcv_TrcvWakeupModeType [SWS_LinTrcv_00009] [SWS_LinTrcv_00169]:

  • LINTRCV_WUMODE_ENABLE enables the notification.
  • LINTRCV_WUMODE_DISABLE disables it.
  • LINTRCV_WUMODE_CLEAR clears a stored wakeup event.

If a stored event is already present when enabling, the driver executes the notification during the call or immediately thereafter LinTrcv-SWS p. 31. LinIf provides this control as LinIf_SetTrcvWakeupMode LinIf-SWS p. 93.

External wakeup (return values according to R20-11)LIN-Bus / TransceiverIcuLinTrcvLinIfUse Case: VorbereitungIcu_EnableNotification(When switching to STANDBY)Use Case: Wakeup-EreignisWakeup-Ereignis (dominanter BuspegelOr edge on wakeup pin)The path from ICU notification to callBy LinIf is outside LinTrcv(Not described in payload)LinTrcv_CheckWakeup(LinNetwork)Wakeup onadressierten Netz auswertenaltWakeup erkanntLinIf_WakeupConfirmation(WakeupSource)Set channel wakeup flagE_OKkein Wakeup erkanntE_NOT_OKUse Case: Query wakeup reason (via LinIf_GetTrcvWakeupReason)LinTrcv_GetBusWuReason(LinNetwork, Reason)E_OK, Reason z. B.LINTRCV_WU_BY_BUS

Sequence diagram: An external wakeup is detected via the ICU. LinIf checks it with LinTrcv_CheckWakeup, LinTrcv confirms it via LinIf_WakeupConfirmation, and the reason can be queried afterwards (return values according to R20-11). Sources: [SWS_LinTrcv_00012] [SWS_LinTrcv_91002] [SWS_LinTrcv_00007] LinTrcv-SWS p. 17 LinIf-SWS p. 98

SetWakeupMode Start LinTrcv_SetWakeupMode(LINNetwork, TrcvWakupMode) Modus TrcvWakupMode? Start->Modus Gespeichert Wakeup-Ereignis gespeichert? Modus->Gespeichert LINTRCV_WUMODE_ENABLE Gesperrt Notification disabled for wakeup events Modus->Gesperrt LINTRCV_WUMODE_DISABLE Geloescht Stored wakeup event cleared Modus->Geloescht LINTRCV_WUMODE_CLEAR Sofort Notification within call or immediately after Gespeichert->Sofort yes Frei Notification enabled for wakeup events Gespeichert->Frei no Ende Return E_OK (E_NOT_OK if mode not set) Sofort->Ende Frei->Ende Gesperrt->Ende Geloescht->Ende

Activity diagram: LinTrcv_SetWakeupMode branches according to the requested mode. A notification follows immediately only for ENABLE with a stored event. Sources: [SWS_LinTrcv_00009] [SWS_LinTrcv_00169] LinTrcv-SWS p. 31

Hardware Access, Channel Configuration, and Partitioning

How the driver accesses the device is specified by the choice container LinTrcvAccess LinTrcv-SWS Fig. 10.3 p. 45. Exactly one of two variants must be selected:

  • LinTrcvDioAccess: The transceiver pins are mapped to DIO channels.
  • LinTrcvSpiSequence: An SPI-capable device is addressed via an SPI sequence.

The diagram originates from R23-11 and later releases. However, the DIO read and write services as well as the SPI types are already listed in R20-11 as used interfaces and imported types, respectively [SWS_LinTrcv_91003] [SWS_LinTrcv_91001].

The following rules apply to multi-core systems in R20-11:

  • The driver must reject configurations with unsupported partition assignments [SWS_LinTrcv_00174].
  • The partitions referenced via LinTrcvChannelEcucPartitionRef must be a subset of those referenced via LinTrcvEcucPartitionRef. If the module references partitions, each channel must reference exactly one of them [SWS_LinTrcv_00176].
  • LinTrcvChannel and LinChannel of the same communication channel must reference the same partition [SWS_LinTrcv_00177].

Multi-core distribution was added with R19-11 and clarified in R24-11 LinTrcv-SWS p. 1.

Behavior in the event of an error

Runtime errors are reflected in the return value:

  • In the case of missing or faulty communication to the transceiver, LinTrcv_GetOpMode LinTrcv-SWS p. 26 and LinTrcv_GetBusWuReason LinTrcv-SWS p. 28 return E_NOT_OK.
  • LinTrcv_SetOpMode returns E_NOT_OK if a switch was not accepted or failed [SWS_LinTrcv_00002].
  • LinTrcv_SetWakeupMode returns E_NOT_OK if the wakeup mode could not be set LinTrcv-SWS p. 31.
  • If a wakeup reason cannot be determined due to an error, the value LINTRCV_WU_ERROR is available for this purpose [SWS_LinTrcv_00170].

The driver reports development errors via Det_ReportError [SWS_LinTrcv_91003]. In R20-11, they result in E_NOT_OK for LinTrcv_GetOpMode and LinTrcv_GetBusWuReason [SWS_LinTrcv_00005] [SWS_LinTrcv_00007]. The document passages from later releases specify concrete checks LinTrcv-SWS p. 26 LinTrcv-SWS p. 30 LinTrcv-SWS p. 29:

  • Call prior to initialization: LINTRCV_E_UNINIT
  • invalid network number: LINTRCV_E_INVALID_LIN_NETWORK
  • Null pointer for LinTrcv_GetVersionInfo: LINTRCV_E_PARAM_POINTER

In terms of content, these checks likely also apply to R20-11 (interpretation). Question Q-58e3d310b525b810 (open) However, R20-11 cleaned up the error classification and R21-11 the error codes. Therefore, the identifiers may differ in R20-11 LinTrcv-SWS p. 1.

Part of the incorrect operations is already caught by LinIf. If Channel is invalid, LinIf_SetTrcvMode and LinIf_GetTrcvMode report the error LINIF_E_NONEXISTENT_CHANNEL LinIf-SWS p. 90. In addition, LinIf_GetTrcvMode returns E_NOT_OK LinIf-SWS p. 91 in case of an invalid channel or null pointer. If LinIf_WakeupConfirmation receives an invalid wakeup source, it triggers LINIF_E_PARAM_WAKEUPSOURCE if error detection is activated LinIf-SWS p. 98.

Further detailed evidence

AI-generated guide. Based on the normative requirements for R20-11 and associated document sections, partly from R23-11 to R25-11. Differences between the releases are stated in the text. Only the specification is binding.

LIN Transceiver Driver (LinTrcv)

Controls physical bus transceiver states and wakeup on LIN lines.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

function LinTrcv_Init [SWS_LinTrcv_00001] 📄 PDF

void LinTrcv_Init (const LinTrcv_ConfigType* ConfigPtr);

Initializes the Lin Transceiver Driver module.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: a6b1d693304d Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function LinTrcv_Init serves for the basic initialization of the LIN transceiver driver module according to the specification in [SWS_LinTrcv_00001]. The interface is declared via header file LinTrcv.h and has the numeric service ID 0x00 [SWS_LinTrcv_00001].

Usage and Parameters

The call of LinTrcv_Init is executed synchronously and has no return value (void) [SWS_LinTrcv_00001]. As the only input parameter, the input pointer ConfigPtr of type const LinTrcv_ConfigType* is passed, which points to the selected configuration data set of the LIN transceiver [SWS_LinTrcv_00001]. Further parameters such as input/output or pure output parameters do not exist for this routine [SWS_LinTrcv_00001].

Concurrency and Limitations

Regarding concurrency behavior, LinTrcv_Init is mandatorily classified as non-reentrant (Non Reentrant) [SWS_LinTrcv_00001]. Therefore, parallel or interrupting calls to this function must be excluded in the system. Moreover, no concurrent accesses may take place during initialization. Interpretation: Execution of the initialization function is likely to typically take place centrally during the system startup phase, before other services of the LIN transceiver driver are called. Question Q-9845a0c76e3146fa (open)

This text was created by an AI; all statements are based on the requirements of the AUTOSAR standard.

Implementer's Guide to follow (complexity I1)

function 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-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 2b8c06203f94 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function LinTrcv_SetOpMode serves to switch the internal state of the LIN transceiver driver to the passed operating mode according to [SWS_LinTrcv_00002].

Usage and Semantics

  • Call context and parameters: The call addresses the respective LIN network via parameter LinNetwork, while OpMode (type LinTrcv_TrcvModeType) specifies the target operating mode ([SWS_LinTrcv_00002]). The interface is available via LinTrcv.h.
  • Return values: The function returns E_OK as soon as the state of the transceiver has been successfully switched to the requested mode. If the state change fails, is not accepted, or a parameter is outside the valid range, E_NOT_OK is returned ([SWS_LinTrcv_00002]).
  • Synchronous execution: The service operates synchronously (Sync/Async: Synchronous) under Service ID 0x01 ([SWS_LinTrcv_00002]).

Concurrency and Limitations

The interface is specified as non-reentrant (Non Reentrant) ([SWS_LinTrcv_00002]). Callers must therefore ensure that parallel calls for the same module or network are avoided.

This text was generated by an AI. It does not replace studying the relevant AUTOSAR specifications.

Implementer's Guide to follow (complexity I1)

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

function LinTrcv_CheckWakeup [SWS_LinTrcv_00012] 📄 PDF

Std_ReturnType LinTrcv_CheckWakeup (uint8 LinNetwork);

Service LinTrcv_CheckWakeup.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: d95f71801283 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous function LinTrcv_CheckWakeup serves to check whether a wakeup event was detected on an addressed LIN network [SWS_LinTrcv_00012]. It informs the calling entity directly about the presence of a corresponding wakeup condition [SWS_LinTrcv_00012].

Call and Parameters

The function has the service ID 0x07 and is provided via header file LinTrcv.h [SWS_LinTrcv_00012]:

  • LinNetwork (input parameter, uint8): Designates the LIN network to which the API call shall be applied [SWS_LinTrcv_00012].

Return Values

The return value of type Std_ReturnType signals the result of the wakeup check [SWS_LinTrcv_00012]:

Concurrency

The execution of LinTrcv_CheckWakeup occurs fully synchronously and is specified as reentrant [SWS_LinTrcv_00012]. The synchronous flow ensures that the result is directly available upon function return.

This usage note was generated by an AI based on the specification for the LIN Transceiver Driver in AUTOSAR CP R20-11.

function 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-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 85db2195cf25 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous function LinTrcv_SetWakeupMode serves to enable, disable, and clear notifications for wakeup events on the addressed LIN network [SWS_LinTrcv_00009]. It is declared via header file LinTrcv.h and has the service ID 0x05 [SWS_LinTrcv_00009].

Parameters and Return Values

The function expects two input parameters [SWS_LinTrcv_00009]:

  • LINNetwork (uint8): Designates the concrete LIN network to which the API shall be applied [SWS_LinTrcv_00009].
  • TrcvWakupMode (LinTrcv_TrcvWakeupModeType): Passes the requested wakeup mode or reason for the transceiver [SWS_LinTrcv_00009].

As return value, a status of type Std_ReturnType is returned [SWS_LinTrcv_00009]:

  • E_OK: Indicates that the state of the transceiver was successfully transitioned into the requested mode [SWS_LinTrcv_00009].
  • E_NOT_OK: Signals that the call failed due to development errors or that the desired wakeup mode could not be set [SWS_LinTrcv_00009].

Concurrency and Limitations

The interface is specified as non-reentrant (non Reentrant) and performs the state change synchronously [SWS_LinTrcv_00009]. Calling components must therefore ensure that no parallel calls take place for the same interface.

This usage note was generated by an AI based on the AUTOSAR Classic R20-11 specification.

Implementer's Guide to follow (complexity I1)

type LinTrcv_ConfigType [SWS_LinTrcv_00172] 📄 PDF

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

type LinTrcv_TrcvModeType [SWS_LinTrcv_00168] 📄 PDF

Operating modes of the LIN Transceiver Driver

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 304001f922be Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The enumeration type LinTrcv_TrcvModeType defines the operating modes for the LIN transceiver driver according to [SWS_LinTrcv_00168]. The type definition is located in header file Lin_GeneralTypes.h and is thus available to higher-level software layers [SWS_LinTrcv_00168].

The range of values comprises three standardized states for the transceiver [SWS_LinTrcv_00168]:

  • LINTRCV_TRCV_MODE_NORMAL: Identifies the regular operating mode (Transceiver mode NORMAL) of the LIN transceiver [SWS_LinTrcv_00168].
  • LINTRCV_TRCV_MODE_STANDBY: Represents the standby mode (Transceiver mode STANDBY) of the transceiver [SWS_LinTrcv_00168].
  • LINTRCV_TRCV_MODE_SLEEP: Describes the sleep mode (Transceiver mode SLEEP) for the LIN transceiver [SWS_LinTrcv_00168].

Regarding usage and functional interaction, this enumeration type serves for the uniform modeling of transceiver states [SWS_LinTrcv_00168]. The type is presumably used as a parameter or return value in driver functions to request or query specific state transitions between normal operation, standby, and power-saving sleep state. Question Q-8966f1299f224eff (open) Specific call contexts, error codes, and concurrency and reentrancy properties are not anchored in this data type itself, but depend on the respective APIs of the transceiver driver [SWS_LinTrcv_00168].

This text was generated by an AI and serves for technical orientation.

Implementer's Guide to follow (complexity I1)

type LinTrcv_TrcvWakeupModeType [SWS_LinTrcv_00169] 📄 PDF

Wake up operating modes of the LIN Transceiver Driver.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: e813afb11b1a Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Value Range

The type LinTrcv_TrcvWakeupModeType is an enumeration that defines the operating modes for wakeup events of the LIN transceiver driver [SWS_LinTrcv_00169]. It is provided via header file Lin_GeneralTypes.h [SWS_LinTrcv_00169].

The enumeration comprises the following values for controlling the addressed network [SWS_LinTrcv_00169]:

  • LINTRCV_WUMODE_ENABLE: Enables the notification for wakeup events on the addressed network [SWS_LinTrcv_00169].
  • LINTRCV_WUMODE_DISABLE: Disables the notification for wakeup events on the addressed network [SWS_LinTrcv_00169].
  • LINTRCV_WUMODE_CLEAR: Clears a previously stored wakeup event on the addressed network [SWS_LinTrcv_00169].

Error Handling and Boundary Conditions

No specific error codes, return values, or DET/DEM error messages are defined in the specification for the type itself [SWS_LinTrcv_00169]. As a data type, it is not subject to any direct reentrancy or execution restrictions.

Interaction

Interpretation: The type is likely to serve as an input parameter in API functions of the LIN transceiver driver to enable or disable wakeup detection on a network-specific basis or to reset the wakeup status [SWS_LinTrcv_00169]. Question Q-cfb3e28d7baefc72 (open)

This text was created by an AI. It is based exclusively on the specification data from SWS_LinTrcv_00169.

Implementer's Guide to follow (complexity I1)

type 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#560801b0
Content hash
560801b0
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINTransceiverDriver.pdf#nameddest=SWS_LinTrcv_00001

Initialization and status

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

void LinTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);
LinTrcv_Init function

Initializes the Lin Transceiver Driver module.

void LinTrcv_Init (const LinTrcv_ConfigType* ConfigPtr);

Services

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

Types

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.