DEENESPTFRRUARHIKOZHNL

LIN Interface (LinIf)

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

Module guideAI-GENERATED

Mediates LIN frames between upper layers and LIN driver and controls schedules, sleep, wake-up, and LIN TP.
AI-GENERATED unreviewed Model: claude-opus-5-5 · Effort: high · Temperature: not controllable · Prompt: 2c16f0f64a13 Provenance Open questions (2)
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

Mediates LIN frames between upper layers and LIN driver and controls schedules, sleep, wake-up, and LIN TP.

The LIN Interface connects the upper communication modules with the LIN driver and transceiver and also contains the LIN transport protocol. As master, a channel processes schedule tables selected via LinIf_ScheduleRequest [SWS_LinIf_00202]. As slave, on the other hand, it only responds to header notifications from the driver [SWS_LinIf_91004]. In addition, it controls sleep and wake-up per channel, diagnostic transmission, and, in the slave, node configuration. Which services are available depends on the configured node type of the channels.

The LIN Interface (LinIf) mediates between the upper communication modules and the LIN driver and at the same time contains the LIN transport protocol [SWS_LinIf_00351]. Toward upper layers, in R20-11 it calls the configurable callouts <User_TriggerTransmit>, <User_TxConfirmation>, and <User_RxIndication> [SWS_LinIf_00528] [SWS_LinIf_00529] [SWS_LinIf_00530]; the user is the PduR or a CDD. It reports mode switches back to the LinSM via <User>_…Confirmation callouts [SWS_LinIf_00521]. Toward lower layers, it uses Lin and optionally 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 Mode and wake-up services (LinTrcv_SetOpMode and others) Lin->LinIf LinIf_HeaderIndication, LinIf_RxIndication, LinIf_TxConfirmation, LinIf_LinErrorIndication, LinIf_WakeupConfirmation

Context diagram: LinIf between users, LinSM, BswM, EcuM, Mirror, as well as Lin and LinTrcv. Sources: [SWS_LinIf_00360] [SWS_LinIf_00469]

After LinIf_Init [SWS_LinIf_00198], each channel is in LINIF_CHANNEL_SLEEP. LinIf only processes frames in LINIF_CHANNEL_OPERATIONAL SWS LinIf p. 45. A dedicated MainFunction per channel performs the work [SWS_LinIf_00384].

linif_zustand cluster_init LINIF_INIT (sub-states per channel) Reset Reset UNINIT LINIF_UNINIT Reset->UNINIT SLEEP LINIF_CHANNEL_SLEEP UNINIT->SLEEP LinIf_Init (without go-to-sleep command) OP LINIF_CHANNEL_OPERATIONAL SLEEP->OP LinIf_Wakeup OP->SLEEP LinIf_GotoSleep (slave: after go-to-sleep command or bus idle timeout)

State diagram: Initialization leads to the sleep state; LinIf_Wakeup and LinIf_GotoSleep switch between the channel states. Sources: SWS LinIf p. 45

Master and slave operate fundamentally differently. A master channel processes schedule tables, selected via LinIf_ScheduleRequest with index 1..255; 0 represents the NULL_SCHEDULE [SWS_LinIf_00197] [SWS_LinIf_00202]. LinIf_Transmit only marks sporadic frames in this context; LinIf retrieves the data only when the slot is due [SWS_LinIf_00706]. A slave, in contrast, only responds to LinIf_HeaderIndication. Based on the PID, it decides whether to transmit, receive, or ignore [SWS_LinIf_00738] [SWS_LinIf_00733] [SWS_LinIf_00748], and manages the response_error signal autonomously [SWS_LinIf_00763].

A slave enters sleep after a go-to-sleep command or after a bus idle timeout [SWS_LinIf_00750] [SWS_LinIf_00755]. It confirms wake-up only upon the first received header [SWS_LinIf_00761]. For diagnostics, LinTp in the master switches the schedules via BswM_LinTp_RequestMode [SWS_LinIf_00629]. In the slave, LinIf serves node configuration according to ISO 17987-3 [SWS_LinIf_00771]. LinIf reports errors to the DET, such as LINIF_E_RESPONSE [SWS_LinIf_00729]. In case of timeouts, it aborts TP transmissions with E_NOT_OK [SWS_LinIf_00801] [SWS_LinIf_00806].

Role of the LIN Interface between users, driver, and transceiver

The LIN Interface (LinIf) mediates between the upper communication modules and the LIN driver. At the same time, it contains the LIN transport protocol: its services such as LinTp_Init and LinTp_Transmit are also available via LinIf.h [SWS_LinIf_00350] [SWS_LinIf_00351]. Toward lower layers, LinIf uses driver services such as Lin_GoToSleepInternal, Lin_Wakeup, and Lin_WakeupInternal [SWS_LinIf_00359]. Optionally, the LIN Transceiver Driver is added, whose mode and wake-up services LinIf maps to a unified interface for all transceivers SWS LinIf p. 24. For this purpose, LinIf_SetTrcvMode, LinIf_GetTrcvMode, LinIf_GetTrcvWakeupReason, and LinIf_SetTrcvWakeupMode forward the calls to the transceiver driver [SWS_LinIf_00544] [SWS_LinIf_00545] [SWS_LinIf_00547] [SWS_LinIf_00550].

Toward upper layers, LinIf calls its users via configurable callouts: <User_TriggerTransmit>, <User_TxConfirmation>, and <User_RxIndication> [SWS_LinIf_00528] [SWS_LinIf_00529] [SWS_LinIf_00530]. The user is either the PduR, in which case PduR_LinIfTriggerTransmit must be entered [SWS_LinIf_00722], or a CDD whose callback header LinIf includes [SWS_LinIf_00669]. LinIf reports mode switches back via <User>_ScheduleRequestConfirmation, <User>_GotoSleepConfirmation, and <User>_WakeupConfirmation [SWS_LinIf_00520] [SWS_LinIf_00521] [SWS_LinIf_00522]. The receiver of these notifications is the LinSM SWS LinSM p. 24. In addition, LinIf requires the services BswM_LinTp_RequestMode, Com_SendSignal, and Det_ReportError [SWS_LinIf_00360]. Starting with R24-11, the LSduR replaces the PduR or CDD as upper user SWS LinIf p. 1. For R20-11, the <User_…> callouts apply.

