DEENESPTFRRUARHIKOZHNL

Ethernet Driver (Eth)

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

Guia do móduloGERADO POR IA

Conecta o controller Ethernet à pilha AUTOSAR: inicialização, modos, transmissão, recepção e diagnóstico.
GERADO POR IA não revisado Modelo: claude-opus-5-5 · Esforço: high · Temperatura: não controlável · Prompt: 7ed698a8fca3 Procedência Perguntas em aberto (3)
Âncora causal: R20-11 Válido a partir de R20-11 Sintetizado para esta versão de especificação.
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Conecta o controller Ethernet à pilha AUTOSAR: inicialização, modos, transmissão, recepção e diagnóstico.

O driver Ethernet conecta controladores Ethernet à Ethernet Interface. Ele inicializa os controladores, comuta sua comunicação de Rx/Tx de forma assíncrona entre ETH_MODE_DOWN e ETH_MODE_ACTIVE e reporta a mudança por indicação ([SWS_Eth_00276]). A transmissão ocorre em duas etapas: solicitar o buffer e, em seguida, transferi-lo. O driver confirma cada transmissão com E_OK ou E_NOT_OK ([SWS_Eth_00243]). Além disso, oferece recepção com filtro de endereço, acessos MII, carimbos de data/hora e contadores de diagnóstico. No desligamento, os buffers de transmissão bloqueados devem ser liberados.

O driver Ethernet Eth abstrai um ou mais controladores Ethernet para a Ethernet Interface (EthIf). A EthIf pode agrupar vários drivers de diferentes fabricantes (SWS Eth p. 17). O Eth reporta resultados por meio de EthIf_RxIndication, EthIf_TxConfirmation e EthIf_CtrlModeIndication ([SWS_Eth_00244], [SWS_Eth_00243], [SWS_Eth_00119]). Outros vizinhos são EthTrcv, EthSwt, DET e 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 Acesso a registros e buffers

Diagrama de contexto: chamadores e destinatários de callback do driver Ethernet. Fontes: [SWS_Eth_00119], [SWS_Eth_00120], SWS Eth p. 17

Eth_Init desativa a comunicação de Rx/Tx de todos os controladores configurados, configura-os e descarta requisições pendentes ([SWS_Eth_00027], [SWS_Eth_00275]). O Eth_SetControllerMode assíncrono comuta entre ETH_MODE_DOWN e ETH_MODE_ACTIVE ([SWS_Eth_91009], [SWS_Eth_00276]). No desligamento, o driver libera buffers de transmissão bloqueados ([SWS_Eth_00280]). O resultado segue via EthIf_CtrlModeIndication, no modo de polling a partir de Eth_MainFunction ([SWS_Eth_00240]).

Para a transmissão, a camada superior solicita um buffer com Eth_ProvideTxBuffer e o transfere com Eth_Transmit ([SWS_Eth_00077], [SWS_Eth_00087]). A confirmação é E_OK ou E_NOT_OK ([SWS_Eth_00243], [SWS_Eth_00256]). Eth_Receive lê quadros de uma FIFO e reporta se há outros disponíveis ([SWS_Eth_00095], [SWS_Eth_00162]). O Eth descarta quadros com endereço de destino incompatível ([SWS_Eth_00245], [SWS_Eth_00246]).

Transmissão de um quadro em modo de pollingObere Schicht (UL)EthIfEthEthIf_ProvideTxBuffer(...)Eth_ProvideTxBuffer(CtrlIdx, Priority,BufIdxPtr, BufPtr, LenBytePtr)BUFREQ_OK, BufIdx, BufPtr, comprimento concedidoBUFREQ_OK, PufferCopiar dados úteis para o bufferEthIf_Transmit(...)Eth_Transmit(CtrlIdx, BufIdx, FrameType,TxConfirmation = TRUE, LenByte, PhysAddrPtr)Ethernet-Header bilden,Iniciar transmissãoE_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)

Diagrama de sequência: solicitação de buffer, transmissão e confirmação no modo de polling. Fontes: [SWS_Eth_00077], [SWS_Eth_00087], [SWS_Eth_00243], SWS EthIf p. 87

Outras funções abrangem acessos MII, que no R20-11 são assíncronos ([SWS_Eth_00058]), carimbos de data/hora de hardware ([SWS_Eth_00190]), serviços de estatística ([SWS_Eth_00233]) e um Credit Based Shaper opcional (DRAFT, [SWS_Eth_00263]). O Eth reporta erros de desenvolvimento ao DET ([SWS_Eth_00016]). Erros de produção como ETH_E_ACCESS ou ETH_E_RX_FRAMES_LOST vão para o DEM ([SWS_Eth_00173], [SWS_Eth_00174]).

Papel na pilha Ethernet e limite do sistema

O driver Ethernet Eth situa-se como módulo de baixo nível abaixo da Ethernet Interface (EthIf). De acordo com o diagrama da estrutura básica da pilha, a EthIf agrupa um ou mais drivers Eth de diferentes fabricantes, cada um com seus próprios tipos de controlador (SWS Eth p. 17). Para as camadas superiores, o Eth oferece serviços como Eth_Init, Eth_SetControllerMode, Eth_ProvideTxBuffer, Eth_Transmit e Eth_Receive ([SWS_Eth_00027], [SWS_Eth_91009], [SWS_Eth_00077], [SWS_Eth_00087], [SWS_Eth_00095]). Ele retorna resultados por meio dos callbacks EthIf_RxIndication, EthIf_TxConfirmation e EthIf_CtrlModeIndication ([SWS_Eth_00244], [SWS_Eth_00243], [SWS_Eth_00119]).

Outros vizinhos são os seguintes módulos:

