DEENESPTFRRUARHIKOZHNL

Ethernet Driver (Eth)

ModulEth (Ethernet Driver)
BSW-Modul-ID88
Standard-Header#include "Eth.h"
SWS-SpezifikationAUTOSAR_SWS_EthernetDriver.pdf
ClusterEthernet Services

Modul-GuideKI-GENERIERT

Bindet Ethernet-Controller an den AUTOSAR-Stack an: Initialisierung, Modi, Senden, Empfangen und Diagnose.
KI-GENERIERT ungeprüft Modell: claude-opus-5-5 · Aufwand: high · Temperatur: nicht steuerbar · Prompt: 7ed698a8fca3 Herkunft Offene Fragen (3)
Kausaler Anker: R20-11 Gültig ab R20-11 Neu synthetisiert für diesen Spezifikationsstand.
KI-generiertclaude-opus-5-5 · 2026-10-13

Bindet Ethernet-Controller an den AUTOSAR-Stack an: Initialisierung, Modi, Senden, Empfangen und Diagnose.

Der Ethernet-Treiber bindet Ethernet-Controller an das Ethernet Interface an. Er initialisiert die Controller, schaltet ihre Rx/Tx-Kommunikation asynchron zwischen ETH_MODE_DOWN und ETH_MODE_ACTIVE und meldet den Wechsel per Indikation ([SWS_Eth_00276]). Gesendet wird zweistufig: Puffer anfordern, dann übergeben. Jedes Senden quittiert der Treiber mit E_OK oder E_NOT_OK ([SWS_Eth_00243]). Daneben bietet er Empfang mit Adressfilter, MII-Zugriffe, Zeitstempel und Diagnosezähler. Beim Abschalten sind gesperrte Sendepuffer freizugeben.

Der Ethernet-Treiber Eth abstrahiert einen oder mehrere Ethernet-Controller für das Ethernet Interface (EthIf). EthIf kann dabei mehrere Treiber verschiedener Hersteller bündeln (SWS Eth S. 17). Ergebnisse meldet Eth über EthIf_RxIndication, EthIf_TxConfirmation und EthIf_CtrlModeIndication ([SWS_Eth_00244], [SWS_Eth_00243], [SWS_Eth_00119]). Weitere Nachbarn sind EthTrcv, EthSwt, DET und DEM ([SWS_Eth_00241], [SWS_Eth_00120]).

kontext EcuM EcuM Eth Eth (Ethernet-Treiber) EcuM->Eth Eth_Init EthIf EthIf (Ethernet Interface) EthIf->Eth Eth_SetControllerMode, Eth_ProvideTxBuffer, Eth_Transmit, Eth_Receive, Eth_TxConfirmation, Eth_WriteMii / Eth_ReadMii Eth->EthIf EthIf_RxIndication, EthIf_TxConfirmation, EthIf_CtrlModeIndication EthTrcv EthTrcv (Transceiver-Treiber) Eth->EthTrcv EthTrcv_WriteMiiIndication, EthTrcv_ReadMiiIndication EthSwt EthSwt (Switch-Treiber) Eth->EthSwt EthSwt_EthRxProcessFrame, EthSwt_EthTxPrepareFrame u. a. Det DET Eth->Det Det_ReportError Dem DEM Eth->Dem Dem_SetEventStatus HW Ethernet-Controller (Hardware) Eth->HW Register- und Pufferzugriff

Kontextdiagramm: Aufrufer und Callback-Empfänger des Ethernet-Treibers. Quellen: [SWS_Eth_00119], [SWS_Eth_00120], SWS Eth S. 17

Eth_Init deaktiviert die Rx/Tx-Kommunikation aller konfigurierten Controller, konfiguriert sie und verwirft anstehende Aufträge ([SWS_Eth_00027], [SWS_Eth_00275]). Das asynchrone Eth_SetControllerMode schaltet zwischen ETH_MODE_DOWN und ETH_MODE_ACTIVE ([SWS_Eth_91009], [SWS_Eth_00276]). Beim Abschalten gibt der Treiber gesperrte Sendepuffer frei ([SWS_Eth_00280]). Das Ergebnis folgt per EthIf_CtrlModeIndication, im Polling-Betrieb aus Eth_MainFunction ([SWS_Eth_00240]).

Zum Senden fordert die obere Schicht mit Eth_ProvideTxBuffer einen Puffer an und übergibt ihn mit Eth_Transmit ([SWS_Eth_00077], [SWS_Eth_00087]). Die Bestätigung lautet E_OK oder E_NOT_OK ([SWS_Eth_00243], [SWS_Eth_00256]). Eth_Receive liest Rahmen aus einer FIFO und meldet, ob weitere vorliegen ([SWS_Eth_00095], [SWS_Eth_00162]). Rahmen mit nicht passender Zieladresse verwirft Eth ([SWS_Eth_00245], [SWS_Eth_00246]).

Senden eines Rahmens im Polling-BetriebObere Schicht (UL)EthIfEthEthIf_ProvideTxBuffer(...)Eth_ProvideTxBuffer(CtrlIdx, Priority,BufIdxPtr, BufPtr, LenBytePtr)BUFREQ_OK, BufIdx, BufPtr, gewährte LängeBUFREQ_OK, PufferNutzdaten in den Puffer kopierenEthIf_Transmit(...)Eth_Transmit(CtrlIdx, BufIdx, FrameType,TxConfirmation = TRUE, LenByte, PhysAddrPtr)Ethernet-Header bilden,Senden anstoßenE_OKE_OKUse Case: zyklisch in EthIf_MainFunctionTx()Eth_TxConfirmation(CtrlIdx)altSenden erfolgreichEthIf_TxConfirmation(..., E_OK)Senden fehlgeschlagenEthIf_TxConfirmation(..., E_NOT_OK)UL_TxConfirmation(CtrlIdx, BufIdx)

Sequenzdiagramm: Pufferanforderung, Senden und Bestätigung im Polling-Betrieb. Quellen: [SWS_Eth_00077], [SWS_Eth_00087], [SWS_Eth_00243], SWS EthIf S. 87

Weitere Funktionen umfassen MII-Zugriffe, die in R20-11 asynchron sind ([SWS_Eth_00058]), Hardware-Zeitstempel ([SWS_Eth_00190]), Statistikdienste ([SWS_Eth_00233]) und einen optionalen Credit Based Shaper (DRAFT, [SWS_Eth_00263]). Fehler meldet Eth als Entwicklungsfehler an DET ([SWS_Eth_00016]). Produktionsfehler wie ETH_E_ACCESS oder ETH_E_RX_FRAMES_LOST gehen an DEM ([SWS_Eth_00173], [SWS_Eth_00174]).

Rolle im Ethernet-Stack und Systemgrenze

Der Ethernet-Treiber Eth liegt als hardwarenahes Modul unter dem Ethernet Interface (EthIf). Laut dem Schaubild zur Grundstruktur des Stacks bündelt EthIf einen oder mehrere Eth-Treiber verschiedener Hersteller mit jeweils eigenen Controller-Typen (SWS Eth S. 17). Nach oben bietet Eth Dienste wie Eth_Init, Eth_SetControllerMode, Eth_ProvideTxBuffer, Eth_Transmit und Eth_Receive an ([SWS_Eth_00027], [SWS_Eth_91009], [SWS_Eth_00077], [SWS_Eth_00087], [SWS_Eth_00095]). Ergebnisse meldet er über die Callbacks EthIf_RxIndication, EthIf_TxConfirmation und EthIf_CtrlModeIndication zurück ([SWS_Eth_00244], [SWS_Eth_00243], [SWS_Eth_00119]).

Weitere Nachbarn sind die folgenden Module:

Teilen sich mehrere Controller Peripherieressourcen, emuliert Eth gegenüber den oberen Schichten unabhängige Controller. Die Koordination übernehmen dann die oberen Schichten ([SWS_Eth_00258]).

kontext EcuM EcuM Eth Eth (Ethernet-Treiber) EcuM->Eth Eth_Init EthIf EthIf (Ethernet Interface) EthIf->Eth Eth_SetControllerMode, Eth_ProvideTxBuffer, Eth_Transmit, Eth_Receive, Eth_TxConfirmation, Eth_WriteMii / Eth_ReadMii Eth->EthIf EthIf_RxIndication, EthIf_TxConfirmation, EthIf_CtrlModeIndication EthTrcv EthTrcv (Transceiver-Treiber) Eth->EthTrcv EthTrcv_WriteMiiIndication, EthTrcv_ReadMiiIndication EthSwt EthSwt (Switch-Treiber) Eth->EthSwt EthSwt_EthRxProcessFrame, EthSwt_EthTxPrepareFrame u. a. Det DET Eth->Det Det_ReportError Dem DEM Eth->Dem Dem_SetEventStatus HW Ethernet-Controller (Hardware) Eth->HW Register- und Pufferzugriff

Kontextdiagramm: Eth wird von EthIf und EcuM aufgerufen und meldet an EthIf, EthTrcv, EthSwt, DET und DEM. Quellen: [SWS_Eth_00119], [SWS_Eth_00120], [SWS_Eth_00241], SWS Eth S. 17

Von Eth_Init bis ETH_MODE_ACTIVE: Hochlauf und Controller-Modi

Eth_Init erhält einen Zeiger auf die Post-Build-Struktur Eth_ConfigType ([SWS_Eth_00027], [SWS_Eth_00156]). Für jeden Controller des aktuellen EthConfigSet führt die Funktion folgende Schritte aus ([SWS_Eth_00275], DRAFT; ältere Fassung [SWS_Eth_00034] obsolet):

  • Rx/Tx-Kommunikation deaktivieren,
  • anstehende Interrupts löschen,
  • Controllerparameter und Sende-/Empfangsressourcen konfigurieren,
  • anstehende Aufträge verwerfen.

Eth_StateType unterscheidet ETH_STATE_UNINIT und ETH_STATE_INIT und dient der Development Error Detection ([SWS_Eth_00159]). Jüngere Fassungen fassen die Aufrufregel zusammen: Außer Eth_GetVersionInfo und geplanten Funktionen wie Eth_MainFunction sind Dienste erst nach der Initialisierung erlaubt (SWS Eth S. 27). R20-11 regelt das je Dienst über die Prüfung auf ETH_E_UNINIT, z. B. in [SWS_Eth_00066].