Each channel is either master or slave. Slave services such as LinIf_HeaderIndication or LinIf_GetConfiguredNAD exist only if at least one slave channel is configured [SWS_LinIf_00863] [SWS_LinIf_00861]. LinIf_ScheduleRequest exists only if at least one master channel is configured [SWS_LinIf_00858]. Cyclic processing runs in LinIf_MainFunction_<LinIfChannel.ShortName> [SWS_LinIf_00384]. This function exists once per channel SWS LinIf p. 119 and is called with the period LinIfMainFunctionPeriod. In the master, it queries the Schedule Table Manager; in the slave, it monitors timing conditions SWS LinIf p. 45. Bus mirroring is enabled per channel with LinIf_EnableBusMirroring; after that, LinIf reports received and transmitted frames to the Mirror module [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 Mode and wake-up services (LinTrcv_SetOpMode and others) Lin->LinIf LinIf_HeaderIndication, LinIf_RxIndication, LinIf_TxConfirmation, LinIf_LinErrorIndication, LinIf_WakeupConfirmation

Context diagram: LinIf (with LinTp) is located between users, mode management, and diagnostic/mirror services above, as well as Lin and LinTrcv below. Sources: [SWS_LinIf_00359] [SWS_LinIf_00360] [SWS_LinIf_00469] [SWS_LinIf_00872] SWS LinIf (Abb.) p. 17

Initialization and state machines of channel and LinTp

LinIf_Init receives a pointer to LinIf_ConfigType [SWS_LinIf_00198] [SWS_LinIf_00668] and transitions the module from LINIF_UNINIT to LINIF_INIT SWS LinIf p. 47. Each channel has its own sub-state machine. After initialization, it is in LINIF_CHANNEL_SLEEP without a go-to-sleep command having been sent. LinIf processes headers and responses only in LINIF_CHANNEL_OPERATIONAL SWS LinIf p. 45. Master channels start with the NULL_SCHEDULE SWS LinIf p. 90. Slave channels take over the initial and configured NAD as well as the PIDs from the configuration [SWS_LinIf_00767] [SWS_LinIf_00768] and provide the LIN Product Identification [SWS_LinIf_00769].

linif_zustand cluster_init LINIF_INIT (sub-states per channel) Reset Reset UNINIT LINIF_UNINIT Reset->UNINIT SLEEP LINIF_CHANNEL_SLEEP UNINIT->SLEEP LinIf_Init (without go-to-sleep command) OP LINIF_CHANNEL_OPERATIONAL SLEEP->OP LinIf_Wakeup OP->SLEEP LinIf_GotoSleep (slave: after go-to-sleep command or bus idle timeout)

State diagram: Lifecycle of LinIf and channel sub-states; initialization leads to the sleep state, wakeup and sleep transition between channel states. Sources: SWS LinIf p. 45 [SWS_LinIf_00204] [SWS_LinIf_00205] [SWS_LinIf_00755]

The transport protocol has its own state machine per channel. LinTp_Init [SWS_LinIf_00350] sets LINTP_INIT with the sub-state LINTP_CHANNEL_IDLE [SWS_LinIf_00710] SWS LinIf p. 99. After LINTP_CHANNEL_BUSY, the channel transitions as soon as an FF or SF is detected as a TP message [SWS_LinIf_00322] [SWS_LinIf_00323] or LinTp_Transmit is called SWS LinIf p. 108. LinTp_Shutdown [SWS_LinIf_00355] closes all open connections and sets all channels to LINTP_UNINIT SWS LinIf p. 102. Whether LinTp is included at all is determined by LinIfTpSupported at compile time SWS LinIf p. 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 message starts (LinTp_Transmit or FF/SF detected) BUSY->UNINIT LinTp_Shutdown (close connections) BUSY->IDLE TP-Nachricht beendet

State diagram: LinTp channel between IDLE and BUSY within LINTP_INIT. Sources: SWS LinIf (Abb.) p. 43 [SWS_LinIf_00322] [SWS_LinIf_00710] [SWS_LinIf_00355]

Master Channel: Schedule Tables Determine Bus Traffic

In the master, the schedule table forms the basis of all communication. Each channel has an empty NULL_SCHEDULE, and the intervals between frames are multiples of LinIfMainFunctionPeriod SWS LinIf p. 44. LinIf_SchHandleType encodes the NULL_SCHEDULE as 0x00 and the remaining tables as index 1..255. The index is unique per channel, but not per ECU [SWS_LinIf_00197]. LinIf_ScheduleRequest operates asynchronously [SWS_LinIf_00202]; <User>_ScheduleRequestConfirmation reports the completed switch [SWS_LinIf_00520]. In the configuration, each table is assigned a LinIfRunMode, namely RUN_CONTINUOUS or RUN_ONCE ECUC-Parameter p. 265. The parameter Schedule was only renamed in R22-11 SWS LinIf p. 1.

LinIf_Transmit [SWS_LinIf_00201] does not trigger immediate transmission. It only marks sporadic frames (master) or event-triggered frames (slave) as pending SWS LinIf p. 79. For other frames, it still returns E_OK [SWS_LinIf_00700], whereas during a NULL_SCHEDULE it returns E_NOT_OK [SWS_LinIf_00719]. If a transmission slot is due, LinIf retrieves the data via <User_TriggerTransmit> and passes it to the driver using Lin_SendFrame SWS LinIf p. 37. If the user returns E_NOT_OK, the frame is omitted [SWS_LinIf_00706]. LinIf checks the outcome using Lin_GetStatus, at the earliest after the maximum frame length and at the latest at the next table entry SWS LinIf p. 35. LIN_TX_ERROR and LIN_TX_BUSY lead to <User_TxConfirmation> with E_NOT_OK [SWS_LinIf_00728]; LIN_TX_OK leads to E_OK SWS LinIf p. 40.

Frame transmission on master channelNutzer (PduR/CDD)LinIfLinBSW-TaskUse Case: Registration (sporadic frame only)LinIf_Transmit(TxPduId, PduInfoPtr)CheckId()SetFlag()E_OK (E_NOT_OK for NULL_SCHEDULE)Use Case: Transmission slot dueLinIf_MainFunction_<LinIfChannel.ShortName>()<User_TriggerTransmit>(TxPduId, PduInfoPtr)E_OK / E_NOT_OKaltE_OKLin_SendFrame(...)E_NOT_OKFrame is not transmittedUse Case: Status check after maximum frame lengthLinIf_MainFunction_<LinIfChannel.ShortName>()Lin_GetStatus(...)LIN_TX_OK / LIN_TX_BUSY / LIN_TX_ERROR<User_TxConfirmation>(TxPduId, result)E_OK on LIN_TX_OK, otherwise E_NOT_OK

Sequence diagram: Notification, slot-controlled data retrieval, and status evaluation during master transmission. Sources: [SWS_LinIf_00201] [SWS_LinIf_00706] [SWS_LinIf_00728] SWS LinIf p. 125 SWS PduR p. 107

Slave channel: Reaction to master headers

A slave has no schedule. It reacts exclusively to LinIf_HeaderIndication [SWS_LinIf_91004] SWS LinIf p. 39. LinIf first evaluates the PID:

After successful reception, the driver calls LinIf_RxIndication, and LinIf forwards the data to <User_RxIndication> [SWS_LinIf_91005] [SWS_LinIf_00734]. After successful transmission, the driver calls LinIf_TxConfirmation, and LinIf confirms with E_OK [SWS_LinIf_91006] [SWS_LinIf_00741]. For event-triggered frames, the PID of the associated unconditional frame is located in the first data byte [SWS_LinIf_00731]. The pending flag is cleared after successful transmission [SWS_LinIf_00732].

LinIf manages the response_error signal independently for each slave channel [SWS_LinIf_00763] and updates it via Com_SendSignal [SWS_LinIf_00764]. After successful transmission, it is cleared [SWS_LinIf_00747]. Any change can optionally be reported via <User_ResponseErrorSignalChanged> [SWS_LinIf_00765] [SWS_LinIf_00766]. NAD and the PID list can be read and written at runtime [SWS_LinIf_00829] [SWS_LinIf_00833] [SWS_LinIf_91002] [SWS_LinIf_91003]. The PIDs of MRF and SRF remain excluded [SWS_LinIf_00809] [SWS_LinIf_00824]. A typical source of these values is non-volatile memory SWS LinIf p. 57.

Header-driven frame processing on slave channelLinController/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_RXIrrelevant or 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)

Sequence diagram: Header evaluation in the slave with branching by frame direction and subsequent confirmation, reception notification, or error notification. Sources: [SWS_LinIf_91004] [SWS_LinIf_00738] [SWS_LinIf_00733] [SWS_LinIf_00748] SWS LinIf p. 121 SWS LinIf (Abb.) p. 133

Sleep and wakeup of a LIN channel

