DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_CANInterface FIG-017ad7c30d29599c 868 × 559 px 1 Release(s)

Figure 9.11: BusOff notification

SHA-256 Inhalts-Fingerabdruck: 017ad7c30d29599cd40cfd9976fe9ffa551488ec05b4d2e304e8c336c081e47c
✦ 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).
    • CanIf_User_Cbk: 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]).
    • Change to CAN_CS_STOPPED(): Interne Modusaktualisierung im CanIf.
    • 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. Zustandsübergang & Buffer-Flush:
    • CanIf setzt den internen Controller-Zustand auf CAN_CS_STOPPED.
    • 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)

R4.3.1 → R18-10_R4.4.0_R1.5.0 redaktionell Vorgänger: FIG-48f83acdc7cbdacf
  • Lifeline «interface» CanIf_User_Cbk: Stereotyp «interface» wurde entfernt (Bezeichnung nun CanIf_User_Cbk).
R18-10_R4.4.0_R1.5.0 → R19-11 normative Änderung Nachfolger: FIG-17a6baaf872c46f1
  • Lifeline CanIf: Der interne Selbstaufruf Change to CAN_CS_STOPPED() wurde entfernt.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

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

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R18-10_R4.4.0_R1.5.0 AUTOSAR_SWS_CANInterface S. 146 9.11 Figure 9.11: BusOff notification