Hochlauf des Ethernet-Treibers mit erstem MII-ZugriffEcuMEthIfEthEthTrcvInterpretation: Reihenfolge der EcuM-Aufrufe;Eth_Init muss vor MII-Zugriffen erfolgenEth_Init(CfgPtr)Rx/Tx aller Controller deaktivieren,Interrupts löschen, Parameter und Pufferkonfigurieren, Aufträge verwerfenEthTrcv_Init(...)EthIf_WriteMii(...)Eth_WriteMii(CtrlIdx, TrcvIdx, RegIdx, RegVal)E_OK (Dienst angenommen)E_OKMII-Zugriff läuft in R20-11 asynchronEthTrcv_WriteMiiIndication(...)EthIf_Init(...)

Sequenzdiagramm: Hochlauf mit Eth_Init und einem ersten, asynchron quittierten MII-Zugriff des Transceiver-Treibers. Quellen: [SWS_Eth_00275], [SWS_Eth_00058], [SWS_Eth_00241], SWS EthIf S. 84

In R20-11 gilt Eth_SetControllerMode in der asynchronen, nicht reentranten Fassung [SWS_Eth_91009]; sie ersetzt [SWS_Eth_00041]. Die beiden Modi wirken so ([SWS_Eth_00276]):

  • ETH_MODE_DOWN: Der Treiber deaktiviert Rx/Tx und setzt alle Puffer zurück. Gesperrte und anstehende Sendepuffer werden freigegeben ([SWS_Eth_00280], [SWS_Eth_00281]).
  • ETH_MODE_ACTIVE: Der Treiber aktiviert alle Puffer und die Rx/Tx-Kommunikation.

Das Ergebnis eines Moduswechsels meldet Eth asynchron über EthIf_CtrlModeIndication ([SWS_Eth_00119]). Im Polling-Betrieb erkennt Eth_MainFunction den Wechsel und ruft diesen Callback auf ([SWS_Eth_00171], [SWS_Eth_00240]). Den aktuellen Zustand liefert Eth_GetControllerMode ([SWS_Eth_91010], [SWS_Eth_00277]).

Eth_ModeType kennt zusätzlich ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST. Bei ETH_MODE_DOWN kann die Hardware einen Sleep-Vorgang anstoßen, etwa bei OA-TC10-Hardware ([SWS_Eth_91008]). Die Parameterbeschreibung von Eth_SetControllerMode nennt jedoch nur ETH_MODE_DOWN und ETH_MODE_ACTIVE ([SWS_Eth_91009]).

zustand cluster_init ETH_STATE_INIT (je Controller) start Start UNINIT ETH_STATE_UNINIT start->UNINIT DOWN Rx/Tx deaktiviert (Interpretation: entspricht ETH_MODE_DOWN) UNINIT->DOWN Eth_Init: Rx/Tx deaktivieren, konfigurieren, Aufträge verwerfen ACTIVE ETH_MODE_ACTIVE Rx/Tx aktiv DOWN->ACTIVE Eth_SetControllerMode(ETH_MODE_ACTIVE): Puffer aktivieren, Rx/Tx aktivieren; danach EthIf_CtrlModeIndication ACTIVE->DOWN Eth_SetControllerMode(ETH_MODE_DOWN): Rx/Tx deaktivieren, Puffer zurücksetzen, gesperrte und anstehende Sendepuffer freigeben

Zustandsdiagramm: Treiberzustand UNINIT/INIT und je Controller die Modi DOWN und ACTIVE mit den Pflichten beim Übergang. Quellen: [SWS_Eth_00159], [SWS_Eth_00275], [SWS_Eth_00276], [SWS_Eth_00280]

Aktivierung eines Ethernet-ControllersEthSMEthIfEthEthIf_SetControllerMode(CtrlIdx, ETH_MODE_ACTIVE)Eth_SetControllerMode(CtrlIdx, ETH_MODE_ACTIVE)E_OKSende- und Empfangspuffer aktivieren,Rx/Tx-Kommunikation aktivierenoptPolling-BetriebEth_MainFunction(): Moduswechsel erkanntEthIf_CtrlModeIndication(CtrlIdx, ETH_MODE_ACTIVE)EthSM_CtrlModeIndication(CtrlIdx, ETH_MODE_ACTIVE)

Sequenzdiagramm: Aktivierung durch EthSM mit synchroner Annahme und asynchroner Modusindikation. Quellen: [SWS_Eth_91009], [SWS_Eth_00119], [SWS_Eth_00240], SWS EthIf S. 85

Sendepfad: Puffer anfordern, senden, bestätigen

Senden läuft in zwei Stufen ab. Zuerst wählt Eth_ProvideTxBuffer anhand von Priority eine Sende-FIFO. Der Dienst liefert einen Index vom Typ Eth_BufIdxType, einen Pufferzeiger und über LenBytePtr die gewährte Länge ([SWS_Eth_00077], [SWS_Eth_00175]). Mögliche Rückgaben sind BUFREQ_OK, BUFREQ_E_NOT_OK, BUFREQ_E_BUSY und BUFREQ_E_OVFL. Der Puffer bleibt gesperrt, bis Eth_Transmit mit diesem Index folgt (SWS Eth S. 91).

Danach stößt Eth_Transmit mit FrameType, Ziel-MAC-Adresse und dem Flag TxConfirmation das Senden an ([SWS_Eth_00087], [SWS_Eth_00160]). Dabei bildet der Treiber den Ethernet-Header (SWS Eth S. 93). Eth_Transmit ist reentrant für verschiedene Puffer- und Controller-Indizes ([SWS_Eth_00087]).

Ist die Bestätigung angefordert, ruft Eth EthIf_TxConfirmation mit E_OK auf. Im Interrupt-Betrieb geschieht das aus der Interruptroutine, im Polling-Betrieb aus Eth_TxConfirmation ([SWS_Eth_00243], [SWS_Eth_00100]). Scheitert das Senden, lautet das Ergebnis E_NOT_OK ([SWS_Eth_00256]). Obere Schichten können sich darauf verlassen, dass jedem Eth_Transmit eine Bestätigung folgt (SWS Eth S. 32).

Im Polling-Schaubild ruft EthIf_MainFunctionTx die Funktion Eth_TxConfirmation auf (SWS EthIf S. 87). Im Interrupt-Betrieb übernimmt das Eth_TxIrqHdlr_<CtrlIdx> (SWS EthIf S. 88). Wann der Treiber den Puffer freigibt, bleibt der Implementierung überlassen (SWS Eth S. 93).

Senden eines Rahmens im Polling-BetriebObere Schicht (UL)EthIfEthEthIf_ProvideTxBuffer(...)Eth_ProvideTxBuffer(CtrlIdx, Priority,BufIdxPtr, BufPtr, LenBytePtr)BUFREQ_OK, BufIdx, BufPtr, gewährte LängeBUFREQ_OK, PufferNutzdaten in den Puffer kopierenEthIf_Transmit(...)Eth_Transmit(CtrlIdx, BufIdx, FrameType,TxConfirmation = TRUE, LenByte, PhysAddrPtr)Ethernet-Header bilden,Senden anstoßenE_OKE_OKUse Case: zyklisch in EthIf_MainFunctionTx()Eth_TxConfirmation(CtrlIdx)altSenden erfolgreichEthIf_TxConfirmation(..., E_OK)Senden fehlgeschlagenEthIf_TxConfirmation(..., E_NOT_OK)UL_TxConfirmation(CtrlIdx, BufIdx)

Sequenzdiagramm: Puffer anfordern, füllen, senden und im Polling-Betrieb bestätigen, mit Erfolgs- und Fehlerzweig. Quellen: [SWS_Eth_00077], [SWS_Eth_00087], [SWS_Eth_00243], [SWS_Eth_00256], SWS EthIf S. 87

Empfangspfad und Adressfilter

Eth_Receive liest einen Rahmen aus der über FifoIdx adressierten FIFO. Der Dienst ist reentrant für verschiedene FIFOs, nicht aber für dieselbe ([SWS_Eth_00095]). RxStatusPtr liefert ETH_RECEIVED, ETH_NOT_RECEIVED oder ETH_RECEIVED_MORE_DATA_AVAILABLE ([SWS_Eth_00162]). Interpretation: Ein pollender Aufrufer dürfte Eth_Receive wiederholen, solange weitere Rahmen gemeldet werden. Frage Q-8f1484413f850bda (offen) Wer im Polling-Betrieb aufruft, ist nicht festgelegt; vermutlich ist es EthIf.

Den Empfang meldet Eth über EthIf_RxIndication, entweder aus dem Interrupt oder aus Eth_Receive ([SWS_Eth_00244]). Broadcast-Rahmen werden dabei als solche angezeigt ([SWS_Eth_00153]). Jüngere Fassungen nennen den Parameter QueueIdx (SWS Eth S. 110).

Die eigene Quelladresse setzt Eth_SetPhysAddr; Eth_GetPhysAddr liest sie ([SWS_Eth_00151], [SWS_Eth_00052]). Eth_UpdatePhysAddrFilter nimmt Multicast-Zieladressen mit ETH_ADD_TO_FILTER in den Empfangsfilter auf und entfernt sie mit ETH_REMOVE_FROM_FILTER ([SWS_Eth_00152], [SWS_Eth_00163], [SWS_Eth_00150]).

Passt die Zieladresse, benachrichtigt Eth die obere Schicht; andernfalls verwirft er den Rahmen ([SWS_Eth_00245], [SWS_Eth_00246]). Kann die Hardware nicht filtern, schaltet die Initialisierung den Promiscuous Mode ein ([SWS_Eth_00146]). Die Adresse 00:00:00:00:00:00 reduziert den Filter auf die eigene Unicast-Adresse und beendet den Promiscuous Mode ([SWS_Eth_00147]; vgl. SWS Eth S. 74).

Empfang im Polling- und Interrupt-BetriebEthIfEthUse Case: Polling-BetriebInterpretation: EthIf ruft Eth_Receive zyklisch aufloopInterpretation: solange RxStatus == ETH_RECEIVED_MORE_DATA_AVAILABLEEth_Receive(CtrlIdx, FifoIdx, RxStatusPtr)Rahmen aus FIFO lesen,Zieladresse gegen Filter prüfenaltRahmen empfangen, Adresse passtEthIf_RxIndication(...)Adresse passt nichtRahmen verwerfenRxStatusUse Case: Interrupt-BetriebEmpfangs-InterruptEthIf_RxIndication(...)

Sequenzdiagramm: Empfang im Polling- und im Interrupt-Betrieb mit Adressprüfung vor der Indikation. Quellen: [SWS_Eth_00095], [SWS_Eth_00162], [SWS_Eth_00244], [SWS_Eth_00246]