The master transmits a go-to-sleep command upon request. The slave goes to sleep when it receives this command or when the bus remains inactive SWS LinIf p. 48. In the slave, an MRF with NAD 0 is considered a go-to-sleep command [SWS_LinIf_00750]. Bus idle monitoring runs in state LINIF_CHANNEL_OPERATIONAL [SWS_LinIf_00751] [SWS_LinIf_00752] [SWS_LinIf_00753]. Each driver callback restarts the timer [SWS_LinIf_00754]. In both cases, LinIf calls <User>_GotoSleepIndication [SWS_LinIf_00756]. If the user subsequently calls LinIf_GotoSleep [SWS_LinIf_00204], Lin_GoToSleepInternal follows immediately [SWS_LinIf_00757]. Afterward, LinIf clears the wakeup flag [SWS_LinIf_00758] and confirms with TRUE [SWS_LinIf_00759]. In the master, according to the diagram, the MainFunction transmits the command via Lin_GoToSleep and confirms after the status check SWS LinIf (Abb.) p. 93 [SWS_LinIf_00521].

Transition to sleep state (slave channel)LinLinIfLinTrcvLinIf User (LinSM)altGo-to-sleep-Kommando empfangenLinIf_RxIndication(Channel, Lin_SduPtr)MRF with NAD = 0Bus-Idle-TimeoutBus-Idle-Timer abgelaufen<User>_GotoSleepIndication()LinIf_GotoSleep(Channel)Lin_GoToSleepInternal(Channel)Immediately, not deferred to the MainFunctionClear channel wakeup flag<User>_GotoSleepConfirmation(channel, TRUE)E_OKoptTransceiver driver supportsLinIf_SetTrcvMode(LINTRCV_TRCV_MODE_SLEEP)LinTrcv_SetOpMode(LINTRCV_TRCV_MODE_SLEEP)

Sequence diagram: Transition of a slave channel into the sleep state after a go-to-sleep command or bus idle timeout. Sources: [SWS_LinIf_00750] [SWS_LinIf_00755] [SWS_LinIf_00756] [SWS_LinIf_00757] [SWS_LinIf_00759] SWS LinIf p. 137

Wakeup originates either from the user via LinIf_Wakeup or from a detected bus wakeup. LinIf checks for a bus wakeup via LinIf_CheckWakeup SWS LinIf p. 51. For this purpose, LinIf_CheckWakeup [SWS_LinIf_00378] calls Lin_CheckWakeup or LinTrcv_CheckWakeup SWS LinIf p. 112. The drivers report a detected wakeup via LinIf_WakeupConfirmation [SWS_LinIf_00715], whereupon LinIf sets the channel's wakeup flag SWS LinIf p. 98. LinIf_Wakeup [SWS_LinIf_00205] behaves differently depending on the state. On an awake channel, it simulates success. On a sleeping channel without a wakeup flag, it calls Lin_Wakeup SWS LinIf p. 89. If the wakeup flag is set, Lin_WakeupInternal is likely to activate the channel without a wakeup pulse [SWS_LinIf_00359]. Question Q-2efc22e03c8e284e (open)

The confirmation in the master originates from the MainFunction SWS LinIf (Abb.) p. 87. In the slave, it comes with the first received header [SWS_LinIf_00761]. Before returning E_NOT_OK, LinIf reports FALSE [SWS_LinIf_00762]. If the master transmits no headers, confirmation is omitted and the LinSM times out SWS LinIf p. 52. If a wakeup request arrives during sleep transition, the master remains operational SWS LinIf p. 56. In this case, the slave restarts wakeup SWS LinIf p. 53.

Wakeup check and wakeup requestEcuMLinIf User (LinSM)LinIfLin / LinTrcvBSW-TaskUse Case: Bus-Wakeup (falls aufgetreten)LinIf_CheckWakeup(WakeupSource)Lin_CheckWakeup / LinTrcv_CheckWakeupLinIf_WakeupConfirmation(WakeupSource)Set channel wakeup flagUse Case: WeckanforderungLinIf_Wakeup(Channel)altChannel sleeping, wakeup flag not setLin_Wakeup(Channel)Channel sleeping, wakeup flag set (assumption)Lin_WakeupInternal(Channel)Channel is awakekein 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)First header after LinIf_Wakeup<User>_WakeupConfirmation(channel, TRUE)

Sequence diagram: Wakeup check via EcuM, wakeup request by the user, and node-dependent confirmation. Sources: [SWS_LinIf_00378] [SWS_LinIf_00715] [SWS_LinIf_00205] [SWS_LinIf_00761] [SWS_LinIf_00762] SWS EcuM p. 182

Diagnostics: LIN TP and Node Configuration

In the master, LinTp controls the schedule tables via BswM_LinTp_RequestMode with LinTp_Mode [SWS_LinIf_00629], provided that LinTpScheduleChangeDiag is active. Upon LinTp_Transmit [SWS_LinIf_00351], LinTp requests the diagnostic request schedule. The diagnostic response schedule follows after the physical request, and the applicative schedule follows after the response SWS LinIf p. 62. After a functional request, the channel returns to the previous schedule [SWS_LinIf_00707]. PduR_LinTpTxConfirmation follows only after the schedule switch has ended [SWS_LinIf_00702]. A new physical request terminates the ongoing TP processing [SWS_LinIf_00708]. LinTp_ChangeParameter [SWS_LinIf_00501] is only a placeholder and rejects any change SWS LinIf p. 103.

LIN TP transmission in master with schedule switchPduRLinIf (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 if schedule change was rejected)loopje MRF (SF, FF, CF)LinIf_MainFunction_<LinIfChannel.ShortName>()PduR_LinTpCopyTxData(...)Transmit MRF (like normal frame transmission)optphysischer Request, Schedule-Wechsel aktiviertBswM_LinTp_RequestMode(Network, LINTP_DIAG_RESPONSE)PduR_LinTpTxConfirmation(id, result)after completion of schedule change

Sequence diagram: TP transmission in the master with schedule switching via BswM and LinSM. Sources: [SWS_LinIf_00351] [SWS_LinIf_00702] [SWS_LinIf_00878] SWS LinIf (Abb.) p. 90 SWS LinIf p. 139

LinIf must be ready for reception at all times. An FF or SF starts the reception via PduR_LinTpStartOfReception. In doing so, LinIf maps the NAD to an N-SDU ID and copies each frame using PduR_LinTpCopyRxData SWS LinIf p. 67. In the slave, the transport layer and Node Configuration share the MRF and SRF frames SWS LinIf p. 54. Therefore, LinIf evaluates the NAD, PCI, and SID of each MRF [SWS_LinIf_00771] and distributes it accordingly [SWS_LinIf_00772] [SWS_LinIf_00773] [SWS_LinIf_00774]. An SRF header is handled by the node configuration handler if a response is pending; otherwise it goes to the transport layer [SWS_LinIf_00775] [SWS_LinIf_00776]. The following services are supported:

Positive responses go out with the next SRF header [SWS_LinIf_00780].

nodecfg mrf MRF empfangen (LinIf_RxIndication) eval Evaluate NAD, PCI, and SID mrf->eval pci PCI valid? eval->pci ign1 Frame ignorieren pci->ign1 no func Functional NAD 0x7E with node configuration request? pci->func yes ign2 Anfrage ignorieren func->ign2 yes own Addresses own node? func->own no fremd Inform node configuration handler and transport layer; cancel pending response own->fremd no nc Valid node configuration request? own->nc yes srf Next SRF header: response pending? fremd->srf acc Anfrage annehmen, N_As-Timer starten, Transportschicht informieren nc->acc yes tp MRF an Transportschicht weiterleiten nc->tp no acc->srf tp->srf resp Antwort durch Node-Configuration-Handler senden srf->resp yes tpsrf SRF-Header an Transportschicht srf->tpsrf no

