AUTOSAR_CP_SWS_IOHardwareAbstraction
FIG-b2c736baa0e1137a
844 × 784 px
1 Release(s)
Figure 9.1: Sequence diagram - ADC conversion
SHA-256 Inhalts-Fingerabdruck:
b2c736baa0e1137a456c83a3218f78a22985bc6c7f3ad586dee7451202e59cac
✦
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 (Interaktionsdiagramm).
- Technischer Zweck: Spezifikation des end-to-end Signalflusses einer asynchronen Analog-Digital-Wandlung (ADC) im AUTOSAR Classic Platform Schichtenmodell.
- Architektur-Einordnung: Zeigt das Zusammenspiel zwischen Application Layer (
Sensor / Actuator Component), ECU Abstraction Layer (IoHwAb), Microcontroller Abstraction Layer (Adc), System Services (EcuM) und der Mikrocontroller-Peripherie (ADC Conversion Unit). DieIoHwAbkapselt dabei MCAL-Kanalgruppen, wandelt Rohwerte in physikalische/elektrische Größen (mV/V) und entkoppelt den ISR-Kontext von der Applikation via RTE-Events.
2. Komponenten, Entitäten & Schnittstellen
Akteure & Lebenslinien
«SensorActuatorHW» Sensor / Actuator Component: AUTOSAR Software-Component (SWC) im Application Layer; konsumiert Sensordaten.«module» EcuM: ECU State Manager (System Services); steuert die BSW-Startsequenz (Init-Phasen).«module» IoHwAb: I/O Hardware Abstraction; vermittelt zwischen applikativen Signalbezeichnern (af_pressure) und MCAL-Kanalgruppen.«module» Adc: MCAL-Treiber zur Konfiguration und Ansteuerung der Analog-Digital-Wandlerperipherie.«Peripheral» ADC Conversion Unit: Hardware-Modul auf dem Mikrocontroller (Wandlerkern, Sample & Hold, SAR/Delta-Sigma).
Datenstrukturen & Parameter (gemäß Notizbox & Signaturen)
- Gruppe & Kanäle:
Group 1umfasstChannel 1undChannel 2; Gruppenbenachrichtigung (Notification mechanism) ist aktiv. - Signale & Typen:
af_pressure: Logischer Signalbezeichner für den Drucksensor.Adc_ConfigType,IoHwAb<Init_Id>_ConfigType: Post-Build- bzw. Pre-Compile-Konfigurationsstrukturen.Adc_GroupType,Adc_ChannelType,Adc_ValueType: AUTOSAR MCAL-Standard-Datentypen für Gruppen-ID, Kanal-ID und Rohwert.
3. Dynamisches Verhalten & Sequenzablauf
Phase 1: Initialisierung (Bootstrapping)
EcuMinitialisiert den MCAL-Treiber synchron viaAdc_Init(const Adc_ConfigType*).EcuMinitialisiert die Abstraktionsschicht partitions-/phasenabhängig viaIoHwAb_Init<Init_Id>(const IoHwAb<Init_Id>_ConfigType*).IoHwAbaktiviert die Interrupt-Callback-Delegation des Treibers für die Zielgruppe:Adc_EnableGroupNotification(Adc_GroupType).
Phase 2: Asynchroner Wandlungstrigger
- Die SWC stößt die Erfassung an:
IoHwAb_GetVoltage(af_pressure). IoHwAbmappt das Signalaf_pressureauf die entsprechende ADC-Gruppe und triggert die Konvertierung:Adc_StartGroupConversion(Adc_GroupType).Adcweist die Hardware an:start conversion().- Der Aufruf kehrt unverzüglich nicht-blockierend über
IoHwAb_GetVoltage()an die SWC zurück.
Phase 3: Hardware-Konvertierung, ISR & Callback
- Nach Abschluss der Wandlung feuert die Peripherie einen Hardware-Interrupt:
Interrupt(). - Die ISR im
Adc-MCAL ruft die konfigurierte Benachrichtigungsfunktion auf:IoHwAb_Adc_Notification_Group1(). - Im Callback-Kontext liest
IoHwAbdas Wandlungsergebnis des Kanals:Adc_OnDemandReadChannel(Adc_ChannelType): Adc_ValueType. IoHwAbsignalisiert die Datenverfügbarkeit an die RTE / SWC:SetRTEEvent().
Phase 4: Synchrones Auslesen des Pufferwerts
- Die durch das RTE-Event aktivierte SWC ruft
IoHwAb_ReadVoltage(af_pressure, &buffer)auf. IoHwAbskaliert den gepufferten Rohwert ggf. in eine physikalische Spannung und liefert ihn synchron in den übergebenen Speicherbereich (buffer) zurück.
4. Normative Relevanz & Entwickler-Hinweise
- Kontextwechsel & ISR-Restriktionen:
IoHwAb_Adc_Notification_Group1()wird im ISR-Kontext (CAT2) ausgeführt. Zeitaufwändige Berechnungen, blockierende Operationen oder komplexe Filteralgorithmen sind im Callback zwingend zu vermeiden. Die Entkopplung in den Task-Kontext erfolgt standardkonform überSetRTEEvent()(Rte_SetEvent_<Event>()). - Zweistufiger Signalzugriff (Trigger-Read-Pattern): Das Diagramm implementiert ein klassisches Split-Phase-Muster: Initiierung via
IoHwAb_GetVoltage()und spätere Abholung viaIoHwAb_ReadVoltage(). Treiberentwickler müssen sicherstellen, dass Pufferdaten gegen Race Conditions geschützt sind (z. B. atomare Pufferaktualisierung oder exklusiver Bereich via Schattenspeicher / Ringpuffer). - API-Spezifika:
IoHwAb_Init<Init_Id>: Erlaubt multiple Init-Blöcke (z. B. für frühe I/O-Initialisierung vor OS-Start vs. vollständige Initialisierung nach OS-Start).Adc_OnDemandReadChannel: Zeigt das selektive Auslesen einzelner Kanäle innerhalb einer Gruppe, alternativ zum klassischen Blocktransfer viaAdc_ReadGroup().
- BSW-Konfiguration: Die Zuordnung von Signalnamen (
af_pressure) zu Hardware-Ressourcen (AdcGroup,AdcChannel) wird statisch im Ecuc-Modell derIoHwAbkonfiguriert und zur Generierungszeit validiert.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.