AUTOSAR_SWS_PDURouter
FIG-f1d7d845dc5b72c3
932 × 567 px
3 Release(s)
Figure 9.5: Com to CanIf I-PDU transmission
SHA-256 Inhalts-Fingerabdruck:
f1d7d845dc5b72c3aff2fe028db5dff111ff1f08e1d6efd6d5558ae1bf37f855
✦
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
- Diagrammtyp: UML 2.x Sequenzdiagramm (Interaktionsdiagramm).
- Architektur-Kontext: AUTOSAR Classic Platform, Communication Stack (Com-Stack).
- Funktionale Einordnung: Modellierung des standardmäßigen, ungepufferten 1:1 I-PDU-Sendepfads (Direct Transmission / Non-buffered I-PDU Routing) von der oberen Schicht (
Com) über den Vermittlungsknoten (PduR) an die CAN-Treiberschnittstelle (CanIf). - Zweck: Trennung der Übertragung in einen synchronen Sendeanforderungs-Pfad (Request Phase) und einen entkoppelten, asynchronen Bestätigungspfad (Tx-Confirmation Phase) nach erfolgreichem Bustransfer.
2. Komponenten, Entitäten & Schnittstellen
- Module & Akteure (
«module»):Com(AUTOSAR COM): Signal-Gateway, Signal-Packing, Steuerung von I-PDU-Übertragungsmodi (zyklisch, ereignisgesteuert) und Tx-Deadline-Monitoring. Gekennzeichnet mit Dekompositionssymbol (Sub-Prozesse).PduR(PDU Router): Protokollunabhängiger Routing-Router; statisches Tabellen-Lookup zur PDU-ID-Translation ohne eigene Zwischenpufferung.CanIf(CAN Interface): Hardware-Abstraktionsschicht; Zuordnung von I-PDUs zu Hardware-Transmit-Objekten (HTHs) und Frame-Konstruktion.
- Schnittstellen & Signaturen:
PduR_ComTransmit(Std_ReturnType, PduIdType, const PduInfoType*): Modulspezifische Instanziierung des oberen Sende-Entry-Points (<Up>_Transmit).CanIf_Transmit(Std_ReturnType, PduIdType, const PduInfoType*): Unterer Sende-Aufruf (<Lo>_Transmit).PduR_<User:lo>TxConfirmation(PduIdType, Std_ReturnType): Generischer Lower-Layer-Callback (hier konkret:PduR_CanIfTxConfirmation), signalisiert erfolgreiche Busübertragung.Com_TxConfirmation(PduIdType, Std_ReturnType): Weiterleitung der Bestätigung an das Ursprungsmodul.
- Relevante Datenstrukturen:
PduInfoType: Containerstruktur mitSduDataPtr(Zeiger auf Payload) undSduLength(Länge in Bytes).PduIdType: Konfigurierter Bezeichner zur Adressierung der jeweiligen PDU-Instanz.Std_ReturnType: Statuscode (E_OK,E_NOT_OK).
3. Dynamisches Verhalten & Sequenzablauf
- Sende-Trigger (Synchron):
Cominitiiert die Übertragung durch Aufruf vonPduR_ComTransmit(ComTxPduId, &PduInfo). - Routing & Dispatching (Synchron):
PduRidentifiziert anhand seiner statischen Routing-Tabelle (PduRRoutingTable) die korrespondierende Ziel-PDU (CanIfTxPduId) und ruft direktCanIf_Transmit(CanIfTxPduId, &PduInfo)auf. Es findet keine Pufferung im PduR statt ("PduR will not buffer IPDU"). - Hardware-Pufferung (
copy data()):CanIfkopiert die SDU-Payload synchron viacopy data()in die Hardware-Mailbox des CAN-Controllers (oder den Software-Puffer des CAN-Treibers). - Synchrone Rückkehr:
CanIf_TransmitliefertE_OKanPduRzurück, was unverzüglich als Return-Wert anComdurchgereicht wird. Der synchrone Sendevorgang ist damit abgeschlossen. - Asynchrone Tx-Confirmation: Nach erfolgreicher Arbitrierung und fehlerfreiem ACK auf dem CAN-Bus löst der CAN-Controller einen TX-Interrupt aus (oder Polling via
Can_MainFunction_Write).CanIfsetzt daraufhin den CallbackPduR_<User:lo>TxConfirmation(CanIfTxPduId, E_OK)ab. - Confirmation-Routing:
PduRmappt dieCanIfTxPduIdzurück auf die ursprünglicheComTxPduIdund delegiert viaCom_TxConfirmation(ComTxPduId, E_OK). - Abschluss:
Comsetzt Überwachungs-Timer zurück (z. B. Tx-Confirmation-Timeout) und quittiert den Callback synchron anPduRundCanIf.
4. Normative Relevanz & Entwickler-Hinweise
- Speicher- und Zeiger-Gültigkeit (Zero-Buffer Constraint): Da
PduRdie Daten nicht puffert, muss der Speicherbereich hinterPduInfoType.SduDataPtrexklusiv im Besitz vonCombleiben und unverändert gültig sein, bisCanIf_Transmitsynchron zurückkehrt. Erst nach Abschluss des synchronen Aufrufs (Rückkehr vonPduR_ComTransmit) darfComden Sendepuffer überschreiben. - PDU-ID-Entkopplung (Konfiguration): Die
ComTxPduIdund dieCanIfTxPduIdsind disjunkte Wertebereiche. Sie müssen überPduRRoutingPath(PduRSrcPduzuPduRDestPdu) im PduR-Konfigurationsmodell (PduR_PBcfg.c/ Link-Time) deterministisch aufeinander abgebildet werden. - Fehlerpfade & Abbruchbedingungen:
- Gibt
CanIf_Transmitden StatusE_NOT_OKzurück (z. B. Busy, Hardware-Fehler, PDU-Kanal gestoppt), wirdE_NOT_OKunmittelbar anComdurchgereicht. In diesem Fall unterbleibt die asynchroneTxConfirmationzwingend. - Schlägt der Bus-Transfer fehl oder greift ein Bus-Off, darf kein
E_OKviaPduR_<User:lo>TxConfirmationgemeldet werden.
- Gibt
- Ausführungskontext / ISR-Sicherheit:
- Der Sendeaufruf (
PduR_ComTransmit) erfolgt in der Regel im Task-Kontext (z. B.Com_MainFunctionTxoder OS-Task). - Der Bestätigungspfad (
CanIf_TxConfirmation→PduR_<User:lo>TxConfirmation→Com_TxConfirmation) wird häufig direkt aus dem CAN-Tx-Interrupt-Kontext aufgerufen. Die Implementierung vonCom_TxConfirmationmuss daher kurz, unterbrechungsfest und reentrant gegenüber konkurrierenden Sendeanforderungen sein.
- Der Sendeaufruf (
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.