Activity diagram: Distribution of received MRF and SRF headers in the slave between node configuration handler and transport layer. Interpretation: The order of checks is chosen for representation purposes. Sources: [SWS_LinIf_00771] [SWS_LinIf_00772] [SWS_LinIf_00774] [SWS_LinIf_00788] [SWS_LinIf_00790] [SWS_LinIf_00776] SWS LinIf p. 59

Behavior in the event of an error

LinIf reports development errors to the DET, including with LINIF_E_UNINIT, LINIF_E_NONEXISTENT_CHANNEL, LINIF_E_PARAMETER, LINIF_E_PARAM_POINTER, and LINIF_E_SCHEDULE_REQUEST_ERROR [SWS_LinIf_00376]. The callbacks check channel and pointer [SWS_LinIf_00843] [SWS_LinIf_00844]. LinIf ignores unexpected calls of LinIf_RxIndication or LinIf_TxConfirmation without a preceding header [SWS_LinIf_00848] [SWS_LinIf_00852].

As runtime errors, LinIf recognizes LINIF_E_RESPONSE and LINIF_E_NC_NO_RESPONSE [SWS_LinIf_00729]. If the driver calls LinIf_LinErrorIndication in the slave, the frame is considered lost. LinIf then reports LINIF_E_RESPONSE, except for LIN_ERR_HEADER [SWS_LinIf_00735] [SWS_LinIf_00743]. In addition, it confirms the transmission attempt with E_NOT_OK [SWS_LinIf_00742] and sets the response_error signal in case of response errors [SWS_LinIf_00736] [SWS_LinIf_00744]. A new header while a response is still expected invalidates the old frame [SWS_LinIf_00846]. When mirroring is active, LinIf reports such errors with a mapped status code [SWS_LinIf_00869] [SWS_LinIf_00870].

LinTp monitors three time limits and aborts with E_NOT_OK to the PduR when they are exceeded:

LinTp also aborts in case of buffer problems [SWS_LinIf_00676] [SWS_LinIf_00677]. In the master, this only occurs after returning to the applicative schedule [SWS_LinIf_00792] [SWS_LinIf_00879]. If the buffer is just barely insufficient, the master holds back the SRF headers [SWS_LinIf_00679] SWS LinIf p. 65. Alternatively, LinIf retries the copy attempt with length 0 until space is available or the next CF arrives [SWS_LinIf_00793] [SWS_LinIf_00795]. Furthermore, aborts with E_NOT_OK occur upon an incorrect NAD [SWS_LinIf_00655], an incorrect sequence number [SWS_LinIf_00081], an FF or SF after a CF [SWS_LinIf_00653], and an error on the SRF response [SWS_LinIf_00796]. Upon a P2 timeout, LinIf requests the applicative schedule [SWS_LinIf_00877]. If LinIf_ScheduleRequest rejects the switch, LinTp_Transmit returns E_NOT_OK [SWS_LinIf_00878].

In Node Configuration, LinIf aborts a pending response if N_As expires [SWS_LinIf_00785] [SWS_LinIf_00786], if an unknown NAD arrives [SWS_LinIf_00787], or if a new valid request arrives [SWS_LinIf_00789]. In contrast, a corrupted MRF leaves the pending response in place [SWS_LinIf_00791]. The extended production errors for LinTp timeouts and rejected schedule switches were only added with R23-11; they do not apply to R20-11 SWS LinIf p. 1 SWS LinIf p. 74.

Further detailed evidence

AI-generated guide based on the specification excerpts for R20-11 contained in the payload. The linked requirements are binding. Passages from later releases are referenced only as a supplement, and deviations are identified.

LIN Interface (LinIf)

Abstracts LIN hardware and manages schedule tables and frame transmission.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

function LinIf_Init [SWS_LinIf_00198] 📄 PDF

void LinIf_Init (const LinIf_ConfigType* ConfigPtr);

Initializes the LIN Interface.

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

The synchronous function LinIf_Init serves to initialize the LIN interface according to [SWS_LinIf_00198]. The interface has the service ID 0x01, is available via header file LinIf.h, and is executed synchronously.

Call Context and Parameters

The function expects ConfigPtr (const LinIf_ConfigType*) as its only parameter, which serves as a pointer to the configuration of the LIN interface [SWS_LinIf_00198]. It has no return value and has no input/output or pure output parameters.

Initialization Sequences and Interaction

During initialization, the LIN interface applies specific settings for slave nodes:

  • According to [SWS_LinIf_00767], the module initializes in LinIf_Init the initial node address (initial NAD) and the configured node address (configured NAD) of the slave node based on configuration parameters LinIfInitialNAD and LinIfConfiguredNAD.
  • According to [SWS_LinIf_00768], the module initializes in LinIf_Init the configured PIDs of the slave node from the configuration data via configuration parameters LinIfFrameId.

Concurrency and Limitations

The function is specified as non-reentrant (Non Reentrant) [SWS_LinIf_00198]. Concurrent or overlapping invocation is therefore inadmissible. Specific error codes or DET messages are not stated for this service in the provided specification scope.

This usage note was generated automatically based on the AUTOSAR specification R20-11.

Implementer's Guide to follow (complexity I1)

function LinIf_Transmit [SWS_LinIf_00201] 📄 PDF

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

Re quests transmission of a PDU.

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

Usage and Call Context

The function LinIf_Transmit declared in LinIf.h (service ID 0x49) serves for the synchronous request to transmit a PDU [SWS_LinIf_00201]. As input parameters, it expects TxPduId for uniquely identifying the PDU to be transmitted as well as the pointer PduInfoPtr to a PduInfoType structure, which can reference metadata in addition to the data length and actual payload data [SWS_LinIf_00201]. Additional input/output or output parameters do not exist [SWS_LinIf_00201].

Return Values and Behavioral Requirements

As return value, the service returns the status Std_ReturnType [SWS_LinIf_00201]:

  • E_OK: The transmission request was successfully accepted by the LIN interface [SWS_LinIf_00201].
  • E_NOT_OK: The request for transmission could not be accepted [SWS_LinIf_00201].

The interaction with the frame types is clarified by [SWS_LinIf_00700]: When the LIN interface is initialized, LinIf_Transmit returns E_OK even if the PDU belongs to a non-sporadic frame on a LIN master node or to a non-event-triggered frame on a LIN slave node.

Concurrency

With respect to the execution environment, LinIf_Transmit is reentrant for different PDU IDs, but must not be called simultaneously or concurrently for the same TxPduId [SWS_LinIf_00201].

This usage note was generated automatically based on the AUTOSAR specification R20-11.

Implementer's Guide to follow (complexity I1)

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

The function LinIf_ScheduleRequest serves exclusively on LIN master nodes to request the execution of a specified schedule table [SWS_LinIf_00202]. The call is processed asynchronously and designed to be reentrant [SWS_LinIf_00202].

Parameters and Return Values

The affected LIN channel index is passed via the parameter Channel, while Schedule defines the identification of the schedule table to be newly executed [SWS_LinIf_00202]. The function returns the status as Std_ReturnType:

Error Conditions and Limitations

A return value of E_NOT_OK occurs according to the specification in the following error cases [SWS_LinIf_00202]:

  • The LIN interface is not yet initialized.
  • The referenced channel does not exist or the passed index is out of range.
  • The referenced schedule table does not exist or its identifier is invalid.
  • The current state is Sleep.

Interaction

The failure of a schedule request impacts higher-level transport operations: If a schedule switch is initiated via LinIf_ScheduleRequest during a LinTp_Transmit call via BswM_LinTp_RequestMode, LinTp_Transmit must unconditionally return E_NOT_OK when LinIf_ScheduleRequest responds with E_NOT_OK [SWS_LinIf_00878].

