DEENESPTFRRUARHIKOZHNL
AUTOSAR_CP_SWS_CANInterface FIG-f2c5632335ce93d0 826 × 532 px 4 Release(s)

Figure 9.11: BusOff notification

SHA-256 Inhalts-Fingerabdruck: f2c5632335ce93d0fc658e76a55fb8b2cc85f0b94ca909cd4d1b4a27b68bec8c
✦ 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

  • Klassifikation: UML-Sequenzdiagramm.
  • Funktionale Einordnung: AUTOSAR Classic Platform (CP), Kommunikationsstack (CAN-Subsystem). Spezifiziert die synchrone Benachrichtigungskette und Fehlerbehandlung bei Detektion eines CAN Bus-Off-Zustands (Transmit Error Counter TEC > 255) von der Hardware-Peripherie über den MCAL-Treiber (Can) und die Abstraktionsschicht (CanIf) bis zur zuständigen oberen Schicht (CanIf_User_Cbk, primär CanSM).

2. Komponenten, Entitäten & Schnittstellen

  • Akteure / Lifelines:
    • «Peripheral» CanController: Physikalische CAN-Hardware / On-Chip-Controller.
    • «module» Can: Hardwarenaher MCAL-Treiber (CAN Driver).
    • «module» CanIf: Hardware-unabhängige CAN-Schnittstelle (CAN Interface).
    • <User_ControllerBusOff>: Obere Schicht / Anwender-Callback (normativ: CanSM_ControllerBusOff, alternativ CDD).
  • APIs & Interaktionen:
    • BusOff Detection(): Hardware-Signalierung (Interrupt oder Status-Register-Polling).
    • Set CAN Controller to STOPPED mode, if necessary(): Treiber-Registerzugriff zur Erzwingung des Zustands CAN_CS_STOPPED.
    • CanIf_ControllerBusOff(uint8 ControllerId): Normative Treiber-zu-Interface-Callback-API ([SWS_CANIF_00218]).
    • Reset transmit queue(): Pufferverwaltungs-Aktion im CanIf.
    • <User_ControllerBusOff>(uint8 ControllerId): Konfigurierbarer Callback ([SWS_CANIF_00014], typischerweise CanSM_ControllerBusOff).

3. Dynamisches Verhalten & Sequenzablauf

  1. Trigger: CanController wechselt hardwaredenseitig in den Bus-Off-Zustand. Auslösung von BusOff Detection() an das Modul Can (via Bus-Off-ISR oder Polling-Zyklus in Can_MainFunction_BusOff()).
  2. Hardware-Stopp: Modul Can prüft den Controller-Status und setzt diesen bei Bedarf aktiv in CAN_CS_STOPPED (Set CAN Controller to STOPPED mode, if necessary()), um jegliche weitere Busaktivität sicher zu unterbinden.
  3. Notification-Kaskade: Can ruft synchron CanIf_ControllerBusOff(ControllerId) auf.
  4. Buffer-Flush: CanIf leert synchron die softwareseitigen Sende-Warteschlangen (Reset transmit queue()). Verhindert das Re-Transmittieren veralteter L-PDUs nach Re-Initialisierung/Neustart des Controllers.
  5. Upper-Layer-Benachrichtigung: CanIf delegiert das Ereignis synchron an den konfigurierten Callback <User_ControllerBusOff>(ControllerId).
  6. Return-Pfad: Synchroner Rücksprung über alle Schichten bis zur Terminierung des ISR- bzw. Polling-Kontexts.

4. Normative Relevanz & Entwickler-Hinweise

  • Ausführungskontext (ISR vs. Task): Ist CanBusoffProcessing auf INTERRUPT konfiguriert, wird die gesamte Benachrichtigungskette (Can → CanIf → CanSM) im Interrupt-Kontext ausgeführt. <User_ControllerBusOff> darf daher weder blockieren noch zeitkritische Operationen ausführen. Bei POLLING läuft die Kaskade im Kontext von Can_MainFunction_BusOff().
  • Bus-Off-Recovery-Trigger: Der Callback startet in der CanSM den normativen Bus-Off-Recovery-Zustandsautomaten (BOR-Algorithmus mit schnellen/langsamen Recovery-Timern T_BOR_1 / T_BOR_2).
  • Queue-Verhalten & Datenverlust: Durch Reset transmit queue() werden alle im CanIf gepufferten Tx-PDUs unwiderruflich verworfen (CanIfPublicTxBuffering == TRUE). Höhere Layer (PduR, Com) erhalten keine explizite Cancellation-Benachrichtigung und müssen Timeouts/Re-Transmissionen über Com-Deadline-Monitoring abfangen.
  • Konfigurationsparameter:
    • CanIfDispatchUserCtrlBusOffUL: Konfiguration des Zielmoduls (Standard: CAN_SM, alternativ CDD).
    • CanIfDispatchUserCtrlBusOffName: Spezifischer Funktionsbezeichner des Callbacks.

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

R20-11 → R21-11 redaktionell Vorgänger: FIG-17a6baaf872c46f1
  • Lifeline CanIf_User_Cbk: Umbenannt in <User_ControllerBusOff>.
R23-11 → R24-11 keine inhaltliche Änderung Nachfolger: FIG-dbcd1d9253670e06

Keine inhaltlichen Änderungen erkennbar.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

«module» | CanIf | «Peripheral» | CanController | «module» | Can |             |           |                    |         |              | <User_ControllerBusOff> | <User_ControllerBusOff>(uint8) | Reset transmit queue() | Set CAN Controller to STOPPED mode, if necessary() | CanIf_ControllerBusOff() | Set CAN Controller to STOPPED mode, if necessary() | <User_ControllerBusOff>() | CanIf_ControllerBusOff(uint8) | BusOff Detection() | BusOff Detection()

Vorkommen in AUTOSAR-Releases (4)

Release Dokument Seite Nr. Bildunterschrift im Dokument
EXTERN AUTOSAR_SWS_CANInterface S. 154 9.11 Figure 9.11: BusOff notification
R21-11 AUTOSAR_SWS_CANInterface S. 147 9.11 Figure 9.11: BusOff notification
R22-11 AUTOSAR_SWS_CANInterface S. 154 9.11 Figure 9.11: BusOff notification
R23-11 AUTOSAR_CP_SWS_CANInterface S. 154 9.11 Figure 9.11: BusOff notification