filter a Eth_UpdatePhysAddrFilter(CtrlIdx, PhysAddrPtr, Action) z PhysAddrPtr = 00:00:00:00:00:00? a->z reset Filter auf eigene Unicast-Adresse reduzieren, Promiscuous Mode beenden z->reset ja act Action? z->act nein rx Rahmen trifft ein reset->rx add ETH_ADD_TO_FILTER: Empfang für Adresse erlauben act->add hinzufügen rem ETH_REMOVE_FROM_FILTER: Empfang blockieren act->rem entfernen hw Controller kann filtern? add->hw rem->hw hwf Hardware-Filter nutzen hw->hwf ja swf Filterung in Software (Promiscuous Mode seit Initialisierung) hw->swf nein hwf->rx swf->rx m Zieladresse passt zum Filter? rx->m ind EthIf_RxIndication m->ind ja drop Rahmen verwerfen m->drop nein

Aktivitätsdiagramm: Filteraktualisierung mit Sonderfall Nulladresse, Hardware- oder Softwarefilterung und Annahme oder Verwerfen beim Empfang. Quellen: [SWS_Eth_00146], [SWS_Eth_00147], [SWS_Eth_00163], [SWS_Eth_00245], [SWS_Eth_00246]

Transceiver-Zugriff, Hardware-Zeitstempel und Diagnosezähler

Eth_WriteMii und Eth_ReadMii sind in R20-11 asynchron und nicht reentrant ([SWS_Eth_00058], [SWS_Eth_00064]). Den Abschluss meldet Eth über EthTrcv_WriteMiiIndication bzw. EthTrcv_ReadMiiIndication ([SWS_Eth_00241], [SWS_Eth_00242]). Clause-45-Register werden über die Register 13 und 14 nach Annex 22D erreicht ([SWS_Eth_00273], [SWS_Eth_00274]). Freigeschaltet wird der Zugriff über EthCtrlEnableMii ([SWS_Eth_00069]). R24-11 beschreibt Eth_WriteMii dagegen als synchron (SWS Eth S. 95); für R20-11 gilt die asynchrone Definition.

Die Zeitstempelfunktionen werden über EthGlobalTimeSupport freigeschaltet ([SWS_Eth_00210], [SWS_Eth_00211]). Im Einzelnen gilt:

Zeitstempel der Qualität ETH_UNCERTAIN oder ETH_INVALID verwirft die obere Schicht ([SWS_Eth_00177]). Ab R23-11 ist Eth_GetCurrentTime obsolet (SWS Eth S. 82); in R20-11 ist der Dienst normativ.

Sendezeitstempel über den Ethernet-TreiberEthTSynEthIfEth[EthTSynHardwareTimestampSupport == TRUE]EthIf_EnableEgressTimeStamp(CtrlIdx, BufIdx)Eth_EnableEgressTimeStamp(CtrlIdx, BufIdx)EthIf_Transmit(...)Eth_Transmit(...)EthIf_TxConfirmation(CtrlIdx, BufIdx, Result)EthTSyn_TxConfirmation(CtrlIdx, BufIdx, Result)Abruf im Kontext der TxConfirmationEthIf_GetEgressTimeStamp(CtrlIdx, BufIdx, ...)Eth_GetEgressTimeStamp(CtrlIdx, BufIdx,timeQualPtr, timeStampPtr)E_OK, Qualität, ZeitstempelE_OK, Qualität, ZeitstempelaltQualität == ETH_VALIDZeitstempel verwendenETH_UNCERTAIN oder ETH_INVALIDZeitstempel verwerfen

Sequenzdiagramm: Sendezeitstempel aktivieren, senden und im Bestätigungskontext mit Qualitätsprüfung auslesen. Quellen: [SWS_Eth_00186], [SWS_Eth_00190], [SWS_Eth_00177], SWS EthTSyn S. 70, SWS EthTSyn S. 55

Vier Diagnosedienste sind jeweils einzeln zuschaltbar:

Bei den Statistikdiensten kennzeichnet der Maximalwert einen nicht verfügbaren Zähler (SWS Eth S. 98).

Konfiguration, Partitionierung und SW-Puffermanagement (CBS)

Mit EthCtrlEnableOffloadChecksumIPv4, EthCtrlEnableOffloadChecksumICMP, EthCtrlEnableOffloadChecksumTCP und EthCtrlEnableOffloadChecksumUDP berechnet der Controller Prüfsummen in Hardware. Beim Empfang verwirft er Rahmen mit falscher Prüfsumme ([SWS_Eth_00216], [SWS_Eth_00217]). Die Basisadressen der Puffer müssen das Alignment aller AUTOSAR-Datentypen erfüllen ([SWS_Eth_00218]). Nicht unterstützte Partitionszuordnungen sind abzulehnen. Die Partitionen in EthCtrlEcucPartitionRef müssen eine Teilmenge von EthEcucPartitionRef sein ([SWS_Eth_00257], [SWS_Eth_00260], [SWS_Eth_CONSTR_00001]).

Fehlt faires Scheduling in Hardware, steht ein Credit Based Shaper in Software zur Verfügung (SWS Eth S. 38). In R20-11 sind alle zugehörigen Requirements DRAFT. Das Verfahren arbeitet so:

cbs mf Eth_MainFunction() (EthCtrlConfigSwBufferHandling = TRUE) c1 SW-FIFOs absteigend nach Priorität: Credits um EthCtrlConfigShaperIdleSlope erhöhen (nur nicht leere FIFOs) mf->c1 c2 Nächste SW-FIFO (höchste Priorität zuerst) c1->c2 q Nachricht vorhanden und Credits >= EthCtrlConfigShaperMinCredit? c2->q mv Erste Nachricht in HW-FIFO verschieben, Nachrichtengröße von Credits abziehen q->mv ja more Weitere SW-FIFO? q->more nein b EthTrcvPhysLayerPLCAMaxBurstCount = 0? mv->b stop Iteration beenden b->stop ja burst Weitere Nachrichten bis zur Burst-Grenze verschieben, Credits je Nachricht abziehen b->burst nein ende Ende stop->ende burst->more Interpretation: weiter mit nächster FIFO more->c2 ja more->ende nein

Aktivitätsdiagramm: CBS-Durchlauf in Eth_MainFunction mit Credit-Aktualisierung, Mindestcredit-Prüfung und PLCA-Burst-Verzweigung. Quellen: [SWS_Eth_00266], [SWS_Eth_00270], [SWS_Eth_00271], [SWS_Eth_00272], SWS Eth S. 56

Verhalten im Fehlerfall

Entwicklungsfehler meldet Eth an DET ([SWS_Eth_00120]). Die Codes lauten ETH_E_INV_CTRL_IDX, ETH_E_UNINIT, ETH_E_PARAM_POINTER, ETH_E_INV_PARAM und ETH_E_INV_MODE ([SWS_Eth_00016]). Typische Prüfungen betreffen Initialisierung, CtrlIdx und Zeiger ([SWS_Eth_00066], [SWS_Eth_00067], [SWS_Eth_00068]). Ist DET abgeschaltet, liefern die Statistikdienste in diesen Fällen E_NOT_OK ([SWS_Eth_00228], [SWS_Eth_00236], [SWS_Eth_00248], [SWS_Eth_00254]).

Produktionsfehler gehen über Dem_SetEventStatus an DEM ([SWS_Eth_00119]). Ein gescheiterter Controllerzugriff ergibt ETH_E_ACCESS mit DEM_EVENT_STATUS_PREFAILED; Eth_SetControllerMode liefert dann E_NOT_OK ([SWS_Eth_00039], [SWS_Eth_00173], [SWS_Eth_00168]). Eth_MainFunction meldet die folgenden erweiterten Produktionsfehler ([SWS_Eth_00169], [SWS_Eth_00172]):

Im Betrieb zeigen sich Fehler auch über Rückgabewerte. Dazu zählen BUFREQ_E_BUSY und BUFREQ_E_OVFL (SWS Eth S. 91) sowie eine negative Sendebestätigung ([SWS_Eth_00256]). Das Verhalten von Eth_Receive bei inaktivem Controller hängt vom Release ab. R23-11 und R24-11 fordern ETH_E_INV_MODE (SWS Eth S. 94, SWS Eth S. 116), R25-11 eine sofortige Rückkehr (SWS Eth S. 110). Für R20-11 dürfte wegen [SWS_Eth_00016] die DET-Variante gelten. Frage (offen)

Weiterführende Detailbelege

KI-generierter Leitfaden auf Basis der Spezifikationsauszüge im Payload. Maßgeblich sind die verlinkten Requirements von R20-11; Dokumentstellen aus anderen Releases sind als solche gekennzeichnet.

Ethernet Driver (Eth)

Provides uniform hardware access to Ethernet controller interfaces.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

function Eth_Init [SWS_Eth_00027] 📄 PDF

void Eth_Init (const Eth_ConfigType* CfgPtr);

Initializes the Ethernet Driver

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 6639db5c607b Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion Eth_Init dient der Initialisierung des Ethernet-Treibers [SWS_Eth_00027]. Sie wird über die Header-Datei Eth.h deklariert, besitzt die Service-ID 0x01 und besitzt keinen Rückgabewert (void) [SWS_Eth_00027]. Als Eingabeparameter erwartet sie CfgPtr, der auf eine implementierungsspezifische Konfigurationsstruktur vom Typ Eth_ConfigType zeigt [SWS_Eth_00027]. Der Aufruf erfolgt synchron und ist als nicht reentrant (Non Reentrant) definiert [SWS_Eth_00027].

Im Betriebsablauf bildet Eth_Init die fundamentale Vorbedingung für die Arbeit mit dem Modul. Sämtliche weiteren Funktionen setzen eine vorangehende Controller-Initialisierung durch Eth_Init zwingend voraus [SWS_Eth_00070], [SWS_Eth_00167], [SWS_Eth_00185]. Diese Abhängigkeit ist für diverse Controller-Dienste des Treibers verbindlich vorgeschrieben [SWS_Eth_00189], [SWS_Eth_00194], [SWS_Eth_00199], [SWS_Eth_00232].