This usage note is based exclusively on the specification data of AUTOSAR Classic R20-11.

Implementer's Guide to follow (complexity I1)

function LinIf_GotoSleep [SWS_LinIf_00204] 📄 PDF

Std_ReturnType LinIf_GotoSleep (NetworkHandleType Channel);

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

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

use

The function LinIf_GotoSleep (service ID 0x06, declared in LinIf.h) initiates the transition into sleep mode on the specified LIN channel [SWS_LinIf_00204]. The call takes place asynchronously and accepts the identifier of the relevant channel as input parameter Channel of type NetworkHandleType [SWS_LinIf_00204].

Return Values and Error Handling

As return value, the service returns the type Std_ReturnType with the following meanings [SWS_LinIf_00204]:

  • E_OK: The request to switch to sleep mode was successfully accepted, the state transition to sleep mode is already in progress, or the controller is already in sleep state [SWS_LinIf_00204].
  • E_NOT_OK: The request was not accepted. Possible causes for this are a LIN interface that is not yet initialized or a channel identifier that does not exist or lies outside the valid value range [SWS_LinIf_00204].

Concurrency and System Interaction

The interface is defined as non-reentrant (Non Reentrant) [SWS_LinIf_00204]. If LinIf_GotoSleep is called, the LIN interface must call the function Lin_GotoSleepInternal immediately and must not wait until the next cycle of the main function [SWS_LinIf_00757].

This usage note was generated automatically based on the AUTOSAR R20-11 specification.

Implementer's Guide to follow (complexity I1)

function LinIf_Wakeup [SWS_LinIf_00205] 📄 PDF

Std_ReturnType LinIf_Wakeup (NetworkHandleType Channel);

Initiates the wake up process.

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

The reentrant function LinIf_Wakeup initiates the asynchronous wake-up process for the LIN channel identified by the parameter Channel [SWS_LinIf_00205]. It is available via header LinIf.h [SWS_LinIf_00205].

The return value Std_ReturnType provides information about the acceptance of the request [SWS_LinIf_00205]:

  • E_OK signals that the wake-up request was accepted or the controller is already no longer in sleep state [SWS_LinIf_00205].
  • E_NOT_OK is returned if the LIN interface is not initialized, the passed channel ID is outside the valid range, or the underlying driver calls Lin_Wakeup or Lin_WakeupInternal fail with E_NOT_OK [SWS_LinIf_00205].

The interaction with the user takes place via the feedback function <User>_WakeupConfirmation:

  • In case of error, the LIN interface mandatorily calls <User>_WakeupConfirmation(FALSE) before returning E_NOT_OK [SWS_LinIf_00762].
  • Upon successful acceptance (E_OK), the LIN interface confirms the wake-up asynchronously: The module only issues the call <User>_WakeupConfirmation(TRUE) when the function LinIf_HeaderIndication is subsequently called for the first time [SWS_LinIf_00761].

This text was generated automatically. It is based on the requirements of the AUTOSAR specification.

Implementer's Guide to follow (complexity I1)

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

The synchronous and reentrant function LinIf_SetTrcvMode (service ID 0x08) serves to switch the specified LIN transceiver to the requested operating mode [SWS_LinIf_00544]. The interface is available via the header file LinIf.h [SWS_LinIf_00544].

Parameters and Return Values

The call requires two input parameters [SWS_LinIf_00544]:

  • Channel (NetworkHandleType): Identifies the LIN channel to be controlled [SWS_LinIf_00544].
  • TransceiverMode (LinTrcv_TrcvModeType): Determines the requested state transition of the transceiver [SWS_LinIf_00544].

The return value of type Std_ReturnType signals the result of the switching process [SWS_LinIf_00544]:

  • E_OK: Is returned when the transceiver state was successfully changed to the requested mode [SWS_LinIf_00544].
  • E_NOT_OK: Signals that the state change has failed or at least one parameter is outside the permissible range. The previous state of the transceiver remains unchanged [SWS_LinIf_00544].

Execution and Error Behavior

The function is executed synchronously and specified as reentrant [SWS_LinIf_00544]. Specific DET or DEM error messages are not listed separately in the specification element; a failure of the mode change or impermissible parameter values lead directly to return value E_NOT_OK [SWS_LinIf_00544].

This usage note was generated automatically based on the specification of AUTOSAR CP R20-11.

Implementer's Guide to follow (complexity I1)

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

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

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

The synchronous and reentrant function LinIf_SetTrcvWakeupMode serves to enable, disable, or clear notifications for wakeup events on the specified LIN channel [SWS_LinIf_00550]. The declaration is provided via the header LinIf.h and has the service ID 0x0b [SWS_LinIf_00550].

The interface expects two input parameters [SWS_LinIf_00550]:

  • Channel: Unique identifier of the LIN network or channel to be addressed of type NetworkHandleType [SWS_LinIf_00550].
  • LinTrcvWakeupMode: Requested wakeup mode of the transceiver of type LinTrcv_TrcvWakeupModeType [SWS_LinIf_00550].

As return value, the function provides the status Std_ReturnType [SWS_LinIf_00550]:

  • E_OK: The call to the LIN transceiver driver API service was successful and returned E_OK [SWS_LinIf_00550].
  • E_NOT_OK: The LIN transceiver driver API service failed (returned E_NOT_OK) or at least one of the passed parameters for channel or mode is invalid [SWS_LinIf_00550].

Regarding interaction, the function delegates the request to the LIN transceiver driver; presumably the LinIf here forms an intermediary interface between upper layers and the transceiver hardware [SWS_LinIf_00550]. Question Q-07b525a14a2c5fcd (open) Since the service is specified as reentrant, it may be executed concurrently for different channels or the same channel [SWS_LinIf_00550].

This text was generated by an AI and serves as guidance. The official AUTOSAR specification documents are authoritative.

Implementer's Guide to follow (complexity I1)

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

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

function LinTp_Init [SWS_LinIf_00350] 📄 PDF

void LinTp_Init (const LinTp_ConfigType* ConfigPtr);

Initializes the LIN Transport Layer.

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

Usage and Call Context

The function LinTp_Init serves to initialize the transport layer of the LIN protocol ([SWS_LinIf_00350]). According to specification [SWS_LinIf_00350], the function call operates synchronously.

The function signature is void LinTp_Init (const LinTp_ConfigType* ConfigPtr). The configuration is passed via the input parameter:

  • ConfigPtr (in): Pointer to the configuration data of the LIN transport layer of type LinTp_ConfigType ([SWS_LinIf_00350]).

The function returns no value (void) and defines neither output nor input/output parameters ([SWS_LinIf_00350]). It has the hexadecimal service ID 0x40 and is provided via the header file LinIf.h ([SWS_LinIf_00350]).

Error handling

Requirement [SWS_LinIf_00350] defines no specific error codes, DET messages, or DEM events for this function. No error status is returned to the caller ([SWS_LinIf_00350]).

Concurrency and Limitations

The function LinTp_Init is explicitly classified as non-reentrant (Non Reentrant) ([SWS_LinIf_00350]). Consequently, it must not be called concurrently from multiple threads, tasks, or interrupt routines. Interpretation: The call is likely to occur centrally within the initialization sequence of the basic software before subsequent communication requests can be processed. Question Q-6e391bdf8abb1a09 (open)

Interaction

For LinTp_Init, no direct links to other specification requirements or neighboring functions are listed in this excerpt ([SWS_LinIf_00350]). Module LinIf provides the declaration ([SWS_LinIf_00350]).

This usage note was generated automatically based on the specification of AUTOSAR Classic Release R20-11.