Se vários controladores compartilharem recursos de periféricos, o Eth emula controladores independentes para as camadas superiores. A coordenação é então assumida pelas camadas superiores ([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 Acesso a registros e buffers

Diagrama de contexto: o Eth é chamado por EthIf e EcuM e reporta a EthIf, EthTrcv, EthSwt, DET e DEM. Fontes: [SWS_Eth_00119], [SWS_Eth_00120], [SWS_Eth_00241], SWS Eth p. 17

De Eth_Init a ETH_MODE_ACTIVE: inicialização e modos de controlador

Eth_Init recebe um ponteiro para a estrutura post-build Eth_ConfigType ([SWS_Eth_00027], [SWS_Eth_00156]). Para cada controlador do EthConfigSet atual, a função executa as seguintes etapas ([SWS_Eth_00275], DRAFT; versão anterior [SWS_Eth_00034] obsoleta):

  • desativar a comunicação de Rx/Tx,
  • limpar interrupções pendentes,
  • configurar parâmetros do controlador e recursos de transmissão/recepção,
  • descartar requisições pendentes.

Eth_StateType diferencia ETH_STATE_UNINIT e ETH_STATE_INIT e serve para o Development Error Detection ([SWS_Eth_00159]). Versões mais recentes resumem a regra de chamada: exceto Eth_GetVersionInfo e funções planejadas como Eth_MainFunction, os serviços só são permitidos após a inicialização (SWS Eth p. 27). O R20-11 regulamenta isso para cada serviço por meio da verificação de ETH_E_UNINIT, por exemplo, em [SWS_Eth_00066].

Inicialização do driver Ethernet com o primeiro acesso MIIEcuMEthIfEthEthTrcvInterpretação: ordem das chamadas EcuM;Eth_Init deve ocorrer antes dos acessos MIIEth_Init(CfgPtr)Rx/Tx aller Controller deaktivieren,limpar interrupções, configurar parâmetrose buffers, descartar tarefasEthTrcv_Init(...)EthIf_WriteMii(...)Eth_WriteMii(CtrlIdx, TrcvIdx, RegIdx, RegVal)E_OK (Dienst angenommen)E_OKO acesso MII é executado de forma assíncrona no R20-11EthTrcv_WriteMiiIndication(...)EthIf_Init(...)

Diagrama de sequência: inicialização com Eth_Init e um primeiro acesso MII confirmado de forma assíncrona do driver de transceptor. Fontes: [SWS_Eth_00275], [SWS_Eth_00058], [SWS_Eth_00241], SWS EthIf p. 84

No R20-11, aplica-se Eth_SetControllerMode na versão assíncrona e não reentrante [SWS_Eth_91009]; ela substitui [SWS_Eth_00041]. Os dois modos atuam da seguinte forma ([SWS_Eth_00276]):

  • ETH_MODE_DOWN: O driver desativa Rx/Tx e redefine todos os buffers. Buffers de transmissão bloqueados e pendentes são liberados ([SWS_Eth_00280], [SWS_Eth_00281]).
  • ETH_MODE_ACTIVE: O driver ativa todos os buffers e a comunicação de Rx/Tx.

O Eth reporta o resultado de uma mudança de modo de forma assíncrona por meio de EthIf_CtrlModeIndication ([SWS_Eth_00119]). No modo de polling, Eth_MainFunction reconhece a mudança e chama esse callback ([SWS_Eth_00171], [SWS_Eth_00240]). O estado atual é fornecido por Eth_GetControllerMode ([SWS_Eth_91010], [SWS_Eth_00277]).

Eth_ModeType também reconhece ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST. Com ETH_MODE_DOWN, o hardware pode iniciar um processo de sleep, por exemplo, em hardware OA-TC10 ([SWS_Eth_91008]). A descrição dos parâmetros de Eth_SetControllerMode, no entanto, menciona apenas ETH_MODE_DOWN e 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: desativar Rx/Tx, configurar, descartar tarefas 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): desativar Rx/Tx, redefinir buffers, liberar buffers de transmissão bloqueados e pendentes

Diagrama de estados: estado do driver UNINIT/INIT e, para cada controlador, os modos DOWN e ACTIVE com os deveres na transição. Fontes: [SWS_Eth_00159], [SWS_Eth_00275], [SWS_Eth_00276], [SWS_Eth_00280]

Ativação de um controlador EthernetEthSMEthIfEthEthIf_SetControllerMode(CtrlIdx, ETH_MODE_ACTIVE)Eth_SetControllerMode(CtrlIdx, ETH_MODE_ACTIVE)E_OKativar buffers de transmissão e recepção,Rx/Tx-Kommunikation aktivierenoptPolling-BetriebEth_MainFunction(): Moduswechsel erkanntEthIf_CtrlModeIndication(CtrlIdx, ETH_MODE_ACTIVE)EthSM_CtrlModeIndication(CtrlIdx, ETH_MODE_ACTIVE)

Diagrama de sequência: ativação pelo EthSM com aceitação síncrona e indicação de modo assíncrona. Fontes: [SWS_Eth_91009], [SWS_Eth_00119], [SWS_Eth_00240], SWS EthIf p. 85

Caminho de transmissão: solicitar buffer, transmitir, confirmar

A transmissão ocorre em duas etapas. Primeiro, Eth_ProvideTxBuffer seleciona uma FIFO de transmissão com base em Priority. O serviço fornece um índice do tipo Eth_BufIdxType, um ponteiro de buffer e, por meio de LenBytePtr, o comprimento concedido ([SWS_Eth_00077], [SWS_Eth_00175]). Retornos possíveis são BUFREQ_OK, BUFREQ_E_NOT_OK, BUFREQ_E_BUSY e BUFREQ_E_OVFL. O buffer permanece bloqueado até que Eth_Transmit com esse índice ocorra em seguida (SWS Eth p. 91).

Em seguida, Eth_Transmit dispara a transmissão com FrameType, endereço MAC de destino e o flag TxConfirmation ([SWS_Eth_00087], [SWS_Eth_00160]). Nesse processo, o driver monta o cabeçalho Ethernet (SWS Eth p. 93). Eth_Transmit é reentrante para diferentes índices de buffer e de controlador ([SWS_Eth_00087]).

Se a confirmação for solicitada, o Eth chama EthIf_TxConfirmation com E_OK. No modo por interrupção, isso ocorre a partir da rotina de interrupção; no modo de polling, a partir de Eth_TxConfirmation ([SWS_Eth_00243], [SWS_Eth_00100]). Se a transmissão falhar, o resultado é E_NOT_OK ([SWS_Eth_00256]). As camadas superiores podem confiar que cada Eth_Transmit é seguido por uma confirmação (SWS Eth p. 32).

No diagrama de polling, EthIf_MainFunctionTx chama a função Eth_TxConfirmation (SWS EthIf p. 87). No modo por interrupção, Eth_TxIrqHdlr_<CtrlIdx> assume essa tarefa (SWS EthIf p. 88). O momento em que o driver libera o buffer fica a critério da implementação (SWS Eth p. 93).

Transmissão de um quadro em modo de pollingObere Schicht (UL)EthIfEthEthIf_ProvideTxBuffer(...)Eth_ProvideTxBuffer(CtrlIdx, Priority,BufIdxPtr, BufPtr, LenBytePtr)BUFREQ_OK, BufIdx, BufPtr, comprimento concedidoBUFREQ_OK, PufferCopiar dados úteis para o bufferEthIf_Transmit(...)Eth_Transmit(CtrlIdx, BufIdx, FrameType,TxConfirmation = TRUE, LenByte, PhysAddrPtr)Ethernet-Header bilden,Iniciar transmissãoE_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)

Diagrama de sequência: solicitar buffer, preencher, transmitir e confirmar no modo de polling, com ramificação de sucesso e de erro. Fontes: [SWS_Eth_00077], [SWS_Eth_00087], [SWS_Eth_00243], [SWS_Eth_00256], SWS EthIf p. 87

Caminho de recepção e filtro de endereço

Eth_Receive lê um quadro da FIFO endereçada via FifoIdx. O serviço é reentrante para diferentes FIFOs, mas não para a mesma ([SWS_Eth_00095]). RxStatusPtr retorna ETH_RECEIVED, ETH_NOT_RECEIVED ou ETH_RECEIVED_MORE_DATA_AVAILABLE ([SWS_Eth_00162]). Interpretação: um chamador em polling provavelmente repetirá Eth_Receive enquanto outros quadros forem reportados. Pergunta Q-8f1484413f850bda (aberta) Não está definido quem realiza a chamada no modo de polling; presume-se que seja a EthIf.