Für den Fall eines uninitialisierten Zugriffs ist eine gezielte Fehlerbehandlung vorgesehen: Bei aktivierter Entwicklungsausnahme- bzw. Fehlererkennung (Development Error Detection, DET) prüfen die Treiberfunktionen, ob der Service Eth_Init zuvor ordnungsgemäß aufgerufen wurde [SWS_Eth_00066]. Ist diese Prüfung nicht erfolgreich, lösen sie den Entwicklungsfehler ETH_E_UNINIT aus [SWS_Eth_00164], [SWS_Eth_00182], [SWS_Eth_00187], [SWS_Eth_00196]. Ist DET hingegen deaktiviert, verweigern betroffene Funktionen die Ausführung und signalisieren den unzulässigen Zustand durch Rückgabe des Status E_NOT_OK [SWS_Eth_00228], [SWS_Eth_00235], [SWS_Eth_00248], [SWS_Eth_00252].

Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function Eth_SetControllerMode [SWS_Eth_00041] 📄 PDF

Std_ReturnType Eth_SetControllerMode (uint8 CtrlIdx, Eth_ModeType CtrlMode);

Enables / disables the indexed controller Tags: atp.Status=obsolete

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 58bddef3c196 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion Eth_SetControllerMode dient dem Aktivieren (ETH_MODE_ACTIVE) oder Deaktivieren (ETH_MODE_DOWN) des über den Parameter CtrlIdx adressierten Ethernet-Controllers [SWS_Eth_00041]. In AUTOSAR Classic R20-11 ist dieser Dienst als veraltet (obsolete) eingestuft [SWS_Eth_00041].

Die Ausführung des Dienstes ist asynchron und nicht reentrant (Non Reentrant) [SWS_Eth_00041]. Als Rückgabewert liefert die Funktion E_OK bei erfolgreicher Initiierung oder E_NOT_OK, falls der Betriebsmodus nicht gewechselt werden konnte [SWS_Eth_00041]. Interpretation: Da der Aufruf als asynchron spezifiziert ist, aber im Payload kein Callback definiert wird, dürfte die tatsächliche Zustandsübernahme hardwarenah im Treiberhintergrund nach Rückkehr der Funktion abgeschlossen werden. Frage Q-d7ec04578e921eb9 (offen)

Wird der Controller beziehungsweise dessen Sende- und Empfangskommunikation über Eth_SetControllerMode deaktiviert, gelten verbindliche Pufferbereinigungen:

Aufgrund der Eigenschaft Non Reentrant darf die Funktion für dieselbe oder weitere Controller-Instanzen nicht nebenläufig ausgeführt werden [SWS_Eth_00041]. Spezifische DET- oder DEM-Fehlermeldungen sind nicht aufgeführt; Fehlerzustände werden dem Aufrufer über den Rückgabewert E_NOT_OK mitgeteilt [SWS_Eth_00041].

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikationsdaten von AUTOSAR Classic R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function Eth_SetControllerMode [SWS_Eth_91009] 📄 PDF

Std_ReturnType Eth_SetControllerMode (uint8 CtrlIdx, Eth_ModeType CtrlMode);

Enables / Disables Rx/ Tx communication of the indexed controller Tags: atp.Status=draft

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 45ebc5b270a4 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion Eth_SetControllerMode (Service-ID 0x03, bereitgestellt über Eth.h) dient dem Aktivieren und Deaktivieren der Empfangs- und Sende-Kommunikation (Rx/Tx) eines spezifischen Ethernet-Controllers [SWS_Eth_91009].

Verwendung und Aufrufbedingungen

Die Ausführung der Funktion erfolgt asynchron und ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_Eth_91009]. Beim Aufruf werden zwei Parameter übergeben:

  • CtrlIdx: Index des betreffenden Controllers im Kontext des Ethernet-Treibers [SWS_Eth_91009].
  • CtrlMode: Zielmodus für den Controller, entweder ETH_MODE_ACTIVE zur Aktivierung der Rx/Tx-Kommunikation oder ETH_MODE_DOWN zu deren Deaktivierung [SWS_Eth_91009].

Als Rückgabewert liefert die Funktion den Status Std_ReturnType: E_OK signalisiert eine erfolgreiche Durchführung, während E_NOT_OK anzeigt, dass der Modus des Controllers nicht gewechselt werden konnte [SWS_Eth_91009].

Zusammenspiel und Pufferverwaltung

Wird die Rx/Tx-Kommunikation des indizierten Controllers über Eth_SetControllerMode deaktiviert (Modus ETH_MODE_DOWN), sind zwingend Bereinigungsaktionen für die Sendepuffer durchzuführen:

  • Alle gesperrten Sendepuffer (locked transmit buffers) müssen freigegeben werden [SWS_Eth_00280].
  • Alle ausstehenden Sendepuffer (pending transmit buffers) müssen ebenfalls freigegeben werden [SWS_Eth_00281].

Die aktuellen Bestimmungen zur Freigabe gesperrter und ausstehender Puffer sowie die Funktionsdefinition selbst besitzen den Status „draft“ [SWS_Eth_91009], [SWS_Eth_00280], [SWS_Eth_00281]. Sie ersetzen die historisch vorangegangenen Anforderungen [SWS_Eth_00137] und [SWS_Eth_00138], welche als obsolet eingestuft sind.

Dieser Text wurde von einer KI basierend auf den AUTOSAR-Spezifikationen erstellt.

Implementer's Guide folgt (Komplexität I2)

function Eth_GetPhysAddr [SWS_Eth_00052] 📄 PDF

void Eth_GetPhysAddr (uint8 CtrlIdx, uint8* PhysAddrPtr);

Obtains the physical source address used by the indexed controller

function Eth_SetPhysAddr [SWS_Eth_00151] 📄 PDF

void Eth_SetPhysAddr (uint8 CtrlIdx, const uint8* PhysAddrPtr);

Sets the physical source address used by the indexed controller

function Eth_UpdatePhysAddrFilter [SWS_Eth_00152] 📄 PDF

Std_ReturnType Eth_UpdatePhysAddrFilter (uint8 CtrlIdx, const uint8* PhysAddrPtr, Eth_FilterActionType Action);

Update the physica l source address to/ from the indexed controller filter. If the Ethernet Controller is not capable to do the filtering, the software has to do this.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 3be26284fad7 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Schnittstelle Eth_UpdatePhysAddrFilter wird über die Header-Datei Eth.h bereitgestellt und besitzt die Service-ID 0x12 [SWS_Eth_00152]. Die Funktion dient dazu, eine physikalische Adresse zu dem Filter eines indizierten Ethernet-Controllers hinzuzufügen oder aus diesem zu entfernen [SWS_Eth_00152].

Die Parameter der Funktion umfassen drei Eingangswerte [SWS_Eth_00152]:

  • CtrlIdx: Bestimmt den Index des betreffenden Ethernet-Controllers innerhalb des Treiberkontexts [SWS_Eth_00152].
  • PhysAddrPtr: Zeiger auf den Speicherbereich mit der physikalischen Zieladresse (MAC-Adresse) in Netzwerk-Byte-Reihenfolge; dies ist die Multicast-Zieladresse des Layer-2-Ethernet-Pakets [SWS_Eth_00152].
  • Action: Gibt über den Aufzählungstyp Eth_FilterActionType vor, ob die angegebene Adresse zum Filter des Controllers hinzugefügt oder daraus gelöscht wird [SWS_Eth_00152].

Die Funktion gibt einen Status vom Typ Std_ReturnType zurück: E_OK bestätigt die erfolgreiche Änderung des Filters, während E_NOT_OK meldet, dass der Filter nicht geändert werden konnte [SWS_Eth_00152]. Ist der Ethernet-Controller hardwareseitig nicht in der Lage, die Filterung eigenständig vorzunehmen, muss die Filteraufgabe durch die Software realisiert werden [SWS_Eth_00152].

Für die Ausführung gilt eine strikte Reentranz-Einschränkung: Die Funktion ist für denselben Controller-Index (CtrlIdx) nicht reentrant, darf jedoch für voneinander abweichende Controller-Indizes nebenläufig und reentrant aufgerufen werden [SWS_Eth_00152].

Dieser Nutzungshinweis wurde von einem KI-System auf Basis der Spezifikation AUTOSAR Classic R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function Eth_WriteMii [SWS_Eth_00058] 📄 PDF

Std_ReturnType Eth_WriteMii (uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint16 RegVal);

Configures a transceiver register or triggers a function offered by the receiver

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 59aa765351e8 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion Eth_WriteMii dient dazu, ein Register eines Ethernet-Transceivers über das MII-Interface zu konfigurieren oder eine vom Transceiver bereitgestellte Funktion auszulösen [SWS_Eth_00058]. Die Deklaration ist über den Header Eth.h verfügbar [SWS_Eth_00058].

Verwendung und Parameter

Der Aufruf erfolgt mit der Service-ID 0x05 und verarbeitet vier Eingangsparameter [SWS_Eth_00058]:

  • CtrlIdx: Index des Ethernet-Controllers im Kontext des Ethernet-Treibers [SWS_Eth_00058].
  • TrcvIdx: Index des Transceivers auf der MII-Schnittstelle [SWS_Eth_00058].
  • RegIdx: Index des zu beschreibenden Transceiver-Registers auf der MII [SWS_Eth_00058].
  • RegVal: Der 16-Bit-Wert, der in das adressierte Register geschrieben werden soll [SWS_Eth_00058].

Die Ausführung des Dienstes ist asynchron spezifiziert [SWS_Eth_00058]. Dies bedeutet, dass der eigentliche Schreibvorgang über die Hardwareschnittstelle typischerweise im Hintergrund abgewickelt werden dürfte, während die Funktion nach Annahme der Anforderung unmittelbar zurückkehrt. Frage Q-0f9a9e682985d796 (offen)

Rückgabewerte und Einschränkungen

Als Rückgabewert liefert die Funktion den Typ Std_ReturnType [SWS_Eth_00058]:

Hinsichtlich der Nebenläufigkeit ist Eth_WriteMii als nicht reentrant (Non Reentrant) spezifiziert [SWS_Eth_00058]. Aufrufe dürfen daher nicht nebenläufig ohne entsprechende Synchronisation durch den Aufrufer ausgeführt werden.

Dieser Nutzungshinweis wurde durch eine KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function Eth_ReadMii [SWS_Eth_00064] 📄 PDF

Std_ReturnType Eth_ReadMii (uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint16* RegValPtr);

Reads a transceiver register

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 6906f4ae5194 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Parameter

