AUTOSAR_CP_SWS_EthernetDriver
FIG-be9dd4b14611ba5d
795 × 480 px
1 Release(s)
Figure 7.6: CBS algorithm
SHA-256 Inhalts-Fingerabdruck:
be9dd4b14611ba5dc074b003ace05475a99a1540591c6fa9c1d02fdd49d4b318
✦
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: Datenfluss- und Architektur-Ablaufdiagramm (Transmitter-Pipeline, Software-Queueing & CBS-Scheduling).
- Funktionaler Kontext: Schematische Darstellung des Credit-Based Shaper (CBS) Algorithmus gemäß IEEE 802.1Qav innerhalb des AUTOSAR Classic Platform Ethernet Drivers (
Eth). - Systemische Einordnung: MCAL-Treiber-Ebene. Das Diagramm illustriert das softwarebasierte Warteschlangen- und Bandbreitenmanagement zur Entkopplung der oberen Schichten (
EthIf,EthTSyn,SoAd) von den physischen MAC-Transmissionsregistern (HW fifo), insbesondere wenn der Ethernet-Controller keine native Hardware-Unterstützung für CBS bereitstellt oder softwareseitige Vorfilterung zwingend gefordert ist.
2. Komponenten, Entitäten & Schnittstellen
Entitäten & Pufferstrukturen
SW Buffer pools: Treiber-interner Speicherpool für Ethernet-Frames (Eth_BufIdxType). Die Puffer (z. B. Index 0 bis 7) sind nach Größen und Prioritäten (Prio 0bisPrio 7) organisiert.SW FIFOs: Array aus acht Software-Warteschlangen (Indizes 0 bis 7), korrespondierend zu den IEEE 802.1Q Traffic Classes bzw. VLAN-PCPs (Priority Code Point):FIFO 7nimmt Frames höchster Priorität auf (im Diagramm: Puffer0mitPrio 7).FIFO 6nimmt zeitkritische Steuerdaten auf (im Diagramm: Puffer2mitPrio 6).FIFO 4nimmt mittlere Prioritäten auf (im Diagramm: Puffer3mitPrio 4).FIFO 0–3, 5sind aktuell unbesetzt.
Scheduling / CBSshaper: Scheduler- und Shaper-Funktionseinheit imEth-Treiber. Berechnet die Credits (idleSlope,sendSlope, GrenzwertehiCredit/loCredit) pro Traffic Class.HW fifo: Physische Hardware-Sendewarteschlange (Tx-Deskriptorring / MAC-FIFO) des Ethernet-Controllers zur Übertragung auf das Medium.
Traffic-Quellen (Obere Schichten / Protokoll-Akteure)
Time sync: Zeitsynchronisations-Traffic viaEthTSyn(IEEE 802.1AS / gPTP), typischerweise gemappt auf Priorität 6 oder 7.some/ip: Serviceorientierte Middleware (SoAd/SomeIp), typischerweise Priorität 4 oder Best-Effort.Network mgt: Netzwerkmanagement-Frames (EthNm), prioritärer System-Traffic.
Treiber-Schnittstellen (APIs)
Eth_ProvideTxBuffer(CtrlIdx, Priority, BufIdxPtr, BufPtr, LenBytePtr): Allokations-Schnittstelle. Fordert einen Puffer für eine definierte Priorität an; gibt Puffer-IndexBufIdxund Payload-Zeiger zurück.Eth_Transmit(CtrlIdx, BufIdx, FrameType, TxConfirmation, LenByte, PhysAddrPtr): Übergabe-Schnittstelle. Reicht den befüllten Puffer an den Treiber zur Übertragung weiter.Eth_MainFunction(): Zyklische BSW-Scheduler-Task zur Aktualisierung der Shaper-Zustände und zum Transfer der Frames in die Hardware.
3. Dynamisches Verhalten & Sequenzablauf
- Pufferanforderung (Schritt 1 – Synchron):
- Die sendende Schicht ruft
Eth_ProvideTxBuffer()mit Prioritätsangabe (prio) auf. - Der Treiber reserviert den passenden Puffer (z. B. Puffer
0fürPrio 7) imSW Buffer poolund liefert den Deskriptor-IndexBufIdxzurück.
- Die sendende Schicht ruft
- Datenbereitstellung & Einreihung (Schritt 2 – Synchron):
- Die Nutzdaten werden in den allokierten Speicherbereich geschrieben.
- Aufruf von
Eth_Transmit(BufIdx*): Der Puffer wird nicht direkt an die Hardware übergeben, sondern softwareseitig in die der Priorität entsprechende Warteschlange (SW FIFO 7) eingereiht.
- CBS-Berechnung & HW-Dispatch (Schritt 3 – Asynchron via
Eth_MainFunction):- Die zyklisch aufgerufene Funktion
Eth_MainFunction()triggert denScheduling / CBSshaper. - Shaper-Regelwerk:
- Hat die Queue
credit >= 0und stehen Frames bereit, wird der Frame selektiert. Während der Aussendung verringert sich das Guthaben mit RatesendSlope. - Ist
credit < 0, wird die Queue gesperrt; das Guthaben akkumuliert mit RateidleSlopebis zum Erreichen von 0. - Ist die Queue leer und
credit > 0, wird das Guthaben auf 0 zurückgesetzt.
- Hat die Queue
- Der freigegebene Frame (Puffer
0) wird aus derSW FIFO 7in dieHW fifoverschoben.
- Die zyklisch aufgerufene Funktion
- Physische Aussendung & Bestätigung:
- Der Ethernet-MAC sendet den Frame seriell auf den Bus.
- Nach Tx-Complete (via Tx-Interrupt oder Polling) wird
EthIf_TxConfirmation()ausgelöst und der Puffer imSW Buffer poolwieder freigegeben.
4. Normative Relevanz & Entwickler-Hinweise
- Normativer Kontext:
- SRS_Eth_00146: Forderung nach Quality-of-Service (QoS) und Traffic Shaping gemäß IEEE 802.1Qav.
- SWS_Eth_00263: Spezifikation des Software-CBS-Algorithmus zur Begrenzung von AVB-Datenströmen (Audio/Video Bridging, SR-Class A und B).
- SWS_Eth_00299: Entkopplung zwischen Frame-Bereitstellung (
Eth_ProvideTxBuffer), Einreihung (Eth_Transmit) und getakteter Aussendung durch Entnahme über Scheduling-Logik.
- Einfluss auf die Stack-Konfiguration:
- Parameter
EthCtrlConfigShaper: Definition vonEthCtrlConfigIdleSlope,EthCtrlConfigSendSlope,EthCtrlConfigHiCreditundEthCtrlConfigLoCreditpro Kanal/FIFO im BSW-Konfigurator. EthCtrlConfigSwFifo: Notwendig zur Dimensionierung der Pufferanzahl je Prioritäts-FIFO.
- Parameter
- Latenz- und Jitter-Restriktionen:
- Da die Entnahme aus den Software-FIFOs über
Eth_MainFunctiongesteuert wird, bestimmt die Zykluszeit dieser Task maßgeblich die Latenz und den Granularitäts-Jitter des Shapings. Für harte Echtzeitanforderungen (z. B. gPTP, Control Loops) ist eine ausreichend hochfrequente Task-Taktung oder Hardware-gestütztes CBS im MAC vorzuziehen.
- Da die Entnahme aus den Software-FIFOs über
- Puffererschöpfung (Backpressure):
- Verweilt ein Frame aufgrund negativer Credits länger in den
SW FIFOs, blockiert er den zugewiesenen Puffer imSW Buffer pool. Folgende Aufrufe vonEth_ProvideTxBuffer()liefernBUFREQ_E_BUSY. Obere Schichten müssen Dropping-Mechanismen oder Puffer-Wiederholungsstrategien vorsehen.
- Verweilt ein Frame aufgrund negativer Credits länger in den
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.