O Eth reporta a recepção via EthIf_RxIndication, seja a partir da interrupção ou de Eth_Receive ([SWS_Eth_00244]). Quadros de broadcast são indicados como tais ([SWS_Eth_00153]). Versões mais recentes denominam o parâmetro QueueIdx (SWS Eth p. 110).

O endereço de origem próprio é definido por Eth_SetPhysAddr; Eth_GetPhysAddr o lê ([SWS_Eth_00151], [SWS_Eth_00052]). Eth_UpdatePhysAddrFilter inclui endereços de destino multicast no filtro de recepção com ETH_ADD_TO_FILTER e os remove com ETH_REMOVE_FROM_FILTER ([SWS_Eth_00152], [SWS_Eth_00163], [SWS_Eth_00150]).

Se o endereço de destino for compatível, o Eth notifica a camada superior; caso contrário, ele descarta o quadro ([SWS_Eth_00245], [SWS_Eth_00246]). Se o hardware não puder filtrar, a inicialização ativa o modo promíscuo ([SWS_Eth_00146]). O endereço 00:00:00:00:00:00 reduz o filtro ao próprio endereço unicast e encerra o modo promíscuo ([SWS_Eth_00147]; cf. SWS Eth p. 74).

Receção em modo de polling e de interrupçãoEthIfEthUse Case: Polling-BetriebInterpretação: EthIf chama Eth_Receive ciclicamenteloopInterpretation: solange RxStatus == ETH_RECEIVED_MORE_DATA_AVAILABLEEth_Receive(CtrlIdx, FifoIdx, RxStatusPtr)Ler trama da FIFO,verificar o endereço de destino em relação ao filtroaltRahmen empfangen, Adresse passtEthIf_RxIndication(...)O endereço não correspondeRahmen verwerfenRxStatusUse Case: Interrupt-BetriebEmpfangs-InterruptEthIf_RxIndication(...)

Diagrama de sequência: recepção no modo de polling e por interrupção com verificação de endereço antes da indicação. Fontes: [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 Reduzir o filtro para o próprio endereço unicast, terminar o Promiscuous Mode z->reset sim act Action? z->act não rx A trama chega reset->rx add ETH_ADD_TO_FILTER: permitir receção para o endereço act->add adicionar rem ETH_REMOVE_FROM_FILTER: Empfang blockieren act->rem entfernen hw O controlador consegue filtrar? add->hw rem->hw hwf Hardware-Filter nutzen hw->hwf sim swf Filterung in Software (Promiscuous Mode seit Initialisierung) hw->swf não hwf->rx swf->rx m O endereço de destino corresponde ao filtro? rx->m ind EthIf_RxIndication m->ind sim drop Rahmen verwerfen m->drop não

Diagrama de atividades: atualização do filtro com caso especial de endereço nulo, filtragem por hardware ou software e aceitação ou descarte na recepção. Fontes: [SWS_Eth_00146], [SWS_Eth_00147], [SWS_Eth_00163], [SWS_Eth_00245], [SWS_Eth_00246]

Acesso ao transceptor, carimbos de data/hora de hardware e contadores de diagnóstico

Eth_WriteMii e Eth_ReadMii são assíncronos e não reentrantes no R20-11 ([SWS_Eth_00058], [SWS_Eth_00064]). O Eth reporta a conclusão via EthTrcv_WriteMiiIndication e EthTrcv_ReadMiiIndication, respectivamente ([SWS_Eth_00241], [SWS_Eth_00242]). Registradores da Clause 45 são acessados por meio dos registradores 13 e 14 de acordo com o Annex 22D ([SWS_Eth_00273], [SWS_Eth_00274]). O acesso é habilitado via EthCtrlEnableMii ([SWS_Eth_00069]). O R24-11, por outro lado, descreve Eth_WriteMii como síncrono (SWS Eth p. 95); para o R20-11, aplica-se a definição assíncrona.

As funções de carimbo de data/hora são habilitadas via EthGlobalTimeSupport ([SWS_Eth_00210], [SWS_Eth_00211]). Em detalhe, aplica-se o seguinte:

A camada superior descarta carimbos de data/hora com qualidade ETH_UNCERTAIN ou ETH_INVALID ([SWS_Eth_00177]). A partir do R23-11, Eth_GetCurrentTime torna-se obsoleto (SWS Eth p. 82); no R20-11, o serviço é normativo.

Carimbo de data/hora de transmissão através do driver EthernetEthTSynEthIfEth[EthTSynHardwareTimestampSupport == TRUE]EthIf_EnableEgressTimeStamp(CtrlIdx, BufIdx)Eth_EnableEgressTimeStamp(CtrlIdx, BufIdx)EthIf_Transmit(...)Eth_Transmit(...)EthIf_TxConfirmation(CtrlIdx, BufIdx, Result)EthTSyn_TxConfirmation(CtrlIdx, BufIdx, Result)Consulta no contexto de TxConfirmationEthIf_GetEgressTimeStamp(CtrlIdx, BufIdx, ...)Eth_GetEgressTimeStamp(CtrlIdx, BufIdx,timeQualPtr, timeStampPtr)E_OK, qualidade, carimbo de data/horaE_OK, qualidade, carimbo de data/horaaltQualidade == ETH_VALIDZeitstempel verwendenETH_UNCERTAIN ou ETH_INVALIDZeitstempel verwerfen

Diagrama de sequência: ativar carimbo de data/hora de transmissão, transmitir e ler no contexto de confirmação com verificação de qualidade. Fontes: [SWS_Eth_00186], [SWS_Eth_00190], [SWS_Eth_00177], SWS EthTSyn p. 70, SWS EthTSyn p. 55

Quatro serviços de diagnóstico podem ser habilitados individualmente:

Nos serviços de estatística, o valor máximo indica um contador indisponível (SWS Eth p. 98).

Configuração, particionamento e gerenciamento de buffers por SW (CBS)

Com EthCtrlEnableOffloadChecksumIPv4, EthCtrlEnableOffloadChecksumICMP, EthCtrlEnableOffloadChecksumTCP e EthCtrlEnableOffloadChecksumUDP, o controlador calcula checksums em hardware. Na recepção, ele descarta quadros com checksum incorreto ([SWS_Eth_00216], [SWS_Eth_00217]). Os endereços base dos buffers devem atender ao alinhamento de todos os tipos de dados AUTOSAR ([SWS_Eth_00218]). Mapeamentos de partições não suportados devem ser rejeitados. As partições em EthCtrlEcucPartitionRef devem ser um subconjunto de EthEcucPartitionRef ([SWS_Eth_00257], [SWS_Eth_00260], [SWS_Eth_CONSTR_00001]).

Se faltar escalonamento justo no hardware, um Credit Based Shaper em software estará disponível (SWS Eth p. 38). No R20-11, todos os requisitos associados são DRAFT. O procedimento funciona da seguinte forma:

cbs mf Eth_MainFunction() (EthCtrlConfigSwBufferHandling = TRUE) c1 SW-FIFOs por ordem decrescente de prioridade: aumentar créditos em EthCtrlConfigShaperIdleSlope (apenas FIFOs não vazios) mf->c1 c2 Próximo SW-FIFO (prioridade mais alta primeiro) c1->c2 q Mensagem presente e créditos >= EthCtrlConfigShaperMinCredit? c2->q mv Mover a primeira mensagem para a HW-FIFO, subtrair o tamanho da mensagem aos créditos q->mv sim more Weitere SW-FIFO? q->more não b EthTrcvPhysLayerPLCAMaxBurstCount = 0? mv->b stop Iteration beenden b->stop sim burst Mover mensagens adicionais até ao limite de burst, subtrair créditos por mensagem b->burst não ende Ende stop->ende burst->more Interpretação: continuar com o próximo FIFO more->c2 sim more->ende não

Diagrama de atividades: execução do CBS em Eth_MainFunction com atualização de créditos, verificação de crédito mínimo e ramificação de rajada PLCA. Fontes: [SWS_Eth_00266], [SWS_Eth_00270], [SWS_Eth_00271], [SWS_Eth_00272], SWS Eth p. 56

Comportamento em caso de erro

O Eth reporta erros de desenvolvimento ao DET ([SWS_Eth_00120]). Os códigos são ETH_E_INV_CTRL_IDX, ETH_E_UNINIT, ETH_E_PARAM_POINTER, ETH_E_INV_PARAM e ETH_E_INV_MODE ([SWS_Eth_00016]). Verificações típicas dizem respeito à inicialização, a CtrlIdx e a ponteiros ([SWS_Eth_00066], [SWS_Eth_00067], [SWS_Eth_00068]). Se o DET estiver desativado, os serviços de estatística retornam E_NOT_OK nesses casos ([SWS_Eth_00228], [SWS_Eth_00236], [SWS_Eth_00248], [SWS_Eth_00254]).

Erros de produção vão para o DEM via Dem_SetEventStatus ([SWS_Eth_00119]). Um acesso com falha ao controlador resulta em ETH_E_ACCESS com DEM_EVENT_STATUS_PREFAILED; Eth_SetControllerMode então retorna E_NOT_OK ([SWS_Eth_00039], [SWS_Eth_00173], [SWS_Eth_00168]). Eth_MainFunction reporta os seguintes erros de produção estendidos ([SWS_Eth_00169], [SWS_Eth_00172]):

Em operação, os erros também se manifestam por meio de valores de retorno. Entre eles estão BUFREQ_E_BUSY e BUFREQ_E_OVFL (SWS Eth p. 91), bem como uma confirmação de transmissão negativa ([SWS_Eth_00256]). O comportamento de Eth_Receive com o controlador inativo depende da versão. O R23-11 e o R24-11 exigem ETH_E_INV_MODE (SWS Eth p. 94, SWS Eth p. 116), o R25-11 um retorno imediato (SWS Eth p. 110). Para o R20-11, presume-se que a variante DET se aplique devido a [SWS_Eth_00016]. Pergunta (aberta)

Evidências mais detalhadas

Guia gerado por IA com base em trechos de especificação no payload. Decisivos são os requisitos vinculados do R20-11; referências de documentos de outras versões são identificadas como tais.

Ethernet Driver (Eth)

Provides uniform hardware access to Ethernet controller interfaces.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

função Eth_Init [SWS_Eth_00027] 📄 PDF

void Eth_Init (const Eth_ConfigType* CfgPtr);

Initializes the Ethernet Driver

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 6639db5c607b Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função Eth_Init serve para a inicialização do driver Ethernet [SWS_Eth_00027]. Ela é declarada através do arquivo de cabeçalho Eth.h, possui o Service ID 0x01 e não possui valor de retorno (void) [SWS_Eth_00027]. Como parâmetro de entrada, ela espera CfgPtr, que aponta para uma estrutura de configuração específica da implementação do tipo Eth_ConfigType [SWS_Eth_00027]. A chamada ocorre de forma síncrona e é definida como não reentrante (Non Reentrant) [SWS_Eth_00027].

No fluxo operacional, Eth_Init constitui o pré-requisito fundamental para o trabalho com o módulo. Todas as demais funções pressupõem obrigatoriamente uma inicialização prévia do controlador por Eth_Init [SWS_Eth_00070], [SWS_Eth_00167], [SWS_Eth_00185]. Essa dependência é prescrita de forma vinculativa para diversos serviços de controlador do driver [SWS_Eth_00189], [SWS_Eth_00194], [SWS_Eth_00199], [SWS_Eth_00232].

Para o caso de um acesso não inicializado, está previsto um tratamento de erros específico: com a detecção de erros de desenvolvimento (Development Error Detection, DET) ativada, as funções do driver verificam se o serviço Eth_Init foi chamado corretamente com antecedência [SWS_Eth_00066]. Se essa verificação não for bem-sucedida, elas acionam o erro de desenvolvimento ETH_E_UNINIT [SWS_Eth_00164], [SWS_Eth_00182], [SWS_Eth_00187], [SWS_Eth_00196]. Se o DET estiver desativado, por outro lado, as funções afetadas recusam a execução e sinalizam o estado inadmissível retornando o status E_NOT_OK [SWS_Eth_00228], [SWS_Eth_00235], [SWS_Eth_00248], [SWS_Eth_00252].

Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I2)