Die Funktion Eth_ReadMii (Service-ID 0x06) dient dem Auslesen eines Transceiver-Registers über die MII-Schnittstelle und wird über die Header-Datei Eth.h bereitgestellt [SWS_Eth_00064]. Beim Aufruf identifiziert CtrlIdx den jeweiligen Ethernet-Controller im Treiberkontext, TrcvIdx den angesprochenen Transceiver auf dem MII und RegIdx das konkrete Transceiver-Register [SWS_Eth_00064]. Der ermittelte Registerwert wird in den Speicherbereich geschrieben, auf den der Zeiger RegValPtr verweist [SWS_Eth_00064].

Ausführung und Nebenläufigkeit

Die Ausführung erfolgt asynchron (Asynchronous) [SWS_Eth_00064]. Ein Rückgabewert von E_OK bestätigt dabei lediglich, dass der Service bzw. der Leseauftrag erfolgreich angenommen wurde (Service accepted), während E_NOT_OK eine Ablehnung des Auftrags signalisiert (Service denied) [SWS_Eth_00064]. Wegen des asynchronen Charakters dürfte der für RegValPtr übergebene Speicherbereich bis zum endgültigen Abschluss des Lesevorgangs gültig bleiben müssen. Frage Q-04a94624b96bf51f (offen) Da die Funktion zudem als nicht reentrant (Non Reentrant) eingestuft ist [SWS_Eth_00064], dürfen Aufrufer gleichzeitige Zugriffe über verschiedene Tasks oder Interrupt-Kontexte nicht ohne externe Synchronisation durchführen.

Fehlerbehandlung

Kann der Treiber den Lesewunsch nicht annehmen, wird der Aufruf direkt mit E_NOT_OK quittiert [SWS_Eth_00064]. Spezifische Fehlercodes, DET-Laufzeitprüfungen oder DEM-Diagnoseereignisse sind für diese Funktion in den elementbezogenen Spezifikationsdaten nicht ausgewiesen.

Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation erstellt.

Implementer's Guide folgt (Komplexität I1)

function Eth_GetRxStats [SWS_Eth_00233] 📄 PDF

Std_ReturnType Eth_GetRxStats (uint8 CtrlIdx, Eth_RxStatsType* RxStats);

Returns the following list according to IETF RFC281 9, where the maximal possible value shall denote an invalid value, e.g. if this counter is not available: 1. ether Stats Drop Events 2. ether Stats Octets 3. ether Stats Pkts 4. ether Stats Broadcast Pkts 5. ether Stats Multicast Pkts 6. ether Stats Crc Al ign Errors 7. ether Stats Undersize Pkts 8. ether Stats Oversize Pkts 9. ether Stats Fragments 10. ether Stats Jabbers 11. ether Stats Collisions 12. ether Stats Pkts64Octets 13. ether Stats Pkts65to127Octets 14. ether Stats Pkts128to255Octets 15. ether St ats Pkts256to511Octets 16. ether Stats Pkts512to1023Octets 17. ether

function Eth_GetTxStats [SWS_Eth_91005] 📄 PDF

Std_ReturnType Eth_GetTxStats (uint8 CtrlIdx, Eth_TxStatsType* TxStats);

Returns the list of Transmission Statistics out of IETF RFC1213 defined with Eth_ Tx Stats Type, where the maximal possible value shall denote an invalid value, e.g. this counter is not available.

function Eth_GetTxErrorCounterValues [SWS_Eth_91006] 📄 PDF

Std_ReturnType Eth_GetTxErrorCounterValues (uint8 CtrlIdx, Eth_TxErrorCounterValuesType* TxErrorCounterValues);

Returns the list of Transmission Error Counters out of IETF RFC1213 and RFC1643 defined with Eth_ Tx Error Counter Values Type, where the maximal possible value shall denote an invalid value, e.g. this counter is not available.

function Eth_GetCurrentTime [SWS_Eth_00181] 📄 PDF

Std_ReturnType Eth_GetCurrentTime (uint8 CtrlIdx, Eth_TimeStampQualType* timeQualPtr, Eth_TimeStampType* timeStampPtr);

Returns a time value out of the HW registers according to the capability of the HW. Is the HW resolution is lower than the Eth_ Time Stamp Type resolution resp. range, than an the remainin g bits will be filled with 0. Important Note: Eth_ Get Current Time may be called within an exclusive area.

function Eth_EnableEgressTimeStamp [SWS_Eth_00186] 📄 PDF

void Eth_EnableEgressTimeStamp (uint8 CtrlIdx, Eth_BufIdxType BufIdx);

Activat es egress time stamping on a dedicated message object. Some HW does store once the egress time stamp marker and some HW needs it always before transmission. There will be no "disable" functionality, due to the fact, that the message type is always "time st amped" by network design.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 28883e2189c8 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion Eth_EnableEgressTimeStamp aktiviert die Erfassung von Sende-Zeitstempeln (Egress Time Stamping) für ein dediziertes Nachrichtenobjekt des Ethernet-Treibers [SWS_Eth_00186]. Der Aufruf erfolgt über den Header Eth.h mit der Service-ID 0x17 und liefert keinen Rückgabewert [SWS_Eth_00186].

Beim Aufruf sind folgende Eingangsparameter zu übergeben [SWS_Eth_00186]:

  • CtrlIdx: Index des adressierten Ethernet-Controllers [SWS_Eth_00186].
  • BufIdx: Index des Nachrichtenpuffers, für den die übergeordnete Applikation die Erzeugung eines Egress-Zeitstempels erwartet [SWS_Eth_00186].

Hinsichtlich der Nebenläufigkeit ist die Funktion als nicht reentrant (Non Reentrant) spezifiziert [SWS_Eth_00186]. Ein paralleler Aufruf für denselben oder weitere Puffer muss daher aufrufseitig synchronisiert bzw. vermieden werden.

Das Verhalten der Hardware variiert je nach Controller-Implementierung: Manche Hardware speichert die Markierung für den Sende-Zeitstempel dauerhaft, während andere Controller die Aktivierung vor jeder Übertragung zwingend anfordern [SWS_Eth_00186]. Interpretation: Für eine hardwareunabhängige Ansteuerung dürfte es daher ratsam sein, die Funktion vor jedem Sendevorgang des gewünschten Puffers aufzurufen. Frage Q-c2b8d2db03e9d13b (offen) Eine Deaktivierungsschnittstelle existiert nicht, da der Nachrichtentyp gemäß dem Netzwerkdesign stets zeitgestempelt übertragen wird [SWS_Eth_00186].

Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

function Eth_GetEgressTimeStamp [SWS_Eth_00190] 📄 PDF

Std_ReturnType Eth_GetEgressTimeStamp (uint8 CtrlIdx, Eth_BufIdxType BufIdx, Eth_TimeStampQualType* timeQualPtr, Eth_TimeStampType* timeStampPtr);

Reads back the egress time stamp on a dedicated message object. It must be called within the Tx Confirmation() function.

function Eth_GetIngressTimeStamp [SWS_Eth_00195] 📄 PDF

Std_ReturnType Eth_GetIngressTimeStamp (uint8 CtrlIdx, const Eth_DataType* DataPtr, Eth_TimeStampQualType* timeQualPtr, Eth_TimeStampType* timeStampPtr);

Reads back the ingress time stamp on a dedicated message object. It must be called within the Rx Indication() function.

function Eth_ProvideTxBuffer [SWS_Eth_00077] 📄 PDF

BufReq_ReturnType Eth_ProvideTxBuffer (uint8 CtrlIdx, uint8 Priority, Eth_BufIdxType* BufIdxPtr, uint8* * BufPtr, uint16* LenBytePtr);

Provides access to a transmit buffer of the FIFO related to the specified priority

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 44e533ef4911 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die synchrone Funktion Eth_ProvideTxBuffer gewährt Zugriff auf einen Ethernet-Sendepuffer des FIFOs, der der übergebenen Priorität zugeordnet ist [SWS_Eth_00077]. Sie wird über den Header Eth.h bereitgestellt und ist als reentrant spezifiziert [SWS_Eth_00077]. Über die Eingangsparameter werden der Controller-Index CtrlIdx sowie die Rahmenpriorität Priority zur FIFO-Auswahl übergeben [SWS_Eth_00077]. Der In-Out-Parameter LenBytePtr übergibt die gewünschte Puffergröße und liefert nach dem Aufruf die tatsächlich gewährte Bytegröße zurück [SWS_Eth_00077]. Die Ausgabeparameter BufIdxPtr (Ressourcenindex für spätere Anfragen) und BufPtr (Zeiger auf den Puffer) stellen die Referenzen auf den Speicherbereich bereit [SWS_Eth_00077].

Fehlerbehandlung und Rückgabewerte

Die Funktion signalisiert das Ergebnis über Rückgabewerte des Typs BufReq_ReturnType [SWS_Eth_00077]:

Zusammenspiel

Wenn EthCtrlConfigSwBufferHandling auf TRUE konfiguriert ist, wird intern ein Tupel aus dem an BufIdxPtr übergebenen Pufferindex des Software-Pufferpools und der angegebenen Priorität Priority gespeichert [SWS_Eth_00267].

Wird anschließend Eth_Transmit() aufgerufen, wird der gegebene Pufferindex demjenigen Software-FIFO zugewiesen, dessen Konfiguration EthCtrlConfigEgressFifoPriorityAssignment mit der zuvor in Eth_ProvideTxBuffer() übergebenen Priorität übereinstimmt [SWS_Eth_00268].

Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function Eth_Transmit [SWS_Eth_00087] 📄 PDF

Std_ReturnType Eth_Transmit (uint8 CtrlIdx, Eth_BufIdxType BufIdx, Eth_FrameType FrameType, boolean TxConfirmation, uint16 LenByte, const uint8* PhysAddrPtr);

Triggers transmission of a previously filled transmit buffer

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 964b3772cde6 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Aufrufkontext

Die synchrone Schnittstelle Eth_Transmit stößt den Sendevorgang für einen zuvor bereitgestellten und befüllten Ethernet-Sendepuffer an [SWS_Eth_00087]. Sie nimmt folgende Parameter entgegen:

  • CtrlIdx: Index des Ethernet-Controllers im Kontext des Treibers [SWS_Eth_00087].
  • BufIdx: Index der zu übertragenden Pufferressource [SWS_Eth_00087].
  • FrameType: Spezifischer Ethernet-Frame-Typ [SWS_Eth_00087].
  • TxConfirmation: Schalter zur Aktivierung der Sende-Bestätigung [SWS_Eth_00087].
  • LenByte: Datenlänge der Nutzlast in Byte [SWS_Eth_00087].
  • PhysAddrPtr: Zeiger auf die physikalische Zieladresse (MAC-Adresse) in Netzwerk-Byte-Reihenfolge [SWS_Eth_00087].