Implementer's Guide to follow (complexity I1)

function LinTp_Transmit [SWS_LinIf_00351] 📄 PDF

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

Requests transmission of a PDU.

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

The synchronous function LinTp_Transmit serves to request a PDU transmission via the LIN Transport Protocol ([SWS_LinIf_00351]). As parameters, it expects the PDU identifier TxPduId as well as the pointer PduInfoPtr, which provides the data length and pointers to the PDU data and metadata ([SWS_LinIf_00351]). The return value is E_OK upon successful acceptance of the transmit request and E_NOT_OK in the event of rejection ([SWS_LinIf_00351]).

The runtime behavior and interaction with the LIN interface are subject to the following specifications:

  • Schedule request: If the schedule switch initiated at LinIf_ScheduleRequest in the context of the call via BswM_LinTp_RequestMode fails and returns E_NOT_OK, LinTp_Transmit must also respond directly with E_NOT_OK ([SWS_LinIf_00878]).
  • Confirmation: Only if LinTp_Transmit was successful (return value E_OK) does the LIN interface call the function PduR_LinTpTxConfirmation with a positive or negative result after a successful or failed schedule table switch ([SWS_LinIf_00702]). If the transmit job is rejected, this call is omitted completely ([SWS_LinIf_00702]).
  • Interruption of ongoing operations: If a new physical request is triggered via LinTp_Transmit while waiting for a physical response or during response reception, the LIN interface aborts the ongoing TP handling including reception and N_Cr and P2 timeout monitoring and accepts the new request ([SWS_LinIf_00708]).

Regarding concurrency, LinTp_Transmit is reentrant for different TxPduId, but must not be executed concurrently for the same TxPduId ([SWS_LinIf_00351]).

This usage note is based on the AUTOSAR Classic R20-11 specification.

Implementer's Guide to follow (complexity I1)

function LinTp_Shutdown [SWS_LinIf_00355] 📄 PDF

void LinTp_Shutdown (void);

Shutdowns the LIN TP.

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

The function LinTp_Shutdown serves the controlled shutdown of the LIN transport protocol ([SWS_LinIf_00355]). By calling it, the operation of the LIN TP component is terminated ([SWS_LinIf_00355]). The function declaration is available via the header file LinIf.h ([SWS_LinIf_00355]).

The following specification characteristics apply to usage and execution ([SWS_LinIf_00355]):

  • Parameters and return value: The function has no input, input/output, or output parameters (void) and returns no value (void) ([SWS_LinIf_00355]).
  • Service identification: The service is defined under the service ID 0x43 ([SWS_LinIf_00355]).
  • Synchronicity: The call is processed synchronously ([SWS_LinIf_00355]).
  • Reentrancy: The function is non-reentrant (Non Reentrant) ([SWS_LinIf_00355]). Concurrent or nested calls from different contexts are not permitted.

Specific error codes, reports to the Development Error Tracer (DET), or special error handling are not described for this function in the sources ([SWS_LinIf_00355]). Likewise, details regarding related requirements or the exact caller are missing; the call presumably occurs as part of the sequential deinitialization of the communication stack by higher-level BSW state management. Question Q-e25a3c9531527c4f (open)

This usage note was generated automatically. It is based exclusively on the specification details of the AUTOSAR element in release R20-11.

Implementer's Guide to follow (complexity I1)

function 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-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 17541ee3b055 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Semantics

The synchronous function LinTp_ChangeParameter serves to adjust a specific parameter of the transport protocol for a specific PDU at runtime [SWS_LinIf_00501]. The PDU identifier (id), the identifier of the transport protocol parameter to be changed (parameter, for example the block size), and the new target value (value) are passed as parameters [SWS_LinIf_00501]. The declaration is provided via the header LinIf.h [SWS_LinIf_00501].

Return Values and Fault Behavior

The function signals the result of the request immediately via its return value of type Std_ReturnType [SWS_LinIf_00501]:

Concurrency and Limitations

According to the specification, LinTp_ChangeParameter is classified as non-reentrant (Non Reentrant) [SWS_LinIf_00501]. A concurrent or nested call for the same or parallel contexts is therefore inadmissible and must be prevented by the caller. The synchronous execution blocks the caller until the decision on the adoption of the parameter value is made [SWS_LinIf_00501].

This text was created by an AI and is based exclusively on the specification data of AUTOSAR R20-11.

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

Usage and Call Context

The synchronous function LinIf_CheckWakeup is called as soon as the module EcuM has been notified about a wakeup event on a specific LIN channel [SWS_LinIf_00378]. The call is made with the input parameter WakeupSource of type EcuM_WakeupSourceType [SWS_LinIf_00378]. This parameter specifies the source device that initiated the wakeup event, which can be a LIN controller or a LIN transceiver [SWS_LinIf_00378].

Error Handling and Return Values

As return value, the function provides a status of type Std_ReturnType [SWS_LinIf_00378]:

  • E_OK: No error occurred during execution of the interface [SWS_LinIf_00378].
  • E_NOT_OK: An error occurred during execution of the interface or an invalid value was passed for WakeupSource [SWS_LinIf_00378].

Concurrency and Integration

The interface is specified as reentrant, has the service ID 0x60, and is provided via the header file LinIf.h [SWS_LinIf_00378]. It directly connects the wakeup processing of EcuM to the channels of the LIN interface [SWS_LinIf_00378].

This text was generated by an AI based on the specification AUTOSAR CP R20-11.

function LinIf_EnableBusMirroring [SWS_LinIf_00876] 📄 PDF

Std_ReturnType LinIf_EnableBusMirroring (NetworkHandleType Channel, boolean MirroringActive);

Enables or disables mirroring for a LIN channel.

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

The synchronous and reentrant function LinIf_EnableBusMirroring enables or disables bus mirroring for an individual LIN channel [SWS_LinIf_00876]. It is available via the header LinIf.h and can be omitted if bus mirroring is not enabled via configuration parameter LinIfBusMirroringSupport [SWS_LinIf_00875]. The mirror module is likely to typically act as the caller. Question Q-1703af5207cb7ade (open)

The affected LIN channel is passed via the parameter Channel, while MirroringActive controls the mode [SWS_LinIf_00876]: Passing TRUE enables mirroring, while FALSE disables it [SWS_LinIf_00876]. As return value, the function returns E_OK if the mirroring mode was successfully changed, or E_NOT_OK if an invalid channel was specified or mirroring is globally disabled [SWS_LinIf_00876]. Specific DET or DEM error messages are not stated in the function definition [SWS_LinIf_00876].

If bus mirroring is enabled globally via LinIfBusMirroringSupported as well as for the respective channel, the LIN interface forwards relevant events to Mirror_ReportLinFrame:

  • Received frames upon LinIf_RxIndication with status LIN_RX_OK and a pointer to the payload data [SWS_LinIf_00838] as well as when reading out the LIN driver status for Rx slots [SWS_LinIf_00873].
  • Transmitted frames upon LinIf_TxConfirmation with status LIN_TX_OK and a pointer to the transmitted data [SWS_LinIf_00839] as well as when reading out the LIN driver status for Tx slots [SWS_LinIf_00874].
  • Error notifications upon LinIf_LinErrorIndication for all error codes except LIN_ERR_HEADER with error status and NULL pointer as data content [SWS_LinIf_00869].

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

Implementer's Guide to follow (complexity I1)

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

The function LinIf_WakeupConfirmation serves to report the successful detection of a wakeup event to the LIN interface [SWS_LinIf_00715].

Call and Parameters