função Eth_SetControllerMode [SWS_Eth_00041] 📄 PDF

Std_ReturnType Eth_SetControllerMode (uint8 CtrlIdx, Eth_ModeType CtrlMode);

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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 58bddef3c196 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função Eth_SetControllerMode serve para ativar (ETH_MODE_ACTIVE) ou desativar (ETH_MODE_DOWN) o controlador Ethernet endereçado por meio do parâmetro CtrlIdx [SWS_Eth_00041]. No AUTOSAR Classic R20-11, este serviço é classificado como obsoleto (obsolete) [SWS_Eth_00041].

A execução do serviço é assíncrona e não reentrante (Non Reentrant) [SWS_Eth_00041]. Como valor de retorno, a função fornece E_OK em caso de inicialização bem-sucedida ou E_NOT_OK caso não tenha sido possível alterar o modo de operação [SWS_Eth_00041]. Interpretação: Como a chamada é especificada como assíncrona, mas nenhum callback é definido no payload, a assunção efetiva do estado deve ser concluída em baixo nível, em segundo plano no driver, após o retorno da função. Pergunta Q-d7ec04578e921eb9 (aberta)

Se o controlador ou a sua comunicação de transmissão e recepção for desativado por meio de Eth_SetControllerMode, aplicam-se limpezas de buffer obrigatórias:

Devido à propriedade Non Reentrant, a função não deve ser executada de forma concorrente para a mesma ou para outras instâncias de controlador [SWS_Eth_00041]. Mensagens de erro específicas do DET ou do DEM não são listadas; estados de erro são informados ao chamador por meio do valor de retorno E_NOT_OK [SWS_Eth_00041].

Esta nota de uso foi gerada de forma automatizada com base nos dados de especificação do AUTOSAR Classic R20-11.

Guia do implementador em breve (complexidade I2)

função 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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 45ebc5b270a4 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função Eth_SetControllerMode (Service-ID 0x03, disponibilizada por meio de Eth.h) serve para ativar e desativar a comunicação de recepção e transmissão (Rx/Tx) de um controlador Ethernet específico [SWS_Eth_91009].

Uso e condições de chamada

