DEENESPTFRRUARHIKOZHNL
AUTOSAR_CP_SWS_LINInterface FIG-f070feb203a56b00 827 × 538 px 1 Release(s)

Figure 9.16: Go-to-sleep process (slave node)

SHA-256 Inhalts-Fingerabdruck: f070feb203a56b00c6bd01634cc0650ce1923918bf0d82c8217c6a4c3046b991
✦ KI-generierte Bildanalyse & technische Beschreibung Modell: gemini-3.8-flash (via agy) · Rezept figure-series@1 · erstellt am 2026-10-08

1. Diagrammtyp & Architektur-Kontext

  • Diagrammtyp: UML 2.0 Sequenzdiagramm (Interaktionsdiagramm mit bedingtem Ausführungsrahmen opt).
  • Architektur-Kontext: AUTOSAR Classic Platform, Schichtenmodell der Kommunikationsdienste (Communication Services) und MCAL.
  • Funktionale Einordnung: Spezifikation des geregelten Übergangs in den Schlafzustand (Go-to-sleep process) für einen LIN-Slave-Knoten (AUTOSAR_SWS_LINInterface, Kapitel Channel State Modes). Zeigt das koordinierte Herunterfahren von LIN-Controller und LIN-Transceiver nach Empfang eines Sleep-Befehls oder Erkennung eines Bus-Idle-Zustands.

2. Komponenten, Entitäten & Schnittstellen

  • Akteure / Module (Lebenslinien):
    • «module» LinIf User: Obere Schicht (typischerweise LinSM – LIN State Manager, aggregiert durch BswM/ComM).
    • «module» LinIf: Vermittlungs- und Abstraktionsschicht (AUTOSAR LIN Interface).
    • «module» Lin: MCAL-Treiber (AUTOSAR LIN Driver zur Ansteuerung der On-Chip UART/LIN-Hardware; versehen mit Controller-/Hardware-Multiplizitätssymbol).
    • «module» LinTrcv: MCAL- bzw. BSW-Treiber für externe LIN-Transceiver-Bausteine.
  • Interaktionsrahmen / Operatoren:
    • opt Transceiver Driver is supported: Bedingter Block; wird nur durchlaufen, wenn ein LIN-Transceiver-Treiber im Stack konfiguriert ist (LinIfLinTrcvDriverSupport == TRUE).
  • Schnittstellen & Parameter:
    • <User>_GotoSleepIndication(channel): Callback-Schnittstelle von LinIf an den konfigurierten User (LinSM).
    • LinIf_GotoSleep(Channel): Std_ReturnType: Synchrone Steuerungs-API zur Einleitung des Controller-Schlafmodus.
    • Lin_GoToSleepInternal(Channel): MCAL-Treiberschnittstelle zum lokalen Versetzen der Controller-Hardware in den Low-Power-/Sleep-Modus.
    • SetMode(): Modulinterne Zustandsaktualisierung innerhalb von LinIf.
    • <User>_GotoSleepConfirmation(channel, TRUE): Asynchroner/quittierender Bestätigungs-Callback an den User mit Erfolgsstatus.
    • LinIf_SetTrcvMode(Channel, LINTRCV_TRCV_MODE_SLEEP): Schnittstelle zur Transceiver-Modusumschaltung.
    • LinTrcv_SetOpMode(LinNetwork, LINTRCV_TRCV_MODE_SLEEP): Hardwarenahe API zur Umschaltung des Transceiver-Betriebsmodus.

3. Dynamisches Verhalten & Sequenzablauf

  1. Trigger & Signalisierung (Indication):
    • Die Slave-Hardware detektiert entweder einen Go-To-Sleep-Frame (Master Request Frame mit Identifier 0x3C und erstem Datenbyte 0x00) oder das Ablaufen des Bus-Idle-Timeouts (mindestens 4 bis 10 Sekunden Inaktivität gemäß LIN-Spezifikation).
    • LinIf benachrichtigt die überlagerte Schicht via <User>_GotoSleepIndication(channel).
  2. Kanal-Schlaf-Anforderung:
    • Der LinIf User reagiert mit dem synchronen Aufruf LinIf_GotoSleep(Channel).
  3. Hardware-Controller-Abschaltung:
    • LinIf ruft am LIN-Treiber Lin_GoToSleepInternal(Channel) auf.
    • Wichtig: Da es sich um einen Slave handelt, darf kein Wakeup-/Sleep-Frame auf den Bus gelegt werden; der Treiber deaktiviert lediglich Rx/Tx-Interrupts bzw. versetzt den On-Chip-Controller intern in den energiesparenden Zustand.
  4. Zustandsübergang & Bestätigung:
    • LinIf führt die interne Statusänderung SetMode() auf LINIF_CHANNEL_SLEEP aus.
    • LinIf informiert den User mittels <User>_GotoSleepConfirmation(channel, TRUE) über den erfolgreichen Übergang.
  5. Transceiver-Schlaf-Sequenz (opt):
    • Sofern konfiguriert, fordert LinIf User die Abschaltung des Transceivers über LinIf_SetTrcvMode(Channel, LINTRCV_TRCV_MODE_SLEEP) an.
    • LinIf übersetzt den logischen Channel auf das physikalische LinNetwork und ruft LinTrcv_SetOpMode(LinNetwork, LINTRCV_TRCV_MODE_SLEEP) auf.
    • Der Transceiver wechselt in den Sleep-/Standby-Modus mit aktiver Wake-up-Erkennung (Bus-Monitor aktiv).

