AUTOSAR_SWS_CANInterface
FIG-48f83acdc7cbdacf
867 × 559 px
1 Release(s)
Figure 9.12: BusOff notification
SHA-256 Inhalts-Fingerabdruck:
48f83acdc7cbdacfc62d81bb88982f2e8752586e5725e568985fe45235a498bb
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-description@2 · erstellt am 2026-10-07
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ärCanSM).
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).«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 ZustandsCAN_CS_STOPPED.CanIf_ControllerBusOff(uint8 ControllerId): Normative Treiber-zu-Interface-Callback-API ([SWS_CANIF_00218]).Change to CAN_CS_STOPPED(): Interne Modusaktualisierung imCanIf.Reset transmit queue(): Pufferverwaltungs-Aktion imCanIf.<User_ControllerBusOff>(uint8 ControllerId): Konfigurierbarer Callback ([SWS_CANIF_00014], typischerweiseCanSM_ControllerBusOff).
3. Dynamisches Verhalten & Sequenzablauf
- Trigger:
CanControllerwechselt hardwaredenseitig in den Bus-Off-Zustand. Auslösung vonBusOff Detection()an das ModulCan(via Bus-Off-ISR oder Polling-Zyklus inCan_MainFunction_BusOff()). - Hardware-Stopp: Modul
Canprüft den Controller-Status und setzt diesen bei Bedarf aktiv inCAN_CS_STOPPED(Set CAN Controller to STOPPED mode, if necessary()), um jegliche weitere Busaktivität sicher zu unterbinden. - Notification-Kaskade:
Canruft synchronCanIf_ControllerBusOff(ControllerId)auf. - Zustandsübergang & Buffer-Flush:
CanIfsetzt den internen Controller-Zustand aufCAN_CS_STOPPED.CanIfleert synchron die softwareseitigen Sende-Warteschlangen (Reset transmit queue()). Verhindert das Re-Transmittieren veralteter L-PDUs nach Re-Initialisierung/Neustart des Controllers.
- Upper-Layer-Benachrichtigung:
CanIfdelegiert das Ereignis synchron an den konfigurierten Callback<User_ControllerBusOff>(ControllerId). - 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
CanBusoffProcessingaufINTERRUPTkonfiguriert, wird die gesamte Benachrichtigungskette (Can→CanIf→CanSM) im Interrupt-Kontext ausgeführt.<User_ControllerBusOff>darf daher weder blockieren noch zeitkritische Operationen ausführen. BeiPOLLINGläuft die Kaskade im Kontext vonCan_MainFunction_BusOff(). - Bus-Off-Recovery-Trigger: Der Callback startet in der
CanSMden 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 imCanIfgepufferten 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, alternativCDD).CanIfDispatchUserCtrlBusOffName: Spezifischer Funktionsbezeichner des Callbacks.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.