A execução da função ocorre de forma assíncrona e é especificada como não reentrante (Non Reentrant) [SWS_Eth_91009]. Na chamada, são passados dois parâmetros:

  • CtrlIdx: Índice do respectivo controlador no contexto do driver Ethernet [SWS_Eth_91009].
  • CtrlMode: Modo de destino para o controlador, seja ETH_MODE_ACTIVE para ativar a comunicação Rx/Tx ou ETH_MODE_DOWN para desativá-la [SWS_Eth_91009].

Como valor de retorno, a função fornece o status Std_ReturnType: E_OK sinaliza uma execução bem-sucedida, enquanto E_NOT_OK indica que o modo do controlador não pôde ser alterado [SWS_Eth_91009].

Interação e gerenciamento de buffers

Se a comunicação Rx/Tx do controlador indexado for desativada por meio de Eth_SetControllerMode (modo ETH_MODE_DOWN), ações de limpeza devem ser obrigatoriamente realizadas para os buffers de transmissão:

  • Todos os buffers de transmissão bloqueados (locked transmit buffers) devem ser liberados [SWS_Eth_00280].
  • Todos os buffers de transmissão pendentes (pending transmit buffers) também devem ser liberados [SWS_Eth_00281].

As disposições atuais para a liberação de buffers bloqueados e pendentes, bem como a própria definição da função, possuem o status “draft” [SWS_Eth_91009], [SWS_Eth_00280], [SWS_Eth_00281]. Elas substituem os requisitos historicamente anteriores [SWS_Eth_00137] e [SWS_Eth_00138], que são classificados como obsoletos.

Este texto foi gerado por uma IA com base nas especificações AUTOSAR.

Guia do implementador em breve (complexidade I2)

função Eth_GetPhysAddr [SWS_Eth_00052] 📄 PDF

void Eth_GetPhysAddr (uint8 CtrlIdx, uint8* PhysAddrPtr);

Obtains the physical source address used by the indexed controller

função Eth_SetPhysAddr [SWS_Eth_00151] 📄 PDF

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

Sets the physical source address used by the indexed controller

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 3be26284fad7 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A interface síncrona Eth_UpdatePhysAddrFilter é disponibilizada através do arquivo de cabeçalho Eth.h e possui o Service ID 0x12 [SWS_Eth_00152]. A função serve para adicionar um endereço físico ao filtro de um controlador Ethernet indexado ou para removê-lo deste [SWS_Eth_00152].

Os parâmetros da função compreendem três valores de entrada [SWS_Eth_00152]:

  • CtrlIdx: determina o índice do respectivo controlador Ethernet dentro do contexto do driver [SWS_Eth_00152].
  • PhysAddrPtr: ponteiro para a área de memória com o endereço físico de destino (endereço MAC) na ordem de bytes da rede; este é o endereço de destino multicast do pacote Ethernet de camada 2 [SWS_Eth_00152].
  • Action: especifica, por meio do tipo de enumeração Eth_FilterActionType, se o endereço indicado é adicionado ao filtro do controlador ou excluído dele [SWS_Eth_00152].

A função retorna um status do tipo Std_ReturnType: E_OK confirma a alteração bem-sucedida do filtro, enquanto E_NOT_OK relata que o filtro não pôde ser alterado [SWS_Eth_00152]. Se o controlador Ethernet não for capaz de realizar a filtragem por hardware de forma autônoma, a tarefa de filtragem deve ser implementada por software [SWS_Eth_00152].

Para a execução, aplica-se uma restrição estrita de reentrância: a função não é reentrante para o mesmo índice de controlador (CtrlIdx), mas pode ser chamada de forma concorrente e reentrante para índices de controlador distintos entre si [SWS_Eth_00152].

Esta nota de uso foi gerada por um sistema de IA com base na especificação AUTOSAR Classic R20-11.

Guia do implementador em breve (complexidade I1)

função 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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 59aa765351e8 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função Eth_WriteMii serve para configurar um registrador de um transceptor Ethernet via interface MII ou para acionar uma função disponibilizada pelo transceptor [SWS_Eth_00058]. A declaração está disponível através do cabeçalho Eth.h [SWS_Eth_00058].

Utilização e parâmetros

A chamada é realizada com o Service ID 0x05 e processa quatro parâmetros de entrada [SWS_Eth_00058]:

  • CtrlIdx: Índice do controlador Ethernet no contexto do driver Ethernet [SWS_Eth_00058].
  • TrcvIdx: índice do transceptor na interface MII [SWS_Eth_00058].
  • RegIdx: índice do registrador do transceptor a ser escrito na MII [SWS_Eth_00058].
  • RegVal: o valor de 16 bits que deve ser escrito no registrador endereçado [SWS_Eth_00058].

A execução do serviço é especificada como assíncrona [SWS_Eth_00058]. Isso significa que o processo de escrita propriamente dito através da interface de hardware deve ser tipicamente processado em segundo plano, enquanto a função retorna imediatamente após a aceitação da solicitação. Pergunta Q-0f9a9e682985d796 (aberta)

Valores de retorno e restrições

Como valor de retorno, a função fornece o tipo Std_ReturnType [SWS_Eth_00058]:

Em relação à concorrência, Eth_WriteMii é especificada como não reentrante (Non Reentrant) [SWS_Eth_00058]. Portanto, as chamadas não devem ser executadas concorrentemente sem a sincronização correspondente por parte de quem chama.

Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função Eth_ReadMii [SWS_Eth_00064] 📄 PDF

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

Reads a transceiver register

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 6906f4ae5194 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e parâmetros

A função Eth_ReadMii (Service-ID 0x06) serve para ler um registrador de transceiver por meio da interface MII e é disponibilizada pelo arquivo de cabeçalho Eth.h [SWS_Eth_00064]. Na chamada, CtrlIdx identifica o respectivo controlador Ethernet no contexto do driver, TrcvIdx o transceiver acessado na MII e RegIdx o registrador concreto do transceiver [SWS_Eth_00064]. O valor do registrador obtido é gravado na área de memória para a qual o ponteiro RegValPtr aponta [SWS_Eth_00064].

Execução e concorrência

A execução ocorre de forma assíncrona (Asynchronous) [SWS_Eth_00064]. Um valor de retorno de E_OK apenas confirma que o serviço ou a solicitação de leitura foi aceita com sucesso (Service accepted), enquanto E_NOT_OK sinaliza uma rejeição da solicitação (Service denied) [SWS_Eth_00064]. Devido ao caráter assíncrono, a área de memória passada para RegValPtr provavelmente deve permanecer válida até a conclusão definitiva do processo de leitura. Pergunta Q-04a94624b96bf51f (aberta) Como a função também é classificada como não reentrante (Non Reentrant) [SWS_Eth_00064], os chamadores não devem realizar acessos simultâneos por meio de diferentes tarefas ou contextos de interrupção sem sincronização externa.

Tratamento de erros

Se o driver não puder aceitar a solicitação de leitura, a chamada é confirmada diretamente com E_NOT_OK [SWS_Eth_00064]. Códigos de erro específicos, verificações de tempo de execução do DET ou eventos de diagnóstico do DEM não são indicados para esta função nos dados de especificação relacionados ao elemento.

Esta nota de uso foi criada por uma IA com base na especificação.

