CAN Transceiver Driver (CanTrcv)
Controls physical bus transceiver states and wakeup detection on CAN lines.
Funktionen — Übersicht
void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);Initializes the Can Trcv module.Std_ReturnType CanTrcv_SetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType OpMode);Sets the mode of the Transceiver to the value Op Mode.Std_ReturnType CanTrcv_GetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType* OpMode);Gets the mode of the Transceiver and returns it in Op Mode.Std_ReturnType CanTrcv_GetBusWuReason (uint8 Transceiver, CanTrcv_TrcvWakeupReasonType* reason);Gets the wakeup reason for the Transceiver and returns it in parameter Reason.void CanTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);Gets the version of the module and returns it in Version Info.Std_ReturnType CanTrcv_SetWakeupMode (uint8 Transceiver, CanTrcv_TrcvWakeupModeType TrcvWakeupMode);En ables, disables or clears wake - up events of the Transceiver according to Trcv Wakeup Mode.Std_ReturnType CanTrcv_GetTrcvSystemData (uint8 Transceiver, uint32* TrcvSysData);Reads the transceiver configuration/ status data and returns it through parameter Trcv Sys Data.Std_ReturnType CanTrcv_ClearTrcvWufFlag (uint8 Transceiver);Clears the WUF flag in the transceiver hardware.Std_ReturnType CanTrcv_ReadTrcvTimeoutFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);Reads the status of the tim eout flag from the transceiver hardware.Std_ReturnType CanTrcv_ClearTrcvTimeoutFlag (uint8 Transceiver);Clears the status of the timeout flag in the transceiver hardware.Std_ReturnType CanTrcv_ReadTrcvSilenceFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);Reads the status of the silence flag from the transceiver hardware.Std_ReturnType CanTrcv_CheckWakeup (uint8 Transceiver);Service is called by underlying CANIF in case a wake up interrupt is detected.Std_ReturnType CanTrcv_SetPNActivationState (CanTrcv_PNActivationType ActivationState);The API configures the wake - up of the transceiver for Standby and Sleep Mode: Either the CAN transceiver is woken up by a...Std_ReturnType CanTrcv_CheckWakeFlag (uint8 Transceiver);Requests to check the status of the wakeup flag from the transceiver hardware.void CanTrcv_DeInit (void);De - initializes the Can Trcv module.void CanTrcv_MainFunction (void);Service to scan all busses for wake up events and perform these event.void CanTrcv_MainFunctionDiagnostics (void);Reads the transceiver diagnostic status periodically and sets product/ development accordingly.
Typen — Übersicht
struct CanTrcv_ConfigTypeThis is the type of the external data structure containing the overall initialization data for the CAN transceiver driver and...CanTrcv_PNActivationTypeDatatype used for describing whether PN wakeup functionality in Can Trcv is enabled or disabled.enum CanTrcv_TrcvFlagStateTypeProvides the state of a flag in the transceiver hardware.enum CanTrcv_TrcvModeTypeOperating modes of the CAN Transceiver Driver.enum CanTrcv_TrcvWakeupModeTypeThis type shall be used to control the CAN transceiver concerning wake up events and wake up notifications.enum CanTrcv_TrcvWakeupReasonTypeThis type denotes the wake up reason detected by the CAN transceiver in detail.
Funktionen & Typen — Detailansicht
função CanTrcv_Init [SWS_CanTrcv_00001] 📄 PDF
void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);
Initializes the Can Trcv module.
Utilização e semântica
A função CanTrcv_Init serve para a inicialização básica do módulo CanTrcv, bem como de todos os transceptores CAN conectados [SWS_CanTrcv_00001] [SWS_CanTrcv_00180]. A execução ocorre de forma síncrona e é especificada como não reentrante [SWS_CanTrcv_00001]. Como parâmetro de passagem, ela espera através de ConfigPtr um ponteiro para a configuração do driver e não possui valor de retorno [SWS_CanTrcv_00001].
Interação e verificação de hardware
Durante o processo, a função executa as sequências de inicialização relacionadas ao hardware de todos os transceptores conectados de acordo com a configuração, suportando assim a sequência de inicialização da pilha AUTOSAR [SWS_CanTrcv_00180]. Através da chamada, cada transceptor muda separadamente, dependendo de sua respectiva configuração, para o modo CANTRCV_TRCVMODE_SLEEP ou para CANTRCV_TRCVMODE_STANDBY [SWS_CanTrcv_00148]. Se suportado pelo hardware, CanTrcv_Init também verifica se houve previamente um evento de despertar devido à atividade do transceptor e o reporta ao EcuM através de EcuM_SetWakeupEvent com a fonte definida em CanTrcvWakeupSourceRef [SWS_CanTrcv_00167].
Tratamento de erros
Em caso de falha ou ausência de comunicação com o hardware (por exemplo, através de pinos de porta ou SPI), a função reporta o erro de tempo de execução CANTRCV_E_NO_TRCV_CONTROL ao Default Error Tracer [SWS_CanTrcv_00113]. Se a detecção de erros de desenvolvimento estiver ativa, também é reportado CANTRCV_E_BAUDRATE_NOT_SUPPORTED caso uma taxa de transmissão configurada não seja suportada pelo respectivo transceptor [SWS_CanTrcv_00168].
Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I1)
função CanTrcv_SetOpMode [SWS_CanTrcv_00002] 📄 PDF
Std_ReturnType CanTrcv_SetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType OpMode);
Sets the mode of the Transceiver to the value Op Mode.
A função CanTrcv_SetOpMode serve para a comutação assíncrona do modo de operação de um transceptor CAN [SWS_CanTrcv_00002]. Ela recebe o número do dispositivo do transceptor (Transceiver) bem como o modo de destino desejado (OpMode), o qual pode assumir os valores CANTRCV_TRCVMODE_NORMAL, CANTRCV_TRCVMODE_STANDBY ou CANTRCV_TRCVMODE_SLEEP [SWS_CanTrcv_00102]. A função é reentrante para diferentes transceptores [SWS_CanTrcv_00002]. O valor de retorno E_OK confirma a aceitação da ordem de comutação; E_NOT_OK sinaliza a rejeição da solicitação, erros de parâmetro ou falta de suporte ao modo pelo hardware [SWS_CanTrcv_00002], [SWS_CanTrcv_00105].
Ao chamar, devem ser respeitadas transições de estado predefinidas:
- Se o transceptor estiver no modo
CANTRCV_TRCVMODE_NORMAL, apenasCANTRCV_TRCVMODE_STANDBYouCANTRCV_TRCVMODE_NORMALpode ser passado como modo de destino [SWS_CanTrcv_00103]. - Se o transceptor estiver em
CANTRCV_TRCVMODE_STANDBY, a função só pode ser chamada comCANTRCV_TRCVMODE_SLEEPouCANTRCV_TRCVMODE_STANDBY[SWS_CanTrcv_00104].
Com a detecção de erros de desenvolvimento (DET) ativada, a função reporta chamadas antes da inicialização como CANTRCV_E_UNINIT [SWS_CanTrcv_00122], números inválidos de transceptor como CANTRCV_E_INVALID_TRANSCEIVER [SWS_CanTrcv_00123] e modos de operação não permitidos como CANTRCV_E_PARAM_TRCV_OPMODE [SWS_CanTrcv_00087]. Caso o Standby seja solicitado sem que o transceptor esteja em Normal ou Standby, CANTRCV_E_TRCV_NOT_NORMAL é disparado [SWS_CanTrcv_00120]; na solicitação de Sleep fora de Standby ou Sleep, ocorre a notificação CANTRCV_E_TRCV_NOT_STANDBY [SWS_CanTrcv_00121]. Se o DET estiver desativado, retorna-se E_NOT_OK nesses casos. Em caso de comunicação ausente ou falha de comunicação do transceptor, o erro de tempo de execução CANTRCV_E_NO_TRCV_CONTROL é reportado ao DET e E_NOT_OK é retornado [SWS_CanTrcv_00114].
Se o Selective Wakeup for suportado pelo hardware, a API verifica as flags de status POR e SYSERR [SWS_CanTrcv_00186]. Assim que o transceptor atingir o modo solicitado, o módulo informa a camada superior por meio do callback CanIf_TrcvModeIndication [SWS_CanTrcv_00158].
Este texto foi gerado por uma IA com base nos requisitos da especificação.
Guia do implementador em breve (complexidade I2)
função CanTrcv_GetOpMode [SWS_CanTrcv_00005] 📄 PDF
Std_ReturnType CanTrcv_GetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType* OpMode);
Gets the mode of the Transceiver and returns it in Op Mode.
função CanTrcv_GetBusWuReason [SWS_CanTrcv_00007] 📄 PDF
Std_ReturnType CanTrcv_GetBusWuReason (uint8 Transceiver, CanTrcv_TrcvWakeupReasonType* reason);
Gets the wakeup reason for the Transceiver and returns it in parameter Reason.
função CanTrcv_GetVersionInfo [SWS_CanTrcv_00008] 📄 PDF
void CanTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);
Gets the version of the module and returns it in Version Info.
função CanTrcv_SetWakeupMode [SWS_CanTrcv_00009] 📄 PDF
Std_ReturnType CanTrcv_SetWakeupMode (uint8 Transceiver, CanTrcv_TrcvWakeupModeType TrcvWakeupMode);
En ables, disables or clears wake - up events of the Transceiver according to Trcv Wakeup Mode.
Utilização e semântica
A função síncrona CanTrcv_SetWakeupMode serve para ativar, desativar ou limpar eventos de wake-up para um transceptor específico [SWS_CanTrcv_00009]. A ela são passados o transceptor de destino através do parâmetro Transceiver, bem como o modo desejado através de TrcvWakeupMode. Em caso de alteração de estado bem-sucedida, a função retorna E_OK. Se o estado não puder ser alterado ou se um parâmetro for inválido, é retornado E_NOT_OK e o estado anterior permanece inalterado [SWS_CanTrcv_00009].
Modos de operação e interação
Se TrcvWakeupMode for chamada com o valor CANTRCV_WUMODE_CLEAR, a função limpa um evento de wake-up armazenado do transceptor endereçado [SWS_CanTrcv_00094]. Quando chamada com CANTRCV_WUMODE_ENABLE, o módulo atualiza o evento de wake-up para o estado “present”, desde que já exista um evento de wake-up armazenado pendente para o barramento em questão [SWS_CanTrcv_00111]. Interpretação: Para a desativação de eventos de wake-up, deve existir de forma análoga um valor de modo correspondente, mesmo que este não esteja detalhado separadamente no presente extrato de requisitos. Pergunta Q-e0f15d1d0855db81 (aberta)
Tratamento de erros e simultaneidade
A função é reentrante para diferentes instâncias de transceptor [SWS_CanTrcv_00009]. Antes da chamada, o driver do transceptor deve estar completamente inicializado: uma chamada no estado não inicializado dispara o erro CANTRCV_E_UNINIT se a detecção de erros de desenvolvimento (DET) estiver ativa; caso contrário, é retornado E_NOT_OK [SWS_CanTrcv_00127]. Um índice inválido em Transceiver leva a CANTRCV_E_INVALID_TRANSCEIVER (ou E_NOT_OK) [SWS_CanTrcv_00131], e um valor de modo inadmissível em TrcvWakeupMode reporta CANTRCV_E_PARAM_TRCV_WAKEUP_MODE ou retorna E_NOT_OK [SWS_CanTrcv_00089]. Se não houver comunicação ou houver comunicação com falha com o transceptor, o erro de tempo de execução CANTRCV_E_NO_TRCV_CONTROL é reportado ao Default Error Tracer e E_NOT_OK é retornado [SWS_CanTrcv_00117].
Esta nota de uso foi gerada de forma automatizada com base na especificação do AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I2)
função CanTrcv_GetTrcvSystemData [SWS_CanTrcv_00213] 📄 PDF
Std_ReturnType CanTrcv_GetTrcvSystemData (uint8 Transceiver, uint32* TrcvSysData);
Reads the transceiver configuration/ status data and returns it through parameter Trcv Sys Data. This API shall exist only if Can Trcv Hw Pn Support = TRUE.
função CanTrcv_ClearTrcvWufFlag [SWS_CanTrcv_00214] 📄 PDF
Std_ReturnType CanTrcv_ClearTrcvWufFlag (uint8 Transceiver);
Clears the WUF flag in the transceiver hardware. This API shall exist only if Can Trcv Hw Pn Support = TRUE.
A função síncrona CanTrcv_ClearTrcvWufFlag limpa a flag de Wake-up Frame (WUF) no hardware do transcetor CAN endereçado e só está disponível se o suporte a Selective Wakeup estiver configurado (CanTrcvHwPnSupport = TRUE) [SWS_CanTrcv_00214], [SWS_CanTrcv_00175]. Em caso de limpeza bem-sucedida, é retornado E_OK, caso contrário E_NOT_OK [SWS_CanTrcv_00214], [SWS_CanTrcv_00194].
Interação e fluxo
A API é utilizada pelo módulo CanSM aquando da entrada num modo de baixo consumo de energia (Low-Power-Modus), a fim de assegurar que nenhum evento de wake-up por frame seja perdido durante a transição de estado [SWS_CanTrcv_00194]. Após a reposição da flag WUF, o transcetor CAN deve ser colocado no modo Standby (CANTRCV_STANDBY) [SWS_CanTrcv_00194].
Simultaneidade e contexto de chamada
As chamadas de CanTrcv_ClearTrcvWufFlag são reentrantes para diferentes instâncias de transcetor (Transceiver) [SWS_CanTrcv_00214].
Tratamento de erros
- Erros de desenvolvimento (DET): Se a deteção de erros estiver ativa, a função reporta
CANTRCV_E_UNINIT[SWS_CanTrcv_00197] em caso de controlador não inicializado e o erroCANTRCV_E_INVALID_TRANSCEIVER[SWS_CanTrcv_00198] em caso de parâmetroTransceiverinválido. Se o DET estiver desativado, nestes casos é diretamente retornadoE_NOT_OK[SWS_CanTrcv_00197], [SWS_CanTrcv_00198]. - Erro de tempo de execução: Se a comunicação com o transcetor falhar ou for errónea, a função reporta o erro de tempo de execução
CANTRCV_E_NO_TRCV_CONTROLao Default Error Tracer e retornaE_NOT_OK[SWS_CanTrcv_00196].
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I1)
função CanTrcv_ReadTrcvTimeoutFlag [SWS_CanTrcv_00215] 📄 PDF
Std_ReturnType CanTrcv_ReadTrcvTimeoutFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);
Reads the status of the tim eout flag from the transceiver hardware. This API shall exist only if Can Trcv Hw Pn Support = TRUE.
A função síncrona CanTrcv_ReadTrcvTimeoutFlag lê o status da flag de timeout diretamente do hardware do transceptor CAN [SWS_CanTrcv_00215]. Como parâmetro de entrada, Transceiver serve para identificar o transceptor a ser acessado, enquanto através do parâmetro de saída FlagState do tipo CanTrcv_TrcvFlagStateType* é retornado o estado da flag [SWS_CanTrcv_00215]. O valor de retorno sinaliza com E_OK uma leitura bem-sucedida e com E_NOT_OK que o status da flag de timeout não pôde ser determinado [SWS_CanTrcv_00215].
Para a utilização e integração no driver do transceptor, aplicam-se as seguintes condições de contorno:
-
Configuração: a API está disponível exclusivamente se o suporte de hardware para rede parcial estiver ativado (
CanTrcvHwPnSupport = TRUE) [SWS_CanTrcv_00215]. O contêiner de configuração correspondenteCanTrcvPartialNetworktambém só existe sob esse pré-requisito [SWS_CanTrcv_00175]. -
Concorrência: a função é especificada como não reentrante (
Non Reentrant) [SWS_CanTrcv_00215].
O tratamento de erros faz distinção conforme o estado da detecção de erros de desenvolvimento (Development Error Detection, DET):
-
Se for passado um identificador de transceptor inválido, o módulo gera com o DET ativo o erro
CANTRCV_E_INVALID_TRANSCEIVER; com o DET desativado, é retornadoE_NOT_OKem seu lugar [SWS_CanTrcv_00199]. -
Se for passado um ponteiro nulo para
FlagState(FlagState = NULL), o módulo reporta com o DET ativo o erroCANTRCV_E_PARAM_POINTER; se o DET estiver desligado, a chamada retornaE_NOT_OK[SWS_CanTrcv_00200].
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR CP R20-11.
Guia do implementador em breve (complexidade I2)
função CanTrcv_ClearTrcvTimeoutFlag [SWS_CanTrcv_00216] 📄 PDF
Std_ReturnType CanTrcv_ClearTrcvTimeoutFlag (uint8 Transceiver);
Clears the status of the timeout flag in the transceiver hardware. This API shall exist only if Can Trcv Hw Pn Support = TRUE.
A função síncrona CanTrcv_ClearTrcvTimeoutFlag serve para resetar a flag de timeout no hardware do transceptor [SWS_CanTrcv_00216]. Ela está disponível exclusivamente se o suporte de hardware para Partial Networking estiver ativado através do parâmetro de configuração CanTrcvHwPnSupport = TRUE [SWS_CanTrcv_00175], [SWS_CanTrcv_00216].
Uso e interface
A chamada ocorre de forma síncrona através da interface em CanTrcv.h, informando o transceptor de destino:
- Parâmetros:
Transceiverdetermina, como valor de entrada (uint8), o canal de transceptor a ser acessado [SWS_CanTrcv_00216]. - Valor de retorno: um
Std_ReturnTypesinaliza comE_OKa limpeza bem-sucedida da flag de hardware ou comE_NOT_OKuma falha da operação [SWS_CanTrcv_00216].
Tratamento de erros
Se for passado à função um identificador inválido para o parâmetro Transceiver, aplica-se um tratamento de erros diferenciado:
- Com a detecção de erros de desenvolvimento (Development Error Detection) ativa, o erro
CANTRCV_E_INVALID_TRANSCEIVERé reportado ao DET [SWS_CanTrcv_00201]. - Se a detecção de erros de desenvolvimento estiver desativada, a chamada é abortada e retorna
E_NOT_OKao chamador [SWS_CanTrcv_00201].
Simultaneidade e integração do sistema
A função é classificada como não reentrante (Non Reentrant) [SWS_CanTrcv_00216]. Chamadas paralelas para a mesma unidade de hardware devem, portanto, ser evitadas ou sincronizadas pela camada chamadora. Além disso, a função faz parte do escopo funcional para funções de wake-up seletivo (Partial Networking); as estruturas de configuração associadas no contêiner CanTrcvPartialNetwork também só existem com CanTrcvHwPnSupport definido [SWS_CanTrcv_00175].
Esta nota de uso baseia-se na especificação AUTOSAR CP R20-11.
Guia do implementador em breve (complexidade I1)
função CanTrcv_ReadTrcvSilenceFlag [SWS_CanTrcv_00217] 📄 PDF
Std_ReturnType CanTrcv_ReadTrcvSilenceFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);
Reads the status of the silence flag from the transceiver hardware. This API shall exi st only if Can Trcv Hw Pn Support = TRUE.
A função síncrona e não reentrante CanTrcv_ReadTrcvSilenceFlag (ID de serviço 0x0d) serve para ler o status da flag de silence diretamente do hardware do transceptor CAN [SWS_CanTrcv_00217]. Ela é disponibilizada através do cabeçalho CanTrcv.h e, devido à ausência de reentrância, não pode ser executada concorrentemente [SWS_CanTrcv_00217].
Parâmetros e valores de retorno
Transceiver: parâmetro de entrada (uint8) para endereçar a respectiva instância do transceptor por meio de seu identificador [SWS_CanTrcv_00217].FlagState: parâmetro de saída como ponteiro paraCanTrcv_TrcvFlagStateType, através do qual é retornado o status lido da flag de silence [SWS_CanTrcv_00217].- Valor de retorno (
Std_ReturnType): retornaE_OKcaso o estado de hardware da flag de silence tenha sido lido com sucesso; caso contrário,E_NOT_OK[SWS_CanTrcv_00217].
Tratamento de erros
Se for passado um ponteiro nulo para o parâmetro de saída da função (FlagState == NULL), o tratamento de erros depende do controle de desenvolvimento: com o DET ativado, o driver do transceptor CAN reporta o erro de desenvolvimento CANTRCV_E_PARAM_POINTER; se o DET estiver desativado, a chamada é imediatamente abortada com E_NOT_OK [SWS_CanTrcv_00203].
Configuração e interação
A função insere-se no contexto de wake-up seletivo (Selective Wakeup). O contêiner de configuração associado CanTrcvPartialNetwork bem como a interface CanTrcv_ReadTrcvSilenceFlag só estão disponíveis no driver se o suporte de hardware para Partial Networking estiver configurado via CanTrcvHwPnSupport = TRUE [SWS_CanTrcv_00175], [SWS_CanTrcv_00217].
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I1)
função CanTrcv_CheckWakeup [SWS_CanTrcv_00143] 📄 PDF
Std_ReturnType CanTrcv_CheckWakeup (uint8 Transceiver);
Service is called by underlying CANIF in case a wake up interrupt is detected.
A função síncrona e reentrante CanTrcv_CheckWakeup é chamada pela interface subjacente CanIf assim que uma interrupção de wakeup é detectada [SWS_CanTrcv_00143]. O transceptor CAN a ser verificado é endereçado através do parâmetro Transceiver [SWS_CanTrcv_00143]. O valor de retorno E_OK sinaliza a aceitação da chamada, enquanto E_NOT_OK indica a não aceitação [SWS_CanTrcv_00143].
Se suportado pelo hardware, a função verifica se realmente existe um evento de despertar decorrente de atividade no transceptor [SWS_CanTrcv_00146]. Se este for o caso, a notificação de despertar para o EcuM ocorre através da API EcuM_SetWakeupEvent com a fonte de wakeup referenciada em CanTrcvWakeupSourceRef [SWS_CanTrcv_00146].
Para o tratamento de erros com a detecção de desenvolvimento (DET) ativada, aplicam-se as seguintes especificações:
- Se a função for chamada antes da inicialização do módulo CanTrcv, é reportado o erro de desenvolvimento
CANTRCV_E_UNINIT; com o DET desativado, a chamada retornaE_NOT_OKem seu lugar [SWS_CanTrcv_00144]. - Ao passar um número de transceptor inválido, a função reporta
CANTRCV_E_INVALID_TRANSCEIVER; se o DET estiver desativado, é retornadoE_NOT_OK[SWS_CanTrcv_00145].
Esta nota de uso baseia-se exclusivamente nos requisitos de especificação do AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I1)
função CanTrcv_SetPNActivationState [SWS_CanTrcv_00219] 📄 PDF
Std_ReturnType CanTrcv_SetPNActivationState (CanTrcv_PNActivationType ActivationState);
The API configures the wake - up of the transceiver for Standby and Sleep Mode: Either the CAN transceiver is woken up by a remote wake - up pattern (standard CAN wake - up) or by the configured remote wake - up frame.
A função síncrona CanTrcv_SetPNActivationState configura o comportamento de wake-up do transceptor CAN para o modo Standby e Sleep ([SWS_CanTrcv_00219]). Ela define se o transceptor é acordado por meio de um padrão padrão de wake-up ou de forma direcionada por meio de um quadro de wake-up remoto configurado no âmbito de Partial Networking ([SWS_CanTrcv_00219]).
Utilização e parâmetros
A função é disponibilizada através de CanTrcv.h com a ID de serviço 0x0f e executada de forma síncrona ([SWS_CanTrcv_00219]). Seu parâmetro de passagem ActivationState do tipo CanTrcv_PNActivationType controla o modo de operação:
PN_ENABLED: ativa a funcionalidade de wake-up de PN no transceptor CAN ([SWS_CanTrcv_00219]).PN_DIABLED: desativa a funcionalidade de wake-up de PN ([SWS_CanTrcv_00219]).
Como valor de retorno, a função fornece E_OK quando o transceptor é comutado com sucesso para a configuração de PN solicitada. Se a comutação falhar, E_NOT_OK é retornado; nesse caso, a configuração anterior permanece inalterada ([SWS_CanTrcv_00219]).
Restrições e tratamento de erros
A função é não reentrante (Non Reentrant) ([SWS_CanTrcv_00219]). Como pré-requisito mandatório, o módulo CanTrcv deve ter sido completamente inicializado antes da chamada: se a chamada ocorrer antes da inicialização, a função reporta ao DET o erro CANTRCV_E_UNINIT com a detecção de erros de desenvolvimento ativa; se o DET estiver desativado, a chamada é imediatamente rejeitada com o valor de retorno E_NOT_OK ([SWS_CanTrcv_00220]).
Esta nota de utilização foi gerada automaticamente com base na especificação.
Guia do implementador em breve (complexidade I1)
função CanTrcv_CheckWakeFlag [SWS_CanTrcv_00223] 📄 PDF
Std_ReturnType CanTrcv_CheckWakeFlag (uint8 Transceiver);
Requests to check the status of the wakeup flag from the transceiver hardware.
A função CanTrcv_CheckWakeFlag solicita a verificação do status da flag de wake-up diretamente do hardware do transceptor ([SWS_CanTrcv_00223]). A chamada ocorre de forma assíncrona e refere-se, através do parâmetro de entrada Transceiver, ao respectivo identificador do transceptor CAN a ser acessado ([SWS_CanTrcv_00223]).
Como valor de retorno, a função fornece o status Std_ReturnType ([SWS_CanTrcv_00223]):
E_OK: a solicitação para verificação da flag de wake-up foi aceita com sucesso ([SWS_CanTrcv_00223]).E_NOT_OK: A solicitação foi rejeitada ([SWS_CanTrcv_00223]).
Em relação à concorrência, está definido que a função é não reentrante (Non Reentrant) ([SWS_CanTrcv_00223]). Como o serviço é especificado como assíncrono, o valor de retorno reflete apenas a aceitação da ordem de verificação; a leitura efetiva do hardware deve ocorrer posteriormente ([SWS_CanTrcv_00223]). Pergunta Q-f09b7ff49c24cea8 (aberta) Códigos de erro concretos, bem como mensagens DET ou DEM, não estão listados para este serviço.
Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR.
Guia do implementador em breve (complexidade I1)
função CanTrcv_DeInit [SWS_CanTrcv_91001] 📄 PDF
void CanTrcv_DeInit (void);
De - initializes the Can Trcv module.
A função síncrona CanTrcv_DeInit serve para a desinicialização do driver do transceptor CAN [SWS_CanTrcv_91001]. Ela não recebe parâmetros, não retorna valor e é especificada como não reentrante (Non Reentrant) [SWS_CanTrcv_91001]. A interface é disponibilizada através do cabeçalho CanTrcv.h com o Service-ID 0x10 [SWS_CanTrcv_91001].
Durante a execução, a função coloca o hardware do transceptor CAN no estado NOT_ACTIVE [SWS_CanTrcv_91003]. Como CanTrcv_DeInit não é reentrante, as chamadas não devem ocorrer de forma interruptiva ou concorrente entre si [SWS_CanTrcv_91001].
Em relação ao tratamento de erros e condições de sequência, aplica-se:
- Se a detecção de erros de desenvolvimento (Development Error Detection) estiver ativada para o módulo, a função verifica o modo de operação do transceptor. Se o transceptor não estiver no modo
CANTRCV_TRCVMODE_NORMALno momento da chamada,CanTrcv_DeInitreporta o erro de desenvolvimentoCANTRCV_E_TRCV_NOT_NORMAL[SWS_CanTrcv_91005]. - Disto resulta para o chamador a pré-condição funcional de operar o transceptor no estado
CANTRCV_TRCVMODE_NORMALantes da desinicialização, a fim de evitar um relatório de erro no modo de desenvolvimento [SWS_CanTrcv_91005].
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR CP R20-11.
função CanTrcv_MainFunction [SWS_CanTrcv_00013] 📄 PDF
void CanTrcv_MainFunction (void);
Service to scan all busses for wake up events and perform these event.
A função CanTrcv_MainFunction atua como serviço de driver central do driver do transceptor CAN para monitorar todos os canais de barramento conectados quanto a eventos de wake-up ocorridos, bem como para executar esses eventos [SWS_CanTrcv_00013]. Ela possui a assinatura em C void CanTrcv_MainFunction(void), é definida sob o ID de serviço hexadecimal 0x06 e opera de forma síncrona, sem parâmetros de passagem ou valores de retorno [SWS_CanTrcv_00013].
Para o monitoramento cíclico, a função varre deliberadamente todos os barramentos que se encontram nos estados de repouso STANDBY ou SLEEP [SWS_CanTrcv_00112]. Se o driver detectar um evento de despertar em um dos barramentos monitorados, CanTrcv_MainFunction define uma flag interna de evento de wake-up a fim de desencadear a execução e o processamento posteriores desses eventos no sistema [SWS_CanTrcv_00112].
Em relação ao contexto de chamada, a interface é disponibilizada através do arquivo de cabeçalho SchM_CanTrcv.h [SWS_CanTrcv_00013]. Interpretação: a disponibilização através deste cabeçalho SchM sugere que a função provavelmente deve ser chamada periodicamente pelo escalonador BSW no contexto de uma tarefa cíclica, a fim de amostrar regularmente os canais de barramento em estados inativos. Pergunta Q-588109b1111a0f43 (aberta) Códigos de erro específicos, mensagens para o DET ou DEM, bem como requisitos de reentrância não são mencionados no presente excerto de especificação.
Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I1)
função CanTrcv_MainFunctionDiagnostics [SWS_CanTrcv_00218] 📄 PDF
void CanTrcv_MainFunctionDiagnostics (void);
Reads the transceiver diagnostic status periodically and sets product/ development accordingly.
A função CanTrcv_MainFunctionDiagnostics (Service-ID 0x08) lê periodicamente o estado de diagnóstico do transceptor e define os erros de produção e de desenvolvimento correspondentes [SWS_CanTrcv_00218]. A função não tem parâmetros, não possui valor de retorno (void CanTrcv_MainFunctionDiagnostics(void)) e é disponibilizada através do cabeçalho SchM_CanTrcv.h [SWS_CanTrcv_00218].
Contexto de chamada e concorrência
Devido à disponibilização através de SchM_CanTrcv.h, a função principal é presumivelmente chamada de forma cíclica pelo escalonador BSW (SchM) em um contexto de tarefa (interpretação). Pergunta Q-ab1f6c55abcb8d4b (aberta) Como a especificação não indica reentrância, deve-se assumir uma execução não reentrante.
Tratamento de erros e interação com o DEM
A avaliação de diagnóstico ocorre em função da configuração e do suporte de hardware:
- Se a flag
BUSERRreportada pelo BSW estiver definida, a função chama a APIDem_SetEventStatuscom o parâmetroEventIdcomoCANTRCV_E_BUS_ERROReEventStatuscomoDEM_EVENT_STATUS_FAILED[SWS_CanTrcv_00206]. - Se a flag
BUSERRfor redefinida,CanTrcv_MainFunctionDiagnosticschama a APIDem_SetEventStatuscom o mesmoEventId(CANTRCV_E_BUS_ERROR) e o estadoDEM_EVENT_STATUS_PASSED[SWS_CanTrcv_00227].
Este texto foi gerado por uma IA. Ele não substitui o estudo das especificações AUTOSAR correspondentes.
Guia do implementador em breve (complexidade I1)
tipo CanTrcv_ConfigType [SWS_CanTrcv_00209] 📄 PDF
This is the type of the external data structure containing the overall initialization data for the CAN transceiver driver and settings affecting all transceivers. Furthermore it contains pointers to transceiver configuration structures. The con tents of the initialization data structure are CAN transceiver hardware specific.
tipo CanTrcv_PNActivationType [SWS_CanTrcv_00210] 📄 PDF
Datatype used for describing whether PN wakeup functionality in Can Trcv is enabled or disabled.
tipo CanTrcv_TrcvFlagStateType [SWS_CanTrcv_00211] 📄 PDF
Provides the state of a flag in the transceiver hardware.
O tipo de enumeração CanTrcv_TrcvFlagStateType representa o estado de uma flag individual no hardware do transceptor [SWS_CanTrcv_00211]. A declaração é disponibilizada para módulos de software e drivers aplicadores através do arquivo de cabeçalho CanTrcv.h [SWS_CanTrcv_00211].
A faixa de valores possui estrutura binária e distingue dois estados discretos de acordo com [SWS_CanTrcv_00211]:
CANTRCV_FLAG_SET: indica que a respectiva flag no hardware do transceptor está definida [SWS_CanTrcv_00211].CANTRCV_FLAG_CLEARED: indica que a flag no hardware do transceptor está limpa ou não definida [SWS_CanTrcv_00211].
Em relação ao uso prático, pode-se constatar que o tipo serve primariamente para o mapeamento padronizado de estados de registradores próximos ao hardware [SWS_CanTrcv_00211]. Interpretação: Camadas chamadoras, como o driver da CAN Interface ou módulos de diagnóstico, devem tipicamente ler este tipo por meio de funções de consulta via parâmetros de ponteiro ou valor de retorno, para avaliar eventuais flags de erro ou de wake-up. Pergunta Q-1b75b4baf2f4c6e3 (aberta) Como o tipo em si não contém lógica de função, restrições de reentrância ou mensagens do DET, a verificação de faixas de valores válidas cabe às interfaces de processamento.
Este texto foi gerado por uma IA e serve como orientação. A especificação AUTOSAR é vinculativa.
Guia do implementador em breve (complexidade I1)
tipo CanTrcv_TrcvModeType [SWS_CanTrcv_00163] 📄 PDF
Operating modes of the CAN Transceiver Driver.
O tipo de enumeração CanTrcv_TrcvModeType define, de acordo com [SWS_CanTrcv_00163], os modos de operação padronizados para o driver do transceptor CAN (CanTrcv). A declaração é disponibilizada através do arquivo de cabeçalho Can_GeneralTypes.h para interfaces intermodulares de software na pilha de comunicação AUTOSAR.
Faixa de valores e significados
De acordo com [SWS_CanTrcv_00163], estão disponíveis três valores de enumeração:
CANTRCV_TRCVMODE_NORMAL(valor0x00): identifica o modo de operação regular do transceptor para a transmissão e recepção de mensagens CAN.CANTRCV_TRCVMODE_STANDBY: representa o modo standby do transceptor, no qual a comunicação fica em repouso e há um consumo reduzido de energia.CANTRCV_TRCVMODE_SLEEP: representa o modo sleep do transceptor para economia máxima de energia.
Uso e restrições
A enumeração serve como representação comum de tipo de dados para o estado de hardware do transceptor CAN [SWS_CanTrcv_00163]. Interpretação: O tipo deve servir principalmente para a passagem de parâmetros em interfaces de controle e consulta do driver do transceptor, por meio das quais camadas superiores, como a CAN Interface, solicitam transições de modo ou leem o status atual. Pergunta Q-95fceb6988818621 (aberta) Como o presente extrato da especificação não contém erros de tempo de execução (DET/DEM), indicações de reentrância ou assinaturas concretas de funções, os contextos de chamada e as regras de concorrência devem ser consultados nas respectivas funções do driver que o utilizam.
Esta nota de uso baseia-se exclusivamente nos dados de especificação do AUTOSAR R20-11 referentes a [SWS_CanTrcv_00163].
Guia do implementador em breve (complexidade I1)
tipo CanTrcv_TrcvWakeupModeType [SWS_CanTrcv_00164] 📄 PDF
This type shall be used to control the CAN transceiver concerning wake up events and wake up notifications.
O tipo de enumeração CanTrcv_TrcvWakeupModeType serve para o controle de um transceptor CAN em relação a eventos de wake-up e notificações de wake-up [SWS_CanTrcv_00164]. A definição do tipo é disponibilizada através do arquivo de cabeçalho Can_GeneralTypes.h e fica, assim, disponível em toda a pilha [SWS_CanTrcv_00164].
A faixa de valores abrange três modos de controle para o respectivo transceptor endereçado [SWS_CanTrcv_00164]:
CANTRCV_WUMODE_ENABLE(valor0x00): ativa a notificação para eventos de wake-up no transceptor endereçado [SWS_CanTrcv_00164].CANTRCV_WUMODE_DISABLE(valor0x01): desativa a notificação para eventos de wake-up no transceptor endereçado [SWS_CanTrcv_00164].CANTRCV_WUMODE_CLEAR(valor0x02): limpa um evento de wake-up armazenado no transceptor endereçado [SWS_CanTrcv_00164].
Interpretação: Na prática, o tipo deve ser utilizado primariamente como parâmetro de passagem em funções de controle do driver do transceptor, a fim de ligar ou desligar dinamicamente notificações de wake-up, bem como redefinir eventos de wake-up detectados. Pergunta Q-c53d60cdad0442ca (aberta) Como a especificação, sendo um tipo puro de enumeração, não prescreve assinaturas de função, semântica de execução, códigos de erro ou regras de concorrência, esses aspectos são totalmente determinados pelas interfaces do driver que chamam e processam [SWS_CanTrcv_00164].
Este texto foi criado por uma IA; a exatidão não pode ser garantida.
Guia do implementador em breve (complexidade I1)
tipo CanTrcv_TrcvWakeupReasonType [SWS_CanTrcv_00165] 📄 PDF
This type denotes the wake up reason detected by the CAN transceiver in detail. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CANTransceiverDriver
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_CanTrcv- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_CanTrcv@rel:R20-11#523dfe2c- Content hash
523dfe2c- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CANTransceiverDriver.pdf#nameddest=SWS_CanTrcv_00001
gemini-3.8-flash-low· 2026-10-13 · Original em alemão