Der Rückgabewert vom Typ Std_ReturnType signalisiert mit E_OK die erfolgreiche Einleitung der Übertragung und mit E_NOT_OK ein Fehlschlagen [SWS_Eth_00087].

Zusammenspiel und Pufferabwicklung

Im Rahmen des Sendeablaufs weist Eth_Transmit den Pufferzeiger BufIdx dem Software-FIFO zu, dessen Konfigurationselement EthCtrlConfigEgressFifoPriorityAssignment mit der zuvor bei Eth_ProvideTxBuffer() festgelegten Priorität übereinstimmt [SWS_Eth_00268]. Mit dem Aufruf werden die entsprechenden Nachrichten aus den Software-FIFOs in das Hardware-FIFO überführt [SWS_Eth_00269].

Nebenläufigkeit

Die Funktion ist reentrant für Aufrufe mit unterschiedlichen Puffer-Indizes (BufIdx) sowie unterschiedlichen Controller-Indizes (CtrlIdx) [SWS_Eth_00087].

Dieser Nutzungshinweis wurde automatisiert anhand der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function Eth_Receive [SWS_Eth_00095] 📄 PDF

void Eth_Receive (uint8 CtrlIdx, uint8 FifoIdx, Eth_RxStatusType* RxStatusPtr);

Receive a frame from the related fifo.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: aeb0a2bc1424 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion Eth_Receive dient dem Empfang eines Ethernet-Frames aus einem spezifischen FIFO-Puffer eines Ethernet-Controllers [SWS_Eth_00095]. Sie besitzt keinen Rückgabewert, liefert das Ergebnis der Abfrage jedoch über den Zeiger RxStatusPtr vom Typ Eth_RxStatusType an den Aufrufer zurück [SWS_Eth_00095]. Dieser Ausgabeparameter zeigt an, ob ein Rahmen erfolgreich empfangen wurde und ob für den betreffenden FIFO-Puffer noch weitere Rahmen zur Abholung bereitstehen [SWS_Eth_00095].

Parameter und Aufrufkontext

Als Eingangsparameter verlangt die Funktion den Controller-Index CtrlIdx innerhalb des Ethernet-Treibers sowie den Index FifoIdx des auszulesenden FIFOs [SWS_Eth_00095]. Die Funktion ist in der Header-Datei Eth.h deklariert [SWS_Eth_00095]. Der Aufruf dürfte typischerweise periodisch im Rahmen eines Polling-Mechanismus durch übergeordnete Treiber- oder Schnittstellenschichten erfolgen. Frage Q-f5ec0693a5887bcf (offen)

Nebenläufigkeit und Einschränkungen

Hinsichtlich der Nebenläufigkeit ist Eth_Receive reentrant für unterschiedliche FIFOs implementiert, jedoch nicht reentrant für denselben FIFO [SWS_Eth_00095]. Gleichzeitige Aufrufe, die denselben FIFO desselben Controllers abfragen, sind unzulässig und müssen durch die aufrufende Software ausgeschlossen werden.

Zusammenspiel mit dem Ethernet-Interface

Im Polling-Modus ist der Ethernet-Treiber verpflichtet, bei einem erfolgreichen Empfangsvorgang unmittelbar aus der Routine Eth_Receive heraus die Funktion EthIf_RxIndication aufzurufen, um den empfangenen Rahmen der oberen Schicht zur Weiterverarbeitung zu melden [SWS_Eth_00244].

Dieser Text wurde von einer KI auf Basis der Spezifikation generiert.

Implementer's Guide folgt (Komplexität I1)

function Eth_TxConfirmation [SWS_Eth_00100] 📄 PDF

void Eth_TxConfirmation (uint8 CtrlIdx);

Triggers frame transmission confirmation

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 72b1ce9d790c Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Aufrufkontext

Die über den Header Eth.h verfügbare Funktion Eth_TxConfirmation dient dem gezielten Auslösen der Übertragungsbestätigung für gesendete Ethernet-Frames [SWS_Eth_00100]. Sie besitzt die Service-ID 0x0C und wird synchron ausgeführt [SWS_Eth_00100]. Als einzigen Übergabeparameter erwartet die Funktion CtrlIdx, welcher den logischen Index des anzusprechenden Controllers innerhalb der Instanz des Ethernet-Treibers bestimmt [SWS_Eth_00100]. Ein Rückgabewert existiert nicht (void), und es werden keine Ausgabeparameter übergeben [SWS_Eth_00100].

Zusammenspiel im Sendeablauf

Im Zusammenspiel der Schichten übernimmt Eth_TxConfirmation die Weitergabe des Sendestatus an die übergeordnete Ethernet-Schnittstelle. Sofern die entsprechende Benachrichtigung aktiviert wurde, ist der Ethernet-Treiber dazu verpflichtet, EthIf_TxConfirmation mit dem Ergebniswert E_OK aufzurufen, um eine erfolgreiche Übertragung zu signalisieren [SWS_Eth_00243]. Im Polling-Modus erfolgt dieser Aufruf explizit aus dem Kontext der Routine Eth_TxConfirmation heraus, während er im unterbrechungsgesteuerten Modus alternativ direkt aus der Interrupt-Routine abgesetzt wird [SWS_Eth_00243].

Nebenläufigkeit und Ausführungsbedingungen

Für die Ausführung gilt die Einschränkung, dass Eth_TxConfirmation als nicht reentrant (Non Reentrant) definiert ist [SWS_Eth_00100]. Zeitgleiche Aufrufe für denselben Controller müssen daher durch den Aufrufer verhindert werden. Der Aufruf dürfte im Polling-Betrieb typischerweise zyklisch durch eine übergeordnete Ablaufsteuerung erfolgen. Frage Q-c19295838459b689 (offen) Spezifische Fehlercodes sowie Vorgaben zu DET- oder DEM-Meldungen sind in der Funktionsspezifikation nicht angegeben, weshalb eine gesonderte Fehlerbehandlung entfällt.

Dieser Text wurde von einer KI erstellt; maßgeblich ist die referenzierte Spezifikation.

Implementer's Guide folgt (Komplexität I1)

function Eth_MainFunction [SWS_Eth_00171] 📄 PDF

void Eth_MainFunction (void);

The function checks for controller errors and lost frames. Used for polling state changes. Calls Eth If_ Ctrl Mode Indication when the controller mode changed.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 395137d99dcb Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Aufrufkontext

Die Funktion Eth_MainFunction besitzt die Signatur void Eth_MainFunction(void) und wird über die Header-Datei SchM_Eth.h bereitgestellt [SWS_Eth_00171]. Daraus lässt sich interpretieren: Der Aufruf dürfte zyklisch durch den Schedule Manager (SchM) in einem taskbasierten Kontext erfolgen, da keine Übergabeparameter oder Rückgabewerte definiert sind. Frage Q-690a2dc372d49c6a (offen)

Funktionsumfang und Polling

Die Hauptaufgabe der Funktion besteht im Polling von Zustandsänderungen sowie der Überprüfung auf Controller-Fehler und verloren gegangene Ethernet-Frames [SWS_Eth_00171]. Stellt die Funktion fest, dass sich der Modus des Ethernet-Controllers geändert hat, ruft sie die Funktion EthIf_CtrlModeIndication auf, um die übergeordnete Schicht über den Zustandswechsel zu informieren [SWS_Eth_00171].

Abarbeitungsreihenfolge im Sendepfad

Im Kontext von Eth_MainFunction() ist eine feste Reihenfolge für die Verarbeitung von Software-FIFOs vorgegeben [SWS_Eth_00270]:

  • Zunächst werden alle SW-FIFOs iteriert und deren Guthabenkonten (Credits Account) aktualisiert [SWS_Eth_00270].
  • Anschließend werden alle SW-FIFOs erneut iteriert und auf sendefertige Nachrichten geprüft [SWS_Eth_00270].
  • Für jedes iterierte SW-FIFO wird daraufhin die Übertragung unternommen [SWS_Eth_00270].

Dieser Nutzungshinweis wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

type Eth_ModeType [SWS_Eth_00158] 📄 PDF

This is an generic type and used in the layers of the Ethernet communication stack (e.g. EthIf, Eth, EthSwt, EthTrcv) to enable and disable, resp ectively, the Ethernet communcation channel and set the corresponding hardware (e.g. Ethernet controller, Ethernet Switch port, Ethernet transceiver) to an lowpower sleep and power on mode, respectively. Tags: atp.Status=obsolete

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 12ea280a995a Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der generische Enumerationstyp Eth_ModeType dient in den Schichten des Ethernet-Kommunikationsstacks (wie EthIf, Eth, EthSwt und EthTrcv) dazu, den Ethernet-Kommunikationskanal zu aktivieren oder zu deaktivieren sowie die zugehörige Hardware (wie Ethernet-Controller, Ethernet-Switch-Port oder Ethernet-Transceiver) in einen stromsparenden Schlafzustand bzw. Aktivmodus zu versetzen [SWS_Eth_00158].

Der Typ ist über die Header-Datei Eth_GeneralTypes.h verfügbar und definiert die folgenden Wertebereiche [SWS_Eth_00158]:

  • ETH_MODE_DOWN (0x00): Deaktiviert den Ethernet-Kommunikationskanal und versetzt die zugehörige Hardware in einen stromsparenden Schlafmodus (Low-Power Sleep Mode) [SWS_Eth_00158].
  • ETH_MODE_ACTIVE (0x01): Aktiviert den Ethernet-Kommunikationskanal und versetzt die Hardware in den Betriebsmodus (Power-On Mode) [SWS_Eth_00158].

Hinsichtlich des Lebenszyklus und der Verwendung ist zu beachten, dass Eth_ModeType im Release R20-11 mit dem Status obsolete gekennzeichnet ist [SWS_Eth_00158]. In Neuentwicklungen sollte die Verwendung dieses Typs daher vermieden werden, da veraltete Schnittstellentypen in künftigen Standards typischerweise durch modernere Kontrollstrukturen ersetzt werden.

Dieser Nutzungshinweis wurde automatisiert erstellt. Spezifikationsbelege beziehen sich ausschließlich auf den bereitgestellten Anforderungskontext.

Implementer's Guide folgt (Komplexität I1)

type Eth_ModeType [SWS_Eth_91008] 📄 PDF