Guia do implementador em breve (complexidade I1)

função 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

função 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.

função 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.

função 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.

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 28883e2189c8 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona Eth_EnableEgressTimeStamp ativa o registro de carimbos de data/hora de transmissão (Egress Time Stamping) para um objeto de mensagem dedicado do driver Ethernet [SWS_Eth_00186]. A chamada ocorre através do cabeçalho Eth.h com o Service ID 0x17 e não fornece valor de retorno [SWS_Eth_00186].

Na chamada, devem ser passados os seguintes parâmetros de entrada [SWS_Eth_00186]:

  • CtrlIdx: índice do controlador Ethernet endereçado [SWS_Eth_00186].
  • BufIdx: índice do buffer de mensagens para o qual a aplicação de nível superior espera a geração de um carimbo de data/hora de egress [SWS_Eth_00186].

Em relação à concorrência, a função é especificada como não reentrante (Non Reentrant) [SWS_Eth_00186]. Uma chamada paralela para o mesmo buffer ou para buffers adicionais deve, portanto, ser sincronizada ou evitada por quem chama.

O comportamento do hardware varia conforme a implementação do controlador: alguns hardwares salvam a marcação para o carimbo de data/hora de transmissão de forma permanente, enquanto outros controladores exigem obrigatoriamente a ativação antes de cada transmissão [SWS_Eth_00186]. Interpretação: para um acionamento independente de hardware, deve ser recomendável, portanto, chamar a função antes de cada processo de envio do buffer desejado. Pergunta Q-c2b8d2db03e9d13b (aberta) Não existe uma interface de desativação, pois o tipo de mensagem é sempre transmitido com carimbo de data/hora de acordo com o design de rede [SWS_Eth_00186].

Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.

função 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.

função 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.

função 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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 44e533ef4911 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

A função síncrona Eth_ProvideTxBuffer concede acesso a um buffer de transmissão Ethernet da FIFO atribuído à prioridade fornecida [SWS_Eth_00077]. Ela é disponibilizada através do cabeçalho Eth.h e é especificada como reentrante [SWS_Eth_00077]. Através dos parâmetros de entrada, são passados o índice do controlador CtrlIdx bem como a prioridade do quadro Priority para seleção da FIFO [SWS_Eth_00077]. O parâmetro in-out LenBytePtr passa o tamanho de buffer desejado e retorna, após a chamada, o tamanho em bytes efetivamente concedido [SWS_Eth_00077]. Os parâmetros de saída BufIdxPtr (índice de recurso para solicitações posteriores) e BufPtr (ponteiro para o buffer) disponibilizam as referências para a área de memória [SWS_Eth_00077].

Tratamento de erros e valores de retorno

A função sinaliza o resultado por meio de valores de retorno do tipo BufReq_ReturnType [SWS_Eth_00077]:

  • BUFREQ_OK: o buffer de transmissão foi disponibilizado com sucesso [SWS_Eth_00077].
  • BUFREQ_E_BUSY: todos os recursos de buffer estão ocupados no momento [SWS_Eth_00077].
  • BUFREQ_E_OVFL: o buffer solicitado é grande demais [SWS_Eth_00077].
  • BUFREQ_E_NOT_OK: um erro de desenvolvimento foi detectado [SWS_Eth_00077].

Interação

Se EthCtrlConfigSwBufferHandling estiver configurado como TRUE, uma tupla composta pelo índice de buffer do pool de buffers de software passado para BufIdxPtr e pela prioridade indicada Priority é armazenada internamente [SWS_Eth_00267].

Se Eth_Transmit() for chamada em seguida, o índice de buffer fornecido é atribuído à FIFO de software cuja configuração EthCtrlConfigEgressFifoPriorityAssignment corresponda à prioridade previamente passada em Eth_ProvideTxBuffer() [SWS_Eth_00268].

Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função 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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 964b3772cde6 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e contexto de chamada

A interface síncrona Eth_Transmit aciona o processo de envio para um buffer de transmissão Ethernet previamente disponibilizado e preenchido [SWS_Eth_00087]. Ela recebe os seguintes parâmetros:

  • CtrlIdx: índice do controlador Ethernet no contexto do driver [SWS_Eth_00087].
  • BufIdx: índice do recurso de buffer a ser transmitido [SWS_Eth_00087].
  • FrameType: tipo específico de quadro Ethernet [SWS_Eth_00087].
  • TxConfirmation: chave para ativação da confirmação de transmissão [SWS_Eth_00087].
  • LenByte: comprimento dos dados da carga útil em bytes [SWS_Eth_00087].
  • PhysAddrPtr: ponteiro para o endereço físico de destino (endereço MAC) na ordem de bytes da rede [SWS_Eth_00087].

O valor de retorno do tipo Std_ReturnType sinaliza com E_OK o início bem-sucedido da transmissão e com E_NOT_OK uma falha [SWS_Eth_00087].

Interação e processamento de buffer

No âmbito do fluxo de transmissão, Eth_Transmit atribui o ponteiro de buffer BufIdx à FIFO de software cujo elemento de configuração EthCtrlConfigEgressFifoPriorityAssignment coincide com a prioridade previamente definida em Eth_ProvideTxBuffer() [SWS_Eth_00268]. Com a chamada, as mensagens correspondentes são transferidas das FIFOs de software para a FIFO de hardware [SWS_Eth_00269].

simultaneidade

A função é reentrante para chamadas com índices de buffer diferentes (BufIdx), bem como diferentes índices de controlador (CtrlIdx) [SWS_Eth_00087].

Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I2)

função Eth_Receive [SWS_Eth_00095] 📄 PDF

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

Receive a frame from the related fifo.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: aeb0a2bc1424 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função síncrona Eth_Receive serve para a recepção de um quadro Ethernet a partir de um buffer FIFO específico de um controlador Ethernet [SWS_Eth_00095]. Ela não possui valor de retorno, mas retorna o resultado da consulta a quem chamou através do ponteiro RxStatusPtr do tipo Eth_RxStatusType [SWS_Eth_00095]. Esse parâmetro de saída indica se um quadro foi recebido com sucesso e se ainda há outros quadros prontos para serem buscados para o respectivo buffer FIFO [SWS_Eth_00095].

Parâmetros e contexto de chamada

Como parâmetros de entrada, a função requer o índice do controlador CtrlIdx dentro do driver Ethernet, bem como o índice FifoIdx da FIFO a ser lida [SWS_Eth_00095]. A função é declarada no arquivo de cabeçalho Eth.h [SWS_Eth_00095]. A chamada deve ocorrer tipicamente de forma periódica no âmbito de um mecanismo de polling por camadas superiores de driver ou interface. Pergunta Q-f5ec0693a5887bcf (aberta)

Simultaneidade e restrições

Em relação à concorrência, Eth_Receive é implementada como reentrante para FIFOs diferentes, mas não reentrante para a mesma FIFO [SWS_Eth_00095]. Chamadas simultâneas que consultem a mesma FIFO do mesmo controlador são inadmissíveis e devem ser excluídas pelo software chamador.

Interação com a interface Ethernet

No modo polling, o driver Ethernet é obrigado, em um processo de recepção bem-sucedido, a chamar a função EthIf_RxIndication diretamente a partir da rotina Eth_Receive para notificar o quadro recebido à camada superior para processamento posterior [SWS_Eth_00244].