4. Normative Relevanz & Entwickler-Hinweise

  • Slave- vs. Master-Semantik: Im Slave-Kontext ist der Aufruf von Lin_GoToSleepInternal() zwingend normativ vorgeschrieben. Die Standard-API Lin_GoToSleep() ist ausschließlich LIN-Mastern vorbehalten, da nur diese autonom Sleep-Frames auf den Bus emittieren dürfen.
  • Zweistufige Entkopplung: LinIf schaltet den Transceiver nach LinIf_GotoSleep() nicht implizit ab. Die Koordination der Transceiver-Modi verbleibt in der Hoheit des LinSM (LinIf User). Erst nach positivem <User>_GotoSleepConfirmation() darf der Transceiver in den Schlafmodus versetzt werden, um fehlerhafte Busflanken oder unvollständige Controller-Abschaltungen zu verhindern.
  • Kanal- und Netzwerk-Mapping: Konfiguratoren müssen sicherstellen, dass die Zuordnung zwischen LinIfChannel und LinTrcv-Instanz (LinNetwork) in der BSW-Konfiguration konsistent hinterlegt ist (LinIfChannelId zu LinIfTrcvId).
  • Wake-up-Pfad-Vorbereitung: Durch das Setzen von LINTRCV_TRCV_MODE_SLEEP wird der Transceiver so parametriert, dass nachfolgende dominante Impulse auf dem Bus als externes Wake-up-Ereignis via ICU/EcuM verarbeitet werden können.

Versionsvergleich KI-generiert · gemini-3.8-flash (via agy)

R22-11 → R23-11 keine inhaltliche Änderung Vorgänger: FIG-70b85386dd3e6cc2

Keine inhaltlichen Änderungen erkennbar.

R23-11 → R24-11 normative Änderung Nachfolger: FIG-9c3d9ab0cbfea8d2
  • <User>_GotoSleepIndication: Parameter channel entfernt (<User>_GotoSleepIndication(channel) -> <User>_GotoSleepIndication()).
  • LinIf_GotoSleep: Parameter Channel und Rückgabetyp : Std_ReturnType entfernt (LinIf_GotoSleep(Channel): Std_ReturnType -> LinIf_GotoSleep()).
  • Lin_GoToSleepInternal: Parameter Channel entfernt (Lin_GoToSleepInternal(Channel) -> Lin_GoToSleepInternal()).
  • <User>_GotoSleepConfirmation: Parameter channel, TRUE entfernt (<User>_GotoSleepConfirmation(channel, TRUE) -> <User>_GotoSleepConfirmation()).
  • LinIf_SetTrcvMode: Parameter Channel entfernt (LinIf_SetTrcvMode(Channel, LINTRCV_TRCV_MODE_SLEEP) -> LinIf_SetTrcvMode(LINTRCV_TRCV_MODE_SLEEP)).
  • LinTrcv_SetOpMode: Parameter LinNetwork entfernt (LinTrcv_SetOpMode(LinNetwork, LINTRCV_TRCV_MODE_SLEEP) -> LinTrcv_SetOpMode(LINTRCV_TRCV_MODE_SLEEP)).

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

«module» | Lin | «module» | LinIf | «module» | LinTrcv | «module» | LinIf User | opt Transceiver Driver is supported | Lin_GoToSleepInternal(Channel) | LinIf_GotoSleep(Channel): Std_ReturnType | <User>_GotoSleepIndication(channel) | LinTrcv_SetOpMode(LinNetwork, LINTRCV_TRCV_MODE_SLEEP) | LinIf_SetTrcvMode(Channel, LINTRCV_TRCV_MODE_SLEEP) | <User>_GotoSleepConfirmation(channel, TRUE) | SetMode()

Begleitender Spezifikationstext:

Specification of LIN Interface AUTOSAR CP R23-11 This use case in Figure 9.16 shows the execution of the sleep transition, either caused by reception of a go-to-sleep command or by the detection of a bus idle condition. «module» Lin «module» LinIf «module» LinTrcv «module» LinIf User opt Transceiver Driver is supported Lin_GoToSleepInternal(Channel) LinIf_GotoSleep(Channel): Std_ReturnType <User>_GotoSleepIndication(channel) LinTrcv_SetOpMode(LinNetwork, LINTRCV_TRCV_MODE_SLEEP) LinIf_SetTrcvMode(Channel, LINTRCV_TRCV_MODE_SLEEP) <User>_GotoSleepConfirmation(channel, TRUE) SetMode() Figure 9.16: Go-to-sleep process (slave node) 9.9 Wake up request The wake-up use cases are described in chapter 9 of the AUTOSAR Specification of the ECU State Manager [10]. 9.10 Internal wake-up There are two different use cases in Figure 9.17: • The first shows when the upper layer request wake-up of the LIN cluster AND the cluster is in sleep. • The second shows when the upper layer request wake-up of the LIN cluster AND the cluster is awake. 129 of 181 Document ID 73: AUTOSAR_CP_SWS_LINInterface

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R23-11 AUTOSAR_CP_SWS_LINInterface S. 129 9.16 Figure 9.16: Go-to-sleep process (slave node)