The call is made by the LIN driver (LIN Driver) or the LIN transceiver driver (LIN Transceiver Driver) after successful wakeup detection occurred during Check Wakeup or after a power-on by bus (power on by bus) [SWS_LinIf_00715]. As parameter, WakeupSource of type EcuM_WakeupSourceType is passed, which specifies the source device that initiated the wakeup event (LIN controller or LIN transceiver) [SWS_LinIf_00715].

Execution Properties and Interface

This text was generated by an AI based on the AUTOSAR specification.

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

The callback function LinIf_HeaderIndication is called synchronously by the LIN driver to report the reception of a LIN header on a slave channel [SWS_LinIf_91004]. It is available exclusively if the ECU has at least one configured LIN slave channel [SWS_LinIf_91004]. The function is reentrant for different channels, but must not be called concurrently for the same channel [SWS_LinIf_91004].

Via the inout parameter PduPtr, the driver passes the received identifier (PID) as well as the pointer to the SDU data buffer [SWS_LinIf_91004]. The LinIf evaluates the PID and controls the reaction of the slave node:

  • Receive frame: If the PID belongs to a configured receive frame, the LinIf sets the checksum type PduPtr->Cs, the data length PduPtr->Dl, and assigns the value LIN_FRAMERESPONSE_RX to PduPtr->Drc before returning [SWS_LinIf_00733].
  • Transmit frame: If it is a transmit frame, the LinIf requests the payload data via <User_TriggerTransmit> [SWS_LinIf_00738]. Upon successful provision (return value E_OK or SRF data through node configuration handler / transport protocol), checksum and length are configured, and PduPtr->Drc is set to LIN_FRAMERESPONSE_TX [SWS_LinIf_00739]. If the query fails with E_NOT_OK, PduPtr->Drc is set to LIN_FRAMERESPONSE_IGNORE [SWS_LinIf_00740].
  • Irrelevant frames: If the frame is not relevant for the slave, the LinIf likewise sets PduPtr->Drc to LIN_FRAMERESPONSE_IGNORE [SWS_LinIf_00748].

In addition, each call reloads the running bus idle timer [SWS_LinIf_00754]. If the call occurs for the first time after a successful LinIf_Wakeup, <User>_WakeupConfirmation(TRUE) is triggered [SWS_LinIf_00761]. Upon reception of an SRF header, LinIf also starts the N_As timer for Consecutive Frames (CF) [SWS_LinIf_00800]. As a return value, E_OK indicates acceptance of the request, while E_NOT_OK indicates development or production errors [SWS_LinIf_91004].

This text was generated by an AI based on the AUTOSAR specification R20-11.

Implementer's Guide to follow (complexity I2)

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

The callback function LinIf_RxIndication is called synchronously by the LIN driver to notify the LIN interface of the successful reception of a response including the received data [SWS_LinIf_91005]. The function is available exclusively on ECUs with at least one configured LIN slave channel [SWS_LinIf_91005].

With regard to parameterization and concurrency, the following conditions apply:

  • Parameters: Passed are the channel identification Channel and the pointer Lin_SduPtr to a shadow buffer or the memory-mapped reception buffer of the LIN hardware [SWS_LinIf_91005]. This pointer is valid only if a response was actually received [SWS_LinIf_91005].
  • Return value: The function has no return value (void) [SWS_LinIf_91005].
  • Reentrancy: The interface is reentrant for different LIN channels, but not reentrant for the same channel [SWS_LinIf_91005].

In interaction with the module behavior, the call triggers several coordinating actions:

  • Forwarding of the received payload data and payload length to the upper layer via <User_RxIndication> [SWS_LinIf_00734].
  • Check for sleep commands: If it is a Master Request Frame (MRF) with NAD 0, the LIN interface detects a go-to-sleep command and initiates the transition to sleep mode [SWS_LinIf_00750].
  • Timer control: On each call, the bus idle timer is reloaded [SWS_LinIf_00754]. In addition, for MRF frames (FF, CF), the call controls the N_Cr timer (start/restart on FF and CF prior to the last frame, stop on the last CF) [SWS_LinIf_00805].
  • Bus mirroring: If mirroring is enabled globally and for the channel, the LIN interface forwards the frame with status LIN_RX_OK via Mirror_ReportLinFrame() [SWS_LinIf_00838].

This usage note was generated automatically based on the AUTOSAR specification R20-11.

Implementer's Guide to follow (complexity I1)

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

The synchronous callback function LinIf_TxConfirmation (Service ID 0x7a, declared in LinIf.h) is called by the LIN driver to confirm the successful transmission of a response on the specified channel [SWS_LinIf_91006]. The function has no return value and is intended exclusively for ECUs with at least one configured LIN slave channel [SWS_LinIf_91006].

Upon arrival of the confirmation, the LIN interface performs several follow-up processes:

  • Upper-layer notification: The module forwards the transmission event to the upper layer via the callback function <User_TxConfirmation> with return value E_OK [SWS_LinIf_00741].
  • Error status: If the successfully transmitted frame contains the error signal response_error, the LIN interface resets this signal [SWS_LinIf_00747].
  • Bus idle monitoring: Each call to LinIf_TxConfirmation reloads the running bus idle timer of the channel [SWS_LinIf_00754].
  • Transport protocol (LinTp): If the driver confirms the response to an SRF header (Slave Response Frame), the interface stops the monitoring timer N_As [SWS_LinIf_00800].
  • Bus Mirroring: If mirroring is configured globally via LinIfBusMirroringSupported and enabled via LinIf_EnableBusMirroring(), the interface reports the frame with status LIN_TX_OK and a pointer to the transmit data to Mirror_ReportLinFrame() [SWS_LinIf_00839].

Regarding concurrency, LinIf_TxConfirmation is designed to be reentrant for different LIN channels, but must not be called reentrantly for the same channel [SWS_LinIf_91006].

This usage note was generated automatically based on the specification AUTOSAR R20-11.

Implementer's Guide to follow (complexity I1)

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

Usage and Call Context

The synchronous function LinIf_LinErrorIndication is called by the LIN driver to report errors that occurred during the processing of a header or response [SWS_LinIf_91007]. It is intended exclusively for LIN slave nodes and requires that the ECU has at least one configured LIN slave channel [SWS_LinIf_91007]. The channel identification Channel and the occurred error status ErrorStatus of type Lin_SlaveErrorType are passed as parameters [SWS_LinIf_91007].

Error Handling and Concurrency

The function is reentrant for different channels, but must not be called concurrently for the same channel [SWS_LinIf_91007]. Upon the call, the LIN interface considers the response or transmitted frame as lost and reports the runtime error LINIF_E_RESPONSE to the Default Error Tracer (DET), unless the reported error status is LIN_ERR_HEADER [SWS_LinIf_00735], [SWS_LinIf_00743].

Interaction and Bus Monitoring

Regardless of the passed error code, the LIN interface reloads the running bus idle timer on each call to LinIf_LinErrorIndication [SWS_LinIf_00754]. If an error occurs during an SRF response after reception of an SRF header, the LIN interface aborts the transmission and reports this to the upper layer via PduR_LinTpTxConfirmation with the result E_NOT_OK [SWS_LinIf_00796].

If bus mirroring is globally active via LinIfBusMirroringSupported and enabled for the channel, the LIN interface forwards errors other than LIN_ERR_HEADER via Mirror_ReportLinFrame() with a NULL pointer for the data content [SWS_LinIf_00869]. In doing so, the driver error codes are first translated into corresponding status values of type Lin_StatusType [SWS_LinIf_00870].

This usage note was generated automatically based on the specification AUTOSAR Classic R20-11.

Implementer's Guide to follow (complexity I2)

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

The configurable interface <User_TriggerTransmit> is used for synchronously retrieving SDU data from an upper module for an upcoming transmission [SWS_LinIf_00528].