Este texto foi gerado por uma IA com base na especificação.

Guia do implementador em breve (complexidade I1)

função Eth_TxConfirmation [SWS_Eth_00100] 📄 PDF

void Eth_TxConfirmation (uint8 CtrlIdx);

Triggers frame transmission confirmation

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 72b1ce9d790c Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e contexto de chamada

A função Eth_TxConfirmation, disponível por meio do cabeçalho Eth.h, serve para disparar intencionalmente a confirmação de transmissão para quadros Ethernet enviados [SWS_Eth_00100]. Ela possui o Service-ID 0x0C e é executada de forma síncrona [SWS_Eth_00100]. Como único parâmetro de passagem, a função espera CtrlIdx, que determina o índice lógico do controlador a ser acessado dentro da instância do driver Ethernet [SWS_Eth_00100]. Não existe valor de retorno (void) e nenhum parâmetro de saída é passado [SWS_Eth_00100].

Interação no fluxo de transmissão

Na interação entre as camadas, Eth_TxConfirmation assume o repasse do status de envio para a interface Ethernet de nível superior. Desde que a notificação correspondente tenha sido ativada, o driver Ethernet é obrigado a chamar EthIf_TxConfirmation com o valor de resultado E_OK para sinalizar uma transmissão bem-sucedida [SWS_Eth_00243]. No modo de polling, essa chamada ocorre explicitamente de dentro do contexto da rotina Eth_TxConfirmation, enquanto no modo controlado por interrupções ela é disparada, alternativamente, direto da rotina de interrupção [SWS_Eth_00243].

Concorrência e condições de execução

Para a execução, aplica-se a restrição de que Eth_TxConfirmation é definida como não reentrante (Non Reentrant) [SWS_Eth_00100]. Chamadas simultâneas para o mesmo controlador devem, portanto, ser evitadas pelo chamador. A chamada normalmente deve ocorrer ciclicamente na operação de polling por meio de um controle de fluxo de nível superior. Pergunta Q-c19295838459b689 (aberta) Códigos de erro específicos, bem como requisitos para mensagens DET ou DEM, não são indicados na especificação da função, razão pela qual um tratamento de erros em separado é dispensado.

Este texto foi gerado por uma IA; o documento de referência oficial é a especificação indicada.

Guia do implementador em breve (complexidade I1)

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 395137d99dcb Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e contexto de chamada

A função Eth_MainFunction possui a assinatura void Eth_MainFunction(void) e é disponibilizada por meio do arquivo de cabeçalho SchM_Eth.h [SWS_Eth_00171]. Disso pode-se interpretar: A chamada provavelmente deve ocorrer ciclicamente pelo Schedule Manager (SchM) em um contexto baseado em tarefas, uma vez que não há parâmetros de passagem nem valores de retorno definidos. Pergunta Q-690a2dc372d49c6a (aberta)

Escopo de funções e polling

A tarefa principal da função consiste no polling de alterações de estado, bem como na verificação de erros de controlador e quadros Ethernet perdidos [SWS_Eth_00171]. Se a função constatar que o modo do controlador Ethernet foi alterado, ela chama a função EthIf_CtrlModeIndication para informar a camada superior sobre a mudança de estado [SWS_Eth_00171].

Ordem de processamento no caminho de transmissão

No contexto de Eth_MainFunction(), uma ordem fixa é predefinida para o processamento de FIFOs de software [SWS_Eth_00270]:

  • Primeiro, todos os FIFOs de SW são iterados e suas contas de créditos (Credits Account) são atualizadas [SWS_Eth_00270].
  • Em seguida, todos os FIFOs de SW são iterados novamente e verificados quanto a mensagens prontas para envio [SWS_Eth_00270].
  • Para cada FIFO de SW iterado, a transmissão é então realizada [SWS_Eth_00270].

Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I2)

tipo 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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 12ea280a995a Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

O tipo de enumeração genérico Eth_ModeType serve, nas camadas da pilha de comunicação Ethernet (como EthIf, Eth, EthSwt e EthTrcv), para ativar ou desativar o canal de comunicação Ethernet, bem como para colocar o respectivo hardware (como controlador Ethernet, porta de switch Ethernet ou transceptor Ethernet) em um estado de repouso com economia de energia ou modo ativo [SWS_Eth_00158].

O tipo está disponível por meio do arquivo de cabeçalho Eth_GeneralTypes.h e define as seguintes faixas de valores [SWS_Eth_00158]:

  • ETH_MODE_DOWN (0x00): desativa o canal de comunicação Ethernet e coloca o hardware correspondente em um modo de repouso com economia de energia (Low-Power Sleep Mode) [SWS_Eth_00158].
  • ETH_MODE_ACTIVE (0x01): ativa o canal de comunicação Ethernet e coloca o hardware no modo de operação (Power-On Mode) [SWS_Eth_00158].

Em relação ao ciclo de vida e ao uso, deve-se observar que Eth_ModeType está marcado com o status obsolete no release R20-11 [SWS_Eth_00158]. Em novos desenvolvimentos, o uso deste tipo deve, portanto, ser evitado, uma vez que tipos de interface obsoletos são tipicamente substituídos por estruturas de controle mais modernas em padrões futuros.

Esta nota de uso foi criada de forma automatizada. As referências da especificação aplicam-se exclusivamente ao contexto de requisitos fornecido.

Guia do implementador em breve (complexidade I1)

tipo 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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: bd78c0f35c62 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

O tipo enumerado Eth_ModeType é declarado via Eth_GeneralTypes.h e serve como tipo de modo intercamadas na pilha de comunicação Ethernet do AUTOSAR ([SWS_Eth_91008]). Ele é utilizado em módulos como EthIf, Eth, EthSwt e EthTrcv para ativar ou desativar canais de comunicação de forma direcionada e alternar o componente de hardware correspondente (controlador Ethernet, portas de switch ou transceptores) entre um modo de suspensão de economia de energia e o modo de operação ativo ([SWS_Eth_91008]).

O tipo compreende três estados para controle de modo ([SWS_Eth_91008]):

  • ETH_MODE_DOWN (0x00): desativa a comunicação Rx e Tx e coloca o hardware correspondente em um modo de suspensão de baixo consumo de energia (Low-Power Sleep). Caso o hardware ofereça suporte a isso, um processo de suspensão também é iniciado (por exemplo, a solicitação de Sleep na linha de dados de acordo com OPEN Alliance TC10).
  • ETH_MODE_ACTIVE (0x01): ativa a comunicação Rx e Tx e comuta o hardware correspondente para o modo de operação regular (Power-on).
  • ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST (0x02): ativa a comunicação Rx e Tx, coloca o hardware no modo de operação e dispara adicionalmente uma solicitação de despertar na rede, caso o hardware disponha de recursos de despertar (como Wake-up na linha de dados conforme OPEN Alliance TC10).

Na interação da pilha, Eth_ModeType oferece suporte em particular ao repasse de solicitações de despertar a partir da camada de serviços (ComM) através das camadas intermediárias até os drivers de comunicação (EthTrcv), controlando de forma orientada à demanda o hardware com funcionalidade de Wake-up e Sleep na linha de dados ([SWS_Eth_91008]).

