DEENESPTFRRUARHIKOZHNL

Ethernet Driver (Eth)

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

모듈 가이드AI 생성

Ethernet 컨트롤러를 AUTOSAR 스택에 연결: 초기화, 모드, 송신, 수신 및 진단.
AI 생성 미검증 모델: claude-opus-5-5 · 노력: high · 온도: 제어 불가 · 프롬프트: 7ed698a8fca3 출처 열린 질문 (3)
인과 앵커: R20-11 R20-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

Ethernet 컨트롤러를 AUTOSAR 스택에 연결: 초기화, 모드, 송신, 수신 및 진단.

Ethernet 드라이버는 Ethernet 컨트롤러를 Ethernet Interface에 연결합니다. 컨트롤러를 초기화하고, Rx/Tx 통신을 ETH_MODE_DOWN과 ETH_MODE_ACTIVE 사이에서 비동기식으로 전환하며, 인디케이션([SWS_Eth_00276])을 통해 변경 사항을 보고합니다. 송신은 버퍼 요청 후 전달이라는 2단계로 진행됩니다. 드라이버는 모든 송신을 E_OK 또는 E_NOT_OK로 확인합니다([SWS_Eth_00243]). 또한 주소 필터가 포함된 수신, MII 접근, 타임스탬프 및 진단 카운터를 제공합니다. 종료 시 잠긴 송신 버퍼를 해제해야 합니다.

Ethernet 드라이버 Eth은 Ethernet Interface(EthIf)를 위해 하나 이상의 Ethernet 컨트롤러를 추상화합니다. 이 과정에서 EthIf는 여러 공급업체의 여러 드라이버를 번들링할 수 있습니다(SWS Eth 17쪽). Eth는 EthIf_RxIndication, EthIf_TxConfirmation 및 EthIf_CtrlModeIndication를 통해 결과를 보고합니다([SWS_Eth_00244], [SWS_Eth_00243], [SWS_Eth_00119]). 다른 인접 모듈로는 EthTrcv, EthSwt, DET 및 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 레지스터 및 버퍼 액세스

컨텍스트 다이어그램: Ethernet 드라이버의 호출자 및 콜백 수신자. 출처: [SWS_Eth_00119], [SWS_Eth_00120], SWS Eth 17쪽

Eth_Init은 구성된 모든 컨트롤러의 Rx/Tx 통신을 비활성화하고 이를 구성하며 대기 중인 요청을 폐기합니다([SWS_Eth_00027], [SWS_Eth_00275]). 비동기식 Eth_SetControllerMode은 ETH_MODE_DOWN와 ETH_MODE_ACTIVE 사이를 전환합니다([SWS_Eth_91009], [SWS_Eth_00276]). 종료 시 드라이버는 잠긴 송신 버퍼를 해제합니다([SWS_Eth_00280]). 결과는 EthIf_CtrlModeIndication를 통해 전달되며, 폴링 모드에서는 Eth_MainFunction에서 전달됩니다([SWS_Eth_00240]).

송신을 위해 상위 계층은 Eth_ProvideTxBuffer으로 버퍼를 요청하고 Eth_Transmit로 버퍼를 전달합니다([SWS_Eth_00077], [SWS_Eth_00087]). 확인 결과는 E_OK 또는 E_NOT_OK입니다([SWS_Eth_00243], [SWS_Eth_00256]). Eth_Receive은 FIFO에서 프레임을 읽고 추가 프레임이 있는지 보고합니다([SWS_Eth_00095], [SWS_Eth_00162]). 일치하지 않는 목적지 주소를 가진 프레임은 Eth가 폐기합니다([SWS_Eth_00245], [SWS_Eth_00246]).

폴링 모드에서 프레임 전송Obere Schicht (UL)EthIfEthEthIf_ProvideTxBuffer(...)Eth_ProvideTxBuffer(CtrlIdx, Priority,BufIdxPtr, BufPtr, LenBytePtr)BUFREQ_OK, BufIdx, BufPtr, 허용된 길이BUFREQ_OK, Puffer페이로드를 버퍼에 복사EthIf_Transmit(...)Eth_Transmit(CtrlIdx, BufIdx, FrameType,TxConfirmation = TRUE, LenByte, PhysAddrPtr)Ethernet-Header bilden,전송 트리거E_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)

시퀀스 다이어그램: 폴링 모드에서의 버퍼 요청, 송신 및 확인. 출처: [SWS_Eth_00077], [SWS_Eth_00087], [SWS_Eth_00243], SWS EthIf 87쪽

추가 기능에는 R20-11에서 비동기식인 MII 접근([SWS_Eth_00058]), 하드웨어 타임스탬프([SWS_Eth_00190]), 통계 서비스([SWS_Eth_00233]) 및 선택적 Credit Based Shaper(DRAFT, [SWS_Eth_00263])가 포함됩니다. 오류는 Eth가 개발 오류로서 DET에 보고합니다([SWS_Eth_00016]). ETH_E_ACCESS 또는 ETH_E_RX_FRAMES_LOST과 같은 프로덕션 오류는 DEM으로 전달됩니다([SWS_Eth_00173], [SWS_Eth_00174]).

Ethernet 스택에서의 역할 및 시스템 경계

Ethernet 드라이버 Eth은 하드웨어 근접 모듈로서 Ethernet Interface(EthIf) 아래에 위치합니다. 스택 기본 구조 다이어그램에 따르면 EthIf는 각각 고유한 컨트롤러 유형을 갖춘 서로 다른 공급업체의 하나 이상의 Eth 드라이버를 번들링합니다(SWS Eth 17쪽). 상위 계층을 향해 Eth는 Eth_Init, Eth_SetControllerMode, Eth_ProvideTxBuffer, Eth_Transmit 및 Eth_Receive과 같은 서비스를 제공합니다([SWS_Eth_00027], [SWS_Eth_91009], [SWS_Eth_00077], [SWS_Eth_00087], [SWS_Eth_00095]). 결과는 콜백 EthIf_RxIndication, EthIf_TxConfirmation 및 EthIf_CtrlModeIndication를 통해 반환합니다([SWS_Eth_00244], [SWS_Eth_00243], [SWS_Eth_00119]).

기타 인접 모듈은 다음과 같습니다:

여러 컨트롤러가 주변 장치 리소스를 공유하는 경우, Eth는 상위 계층에 대해 독립된 컨트롤러인 것처럼 에뮬레이션합니다. 조정은 상위 계층이 담당합니다([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 레지스터 및 버퍼 액세스

컨텍스트 다이어그램: Eth는 EthIf 및 EcuM에 의해 호출되며 EthIf, EthTrcv, EthSwt, DET 및 DEM에 보고합니다. 출처: [SWS_Eth_00119], [SWS_Eth_00120], [SWS_Eth_00241], SWS Eth 17쪽

Eth_Init부터 ETH_MODE_ACTIVE까지: 시작 및 컨트롤러 모드

Eth_Init은 포스트 빌드 구조체 Eth_ConfigType에 대한 포인터를 받습니다([SWS_Eth_00027], [SWS_Eth_00156]). 현재 EthConfigSet의 각 컨트롤러에 대해 함수는 다음 단계를 수행합니다([SWS_Eth_00275], DRAFT; 이전 버전 [SWS_Eth_00034]은 사용되지 않음):

  • Rx/Tx 통신 비활성화,
  • 대기 중인 인터럽트 클리어,
  • 컨트롤러 매개변수 및 송수신 리소스 구성,
  • 대기 중인 요청 폐기.

Eth_StateType은 ETH_STATE_UNINIT과 ETH_STATE_INIT를 구분하며 Development Error Detection에 사용됩니다([SWS_Eth_00159]). 최신 버전에서는 호출 규칙을 다음과 같이 요약합니다. Eth_GetVersionInfo 및 Eth_MainFunction와 같은 계획된 함수를 제외하고 서비스는 초기화 후에만 허용됩니다(SWS Eth 27쪽). R20-11은 예를 들어 [SWS_Eth_00066]에서처럼 ETH_E_UNINIT에 대한 검사를 통해 각 서비스별로 이를 규정합니다.

첫 번째 MII 액세스를 포함한 이더넷 드라이버의 기동EcuMEthIfEthEthTrcv해석: EcuM 호출 순서;MII 액세스 전에 Eth_Init이 수행되어야 함Eth_Init(CfgPtr)Rx/Tx aller Controller deaktivieren,인터럽트 클리어, 매개변수 및 버퍼구성, 작업 폐기EthTrcv_Init(...)EthIf_WriteMii(...)Eth_WriteMii(CtrlIdx, TrcvIdx, RegIdx, RegVal)E_OK (Dienst angenommen)E_OKMII 액세스는 R20-11에서 비동기로 실행됨EthTrcv_WriteMiiIndication(...)EthIf_Init(...)

시퀀스 다이어그램: Eth_Init 및 트랜시버 드라이버의 비동기식으로 확인된 최초 MII 접근을 포함하는 시작 절차. 출처: [SWS_Eth_00275], [SWS_Eth_00058], [SWS_Eth_00241], SWS EthIf 84쪽

R20-11에서는 비동기식 비재진입 버전 [SWS_Eth_91009]의 Eth_SetControllerMode이 적용되며, 이는 [SWS_Eth_00041]를 대체합니다. 두 모드는 다음과 같이 작동합니다([SWS_Eth_00276]):

  • ETH_MODE_DOWN: 드라이버가 Rx/Tx를 비활성화하고 모든 버퍼를 리셋합니다. 잠겨 있거나 대기 중인 송신 버퍼는 해제됩니다([SWS_Eth_00280], [SWS_Eth_00281]).
  • ETH_MODE_ACTIVE: 드라이버가 모든 버퍼와 Rx/Tx 통신을 활성화합니다.

모드 변경 결과는 Eth가 EthIf_CtrlModeIndication을 통해 비동기식으로 보고합니다([SWS_Eth_00119]). 폴링 모드에서는 Eth_MainFunction가 변경을 감지하고 이 콜백을 호출합니다([SWS_Eth_00171], [SWS_Eth_00240]). 현재 상태는 Eth_GetControllerMode가 반환합니다([SWS_Eth_91010], [SWS_Eth_00277]).

Eth_ModeType은 추가로 ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST을 인식합니다. ETH_MODE_DOWN에서는 하드웨어가 슬립 프로세스를 트리거할 수 있습니다(예: OA-TC10 하드웨어의 경우)([SWS_Eth_91008]). 그러나 Eth_SetControllerMode의 매개변수 설명에는 ETH_MODE_DOWN 및 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 비활성화, 구성, 작업 폐기 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 비활성화, 버퍼 재설정, 잠금 및 대기 중인 전송 버퍼 해제

상태 다이어그램: 드라이버 상태 UNINIT/INIT 및 전이 시 의무 사항이 포함된 각 컨트롤러의 DOWN 및 ACTIVE 모드. 출처: [SWS_Eth_00159], [SWS_Eth_00275], [SWS_Eth_00276], [SWS_Eth_00280]

이더넷 컨트롤러 활성화EthSMEthIfEthEthIf_SetControllerMode(CtrlIdx, ETH_MODE_ACTIVE)Eth_SetControllerMode(CtrlIdx, ETH_MODE_ACTIVE)E_OK전송 및 수신 버퍼 활성화,Rx/Tx-Kommunikation aktivierenoptPolling-BetriebEth_MainFunction(): Moduswechsel erkanntEthIf_CtrlModeIndication(CtrlIdx, ETH_MODE_ACTIVE)EthSM_CtrlModeIndication(CtrlIdx, ETH_MODE_ACTIVE)

시퀀스 다이어그램: 동기식 수락 및 비동기식 모드 인디케이션을 통한 EthSM의 활성화. 출처: [SWS_Eth_91009], [SWS_Eth_00119], [SWS_Eth_00240], SWS EthIf 85쪽

송신 경로: 버퍼 요청, 송신, 확인

송신은 2단계로 진행됩니다. 먼저 Eth_ProvideTxBuffer이 Priority을 기반으로 송신 FIFO를 선택합니다. 이 서비스는 Eth_BufIdxType 타입의 인덱스, 버퍼 포인터 및 LenBytePtr을 통해 부여된 길이를 반환합니다([SWS_Eth_00077], [SWS_Eth_00175]). 가능한 반환값은 BUFREQ_OK, BUFREQ_E_NOT_OK, BUFREQ_E_BUSY 및 BUFREQ_E_OVFL입니다. 버퍼는 이 인덱스와 함께 Eth_Transmit이 호출될 때까지 잠긴 상태로 유지됩니다(SWS Eth 91쪽).

그 후 Eth_Transmit은 FrameType, 목적지 MAC 주소 및 TxConfirmation 플래그를 사용하여 송신을 트리거합니다([SWS_Eth_00087], [SWS_Eth_00160]). 이 과정에서 드라이버는 Ethernet 헤더를 구성합니다(SWS Eth 93쪽). Eth_Transmit은 서로 다른 버퍼 및 컨트롤러 인덱스에 대해 재진입 가능합니다([SWS_Eth_00087]).

컨펌이 요청된 경우 Eth는 E_OK과 함께 EthIf_TxConfirmation을 호출합니다. 인터럽트 모드에서는 인터럽트 루틴에서, 폴링 모드에서는 Eth_TxConfirmation에서 수행됩니다([SWS_Eth_00243], [SWS_Eth_00100]). 송신이 실패하면 결과는 E_NOT_OK입니다([SWS_Eth_00256]). 상위 계층은 각 Eth_Transmit 뒤에 컨펌이 따른다는 점을 신뢰할 수 있습니다(SWS Eth 32쪽).

폴링 다이어그램에서는 EthIf_MainFunctionTx이 Eth_TxConfirmation 함수를 호출합니다(SWS EthIf 87쪽). 인터럽트 모드에서는 Eth_TxIrqHdlr_<CtrlIdx>이 이를 처리합니다(SWS EthIf 88쪽). 드라이버가 버퍼를 해제하는 시점은 구현에 맡겨집니다(SWS Eth 93쪽).

폴링 모드에서 프레임 전송Obere Schicht (UL)EthIfEthEthIf_ProvideTxBuffer(...)Eth_ProvideTxBuffer(CtrlIdx, Priority,BufIdxPtr, BufPtr, LenBytePtr)BUFREQ_OK, BufIdx, BufPtr, 허용된 길이BUFREQ_OK, Puffer페이로드를 버퍼에 복사EthIf_Transmit(...)Eth_Transmit(CtrlIdx, BufIdx, FrameType,TxConfirmation = TRUE, LenByte, PhysAddrPtr)Ethernet-Header bilden,전송 트리거E_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)

시퀀스 다이어그램: 성공 및 실패 분기가 포함된 폴링 모드에서의 버퍼 요청, 채우기, 송신 및 확인. 출처: [SWS_Eth_00077], [SWS_Eth_00087], [SWS_Eth_00243], [SWS_Eth_00256], SWS EthIf 87쪽

수신 경로 및 주소 필터

Eth_Receive은 FifoIdx을 통해 주소 지정된 FIFO에서 프레임을 읽습니다. 이 서비스는 서로 다른 FIFO에 대해서는 재진입 가능하지만, 동일한 FIFO에 대해서는 재진입할 수 없습니다([SWS_Eth_00095]). RxStatusPtr은 ETH_RECEIVED, ETH_NOT_RECEIVED 또는 ETH_RECEIVED_MORE_DATA_AVAILABLE을 반환합니다([SWS_Eth_00162]). 해석: 폴링 호출자는 추가 프레임이 보고되는 한 Eth_Receive을 반복할 수 있을 것으로 보입니다. 질문 Q-8f1484413f850bda (열림) 폴링 모드에서 호출하는 주체는 명시되지 않았으나, EthIf로 추정됩니다.

수신은 Eth가 인터럽트 또는 Eth_Receive에서 EthIf_RxIndication을 통해 보고합니다([SWS_Eth_00244]). 브로드캐스트 프레임은 브로드캐스트로 표시됩니다([SWS_Eth_00153]). 최신 버전에서는 매개변수 이름을 QueueIdx로 지정합니다(SWS Eth 110쪽).

자체 소스 주소는 Eth_SetPhysAddr이 설정하고 Eth_GetPhysAddr이 읽습니다([SWS_Eth_00151], [SWS_Eth_00052]). Eth_UpdatePhysAddrFilter는 ETH_ADD_TO_FILTER를 통해 수신 필터에 멀티캐스트 목적지 주소를 추가하고 ETH_REMOVE_FROM_FILTER으로 제거합니다([SWS_Eth_00152], [SWS_Eth_00163], [SWS_Eth_00150]).

목적지 주소가 일치하면 Eth는 상위 계층에 알리고, 그렇지 않으면 프레임을 폐기합니다([SWS_Eth_00245], [SWS_Eth_00246]). 하드웨어가 필터링할 수 없는 경우 초기화 시 무차별 모드(Promiscuous Mode)를 켭니다([SWS_Eth_00146]). 00:00:00:00:00:00 주소는 필터를 자체 유니캐스트 주소로 축소하고 무차별 모드를 종료합니다([SWS_Eth_00147], SWS Eth 74쪽 참조).

폴링 및 인터럽트 모드에서의 수신EthIfEthUse Case: Polling-Betrieb해석: EthIf가 Eth_Receive를 주기적으로 호출함loopInterpretation: solange RxStatus == ETH_RECEIVED_MORE_DATA_AVAILABLEEth_Receive(CtrlIdx, FifoIdx, RxStatusPtr)FIFO에서 프레임 읽기,필터에 대해 대상 주소 검사altRahmen empfangen, Adresse passtEthIf_RxIndication(...)주소 일치하지 않음Rahmen verwerfenRxStatusUse Case: Interrupt-BetriebEmpfangs-InterruptEthIf_RxIndication(...)

시퀀스 다이어그램: 인디케이션 전 주소 검사를 포함하는 폴링 및 인터럽트 모드에서의 수신. 출처: [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 필터를 자체 유니캐스트 주소로 축소, 무차별 모드(Promiscuous Mode) 종료 z->reset 예 act Action? z->act 아니요 rx 프레임 도착 reset->rx add ETH_ADD_TO_FILTER: 주소에 대한 수신 허용 act->add 추가 rem ETH_REMOVE_FROM_FILTER: Empfang blockieren act->rem entfernen hw 컨트롤러가 필터링할 수 있는가? add->hw rem->hw hwf Hardware-Filter nutzen hw->hwf 예 swf Filterung in Software (Promiscuous Mode seit Initialisierung) hw->swf 아니요 hwf->rx swf->rx m 대상 주소가 필터와 일치하는가? rx->m ind EthIf_RxIndication m->ind 예 drop Rahmen verwerfen m->drop 아니요

액티비티 다이어그램: 널 주소의 특수한 경우, 하드웨어 또는 소프트웨어 필터링, 수신 시 수락 또는 폐기를 포함하는 필터 업데이트. 출처: [SWS_Eth_00146], [SWS_Eth_00147], [SWS_Eth_00163], [SWS_Eth_00245], [SWS_Eth_00246]

트랜시버 접근, 하드웨어 타임스탬프 및 진단 카운터

Eth_WriteMii 및 Eth_ReadMii은 R20-11에서 비동기식이며 비재진입형입니다([SWS_Eth_00058], [SWS_Eth_00064]). 완료는 Eth가 EthTrcv_WriteMiiIndication 또는 EthTrcv_ReadMiiIndication를 통해 보고합니다([SWS_Eth_00241], [SWS_Eth_00242]). Clause-45 레지스터는 Annex 22D에 따라 레지스터 13 및 14를 통해 접근합니다([SWS_Eth_00273], [SWS_Eth_00274]). 접근은 EthCtrlEnableMii을 통해 활성화됩니다([SWS_Eth_00069]). 반면 R24-11에서는 Eth_WriteMii를 동기식으로 설명합니다(SWS Eth 95쪽). R20-11의 경우 비동기식 정의가 적용됩니다.

타임스탬프 기능은 EthGlobalTimeSupport을 통해 활성화됩니다([SWS_Eth_00210], [SWS_Eth_00211]). 세부 사항은 다음과 같습니다:

  • Eth_GetCurrentTime은 48비트 초 단위 및 나노초 단위의 하드웨어 시간을 Eth_TimeStampType로 읽습니다([SWS_Eth_00181], [SWS_Eth_00178]).
  • Eth_EnableEgressTimeStamp은 버퍼별로 타임스탬프 생성을 활성화하며, 비활성화는 제공되지 않습니다([SWS_Eth_00186], SWS Eth 111쪽).
  • Eth_GetEgressTimeStamp 및 Eth_GetIngressTimeStamp은 각각 TxConfirmation 및 RxIndication 컨텍스트에서 타임스탬프를 읽습니다([SWS_Eth_00190], [SWS_Eth_00195], SWS Eth 89쪽).

품질이 ETH_UNCERTAIN 또는 ETH_INVALID인 타임스탬프는 상위 계층에서 폐기합니다([SWS_Eth_00177]). R23-11부터 Eth_GetCurrentTime은 사용되지 않습니다(SWS Eth 82쪽). R20-11에서는 해당 서비스가 규범적입니다.

이더넷 드라이버를 통한 전송 타임스탬프EthTSynEthIfEth[EthTSynHardwareTimestampSupport == TRUE]EthIf_EnableEgressTimeStamp(CtrlIdx, BufIdx)Eth_EnableEgressTimeStamp(CtrlIdx, BufIdx)EthIf_Transmit(...)Eth_Transmit(...)EthIf_TxConfirmation(CtrlIdx, BufIdx, Result)EthTSyn_TxConfirmation(CtrlIdx, BufIdx, Result)TxConfirmation 컨텍스트에서 검색EthIf_GetEgressTimeStamp(CtrlIdx, BufIdx, ...)Eth_GetEgressTimeStamp(CtrlIdx, BufIdx,timeQualPtr, timeStampPtr)E_OK, 품질, 타임스탬프E_OK, 품질, 타임스탬프alt품질 == ETH_VALIDZeitstempel verwendenETH_UNCERTAIN 또는 ETH_INVALIDZeitstempel verwerfen

시퀀스 다이어그램: 송신 타임스탬프 활성화, 송신, 그리고 확인 컨텍스트에서 품질 검사와 함께 판독. 출처: [SWS_Eth_00186], [SWS_Eth_00190], [SWS_Eth_00177], SWS EthTSyn 70쪽, SWS EthTSyn 55쪽

네 가지 진단 서비스는 각각 개별적으로 활성화할 수 있습니다:

통계 서비스에서 최댓값은 사용할 수 없는 카운터를 나타냅니다(SWS Eth 98쪽).

구성, 파티셔닝 및 SW 버퍼 관리(CBS)

EthCtrlEnableOffloadChecksumIPv4, EthCtrlEnableOffloadChecksumICMP, EthCtrlEnableOffloadChecksumTCP 및 EthCtrlEnableOffloadChecksumUDP을 사용하여 컨트롤러는 하드웨어에서 체크섬을 계산합니다. 수신 시 잘못된 체크섬을 가진 프레임을 폐기합니다([SWS_Eth_00216], [SWS_Eth_00217]). 버퍼의 기본 주소는 모든 AUTOSAR 데이터 타입의 정렬을 충족해야 합니다([SWS_Eth_00218]). 지원되지 않는 파티션 할당은 거부되어야 합니다. EthCtrlEcucPartitionRef의 파티션은 EthEcucPartitionRef의 부분 집합이어야 합니다([SWS_Eth_00257], [SWS_Eth_00260], [SWS_Eth_CONSTR_00001]).

하드웨어에 공정한 스케줄링이 없는 경우 소프트웨어에서 Credit Based Shaper를 사용할 수 있습니다 (SWS Eth 38쪽). R20-11에서는 모든 관련 요구사항이 DRAFT 상태입니다. 작동 방식은 다음과 같습니다:

cbs mf Eth_MainFunction() (EthCtrlConfigSwBufferHandling = TRUE) c1 우선순위 내림차순 SW-FIFO: 크레딧을 EthCtrlConfigShaperIdleSlope만큼 증가 (비어 있지 않은 FIFO만) mf->c1 c2 다음 SW-FIFO (최고 우선순위 우선) c1->c2 q 메시지가 존재하고 크레딧 >= EthCtrlConfigShaperMinCredit인가? c2->q mv 첫 번째 메시지를 HW-FIFO로 이동, 크레딧에서 메시지 크기 차감 q->mv 예 more Weitere SW-FIFO? q->more 아니요 b EthTrcvPhysLayerPLCAMaxBurstCount = 0? mv->b stop Iteration beenden b->stop 예 burst 버스트 한도까지 추가 메시지 이동, 메시지당 크레딧 차감 b->burst 아니요 ende Ende stop->ende burst->more 해석: 다음 FIFO로 계속 more->c2 예 more->ende 아니요

활동 다이어그램: 크레딧 업데이트, 최소 크레딧 검사 및 PLCA 버스트 분기가 포함된 Eth_MainFunction 내의 CBS 실행. 출처: [SWS_Eth_00266], [SWS_Eth_00270], [SWS_Eth_00271], [SWS_Eth_00272], SWS Eth 56쪽

오류가 발생한 경우의 동작

Eth는 개발 오류를 DET에 보고합니다 ([SWS_Eth_00120]). 코드는 ETH_E_INV_CTRL_IDX, ETH_E_UNINIT, ETH_E_PARAM_POINTER, ETH_E_INV_PARAM 및 ETH_E_INV_MODE입니다 ([SWS_Eth_00016]). 일반적인 검사는 초기화, CtrlIdx 및 포인터와 관련됩니다 ([SWS_Eth_00066], [SWS_Eth_00067], [SWS_Eth_00068]). DET가 비활성화된 경우 통계 서비스는 이러한 경우에 E_NOT_OK을 반환합니다 ([SWS_Eth_00228], [SWS_Eth_00236], [SWS_Eth_00248], [SWS_Eth_00254]).

생산 오류는 Dem_SetEventStatus을 통해 DEM으로 전달됩니다 ([SWS_Eth_00119]). 컨트롤러 액세스 실패 시 DEM_EVENT_STATUS_PREFAILED과 함께 ETH_E_ACCESS가 발생하며, 이후 Eth_SetControllerMode는 E_NOT_OK를 반환합니다 ([SWS_Eth_00039], [SWS_Eth_00173], [SWS_Eth_00168]). Eth_MainFunction는 다음과 같은 확장된 생산 오류를 보고합니다 ([SWS_Eth_00169], [SWS_Eth_00172]):

동작 중에는 반환값을 통해서도 오류가 나타납니다. 여기에는 BUFREQ_E_BUSY 및 BUFREQ_E_OVFL (SWS Eth 91쪽)과 부정 전송 확인([SWS_Eth_00256])이 포함됩니다. 비활성 컨트롤러에서 Eth_Receive의 동작은 릴리스에 따라 다릅니다. R23-11 및 R24-11은 ETH_E_INV_MODE를 요구하고 (SWS Eth 94쪽, SWS Eth 116쪽), R25-11은 즉각적인 복귀를 요구합니다 (SWS Eth 110쪽). R20-11의 경우 [SWS_Eth_00016]로 인해 DET 방식이 적용될 것으로 보입니다. 질문 (열림)

더 자세한 증거

페이로드의 사양 발췌본을 기반으로 AI가 생성한 가이드입니다. R20-11의 링크된 요구사항이 기준이며, 다른 릴리스의 문서 위치는 해당 릴리스로 표시되어 있습니다.

Ethernet Driver (Eth)

Provides uniform hardware access to Ethernet controller interfaces.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

함수 Eth_Init [SWS_Eth_00027] 📄 PDF

void Eth_Init (const Eth_ConfigType* CfgPtr);

Initializes the Ethernet Driver

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 6639db5c607b 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 Eth_Init은(는) 이더넷 드라이버 [SWS_Eth_00027]의 초기화에 사용됩니다. 이 함수는 헤더 파일 Eth.h을(를) 통해 선언되고, 서비스 ID 0x01을(를) 가지며, 반환값(void)이 없습니다 [SWS_Eth_00027]. 입력 매개변수로 Eth_ConfigType 타입의 구현별 구성 구조체를 가리키는 CfgPtr을(를) 받습니다 [SWS_Eth_00027]. 호출은 동기식으로 수행되며 재진입 불가능(Non Reentrant)으로 정의됩니다 [SWS_Eth_00027].

동작 과정에서 Eth_Init은(는) 모듈 작업을 위한 근본적인 사전 조건입니다. 다른 모든 함수는 반드시 Eth_Init을(를) 통한 사전 컨트롤러 초기화를 필요로 합니다 [SWS_Eth_00070], [SWS_Eth_00167], [SWS_Eth_00185]. 이러한 종속성은 드라이버의 다양한 컨트롤러 서비스에 대해 필수적으로 규정되어 있습니다 [SWS_Eth_00189], [SWS_Eth_00194], [SWS_Eth_00199], [SWS_Eth_00232].

초기화되지 않은 접근의 경우를 대비하여 특정 오류 처리가 제공됩니다. 개발 오류 감지(Development Error Detection, DET)가 활성화되어 있으면 드라이버 함수는 서비스 Eth_Init이(가) 이전에 정상적으로 호출되었는지 확인합니다 [SWS_Eth_00066]. 이 확인이 실패하면 개발 오류 ETH_E_UNINIT을(를) 트리거합니다 [SWS_Eth_00164], [SWS_Eth_00182], [SWS_Eth_00187], [SWS_Eth_00196]. 반면에 DET가 비활성화되어 있으면 관련 함수는 실행을 거부하고 상태 E_NOT_OK을(를) 반환하여 비허용 상태를 알립니다 [SWS_Eth_00228], [SWS_Eth_00235], [SWS_Eth_00248], [SWS_Eth_00252].

이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Eth_SetControllerMode [SWS_Eth_00041] 📄 PDF

Std_ReturnType Eth_SetControllerMode (uint8 CtrlIdx, Eth_ModeType CtrlMode);

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 58bddef3c196 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 Eth_SetControllerMode은 매개변수 CtrlIdx을(를) 통해 주소 지정된 Ethernet 컨트롤러를 활성화(ETH_MODE_ACTIVE) 또는 비활성화(ETH_MODE_DOWN)하는 역할을 합니다 [SWS_Eth_00041]. AUTOSAR Classic R20-11에서 이 서비스는 폐기 예정(obsolete)으로 분류되어 있습니다 [SWS_Eth_00041].

서비스의 실행은 비동기식이며 재진입 불가능(Non Reentrant)합니다 [SWS_Eth_00041]. 함수는 반환값으로 성공적으로 시작된 경우 E_OK을(를) 반환하거나, 작동 모드를 전환할 수 없는 경우 E_NOT_OK을(를) 반환합니다 [SWS_Eth_00041]. 해석: 호출이 비동기식으로 명시되어 있지만 페이로드에 콜백이 정의되어 있지 않으므로, 실제 상태 적용은 함수가 반환된 후 드라이버 백그라운드의 하드웨어 레벨에서 완료될 것으로 보입니다. 질문 Q-d7ec04578e921eb9 (열림)

Eth_SetControllerMode을(를) 통해 컨트롤러 또는 해당 전송 및 수신 통신이 비활성화되는 경우 구속력 있는 버퍼 정리 작업이 적용됩니다:

Non Reentrant 속성으로 인해 이 함수는 동일하거나 추가적인 컨트롤러 인스턴스에 대해 동시에 실행되어서는 안 됩니다 [SWS_Eth_00041]. 특정 DET 또는 DEM 오류 메시지는 나열되어 있지 않으며, 오류 상태는 반환값 E_NOT_OK을(를) 통해 호출자에게 전달됩니다 [SWS_Eth_00041].

이 사용 지침은 AUTOSAR Classic R20-11의 명세 데이터를 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 45ebc5b270a4 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 Eth_SetControllerMode(서비스 ID 0x03, Eth.h을(를) 통해 제공됨)은 특정 Ethernet 컨트롤러의 수신 및 전송 통신(Rx/Tx)을 활성화 및 비활성화하는 역할을 합니다 [SWS_Eth_91009].

사용 및 호출 조건

함수의 실행은 비동기식으로 이루어지며 재진입 불가능(Non Reentrant)으로 명시되어 있습니다 [SWS_Eth_91009]. 호출 시 두 개의 매개변수가 전달됩니다:

  • CtrlIdx: Ethernet 드라이버 컨텍스트 내 해당 컨트롤러의 인덱스 [SWS_Eth_91009].
  • CtrlMode: 컨트롤러의 대상 모드로, Rx/Tx 통신을 활성화하기 위한 ETH_MODE_ACTIVE 또는 이를 비활성화하기 위한 ETH_MODE_DOWN 중 하나 [SWS_Eth_91009].

반환값으로 함수는 상태 Std_ReturnType을(를) 반환합니다. E_OK은(는) 성공적인 실행을 나타내는 반면, E_NOT_OK은(는) 컨트롤러의 모드를 전환할 수 없었음을 나타냅니다 [SWS_Eth_91009].

상호작용 및 버퍼 관리

Eth_SetControllerMode을(를) 통해 인덱싱된 컨트롤러의 Rx/Tx 통신이 비활성화(모드 ETH_MODE_DOWN)되는 경우, 전송 버퍼에 대한 정리 작업을 반드시 수행해야 합니다:

  • 잠긴 모든 전송 버퍼(locked transmit buffers)를 해제해야 합니다 [SWS_Eth_00280].
  • 보류 중인 모든 전송 버퍼(pending transmit buffers) 또한 해제해야 합니다 [SWS_Eth_00281].

잠긴 버퍼 및 보류 중인 버퍼의 해제에 관한 현재 규정과 함수 정의 자체는 “draft” 상태를 갖습니다 [SWS_Eth_91009], [SWS_Eth_00280], [SWS_Eth_00281]. 이들은 구식(obsolete)으로 분류된 이전의 요구사항 [SWS_Eth_00137] 및 [SWS_Eth_00138]을(를) 대체합니다.

이 텍스트는 AUTOSAR 명세서를 바탕으로 AI에 의해 작성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Eth_GetPhysAddr [SWS_Eth_00052] 📄 PDF

void Eth_GetPhysAddr (uint8 CtrlIdx, uint8* PhysAddrPtr);

Obtains the physical source address used by the indexed controller

함수 Eth_SetPhysAddr [SWS_Eth_00151] 📄 PDF

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

Sets the physical source address used by the indexed controller

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 3be26284fad7 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 인터페이스 Eth_UpdatePhysAddrFilter은(는) 헤더 파일 Eth.h을(를) 통해 제공되며 서비스 ID 0x12을(를) 가집니다 [SWS_Eth_00152]. 이 함수는 인덱싱된 이더넷 컨트롤러의 필터에 물리적 주소를 추가하거나 필터에서 제거하는 데 사용됩니다 [SWS_Eth_00152].

이 함수의 매개변수는 세 개의 입력 값으로 구성됩니다 [SWS_Eth_00152]:

  • CtrlIdx: 드라이버 컨텍스트 내 관련 이더넷 컨트롤러의 인덱스를 지정합니다 [SWS_Eth_00152].
  • PhysAddrPtr: 네트워크 바이트 순서의 물리적 대상 주소(MAC 주소)가 포함된 메모리 영역에 대한 포인터입니다. 이는 레이어 2 이더넷 패킷의 멀티캐스트 대상 주소입니다 [SWS_Eth_00152].
  • Action: 열거형 타입 Eth_FilterActionType을(를) 통해 지정된 주소를 컨트롤러의 필터에 추가할지 또는 삭제할지 지정합니다 [SWS_Eth_00152].

이 함수는 Std_ReturnType 타입의 상태를 반환합니다. E_OK은(는) 필터가 성공적으로 수정되었음을 확인하고, E_NOT_OK은(는) 필터를 수정할 수 없었음을 알립니다 [SWS_Eth_00152]. 이더넷 컨트롤러가 하드웨어적으로 필터링을 독립적으로 수행할 수 없는 경우, 필터링 작업은 소프트웨어에 의해 구현되어야 합니다 [SWS_Eth_00152].

실행에는 엄격한 재진입 제한이 적용됩니다. 이 함수는 동일한 컨트롤러 인덱스(CtrlIdx)에 대해서는 재진입이 불가능하지만, 서로 다른 컨트롤러 인덱스에 대해서는 동시 및 재진입 호출이 허용됩니다 [SWS_Eth_00152].

이 사용 지침은 AUTOSAR Classic R20-11 규격을 기반으로 AI 시스템에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 59aa765351e8 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 Eth_WriteMii은(는) MII 인터페이스를 통해 이더넷 트랜시버의 레지스터를 구성하거나 트랜시버가 제공하는 기능을 트리거하는 데 사용됩니다 [SWS_Eth_00058]. 선언은 헤더 Eth.h을(를) 통해 제공됩니다 [SWS_Eth_00058].

사용법 및 매개변수

호출은 서비스 ID 0x05(으)로 수행되며 네 개의 입력 매개변수를 처리합니다 [SWS_Eth_00058]:

  • CtrlIdx: 이더넷 드라이버 컨텍스트에서 이더넷 컨트롤러의 인덱스[SWS_Eth_00058].
  • TrcvIdx: MII 인터페이스 상의 트랜시버 인덱스 [SWS_Eth_00058].
  • RegIdx: MII 상에서 값을 기록할 트랜시버 레지스터의 인덱스 [SWS_Eth_00058].
  • RegVal: 주소 지정된 레지스터에 기록될 16비트 값 [SWS_Eth_00058].

해당 서비스의 실행은 비동기식으로 명시되어 있습니다 [SWS_Eth_00058]. 이는 함수가 요청을 수락한 후 즉시 반환되는 반면, 하드웨어 인터페이스를 통한 실제 쓰기 작업은 일반적으로 백그라운드에서 처리됨을 의미합니다. 질문 Q-0f9a9e682985d796 (열림)

반환값 및 제한 사항

반환값으로 이 함수는 Std_ReturnType 타입을 제공합니다 [SWS_Eth_00058]:

동시성과 관련하여 Eth_WriteMii은(는) 재진입 불가(Non Reentrant)로 명시되어 있습니다 [SWS_Eth_00058]. 따라서 호출자에 의한 적절한 동기화 없이 동시 호출을 실행해서는 안 됩니다.

이 사용 지침은 AUTOSAR 규격 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 Eth_ReadMii [SWS_Eth_00064] 📄 PDF

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

Reads a transceiver register

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 6906f4ae5194 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 매개변수

함수 Eth_ReadMii(서비스 ID 0x06)은 MII 인터페이스를 통해 트랜시버 레지스터를 판독하는 역할을 하며, 헤더 파일 Eth.h을(를) 통해 제공됩니다 [SWS_Eth_00064]. 호출 시 CtrlIdx은(는) 드라이버 컨텍스트 내의 각 Ethernet 컨트롤러를 식별하고, TrcvIdx은(는) MII 상의 대상 트랜시버를, RegIdx은(는) 구체적인 트랜시버 레지스터를 식별합니다 [SWS_Eth_00064]. 확인된 레지스터 값은 포인터 RegValPtr이(가) 가리키는 메모리 영역에 기록됩니다 [SWS_Eth_00064].

실행 및 동시성

실행은 비동기식(Asynchronous)으로 이루어집니다 [SWS_Eth_00064]. 이때 반환값 E_OK은(는) 서비스 또는 읽기 작업이 성공적으로 수락되었음(Service accepted)만을 확인하는 반면, E_NOT_OK은(는) 작업이 거부되었음(Service denied)을 나타냅니다 [SWS_Eth_00064]. 비동기 특성상 RegValPtr에 전달된 메모리 영역은 읽기 프로세스가 최종적으로 완료될 때까지 유효성을 유지해야 할 것으로 보입니다. 질문 Q-04a94624b96bf51f (열림) 또한 이 함수는 재진입 불가능(Non Reentrant)으로 분류되어 있으므로 [SWS_Eth_00064], 호출자는 외부 동기화 없이 서로 다른 태스크나 인터럽트 컨텍스트를 통한 동시 액세스를 수행해서는 안 됩니다.

오류 처리

드라이버가 읽기 요청을 수락할 수 없는 경우 호출은 즉시 E_NOT_OK(으)로 응답됩니다 [SWS_Eth_00064]. 요소 관련 사양 데이터에는 이 함수에 대한 특정 오류 코드, DET 런타임 검사 또는 DEM 진단 이벤트가 명시되어 있지 않습니다.

이 사용법 안내는 명세를 기반으로 AI에 의해 작성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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

함수 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.

함수 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.

함수 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.

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 28883e2189c8 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 Eth_EnableEgressTimeStamp은(는) 이더넷 드라이버의 전용 메시지 객체에 대한 송신 타임스탬프 캡처(Egress Time Stamping)를 활성화합니다 [SWS_Eth_00186]. 호출은 서비스 ID 0x17을(를) 사용하여 헤더 Eth.h을(를) 통해 수행되며 반환값은 없습니다 [SWS_Eth_00186].

호출 시 다음 입력 매개변수를 전달해야 합니다 [SWS_Eth_00186]:

  • CtrlIdx: 주소 지정된 이더넷 컨트롤러의 인덱스 [SWS_Eth_00186].
  • BufIdx: 상위 애플리케이션이 이그레스 타임스탬프 생성을 기대하는 메시지 버퍼의 인덱스 [SWS_Eth_00186].

동시성과 관련하여 이 함수는 재진입 불가(Non Reentrant)로 명시되어 있습니다 [SWS_Eth_00186]. 따라서 동일한 버퍼 또는 추가 버퍼에 대한 병렬 호출은 호출 측에서 동기화되거나 방지되어야 합니다.

하드웨어의 동작은 컨트롤러 구현에 따라 다릅니다. 일부 하드웨어는 송신 타임스탬프 표식을 영구적으로 저장하는 반면, 다른 컨트롤러는 매 전송 전에 활성화를 필수로 요구합니다 [SWS_Eth_00186]. 해석: 따라서 하드웨어 독립적인 제어를 위해서는 원하는 버퍼의 각 전송 작업 전에 이 함수를 호출하는 것이 권장될 수 있습니다. 네트워크 설계에 따라 메시지 타입이 항상 타임스탬프와 함께 전송되므로 비활성화 인터페이스는 존재하지 않습니다 [SWS_Eth_00186]. 질문 Q-c2b8d2db03e9d13b (열림)

이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

함수 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.

함수 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.

함수 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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 44e533ef4911 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기 함수 Eth_ProvideTxBuffer은(는) 전달된 우선순위에 할당된 FIFO의 이더넷 송신 버퍼에 대한 접근 권한을 부여합니다 [SWS_Eth_00077]. 헤더 Eth.h을(를) 통해 제공되며 재진입 가능(reentrant)으로 명시되어 있습니다 [SWS_Eth_00077]. 입력 매개변수를 통해 FIFO 선택을 위한 컨트롤러 인덱스 CtrlIdx 및 프레임 우선순위 Priority이(가) 전달됩니다 [SWS_Eth_00077]. 입출력 매개변수 LenBytePtr은(는) 원하는 버퍼 크기를 전달하고 호출 후 실제로 부여된 바이트 크기를 반환합니다 [SWS_Eth_00077]. 출력 매개변수 BufIdxPtr(향후 요청을 위한 리소스 인덱스) 및 BufPtr(버퍼에 대한 포인터)은(는) 메모리 영역에 대한 참조를 제공합니다 [SWS_Eth_00077].

오류 처리 및 반환값

이 함수는 BufReq_ReturnType 타입의 반환값을 통해 결과를 알립니다 [SWS_Eth_00077]:

  • BUFREQ_OK: 송신 버퍼가 성공적으로 제공되었습니다 [SWS_Eth_00077].
  • BUFREQ_E_BUSY: 모든 버퍼 리소스가 현재 사용 중입니다 [SWS_Eth_00077].
  • BUFREQ_E_OVFL: 요청된 버퍼가 너무 큽니다 [SWS_Eth_00077].
  • BUFREQ_E_NOT_OK: 개발 오류가 감지되었습니다 [SWS_Eth_00077].

상호 작용

EthCtrlConfigSwBufferHandling이(가) TRUE(으)로 구성된 경우, 내부적으로 소프트웨어 버퍼 풀의 BufIdxPtr에 전달된 버퍼 인덱스와 지정된 우선순위 Priority의 튜플이 저장됩니다 [SWS_Eth_00267].

이어서 Eth_Transmit()이(가) 호출되면, 지정된 버퍼 인덱스는 구성 요소 EthCtrlConfigEgressFifoPriorityAssignment이(가) 이전에 Eth_ProvideTxBuffer()에서 전달된 우선순위와 일치하는 소프트웨어 FIFO에 할당됩니다 [SWS_Eth_00268].

이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 964b3772cde6 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

동기식 인터페이스 Eth_Transmit은(는) 이전에 제공되어 채워진 이더넷 송신 버퍼에 대한 전송 프로세스를 시작합니다 [SWS_Eth_00087]. 이 함수는 다음 매개변수를 받습니다:

  • CtrlIdx: 드라이버 컨텍스트 내 이더넷 컨트롤러의 인덱스 [SWS_Eth_00087].
  • BufIdx: 전송할 버퍼 리소스의 인덱스 [SWS_Eth_00087].
  • FrameType: 특정 이더넷 프레임 타입 [SWS_Eth_00087].
  • TxConfirmation: 전송 확인 활성화 스위치 [SWS_Eth_00087].
  • LenByte: 페이로드의 데이터 길이(바이트 단위) [SWS_Eth_00087].
  • PhysAddrPtr: 네트워크 바이트 순서의 물리적 대상 주소(MAC 주소)에 대한 포인터 [SWS_Eth_00087].

Std_ReturnType 타입의 반환값은 E_OK(으)로 전송 시작 성공을 알리고, E_NOT_OK(으)로 실패를 알립니다 [SWS_Eth_00087].

상호작용 및 버퍼 처리

전송 시퀀스의 일환으로 Eth_Transmit은(는) 버퍼 포인터 BufIdx을(를) 구성 요소 EthCtrlConfigEgressFifoPriorityAssignment이(가) 이전에 Eth_ProvideTxBuffer()에서 설정된 우선순위와 일치하는 소프트웨어 FIFO에 할당합니다 [SWS_Eth_00268]. 이 호출을 통해 해당 메시지가 소프트웨어 FIFO에서 하드웨어 FIFO로 전송됩니다 [SWS_Eth_00269].

동시성

이 함수는 서로 다른 버퍼 인덱스(BufIdx) 및 서로 다른 컨트롤러 인덱스(CtrlIdx)를 사용하는 호출에 대해 재진입 가능합니다 [SWS_Eth_00087].

이 사용 지침은 AUTOSAR 명세 R20-11을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 Eth_Receive [SWS_Eth_00095] 📄 PDF

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

Receive a frame from the related fifo.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: aeb0a2bc1424 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 Eth_Receive은(는) 이더넷 컨트롤러의 특정 FIFO 버퍼로부터 이더넷 프레임을 수신하는 데 사용됩니다 [SWS_Eth_00095]. 반환값은 없지만 Eth_RxStatusType 타입의 포인터 RxStatusPtr을(를) 통해 조회 결과를 호출자에게 반환합니다 [SWS_Eth_00095]. 이 출력 매개변수는 프레임이 성공적으로 수신되었는지 여부와 해당 FIFO 버퍼에 추가 프레임이 대기 중인지 여부를 나타냅니다 [SWS_Eth_00095].

매개변수 및 호출 컨텍스트

입력 매개변수로 이 함수는 이더넷 드라이버 내의 컨트롤러 인덱스 CtrlIdx 및 읽어올 FIFO의 인덱스 FifoIdx을(를) 요구합니다 [SWS_Eth_00095]. 이 함수는 헤더 파일 Eth.h에 선언되어 있습니다 [SWS_Eth_00095]. 호출은 일반적으로 상위 드라이버 또는 인터페이스 계층에 의한 폴링 메커니즘의 일환으로 주기적으로 수행될 것으로 보입니다. 질문 Q-f5ec0693a5887bcf (열림)

동시성 및 제약사항

동시성과 관련하여 Eth_Receive은(는) 서로 다른 FIFO에 대해서는 재진입 가능하도록 구현되어 있으나, 동일한 FIFO에 대해서는 재진입이 불가능합니다 [SWS_Eth_00095]. 동일한 컨트롤러의 동일한 FIFO를 조회하는 동시 호출은 허용되지 않으며 호출 소프트웨어에 의해 방지되어야 합니다.

이더넷 인터페이스와의 상호작용

폴링 모드에서 이더넷 드라이버는 수신이 성공했을 때 수신된 프레임을 상위 계층에 전달하여 추가 처리를 수행할 수 있도록 루틴 Eth_Receive에서 함수 EthIf_RxIndication을(를) 즉시 호출해야 할 의무가 있습니다 [SWS_Eth_00244].

이 텍스트는 사양을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 Eth_TxConfirmation [SWS_Eth_00100] 📄 PDF

void Eth_TxConfirmation (uint8 CtrlIdx);

Triggers frame transmission confirmation

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 72b1ce9d790c 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

헤더 Eth.h을(를) 통해 제공되는 함수 Eth_TxConfirmation은(는) 전송된 Ethernet 프레임에 대한 전송 확인을 목표 지향적으로 트리거하는 역할을 합니다 [SWS_Eth_00100]. 이 함수는 서비스 ID 0x0C을(를) 가지며 동기식으로 실행됩니다 [SWS_Eth_00100]. 유일한 전달 매개변수로 함수는 CtrlIdx을(를) 요구하며, 이는 Ethernet 드라이버 인스턴스 내에서 주소 지정할 컨트롤러의 논리적 인덱스를 지정합니다 [SWS_Eth_00100]. 반환값은 존재하지 않으며(void), 출력 매개변수도 전달되지 않습니다 [SWS_Eth_00100].

전송 절차에서의 상호작용

계층 간 상호작용에서 Eth_TxConfirmation은(는) 전송 상태를 상위 Ethernet 인터페이스로 전달하는 역할을 담당합니다. 해당 알림이 활성화된 경우 Ethernet 드라이버는 성공적인 전송을 알리기 위해 결과값 E_OK(으)로 EthIf_TxConfirmation을(를) 호출해야 합니다 [SWS_Eth_00243]. 폴링 모드에서 이 호출은 루틴 Eth_TxConfirmation의 컨텍스트 내에서 명시적으로 이루어지는 반면, 인터럽트 제어 모드에서는 대안적으로 인터럽트 루틴에서 직접 실행됩니다 [SWS_Eth_00243].

동시성 및 실행 조건

실행과 관련하여 Eth_TxConfirmation이(가) 재진입 불가능(Non Reentrant)으로 정의된다는 제약 사항이 적용됩니다 [SWS_Eth_00100]. 따라서 동일한 컨트롤러에 대한 동시 호출은 호출자에 의해 방지되어야 합니다. 폴링 작동 시 호출은 일반적으로 상위 스케줄링 제어를 통해 주기적으로 수행될 것으로 보입니다. 질문 Q-c19295838459b689 (열림) 함수 사양에는 특정 오류 코드 및 DET 또는 DEM 알림에 대한 규정이 명시되어 있지 않으므로 별도의 오류 처리는 생략됩니다.

이 텍스트는 AI에 의해 작성되었으며, 참조된 사양이 기준이 됩니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 395137d99dcb 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

함수 Eth_MainFunction은(는) 시그니처 void Eth_MainFunction(void)을(를) 가지며 헤더 파일 SchM_Eth.h을(를) 통해 제공됩니다 [SWS_Eth_00171]. 이를 통해 다음과 같이 해석할 수 있습니다: 전달 매개변수나 반환값이 정의되어 있지 않으므로, 호출은 태스크 기반 컨텍스트에서 Schedule Manager(SchM)에 의해 주기적으로 수행될 것으로 보입니다. 질문 Q-690a2dc372d49c6a (열림)

기능 범위 및 폴링

이 함수의 주된 임무는 상태 변경을 폴링하고 컨트롤러 오류 및 손실된 Ethernet 프레임을 확인하는 것입니다 [SWS_Eth_00171]. 함수가 Ethernet 컨트롤러의 모드가 변경되었음을 감지하면 함수 EthIf_CtrlModeIndication을(를) 호출하여 상위 계층에 상태 변경을 알립니다 [SWS_Eth_00171].

전송 경로에서의 처리 순서

Eth_MainFunction()의 컨텍스트에서 소프트웨어 FIFO 처리를 위한 고정된 순서가 지정되어 있습니다 [SWS_Eth_00270]:

  • 먼저 모든 SW FIFO를 순회하고 크레딧 계정(Credits Account)을 업데이트합니다 [SWS_Eth_00270].
  • 그 후 모든 SW FIFO를 다시 순회하여 전송 준비가 완료된 메시지가 있는지 확인합니다 [SWS_Eth_00270].
  • 이어서 순회된 각 SW FIFO에 대해 전송을 시도합니다 [SWS_Eth_00270].

이 사용 지침은 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

타입 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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 12ea280a995a 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

일반 열거형 타입 Eth_ModeType은(는) Ethernet 통신 스택의 계층(예: EthIf, Eth, EthSwt 및 EthTrcv)에서 Ethernet 통신 채널을 활성화 또는 비활성화하고 연관된 하드웨어(예: Ethernet 컨트롤러, Ethernet 스위치 포트 또는 Ethernet 트랜시버)를 절전 슬립 상태 또는 활성 모드로 전환하는 데 사용됩니다 [SWS_Eth_00158].

이 타입은 헤더 파일 Eth_GeneralTypes.h을(를) 통해 제공되며 다음과 같은 값 범위를 정의합니다 [SWS_Eth_00158]:

  • ETH_MODE_DOWN (0x00): Ethernet 통신 채널을 비활성화하고 연관된 하드웨어를 절전 슬립 모드(Low-Power Sleep Mode)로 전환합니다 [SWS_Eth_00158].
  • ETH_MODE_ACTIVE (0x01): Ethernet 통신 채널을 활성화하고 하드웨어를 동작 모드(Power-On Mode)로 전환합니다 [SWS_Eth_00158].

수명 주기 및 사용과 관련하여 Eth_ModeType은(는) Release R20-11에서 obsolete 상태로 표시되어 있음에 유의해야 합니다 [SWS_Eth_00158]. 향후 표준에서는 구식 인터페이스 타입이 일반적으로 더 현대적인 제어 구조로 대체되므로, 새로운 개발에서는 이 타입의 사용을 피해야 합니다.

이 사용 참고사항은 자동으로 생성되었습니다. 사양 참조는 제공된 요구사항 컨텍스트에만 국한됩니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: bd78c0f35c62 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

열거형 타입 Eth_ModeType은(는) Eth_GeneralTypes.h을(를) 통해 선언되며 AUTOSAR 이더넷 통신 스택([SWS_Eth_91008])에서 계층 간 모드 타입으로 사용됩니다. 이 타입은 통신 채널을 특정하여 활성화 또는 비활성화하고, 관련 하드웨어 컴포넌트(이더넷 컨트롤러, 스위치 포트 또는 트랜시버)를 절전 슬립 모드와 활성 동작 모드 간에 전환하기 위해 EthIf, Eth, EthSwt 및 EthTrcv와 같은 모듈에서 사용됩니다([SWS_Eth_91008]).

이 타입은 모드 제어를 위한 세 가지 상태를 포함합니다([SWS_Eth_91008]):

  • ETH_MODE_DOWN(0x00): Rx 및 Tx 통신을 비활성화하고 관련 하드웨어를 저전력 슬립 모드로 전환합니다. 하드웨어가 이를 지원하는 경우, 슬립 프로세스도 동시에 시작됩니다(예: OPEN Alliance TC10에 따른 데이터 라인의 슬립 요청).
  • ETH_MODE_ACTIVE(0x01): Rx 및 Tx 통신을 활성화하고 관련 하드웨어를 정규 동작 모드(Power-on)로 전환합니다.
  • ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST(0x02): Rx 및 Tx 통신을 활성화하고 하드웨어를 동작 모드로 전환하며, 하드웨어에 웨이크업 기능이 있는 경우(OPEN Alliance TC10에 따른 데이터 라인 상의 Wake-up 등) 네트워크에 웨이크업 요청도 추가로 트리거합니다.

스택 상호작용에서 Eth_ModeType은(는) 특히 서비스 계층(ComM)에서 중간 계층을 거쳐 통신 드라이버(EthTrcv)까지 웨이크업 요청을 전달하는 것을 지원하여 데이터 라인 상의 Wake-up 및 Sleep 기능을 갖춘 하드웨어가 필요에 맞게 제어되도록 합니다([SWS_Eth_91008]).

이 사용 지침은 SWS_Eth_91008 규격을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 Eth_StateType [SWS_Eth_00159] 📄 PDF

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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: c3ab864e1cec 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

열거형 타입 Eth_StateType은(는) 헤더 Eth_GeneralTypes.h을(를) 통해 제공되며 [SWS_Eth_00159]에 따라 Ethernet 드라이버의 상태 모니터링에 사용됩니다. 이 타입의 목적은 개발 오류 감지(Development Error Detection)를 지원하는 데 있으며, 사양에 따르면 현재 상태를 디버깅 목적으로 사용할 수 있어야 합니다([SWS_Eth_00159]).

상태 관리를 위해 Eth_StateType은(는) 두 개의 개별 열거형 값을 정의합니다([SWS_Eth_00159]):

  • ETH_STATE_UNINIT(값 0x00): Ethernet 드라이버가 아직 구성되지 않았음을 나타냅니다([SWS_Eth_00159]).
  • ETH_STATE_INIT(값 0x01): Ethernet 드라이버가 성공적으로 구성되었음을 나타냅니다([SWS_Eth_00159]).

오류 처리 및 상호작용과 관련하여 이 상태 타입은 내부 오류 감지의 기반을 형성합니다. 드라이버가 초기화되지 않은 상태 ETH_STATE_UNINIT에 있는 동안에는 드라이버 API가 이 상태를 쿼리하여 호출을 거부할 것으로 볼 수 있습니다([SWS_Eth_00159]). 질문 Q-35a17e3267274d70 (열림) 드라이버가 ETH_STATE_INIT 상태로 전환된 후에야 비로소 구성이 완료되고 작동 가능한 것으로 간주됩니다([SWS_Eth_00159]). 타입 정의가 Eth_GeneralTypes.h에 있으므로 드라이버 전반에서 사용할 수 있습니다([SWS_Eth_00159]).

이 텍스트는 AUTOSAR CP R20-11 사양을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 Eth_FrameType [SWS_Eth_00160] 📄 PDF

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

타입 Eth_DataType [SWS_Eth_00161] 📄 PDF

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

타입 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 91a81f4cdad3 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용 및 값 범위

열거형 타입 Eth_RxStatusType은(는) [SWS_Eth_00162]에 따라 헤더 파일 Eth_GeneralTypes.h에 정의됩니다. 이 타입은 함수 Eth_Receive()의 출력 매개변수(out parameter)로 사용되며, 이를 통해 이더넷 드라이버는 이더넷 프레임이 수신되었는지 여부와 버퍼에 추가 프레임이 있는지 또는 데이터가 손실되었는지 여부를 전달합니다 [SWS_Eth_00162].

규격은 이 타입에 대해 세 가지 개별 열거형 값을 정의합니다 [SWS_Eth_00162]:

  • ETH_RECEIVED(0x00): 이더넷 프레임이 수신되었습니다. 컨트롤러에 추가 프레임이 더 이상 제공되지 않습니다.
  • ETH_NOT_RECEIVED(0x01): 수신된 이더넷 프레임이 없습니다. 추가 프레임이 존재하지 않습니다.
  • ETH_RECEIVED_MORE_DATA_AVAILABLE(0x02): 이더넷 프레임이 수신되었으며 수신 대기 중인 추가 프레임이 있습니다.

프레임 처리 시의 상호작용

Eth_Receive() 호출 시 호출 계층은 Eth_RxStatusType 타입의 변수에 대한 포인터를 전달합니다. 이 출력 매개변수의 평가는 수신 주기의 후속 흐름을 제어합니다. 반환값 ETH_RECEIVED_MORE_DATA_AVAILABLE은(는) 호출자가 수신 버퍼에서 남은 프레임을 신속하게 처리하기 위해 Eth_Receive()을(를) 즉시 다시 호출하는 기준으로 사용될 것으로 보입니다 [SWS_Eth_00162]. 반면에 상태 ETH_RECEIVED 및 ETH_NOT_RECEIVED은(는) 버퍼가 소진되었고 처리를 위해 대기 중인 추가 데이터가 없음을 알립니다. Eth_GeneralTypes.h을(를) 통한 제공은 모듈 간의 일관된 타입 사용을 보장합니다 [SWS_Eth_00162]. 질문 Q-4ed309522aa004f8 (열림)

이 텍스트는 AI에 의해 생성되었으며 AUTOSAR R20-11 규격 데이터만을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 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.

타입 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.

타입 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

타입 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.

타입 Eth_TxErrorCounterValuesType [SWS_Eth_91004] 📄 PDF

Type Eth_TxErrorCounterValuesType.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: cf651d8e65c0 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

용도 및 목적

데이터 타입 Eth_TxErrorCounterValuesType은(는) [SWS_Eth_91004]에 따라 Ethernet 드라이버의 진단 목적을 위한 통계 카운터 구조체로 명시되어 있습니다. 정의는 헤더 파일 Eth_GeneralTypes.h을(를) 통해 제공됩니다. 이 구조체는 인터페이스 수준에서 특정 전송 상태 및 전송 장애를 매핑하는 여러 32비트 카운터(uint32)를 묶습니다.

구조체 구성요소 및 시맨틱

개별 카운터는 [SWS_Eth_91004]에 따라 표준화된 네트워크 MIB 정의를 따릅니다:

  • Tx Dropped No Error Pkts: 예를 들어 버퍼 메모리를 확보하기 위해 오류가 없는 상태임에도 폐기된 아웃바운드 패킷 수(RFC1213 ifOutDiscards).
  • Tx Dropped Error Pkts: 발생한 오류로 인해 전송되지 못한 패킷 수(RFC1213 ifOutErrors).
  • Tx Deferred Trans: 전송 매체가 사용 중이어서 첫 번째 전송 시도가 지연된 프레임 수(RFC1643 dot3StatsDeferredTransmissions).
  • Tx Single Collision 및 Tx Multiple Collision: 정확히 한 번 또는 여러 번의 충돌로 인해 전송이 지연되었으나 성공적으로 전송된 프레임(RFC1643).
  • Tx Late Collision: 패킷 전송 시작 후 512 비트 타임보다 늦게 감지된 충돌(RFC1643 dot3StatsLateCollisions).
  • Tx Excessive Collison: 너무 많은 충돌로 인해 최종적으로 실패한 전송 횟수(RFC1643 dot3StatsExcessiveCollisions).

호출 컨텍스트 및 제약 사항

해석: 사양 발췌문에는 연관된 API 함수가 나열되어 있지 않으므로, 이 진단 타입은 카운터 조회를 위해 포인터를 통해 해당 드라이버 함수에 출력 파라미터로 전달될 것으로 추정됩니다. 질문 Q-2bfbe59d1fb81938 (열림) 이 순수 데이터 구조체에 대해서는 오류 처리, DET 메시지 또는 동시성에 대한 특정 요구사항이 소스에 정의되어 있지 않습니다.

이 텍스트는 AUTOSAR CP R20-11 명세를 기반으로 AI에 의해 생성되었습니다.

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#27e4230e
Content hash
27e4230e
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_EthernetDriver.pdf#nameddest=SWS_Eth_00027

초기화 및 상태

Returns the version information of this module

void Eth_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);
Eth_Init 함수

Initializes the Ethernet Driver

void Eth_Init (const Eth_ConfigType* CfgPtr);

서비스 · 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);

서비스 · 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);

서비스 · 기타

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);

Reads a transceiver register

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

Receive a frame from the related fifo.

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

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);

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

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

콜백

Triggers frame transmission confirmation

void Eth_TxConfirmation (uint8 CtrlIdx);

주기적

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);

타입

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.