AUTOSAR_SWS_PDURouter
FIG-bba416539b3731fc
928 × 994 px
2 Release(s)
Figure 9.4: CanTp to Dcm TP PDU reception
SHA-256 Inhalts-Fingerabdruck:
bba416539b3731fc5cd7b6bf3eaea1b7b7fd05c07cb196e3f2372d280350531f
✦
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-Sequenzdiagramm (Interaktionsdiagramm mit synchronen Funktionsaufrufen und Rückgabewerten).
- Architektur-Kontext: AUTOSAR Classic Platform (CP), Schichtenmodell der Basissoftware (BSW). Dargestellt ist das TP-basierte Routing (Transport Protocol) für segmentierte Diagnose- und Kommunikationsdaten (Large SDUs) von der Kommunikations-Treiberschicht (
CanTp) über den zentralen Router (PduR) zum Diagnose-Kommunikationsmanager (Dcm). - Funktionale Einordnung: Veranschaulicht den 1:1-Direktdurchlauf eines segmentierten I-PDU-Empfangs über Transportprotokoll-Schnittstellen ohne Gateway-Zwischenpufferung (Upper Layer =
Dcm).
2. Komponenten, Entitäten & Schnittstellen
- Beteiligte BSW-Module (Akteure / Lifelines):
«module» CanTp: Transport-Layer-Modul für CAN (ISO 15765-2), zuständig für Segmentierung, Reassemblierung und Flow Control.«module» PduR: PDU Router, agiert hier als zustandsloser/zustandsarmer Vermittler (Zero-Cost-/Routing-Schicht) und übersetzt CanTp-spezifische API-Signaturen in generische obere TP-Schnittstellen.«module» Dcm: Diagnosesteuergerät (UDS / OBD), Endempfänger der reassemblierten Diagnosenachricht; stellt den linearen Empfangspuffer bereit.
- Schnittstellen & Funktionssignaturen (AUTOSAR TP API):
StartOfReception:PduR_CanTpStartOfReception(id, info, TpSduLength, bufferSizePtr)→Dcm_StartOfReception(id, info, TpSduLength, bufferSizePtr)- Rückgabetyp:
BufReq_ReturnType(BUFREQ_OK,BUFREQ_E_NOT_OK,BUFREQ_E_OVFL,BUFREQ_E_BUSY).
CopyRxData:PduR_CanTpCopyRxData(id, info, bufferSizePtr)→Dcm_CopyRxData(id, info, bufferSizePtr)- Rückgabetyp:
BufReq_ReturnType.
RxIndication:PduR_CanTpRxIndication(id, result)→Dcm_TpRxIndication(id, result)- Rückgabetyp:
voidbzw. Statusübergabe viaStd_ReturnType(E_OK,E_NOT_OK).
- Datenstrukturen:
PduIdType: Identifikator der I-PDU (ID-Mapping zwischen CanTp-Rx-PDU-ID und Dcm-Rx-PDU-ID via PduR-Routing-Table).PduInfoType*: Zeiger auf Puffer (SduDataPtr) und Nutzdatenlänge (SduLength).PduLengthType: Gesamtlänge der Nachricht bzw. verbleibende Puffergröße.
3. Dynamisches Verhalten & Sequenzablauf
- Initialisierung / Pufferanforderung (
StartOfReception):- Trigger:
CanTpempfängt einen Single Frame (SF) oder First Frame (FF). - Aufruf:
PduR_CanTpStartOfReceptionwird synchron durchCanTpaufgerufen.PduRmappt diePduIdTypeauf die Ziel-PDU desDcmund ruft synchronDcm_StartOfReceptionauf. Dcmreserviert den linearen Diagnosepuffer anhand vonTpSduLengthund gibtBUFREQ_OKzusammen mit der verfügbaren Puffergröße (bufferSizePtr) zurück.- Rückmeldung propagiert synchron zurück an
CanTp. Bei positivem Status sendetCanTpden Flow Control Frame (FC-CTS).
- Trigger:
- Segmentierte Datenübertragung (
CopyRxData-Schleife):- Trigger:
CanTpempfängt aufeinanderfolgende Consecutive Frames (CF) bzw. Datenbytes aus dem SF/FF. - Schleife (im Diagramm dreifach dargestellt für aufeinanderfolgende CFs):
CanTpruft synchronPduR_CanTpCopyRxData(...)auf.PduRleitet direkt anDcm_CopyRxData(...)weiter.- Lokale Aktion im
Dcm:copy data()kopiert die Nutzdaten (info->SduDataPtr) in den Ziel-Diagnosepuffer und dekrementiert die verbleibende Puffergröße (bufferSizePtr). DcmliefertBUFREQ_OKund aktualisierte Restpuffergröße synchron zurück anPduRundCanTp.
- Trigger:
- Abschluss & Validierung (
RxIndication):- Trigger: Alle deklarierten Segmente wurden erfolgreich von
CanTpreassembliert und kopiert. - Aufruf:
CanTpsignalisiert den erfolgreichen Abschluss viaPduR_CanTpRxIndication(id, E_OK). PduRdelegiert synchron anDcm_TpRxIndication(id, E_OK).Dcmschließt den Empfang ab, startet die Protokoll-/Dienstvalidierung (z. B. UDS Service Handler) und quittiert die Rückkehr synchron überPduRanCanTp.
- Trigger: Alle deklarierten Segmente wurden erfolgreich von
- Fehler- und Abbruchpfade (Spezifikationslogik):
- Gibt
Dcm_StartOfReceptionBUFREQ_E_OVFLzurück, brichtCanTpden Vorgang mit Flow Control Overflow (FC-OVFL) ab. - Liefert
Dcm_CopyRxDataBUFREQ_E_NOT_OK, terminiertCanTpdie Übertragung und signalisiert viaPduR_CanTpRxIndication(id, E_NOT_OK)den Verbindungsabbruch.
- Gibt
4. Normative Relevanz & Entwickler-Hinweise
- Zero-Buffer-Routing im PduR: Der PDU Router allokiert in diesem TP-Szenario keinen eigenen Zwischenpuffer; er agiert als reine Wrapper-/Routing-Schicht. Das Routing erfolgt synchron im Kontext des
CanTp-Interrupts bzw. derCanTp_MainFunction. - Ausführungs- und Interrupt-Kontext: Da alle Calls synchron kaskadieren (
CanTp→PduR→Dcm), darfDcm_CopyRxDataundDcm_StartOfReceptionkeine blockierenden Operationen, Mutex-Waits oder langwierige Berechnungen enthalten. - ID-Mapping-Konfiguration (
PduR_PBcfg.c/PduR_Cfg.h): Die Zuordnung der Quell-PDU-ID ausCanTpzur Ziel-PDU-ID imDcmmuss im Routing-Pfad (PduRRoutingPath,PduRDestPdu) als 1:1-Direktbeziehung ohne Gateway-FIFO konfiguriert sein (PDUR_DIRECT). - Puffer-Konsistenz: Der
Dcmmuss gewährleisten, dass der Puffer zwischenDcm_StartOfReceptionundDcm_TpRxIndicationgelockt bleibt und vor nebenläufigen Zugriffen geschützt ist.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.