Esta nota de uso foi gerada automaticamente com base na especificação SWS_Eth_91008.

Guia do implementador em breve (complexidade I1)

tipo Eth_StateType [SWS_Eth_00159] 📄 PDF

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

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: c3ab864e1cec Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

O tipo enumerado Eth_StateType é disponibilizado por meio do cabeçalho Eth_GeneralTypes.h e serve, de acordo com [SWS_Eth_00159], para o monitoramento de estado do driver Ethernet. Sua finalidade consiste em apoiar a detecção de erros de desenvolvimento (Development Error Detection), sendo que o estado atual deve estar disponível para fins de depuração (debugging), segundo a especificação ([SWS_Eth_00159]).

Para o gerenciamento de estados, Eth_StateType define dois valores discretos de enumeração ([SWS_Eth_00159]):

  • ETH_STATE_UNINIT (valor 0x00): Indica que o driver Ethernet ainda não está configurado ([SWS_Eth_00159]).
  • ETH_STATE_INIT (valor 0x01): Indica que o driver Ethernet está configurado com sucesso ([SWS_Eth_00159]).

Em relação ao tratamento de erros e à interação, este tipo de estado forma a base para a detecção interna de erros. Deve-se presumir que as APIs do driver consultem esse estado e rejeitem chamadas enquanto o driver estiver no estado não inicializado ETH_STATE_UNINIT ([SWS_Eth_00159]). Pergunta Q-35a17e3267274d70 (aberta) Somente quando o driver tiver transitado para o estado ETH_STATE_INIT é que ele é considerado configurado e operacional ([SWS_Eth_00159]). Como a definição de tipo está em Eth_GeneralTypes.h, ela se encontra disponível de forma abrangente para os drivers ([SWS_Eth_00159]).

Este texto foi gerado por uma IA com base na especificação AUTOSAR CP R20-11.

Guia do implementador em breve (complexidade I1)

tipo Eth_FrameType [SWS_Eth_00160] 📄 PDF

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

tipo Eth_DataType [SWS_Eth_00161] 📄 PDF

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

tipo 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 91a81f4cdad3 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Utilização e gama de valores

O tipo de enumeração Eth_RxStatusType é definido em conformidade com [SWS_Eth_00162] no arquivo de cabeçalho Eth_GeneralTypes.h. Ele serve como parâmetro de saída (out parameter) na função Eth_Receive(), através do qual o driver Ethernet informa se um quadro Ethernet foi recebido e se subsequentemente há mais quadros no buffer ou se dados foram perdidos [SWS_Eth_00162].

A especificação define para este tipo três valores de enumeração discretos [SWS_Eth_00162]:

  • ETH_RECEIVED (0x00): um quadro Ethernet foi recebido; não há mais outros quadros disponíveis no controlador.
  • ETH_NOT_RECEIVED (0x01): nenhum quadro Ethernet foi recebido; não há outros quadros presentes.
  • ETH_RECEIVED_MORE_DATA_AVAILABLE (0x02): um quadro Ethernet foi recebido e há quadros adicionais prontos para serem buscados.

Interação no processamento de quadros

Ao chamar Eth_Receive(), a camada chamadora passa um ponteiro para uma variável do tipo Eth_RxStatusType. A avaliação desse parâmetro de saída controla o fluxo posterior do ciclo de recepção: o valor de retorno ETH_RECEIVED_MORE_DATA_AVAILABLE deve servir a quem chamou como critério para chamar Eth_Receive() novamente de imediato, a fim de processar rapidamente os quadros restantes do buffer de recepção [SWS_Eth_00162]. Pergunta Q-4ed309522aa004f8 (aberta) Os estados ETH_RECEIVED e ETH_NOT_RECEIVED sinalizam, por outro lado, que o buffer está esgotado e que não há mais dados pendentes para processamento. A disponibilização via Eth_GeneralTypes.h assegura, com isso, um uso uniforme de tipos entre os módulos [SWS_Eth_00162].

Este texto foi gerado por uma IA e baseia-se exclusivamente nos dados de especificação do AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

tipo 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.

tipo 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.

tipo 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

tipo 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.

tipo Eth_TxErrorCounterValuesType [SWS_Eth_91004] 📄 PDF

Type Eth_TxErrorCounterValuesType.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: cf651d8e65c0 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Uso e finalidade

O tipo de dados Eth_TxErrorCounterValuesType está especificado, de acordo com [SWS_Eth_91004], como uma estrutura para contadores estatísticos para fins de diagnóstico no driver Ethernet. A definição está disponível por meio do arquivo de cabeçalho Eth_GeneralTypes.h. A estrutura agrupa múltiplos contadores de 32 bits (uint32) que mapeiam estados de transmissão específicos e impedimentos de envio no nível da interface.

Componentes da estrutura e semântica

Os contadores individuais orientam-se, de acordo com [SWS_Eth_91004], por definições padronizadas de MIB de rede:

  • Tx Dropped No Error Pkts: quantidade de pacotes de saída descartados apesar de estarem livres de erros, por exemplo, para liberar memória de buffer (RFC1213 ifOutDiscards).
  • Tx Dropped Error Pkts: quantidade de pacotes que não puderam ser transmitidos devido a erros ocorridos (RFC1213 ifOutErrors).
  • Tx Deferred Trans: quantidade de frames cuja primeira tentativa de transmissão foi atrasada porque o meio de transmissão estava ocupado (RFC1643 dot3StatsDeferredTransmissions).
  • Tx Single Collision e Tx Multiple Collision: frames transmitidos com sucesso cujo envio foi atrasado por exatamente uma ou por múltiplas colisões (RFC1643).
  • Tx Late Collision: colisões detectadas após mais de 512 tempos de bit do início da transmissão do pacote (RFC1643 dot3StatsLateCollisions).
  • Tx Excessive Collison: quantidade de transmissões que falharam definitivamente em decorrência de colisões excessivas (RFC1643 dot3StatsExcessiveCollisions).

Contexto de chamada e restrições

Interpretação: Como o excerto da especificação não lista nenhuma função de API associada, este tipo de diagnóstico provavelmente deverá ser passado como parâmetro de saída por ponteiro para as respectivas funções de driver para consulta de contadores. Pergunta Q-2bfbe59d1fb81938 (aberta) Requisitos específicos para tratamento de erros, notificações DET ou concorrência não estão definidos nas fontes para esta estrutura de dados pura.

Este texto foi gerado por uma IA com base na especificação AUTOSAR CP R20-11.

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

Inicialização e estado

Returns the version information of this module

void Eth_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);
Eth_Init função

Initializes the Ethernet Driver

void Eth_Init (const Eth_ConfigType* CfgPtr);

Serviços · 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);

Serviços · 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);

Serviços · Outros

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 função

Reads a transceiver register

Std_ReturnType Eth_ReadMii (uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint16* RegValPtr);
Eth_Receive função

Receive a frame from the related fifo.

void Eth_Receive (uint8 CtrlIdx, uint8 FifoIdx, Eth_RxStatusType* RxStatusPtr);
Eth_Transmit função

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 função

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

Cíclico

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

Tipos

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.