This is an generic type and used in the layers of the Ethernet commun ication stack (e.g. Eth If, Eth, Eth Swt, Eth Trcv) to enable and disable, respectively, the Ethernet communcation channel and set the corresponding hardware (e.g. Ethernet controller, Ethernet Switch port, Ethernet transceiver) to an lowpower sleep and po wer on mode, respectively. The type also support to transfer a wake - up request from the services layer (Com M) to the communication drivers (Eth Trcv). This could be used e.g. for Ethernet hardware that has the capability to wake - up and sleep on data line (see OA TC10) Tags: atp.Status=draft

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: bd78c0f35c62 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Enumerationstyp Eth_ModeType wird über Eth_GeneralTypes.h deklariert und dient als schichtenübergreifender Modus-Typ im AUTOSAR-Ethernet-Kommunikationsstack ([SWS_Eth_91008]). Er wird in Modulen wie EthIf, Eth, EthSwt und EthTrcv verwendet, um Kommunikationskanäle gezielt zu aktivieren bzw. zu deaktivieren und die zugehörige Hardwarekomponente (Ethernet-Controller, Switch-Ports oder Transceiver) zwischen einem energiesparenden Schlafmodus und dem aktiven Betriebsmodus umzuschalten ([SWS_Eth_91008]).

Der Typ umfasst drei Zustände zur Modussteuerung ([SWS_Eth_91008]):

  • ETH_MODE_DOWN (0x00): Deaktiviert die Rx- und Tx-Kommunikation und versetzt die zugehörige Hardware in einen Low-Power-Sleep-Modus. Sofern die Hardware dies unterstützt, wird zugleich ein Schlafprozess eingeleitet (beispielsweise das Anfordern von Sleep auf der Datenleitung gemäß OPEN Alliance TC10).
  • ETH_MODE_ACTIVE (0x01): Aktiviert die Rx- und Tx-Kommunikation und schaltet die zugehörige Hardware in den regulären Betriebsmodus (Power-on).
  • ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST (0x02): Aktiviert die Rx- und Tx-Kommunikation, versetzt die Hardware in den Betriebsmodus und löst zusätzlich eine Weckanforderung auf dem Netzwerk aus, sofern die Hardware über Weckfähigkeiten verfügt (wie Wake-up auf der Datenleitung nach OPEN Alliance TC10).

Im Stack-Zusammenspiel unterstützt Eth_ModeType insbesondere die Weiterreichung von Weckanforderungen aus der Serviceschicht (ComM) über die Zwischenschichten bis hinab zu den Kommunikationstreibern (EthTrcv), wodurch Hardware mit Wake-up- und Sleep-Funktionalität auf der Datenleitung bedarfsgerecht gesteuert wird ([SWS_Eth_91008]).

Dieser Nutzungshinweis wurde automatisch auf Basis der Spezifikation SWS_Eth_91008 generiert.

Implementer's Guide folgt (Komplexität I1)

type Eth_StateType [SWS_Eth_00159] 📄 PDF

Status supervision used for Development Error Detection. The state shall be available for debugging.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: c3ab864e1cec Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Aufzählungstyp Eth_StateType wird über den Header Eth_GeneralTypes.h bereitgestellt und dient gemäß [SWS_Eth_00159] der Zustandsüberwachung des Ethernet-Treibers. Sein Zweck besteht in der Unterstützung der Erkennung von Entwicklungsfehlern (Development Error Detection), wobei der aktuelle Zustand laut Spezifikation für Debugging-Zwecke verfügbar sein muss ([SWS_Eth_00159]).

Für die Zustandsverwaltung definiert Eth_StateType zwei diskrete Enumerationswerte ([SWS_Eth_00159]):

  • ETH_STATE_UNINIT (Wert 0x00): Kennzeichnet, dass der Ethernet-Treiber noch nicht konfiguriert ist ([SWS_Eth_00159]).
  • ETH_STATE_INIT (Wert 0x01): Kennzeichnet, dass der Ethernet-Treiber erfolgreich konfiguriert ist ([SWS_Eth_00159]).

Hinsichtlich der Fehlerbehandlung und des Zusammenspiels bildet dieser Zustandstyp die Grundlage für die interne Fehlererkennung. Es dürfte davon auszugehen sein, dass Treiber-APIs diesen Zustand abfragen und Aufrufe abweisen, solange sich der Treiber im uninitialisierten Zustand ETH_STATE_UNINIT befindet ([SWS_Eth_00159]). Frage Q-35a17e3267274d70 (offen) Erst wenn der Treiber in den Zustand ETH_STATE_INIT übergegangen ist, gilt er als konfiguriert und betriebsbereit ([SWS_Eth_00159]). Da die Typdefinition in Eth_GeneralTypes.h liegt, steht sie treiberübergreifend zur Verfügung ([SWS_Eth_00159]).

Dieser Text wurde durch eine KI auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

type Eth_FrameType [SWS_Eth_00160] 📄 PDF

This type defines the Ethernet frame type used in the Ethernet frame header

type Eth_DataType [SWS_Eth_00161] 📄 PDF

This type defines the Ethernet data type used for data transmission. Its definition depends on the used CPU.

type Eth_RxStatusType [SWS_Eth_00162] 📄 PDF

Used as out parameter in Eth_ Receive() indicates whether a frame has been received and if so, whether more frames are available or frames go t lost.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 91a81f4cdad3 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Wertebereich

Der Aufzählungstyp Eth_RxStatusType wird gemäß [SWS_Eth_00162] in der Header-Datei Eth_GeneralTypes.h definiert. Er dient als Ausgangsparameter (out parameter) in der Funktion Eth_Receive(), über den der Ethernet-Treiber mitteilt, ob ein Ethernet-Frame empfangen wurde und ob nachfolgend weitere Frames im Puffer vorliegen oder Daten verloren gegangen sind [SWS_Eth_00162].

Die Spezifikation definiert für diesen Typ drei diskrete Enumerationswerte [SWS_Eth_00162]:

  • ETH_RECEIVED (0x00): Ein Ethernet-Frame wurde empfangen; im Controller stehen keine weiteren Frames mehr zur Verfügung.
  • ETH_NOT_RECEIVED (0x01): Es wurde kein Ethernet-Frame empfangen; es liegen keine weiteren Frames vor.
  • ETH_RECEIVED_MORE_DATA_AVAILABLE (0x02): Ein Ethernet-Frame wurde empfangen, und es stehen zusätzliche Frames zur Abholung bereit.

Zusammenspiel bei der Frame-Verarbeitung

Beim Aufruf von Eth_Receive() übergibt die aufrufende Schicht einen Zeiger auf eine Variable des Typs Eth_RxStatusType. Die Auswertung dieses Ausgabeparameters steuert den weiteren Ablauf des Empfangszyklus: Der Rückgabewert ETH_RECEIVED_MORE_DATA_AVAILABLE dürfte dem Aufrufer als Kriterium dienen, Eth_Receive() unmittelbar erneut aufzurufen, um verbleibende Frames zügig aus dem Empfangspuffer abzuarbeiten [SWS_Eth_00162]. Frage Q-4ed309522aa004f8 (offen) Die Zustände ETH_RECEIVED und ETH_NOT_RECEIVED signalisieren demgegenüber, dass der Puffer erschöpft ist und keine weiteren Daten zur Verarbeitung anstehen. Die Bereitstellung über Eth_GeneralTypes.h gewährleistet dabei eine einheitliche Typverwendung über die Module hinweg [SWS_Eth_00162].

Dieser Text wurde von einer KI generiert und basiert ausschließlich auf den Spezifikationsdaten aus AUTOSAR R20-11.

Implementer's Guide folgt (Komplexität I1)

type Eth_FilterActionType [SWS_Eth_00163] 📄 PDF

The Enumeration Type Eth_ Filter Action Type describes the action to be taklen for the MAC address given in *Phys Addr Ptr.

type Eth_TimeStampQualType [SWS_Eth_00177] 📄 PDF

Depending on the HW, quality information regarding the evaluated time stamp might be supported. If not supported, the value shall be always Valid. For Uncertain and Invalid values, the upper layer shall discard the time stamp.

type Eth_TimeStampType [SWS_Eth_00178] 📄 PDF

Variables of this type are used for expressing time stamps including relative time and absolute calendar time. The absolute time starts at 1970 - - 01. 0 to 281474976710655s == 3257812230d [0x FFFF FFFF FFFF] 0 to 999999999ns [0x3B9A C9FF] invalid value in nanoseconds: [0x3B9A CA00] to [0x3FFF FFFF] Bit 30 and 31 reserved, default: 0

type Eth_MacVlanType [SWS_Eth_91001] 📄 PDF

This type is used to read out addresses from the address resolution logic (A RL) table of the switch. typedef struct { uint8 Mac Addr[6U]; uint16 Vlan Id; uint32 Switch Port; } Eth_ Mac Vlan Type; In case of Macaddr contains a Multicast Address Mac Vlan Type.Switch Port shall be handled as Bitmask, each bit represents a Switch Port , Bit 0 represents Eth Swicht Port Idx = 0 , Bit 1 represents Eth Swicht Port Idx = 1 and so on. In case of Macaddr contains not a Multicast Address Mac Vlan Type.Switch Port shall be handled as a value representing the Eth Switch Port Idx.

type Eth_TxErrorCounterValuesType [SWS_Eth_91004] 📄 PDF

Type Eth_TxErrorCounterValuesType.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: cf651d8e65c0 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Zweck

Der Datentyp Eth_TxErrorCounterValuesType ist gemäß [SWS_Eth_91004] als Struktur für statistische Zähler zu Diagnosezwecken im Ethernet-Treiber spezifiziert. Die Definition steht über die Header-Datei Eth_GeneralTypes.h bereit. Die Struktur bündelt mehrere 32-Bit-Zähler (uint32), welche spezifische Übertragungszustände und Sendehemmnisse auf Schnittstellenebene abbilden.

Strukturkomponenten und Semantik

