Ethernet Driver (Eth)
Provides uniform hardware access to Ethernet controller interfaces.
Funktionen — Übersicht
void Eth_Init (const Eth_ConfigType* CfgPtr);Initializes the Ethernet DriverStd_ReturnType Eth_SetControllerMode (uint8 CtrlIdx, Eth_ModeType CtrlMode);Enables / disables the indexed controller Tags: atp.Std_ReturnType Eth_SetControllerMode (uint8 CtrlIdx, Eth_ModeType CtrlMode);Enables / Disables Rx/ Tx communication of the indexed controller Tags: atp.Std_ReturnType Eth_GetControllerMode (uint8 CtrlIdx, Eth_ModeType* CtrlModePtr);Obtains the state of the indexed controller Tags: atp.Std_ReturnType Eth_GetControllerMode (uint8 CtrlIdx, Eth_ModeType* CtrlModePtr);Obtains the communication state of the indexed controller Tags: atp.void Eth_GetPhysAddr (uint8 CtrlIdx, uint8* PhysAddrPtr);Obtains the physical source address used by the indexed controllervoid Eth_SetPhysAddr (uint8 CtrlIdx, const uint8* PhysAddrPtr);Sets the physical source address used by the indexed controllerStd_ReturnType Eth_UpdatePhysAddrFilter (uint8 CtrlIdx, const uint8* PhysAddrPtr, Eth_FilterActionType Action);Update the physica l source address to/ from the indexed controller filter.Std_ReturnType Eth_WriteMii (uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint16 RegVal);Configures a transceiver register or triggers a function offered by the receiverStd_ReturnType Eth_ReadMii (uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint16* RegValPtr);Reads a transceiver registerStd_ReturnType Eth_GetCounterValues (uint8 CtrlIdx, Eth_CounterType* CounterPtr);Reads a list with drop counter values of the corresponding controller.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.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...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...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.void Eth_EnableEgressTimeStamp (uint8 CtrlIdx, Eth_BufIdxType BufIdx);Activat es egress time stamping on a dedicated message object.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.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.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 priorityStd_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 buffervoid Eth_Receive (uint8 CtrlIdx, uint8 FifoIdx, Eth_RxStatusType* RxStatusPtr);Receive a frame from the related fifo.void Eth_TxConfirmation (uint8 CtrlIdx);Triggers frame transmission confirmationvoid Eth_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);Returns the version information of this modulevoid Eth_MainFunction (void);The function checks for controller errors and lost frames.
Typen — Übersicht
struct Eth_ConfigTypeImplementation specific structure of the post build configurationenum Eth_ModeTypeThis is an generic type and used in the layers of the Ethernet communication stack (e.enum Eth_ModeTypeThis is an generic type and used in the layers of the Ethernet commun ication stack (e.enum Eth_StateTypeStatus supervision used for Development Error Detection.Eth_FrameTypeThis type defines the Ethernet frame type used in the Ethernet frame headerEth_DataTypeThis type defines the Ethernet data type used for data transmission.Eth_BufIdxTypeEthernet buffer identifier type.enum Eth_RxStatusTypeUsed as out parameter in Eth_ Receive() indicates whether a frame has been received and if so, whether more frames are...enum Eth_FilterActionTypeThe Enumeration Type Eth_ Filter Action Type describes the action to be taklen for the MAC address given in *Phys Addr Ptr.Eth_TimeStampQualTypeDepending on the HW, quality information regarding the evaluated time stamp might be supported.Eth_TimeStampTypeVariables of this type are used for expressing time stamps including relative time and absolute calendar time.Eth_TimeIntDiffTypeVariables of this type are used to express time differences.Eth_RateRatioTypeVariables of this type are used to express frequency ratios.struct Eth_MacVlanTypeThis type is used to read out addresses from the address resolution logic (A RL) table of the switch.Eth_CounterTypeType Eth_CounterType.Eth_RxStatsTypeType Eth_RxStatsType.Eth_TxStatsTypeStatistic counter for diag nostics.Eth_TxErrorCounterValuesTypeType Eth_TxErrorCounterValuesType.
Funktionen & Typen — Detailansicht
função Eth_Init [SWS_Eth_00027] 📄 PDF
void Eth_Init (const Eth_ConfigType* CfgPtr);
Initializes the Ethernet Driver
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
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:
- Todos os buffers de transmissão bloqueados (locked transmit buffers) devem ser liberados [SWS_Eth_00137] [SWS_Eth_00280].
- Todos os buffers de transmissão pendentes (pending transmit buffers) também devem ser liberados [SWS_Eth_00138] [SWS_Eth_00281].
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
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, sejaETH_MODE_ACTIVEpara ativar a comunicação Rx/Tx ouETH_MODE_DOWNpara 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_GetControllerMode [SWS_Eth_00046] 📄 PDF
Std_ReturnType Eth_GetControllerMode (uint8 CtrlIdx, Eth_ModeType* CtrlModePtr);
Obtains the state of the indexed controller Tags: atp.Status=obsolete
função Eth_GetControllerMode [SWS_Eth_91010] 📄 PDF
Std_ReturnType Eth_GetControllerMode (uint8 CtrlIdx, Eth_ModeType* CtrlModePtr);
Obtains the communication state of the indexed controller Tags: atp.Status=draft
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.
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çãoEth_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
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]:
E_OK: a solicitação de escrita foi aceita com sucesso [SWS_Eth_00058].E_NOT_OK: o serviço foi rejeitado [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
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_GetCounterValues [SWS_Eth_00226] 📄 PDF
Std_ReturnType Eth_GetCounterValues (uint8 CtrlIdx, Eth_CounterType* CounterPtr);
Reads a list with drop counter values of the corresponding controller. The meaning of these values is described at Eth_ Counter Type.
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.
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
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
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.
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
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_GetVersionInfo [SWS_Eth_00106] 📄 PDF
void Eth_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);
Returns the version information of this module
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.
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_ConfigType [SWS_Eth_00156] 📄 PDF
Implementation specific structure of the post build configuration
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
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
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.
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(valor0x00): Indica que o driver Ethernet ainda não está configurado ([SWS_Eth_00159]).ETH_STATE_INIT(valor0x01): 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_BufIdxType [SWS_Eth_00175] 📄 PDF
Ethernet buffer identifier type.
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.
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_TimeIntDiffType [SWS_Eth_00179] 📄 PDF
Variables of this type are used to express time differences.
tipo Eth_RateRatioType [SWS_Eth_00180] 📄 PDF
Variables of this type are used to express frequency ratios.
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_CounterType [SWS_Eth_91007] 📄 PDF
Type Eth_CounterType.
tipo Eth_RxStatsType [SWS_Eth_91002] 📄 PDF
Type Eth_RxStatsType.
tipo Eth_TxStatsType [SWS_Eth_91003] 📄 PDF
Statistic counter for diag nostics.
tipo Eth_TxErrorCounterValuesType [SWS_Eth_91004] 📄 PDF
Type Eth_TxErrorCounterValuesType.
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 (RFC1213ifOutDiscards).Tx Dropped Error Pkts: quantidade de pacotes que não puderam ser transmitidos devido a erros ocorridos (RFC1213ifOutErrors).Tx Deferred Trans: quantidade de frames cuja primeira tentativa de transmissão foi atrasada porque o meio de transmissão estava ocupado (RFC1643dot3StatsDeferredTransmissions).Tx Single CollisioneTx 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 (RFC1643dot3StatsLateCollisions).Tx Excessive Collison: quantidade de transmissões que falharam definitivamente em decorrência de colisões excessivas (RFC1643dot3StatsExcessiveCollisions).
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
gemini-3.8-flash-low· 2026-10-13 · Original em alemão