The requested SDU is identified via the parameter TxPduId, while PduInfoPtr is passed as a pointer to a structure containing the target buffer (SduDataPtr) and the available buffer size (SduLength) [SWS_LinIf_00528]. Within this API, the called upper module checks whether the available data fits into the reported buffer size [SWS_LinIf_00528]. If sufficient space is available, the module copies its data to SduDataPtr, updates SduLength with the number of actually copied bytes, and signals success with the return value E_OK [SWS_LinIf_00528].

If, however, the buffer size is insufficient, no SDU data is copied and the module returns E_NOT_OK without modifying PduInfoPtr [SWS_LinIf_00528]. With a return value of E_NOT_OK, the caller must under no circumstances use PduInfoPtr, as it may point to invalid data or be a NULL pointer [SWS_LinIf_00528].

Regarding concurrency, the function is reentrant for different PDU-IDs, but non-reentrant for the same PDU-ID [SWS_LinIf_00528].

This usage note is based on the AUTOSAR specification SWS_LinIf_00528.

function <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-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 37f6ac5aed5e Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The configurable callback function <User_TxConfirmation> is called by the lower-layer communication interface module to confirm the transmission of a PDU or the failure of the transmission to an upper layer [SWS_LinIf_00529]. The call is synchronous and returns no value [SWS_LinIf_00529].

Parameters and Semantics

  • TxPduId (In): Identifies the ID of the transmitted PDU of type PduIdType [SWS_LinIf_00529].
  • result (In): Reports the success status of the transmission as Std_ReturnType with the values E_OK upon successful PDU transmission or E_NOT_OK upon failed transmission [SWS_LinIf_00529].

Concurrency and Error Handling

Regarding reentrancy, the function is designed to be reentrant for different PDU-IDs, but must not be called reentrantly for the same PDU-ID [SWS_LinIf_00529]. The module specifies no separate error codes or DET or DEM messages for this interface; failure of a transmission is indicated via the parameter value E_NOT_OK instead [SWS_LinIf_00529]. The actual function identifier is likely determined integration-specifically depending on the configured user layer, since the service is specified as configurable [SWS_LinIf_00529]. Question Q-35de931161f26cb8 (open)

This text was generated by an AI based on the specification.

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

The callback function <User_RxIndication> serves to signal a received PDU from a lower-layer communication interface module to the upper layer [SWS_LinIf_00530]. The call is performed with synchronous semantics and has no return value [SWS_LinIf_00530].

Parameters and interface specification

The function passes two input parameters to the upper layer [SWS_LinIf_00530]:

  • RxPduId: Identifier of the received PDU of type PduIdType [SWS_LinIf_00530].
  • PduInfoPtr: Pointer to a structure of type PduInfoType that provides the payload length (SduLength), a pointer to the buffer with the payload (SduDataPtr), and associated metadata for the PDU [SWS_LinIf_00530].

Neither input/output parameters nor pure output parameters are provided for this interface [SWS_LinIf_00530].

Concurrency and Configuration

Regarding reentrancy, the function is designed to be reentrant for different PDU-IDs, but explicitly specified as non-reentrant for identical PDU-IDs [SWS_LinIf_00530]. Callers must therefore ensure that no overlapping calls occur for the same RxPduId. The function is declared as a configurable interface [SWS_LinIf_00530]; the concrete function name of the upper layer is thus likely determined via module configuration. Question Q-94175e8cd86775b6 (open)

This usage note was generated automatically based on the specification SWS_LinIf_00530.

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

The interface <User_ResponseErrorSignalChanged> serves in the LinIf module as a notification function to report a value change of the response error signal along with the new signal value [SWS_LinIf_00856]. The call is synchronous and has the service ID 0x74 [SWS_LinIf_00856]. Neither input/output parameters nor a return value are provided; the signature is defined with the return type void [SWS_LinIf_00856].

The function expects two pure input values as passing parameters [SWS_LinIf_00856]:

  • Channel (type NetworkHandleType): Unique identification of the affected LIN channel [SWS_LinIf_00856].
  • RespErrSigValue (type boolean): Current value of the response error signal. The parameter is true if the signal is set to 1, otherwise false [SWS_LinIf_00856].

Regarding concurrency and call context, it is specified that the function is reentrant for different channels, but must not be called reentrantly for the same channel [SWS_LinIf_00856]. A functional constraint is that this notification service is applicable exclusively to LIN slave nodes [SWS_LinIf_00856]. The declaration is provided via the header file LinIf_Externals.h [SWS_LinIf_00856].

This text was generated by an AI based on the AUTOSAR R20-11 specification.

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

The callback function <User_SaveConfigurationRequest> (service ID 0x75) notifies a higher-level layer of the reception of a "Save Configuration" request and is declared in LinIf_Externals.h [SWS_LinIf_00857]. This interface is applicable exclusively to LIN slave nodes [SWS_LinIf_00857].

The call is synchronous and specified as reentrant [SWS_LinIf_00857]:

  • Parameters: The affected LIN channel is passed via the input parameter Channel of type NetworkHandleType [SWS_LinIf_00857]. Additional input or output parameters do not exist [SWS_LinIf_00857].
  • Return value: The function returns a value of type boolean [SWS_LinIf_00857]. The return value TRUE indicates that a positive response is to be sent on the LIN bus, whereas FALSE prevents the transmission of any response [SWS_LinIf_00857].

Regarding error handling, the specification defines neither specific error codes nor DET or DEM messages [SWS_LinIf_00857]. Behavior in case of error or rejection is directly controlled via the boolean return value by preventing the transmission of a response with FALSE [SWS_LinIf_00857]. Since the call is classified as reentrant, the function is likely designed for concurrent invocation on different channels [SWS_LinIf_00857]. Question Q-84432030c1aff644 (open)

This text was generated by an AI based on the specification of AUTOSAR R20-11.

type 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

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

type 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

type LinTp_Mode [SWS_LinIf_00629] 📄 PDF

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

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

The enumeration type LinTp_Mode is defined in the header file LinIf.h and defines which schedule table mode can be requested by the LIN Transport Protocol (LIN TP) during a diagnostic session [SWS_LinIf_00629].

The value range comprises three enumeration literals for controlling the schedule switch on the LIN bus [SWS_LinIf_00629]:

  • LINTP_APPLICATIVE_SCHEDULE: Selects the application schedule table for regular message traffic [SWS_LinIf_00629].
  • LINTP_DIAG_REQUEST: Selects the master request schedule table for transmitting diagnostic requests [SWS_LinIf_00629].
  • LINTP_DIAG_RESPONSE: Selects the slave response schedule table for receiving diagnostic responses [SWS_LinIf_00629].

Regarding interaction, the type serves to switch between diagnostic transmissions and regular application communication within the LIN interface [SWS_LinIf_00629]. Specific call contexts, reentrancy properties, or error handlings (such as DET or DEM messages) are not specified in the sources for this pure data type; the type is presumably passed as a function parameter in control calls by the LIN Transport Protocol to the LIN interface. Question Q-1bf7553401882471 (open)

This text was created by an AI and is based exclusively on the specifications of AUTOSAR Release R20-11.

Implementer's Guide to follow (complexity 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#5f98dc71
Content hash
5f98dc71
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINInterface.pdf#nameddest=SWS_LinIf_00198

Initialization and status

Returns the version information of this module.

void LinIf_GetVersionInfo (Std_VersionInfoType* versioninfo);
LinIf_Init function

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 function

Initializes the LIN Transport Layer.

void LinTp_Init (const LinTp_ConfigType* ConfigPtr);

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

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

Services · More

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

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

Callbacks

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

Callouts and expected interfaces

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

Types

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

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