AUTOSAR_CP_SWS_PDURouter
FIG-235d5512eb77db88
751 × 382 px
1 Release(s)
Figure 9.1: CanIf to COM I-PDU reception
SHA-256 Inhalts-Fingerabdruck:
235d5512eb77db88e53a08e78bb32db89238bc348dbc1ef4a546d50805898ce2
✦
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
- Diagrammtyp: UML-Sequenzdiagramm (Interaktionsdiagramm).
- Technischer Zweck: Spezifikation des synchronen 1:1-Empfangspfads einer unfragmentierten Kommunikations-PDU (I-PDU) von der unteren Abstraktionsschicht (Communication Interface) zur oberen Kommunikationsschicht (COM).
- Architektur-Einordnung: AUTOSAR Classic Platform (CP), Schichtenmodell der Basissoftware (BSW). Veranschaulicht die Rolle des PDU Routers (
PduR) als zustandsloser Dispatcher bei direkter Routing-Beziehung ohne Gateway-Kopplung und ohne Zwischenpufferung (PduRBuffer= 0).
2. Komponenten, Entitäten & Schnittstellen
- Akteure / BSW-Module (Stereotyp
«module»):CanIf(CAN Interface, Lower Layer /<User:Lo>): Treiberabstraktion für CAN-Controller/Transceiver, Initiator des Empfangsevents.PduR(PDU Router): Zentraler BSW-Router im Service Layer zur Entkopplung und Weiterleitung von PDUs.Com(AUTOSAR COM, Upper Layer /<User:Up>): Signalorientierte Verarbeitungsschicht (Signal-Extraktion, Filterung, Benachrichtigung der Applikation via RTE).
- Schnittstellen & Signaturen:
PduR_<User:Lo>RxIndication(PduIdType RxPduId, const PduInfoType* PduInfoPtr):- Konkrete Instanz:
PduR_CanIfRxIndication(...). - Parameter:
RxPduId(Quell-ID aus Sicht des CanIf),PduInfoPtr(Zeiger aufSduDataPtr,MetaDataPtr,SduLength).
- Konkrete Instanz:
Com_RxIndication(PduIdType RxPduId, const PduInfoType* PduInfoPtr):- Ziel-API des COM-Moduls, aufgerufen mit der konfigurierten Ziel-PDU-ID (
ComRxPduId).
- Ziel-API des COM-Moduls, aufgerufen mit der konfigurierten Ziel-PDU-ID (
- Interne Aktionen & Notizen:
copy buffer(): Lokale Pufferoperation innerhalb desCom-Moduls (Kopieren der Nutzdaten aus dem temporären RX-Treiberpuffer in interne COM-Signalpuffer).- Annotation: "Reception of IPDU going directly to COM. No buffering in PduR is needed."
3. Dynamisches Verhalten & Sequenzablauf
- Trigger:
CanIfdetektiert den erfolgreichen Empfang eines CAN-Frames (entweder via RX-Interrupt des CAN-Controllers oder zyklisch im Kontext vonCan_MainFunction_Read()/CanIf_MainFunction_RxIndication()). - Aufruf PduR:
CanIfruft synchronPduR_<User:Lo>RxIndication(CanIfRxPduId, PduInfoPtr)auf. - PduR-Routing:
PduRführt ein O(1)-Tabellen-Lookup (Array-Indexierung anhandCanIfRxPduId) durch.PduRvalidiert den PDU-Zustand (sofern Initialisierung und Det aktiviert sind; Det-Prüfungen aufPDUR_E_UNINIT,PDUR_E_PDU_ID_INVALID,PDUR_E_PARAM_POINTER).- Da es sich um Direktrouting zu
Comhandelt, allokiertPduRkeinen Speicher und blockiert nicht.
- Weiterleitung an Com:
PduRruft synchronCom_RxIndication(TargetComRxPduId, PduInfoPtr)auf. - Verarbeitung in Com (
copy buffer()):- Das COM-Modul kopiert die Nutzdaten (
PduInfoPtr->SduDataPtr) sofort synchron in seinen eigenen internen Puffer, um Signalinkonsistenzen bei nachfolgenden Re-Entrancies oder dem Überschreiben der Hardware-/Treiber-Mailbox zu verhindern. - Aktualisierung der Empfangs-Deadline-Überwachung (Reception Deadline Monitoring) und Auswertung von Rx-Filtern.
- Das COM-Modul kopiert die Nutzdaten (
- Rückkehr: Synchroner Stack-Unwind (
return void) vonComüberPduRzurück zuCanIf.
4. Normative Relevanz & Entwickler-Hinweise
- Ausführungskontext & Latenz:
- Der gesamte Calltree läuft synchron im Ausführungskontext des Aufrufers (
CanIf). - Achtung bei Interrupt-Kontext: Ist
CanIfRxIndicationin einem ISR-Kontext konfiguriert (CANIF_RX_INDICATION_INTERRUPT), blockiertCom_RxIndicationsamt Signal-Entpackung und Pufferkopie den Interrupt-Service. Bei komplexen PDUs sollte im CanIf/CAN-Treiber Polling (CanIf_MainFunction_Read) gewählt oder inComeine signalbasierte Deferred-Verarbeitung (COM_DEFERRED) parametriert werden.
- Der gesamte Calltree läuft synchron im Ausführungskontext des Aufrufers (
- PduR-Konfiguration:
- Erfordert eine
PduRRoutingPath-Konfiguration mitPduRSrcPdu(Referenz auf CanIf-PDU) und genau einemPduRDestPdu(Referenz auf Com-PDU). PduRDestPduDataProvisionmuss aufDIRECT(nichtGATEWAY) konfiguriert sein;PduRQueueDepthbleibt unkonfiguriert (0), da kein TP- oder Gateway-FIFO-Puffer erforderlich ist.
- Erfordert eine
- Puffer-Lebenszyklus:
- Der Speicherbereich hinter
PduInfoPtr->SduDataPtrist nur für die Dauer des Funktionsaufrufs gültig. Der Upper-Layer (Com) muss die Daten zwingend synchron abziehen (copy buffer()); ein Speichern des Zeigers ist nach AUTOSAR-SWS unzulässig.
- Der Speicherbereich hinter
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.