Die einzelnen Zähler orientieren sich gemäß [SWS_Eth_91004] an standardisierten Netzwerk-MIB-Definitionen:

  • Tx Dropped No Error Pkts: Anzahl der ausgehenden Pakete, die trotz fehlerfreiem Zustand verworfen wurden, beispielsweise um Pufferspeicher freizugeben (RFC1213 ifOutDiscards).
  • Tx Dropped Error Pkts: Anzahl der Pakete, die aufgrund aufgetretener Fehler nicht übertragen werden konnten (RFC1213 ifOutErrors).
  • Tx Deferred Trans: Anzahl der Frames, deren erster Sendeversuch verzögert wurde, weil das Übertragungsmedium belegt war (RFC1643 dot3StatsDeferredTransmissions).
  • Tx Single Collision und Tx Multiple Collision: Erfolgreich übertragene Frames, deren Aussendung durch genau eine beziehungsweise durch mehrere Kollisionen verzögert wurde (RFC1643).
  • Tx Late Collision: Kollisionen, die später als 512 Bit-Zeiten nach Beginn der Paketübertragung erkannt wurden (RFC1643 dot3StatsLateCollisions).
  • Tx Excessive Collison: Anzahl der Übertragungen, die infolge zu vieler Kollisionen endgültig fehlgeschlagen sind (RFC1643 dot3StatsExcessiveCollisions).

Aufrufkontext und Einschränkungen

Interpretation: Da der Spezifikationsauszug keine zugehörige API-Funktion aufführt, dürfte dieser Diagnosetyp vermutlich als Ausgabeparameter per Zeiger an entsprechende Treiberfunktionen zur Zählerabfrage übergeben werden. Frage Q-2bfbe59d1fb81938 (offen) Spezifische Anforderungen an Fehlerbehandlung, DET-Meldungen oder Nebenläufigkeit sind für diese reine Datenstruktur in den Quellen nicht definiert.

Dieser Text wurde von einer KI auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_Eth
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Eth@rel:R20-11#f8a5ceda
Content hash
f8a5ceda
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_EthernetDriver.pdf#nameddest=SWS_Eth_00027

Initialisierung und Status

Returns the version information of this module

void Eth_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);
Eth_Init function

Initializes the Ethernet Driver

void Eth_Init (const Eth_ConfigType* CfgPtr);

Dienste · Get…

Obtains the state of the indexed controller Tags: atp.Status=obsolete

Std_ReturnType Eth_GetControllerMode (uint8 CtrlIdx, Eth_ModeType* CtrlModePtr);

Obtains the communication state of the indexed controller Tags: atp.Status=draft

Std_ReturnType Eth_GetControllerMode (uint8 CtrlIdx, Eth_ModeType* CtrlModePtr);

Reads a list with drop counter values of the corresponding controller. The meaning of these values is described at Eth_ Counter Type.

Std_ReturnType Eth_GetCounterValues (uint8 CtrlIdx, Eth_CounterType* CounterPtr);

Returns a time value out of the HW registers according to the capability of the HW. Is the HW resolution is lower than the Eth_ Time Stamp Type resolution resp. range, than an the remainin g bits will be filled with 0. Important Note: Eth_ Get Current Time may be called within an exclusive area.

Std_ReturnType Eth_GetCurrentTime (uint8 CtrlIdx, Eth_TimeStampQualType* timeQualPtr, Eth_TimeStampType* timeStampPtr);

Reads back the egress time stamp on a dedicated message object. It must be called within the Tx Confirmation() function.

Std_ReturnType Eth_GetEgressTimeStamp (uint8 CtrlIdx, Eth_BufIdxType BufIdx, Eth_TimeStampQualType* timeQualPtr, Eth_TimeStampType* timeStampPtr);

Reads back the ingress time stamp on a dedicated message object. It must be called within the Rx Indication() function.

Std_ReturnType Eth_GetIngressTimeStamp (uint8 CtrlIdx, const Eth_DataType* DataPtr, Eth_TimeStampQualType* timeQualPtr, Eth_TimeStampType* timeStampPtr);

Obtains the physical source address used by the indexed controller

void Eth_GetPhysAddr (uint8 CtrlIdx, uint8* PhysAddrPtr);

Returns the following list according to IETF RFC281 9, where the maximal possible value shall denote an invalid value, e.g. if this counter is not available: 1. ether Stats Drop Events 2. ether Stats Octets 3. ether Stats Pkts 4. ether Stats Broadcast Pkts 5. ether Stats Multicast Pkts 6. ether Stats Crc Al ign Errors 7. ether Stats Undersize Pkts 8. ether Stats Oversize Pkts 9. ether Stats Fragments 10. ether Stats Jabbers 11. ether Stats Collisions 12. ether Stats Pkts64Octets 13. ether Stats Pkts65to127Octets 14. ether Stats Pkts128to255Octets 15. ether St ats Pkts256to511Octets 16. ether Stats Pkts512to1023Octets 17. ether

Std_ReturnType Eth_GetRxStats (uint8 CtrlIdx, Eth_RxStatsType* RxStats);

Returns the list of Transmission Error Counters out of IETF RFC1213 and RFC1643 defined with Eth_ Tx Error Counter Values Type, where the maximal possible value shall denote an invalid value, e.g. this counter is not available.

Std_ReturnType Eth_GetTxErrorCounterValues (uint8 CtrlIdx, Eth_TxErrorCounterValuesType* TxErrorCounterValues);

Returns the list of Transmission Statistics out of IETF RFC1213 defined with Eth_ Tx Stats Type, where the maximal possible value shall denote an invalid value, e.g. this counter is not available.

Std_ReturnType Eth_GetTxStats (uint8 CtrlIdx, Eth_TxStatsType* TxStats);

Dienste · Set…

Enables / disables the indexed controller Tags: atp.Status=obsolete

Std_ReturnType Eth_SetControllerMode (uint8 CtrlIdx, Eth_ModeType CtrlMode);

Enables / Disables Rx/ Tx communication of the indexed controller Tags: atp.Status=draft

Std_ReturnType Eth_SetControllerMode (uint8 CtrlIdx, Eth_ModeType CtrlMode);

Sets the physical source address used by the indexed controller

void Eth_SetPhysAddr (uint8 CtrlIdx, const uint8* PhysAddrPtr);

Dienste · Weitere

Activat es egress time stamping on a dedicated message object. Some HW does store once the egress time stamp marker and some HW needs it always before transmission. There will be no "disable" functionality, due to the fact, that the message type is always "time st amped" by network design.

void Eth_EnableEgressTimeStamp (uint8 CtrlIdx, Eth_BufIdxType BufIdx);

Provides access to a transmit buffer of the FIFO related to the specified priority

BufReq_ReturnType Eth_ProvideTxBuffer (uint8 CtrlIdx, uint8 Priority, Eth_BufIdxType* BufIdxPtr, uint8* * BufPtr, uint16* LenBytePtr);
Eth_ReadMii function

Reads a transceiver register

Std_ReturnType Eth_ReadMii (uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint16* RegValPtr);
Eth_Receive function

Receive a frame from the related fifo.

void Eth_Receive (uint8 CtrlIdx, uint8 FifoIdx, Eth_RxStatusType* RxStatusPtr);
Eth_Transmit function

Triggers transmission of a previously filled transmit buffer

Std_ReturnType Eth_Transmit (uint8 CtrlIdx, Eth_BufIdxType BufIdx, Eth_FrameType FrameType, boolean TxConfirmation, uint16 LenByte, const uint8* PhysAddrPtr);

Update the physica l source address to/ from the indexed controller filter. If the Ethernet Controller is not capable to do the filtering, the software has to do this.

Std_ReturnType Eth_UpdatePhysAddrFilter (uint8 CtrlIdx, const uint8* PhysAddrPtr, Eth_FilterActionType Action);
Eth_WriteMii function

Configures a transceiver register or triggers a function offered by the receiver

Std_ReturnType Eth_WriteMii (uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint16 RegVal);

Callbacks

Triggers frame transmission confirmation

void Eth_TxConfirmation (uint8 CtrlIdx);

Zyklisch

The function checks for controller errors and lost frames. Used for polling state changes. Calls Eth If_ Ctrl Mode Indication when the controller mode changed.

void Eth_MainFunction (void);

Typen

Ethernet buffer identifier type.

Implementation specific structure of the post build configuration

Type Eth_CounterType.

This type defines the Ethernet data type used for data transmission. Its definition depends on the used CPU.

The Enumeration Type Eth_ Filter Action Type describes the action to be taklen for the MAC address given in *Phys Addr Ptr.

This type defines the Ethernet frame type used in the Ethernet frame header

This type is used to read out addresses from the address resolution logic (A RL) table of the switch. typedef struct { uint8 Mac Addr[6U]; uint16 Vlan Id; uint32 Switch Port; } Eth_ Mac Vlan Type; In case of Macaddr contains a Multicast Address Mac Vlan Type.Switch Port shall be handled as Bitmask, each bit represents a Switch Port , Bit 0 represents Eth Swicht Port Idx = 0 , Bit 1 represents Eth Swicht Port Idx = 1 and so on. In case of Macaddr contains not a Multicast Address Mac Vlan Type.Switch Port shall be handled as a value representing the Eth Switch Port Idx.

This is an generic type and used in the layers of the Ethernet communication stack (e.g. EthIf, Eth, EthSwt, EthTrcv) to enable and disable, resp ectively, the Ethernet communcation channel and set the corresponding hardware (e.g. Ethernet controller, Ethernet Switch port, Ethernet transceiver) to an lowpower sleep and power on mode, respectively. Tags: atp.Status=obsolete

This is an generic type and used in the layers of the Ethernet commun ication stack (e.g. Eth If, Eth, Eth Swt, Eth Trcv) to enable and disable, respectively, the Ethernet communcation channel and set the corresponding hardware (e.g. Ethernet controller, Ethernet Switch port, Ethernet transceiver) to an lowpower sleep and po wer on mode, respectively. The type also support to transfer a wake - up request from the services layer (Com M) to the communication drivers (Eth Trcv). This could be used e.g. for Ethernet hardware that has the capability to wake - up and sleep on data line (see OA TC10) Tags: atp.Status=draft

Variables of this type are used to express frequency ratios.

Type Eth_RxStatsType.

Used as out parameter in Eth_ Receive() indicates whether a frame has been received and if so, whether more frames are available or frames go t lost.

Status supervision used for Development Error Detection. The state shall be available for debugging.

Variables of this type are used to express time differences.

Depending on the HW, quality information regarding the evaluated time stamp might be supported. If not supported, the value shall be always Valid. For Uncertain and Invalid values, the upper layer shall discard the time stamp.

Variables of this type are used for expressing time stamps including relative time and absolute calendar time. The absolute time starts at 1970 - - 01. 0 to 281474976710655s == 3257812230d [0x FFFF FFFF FFFF] 0 to 999999999ns [0x3B9A C9FF] invalid value in nanoseconds: [0x3B9A CA00] to [0x3FFF FFFF] Bit 30 and 31 reserved, default: 0

Type Eth_TxErrorCounterValuesType.

Statistic counter for diag nostics.