DEENESPTFRRUARHIKOZHNL

LIN Transceiver Driver (LinTrcv)

ModulLinTrcv (LIN Transceiver Driver)
BSW-Modul-ID64
Standard-Header#include "LinTrcv.h"
SWS-SpezifikationAUTOSAR_SWS_LINTransceiverDriver.pdf
ClusterLIN

Guia do móduloGERADO POR IA

Controla componentes de transceptor LIN: definir e consultar modos de operação, detectar wakeups e reportá-los à interface LIN.
GERADO POR IA não revisado Modelo: claude-opus-5-5 · Esforço: high · Temperatura: não controlável · Prompt: 4cf0c894f837 Procedência Perguntas em aberto (4)
Â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

Controla componentes de transceptor LIN: definir e consultar modos de operação, detectar wakeups e reportá-los à interface LIN.

O LIN Transceiver Driver controla o transceptor físico LIN de um canal e desacopla a LinIf do hardware. De acordo com LinTrcv_Init, o modo inicial é SLEEP. LinTrcv_SetOpMode alterna entre NORMAL, STANDBY e SLEEP e retorna E_NOT_OK em caso de falha na transição [SWS_LinTrcv_00002]. Wakeups externos são detectados por meio da ICU e reportados quando a LinIf chama LinTrcv_CheckWakeup. Na R20-11, E_OK significa «wake-up detectado» [SWS_LinTrcv_00012]. Tempos de espera para mudanças de estado devem ser implementados com Tm_BusyWait1us16bit.

O LIN Transceiver Driver controla o transceptor físico LIN de um canal e desacopla a interface LIN do hardware. A LinIf chama os seus serviços diretamente: LinIf_SetTrcvMode chama, por exemplo, LinTrcv_SetOpMode e retorna o seu resultado sem alterações [SWS_LinTrcv_00002] LinIf-SWS p. 90. Os estados de software e hardware são separados. Quais estados de hardware um modo de software cobre é decidido pela implementação LinTrcv-SWS p. 16.

O driver suporta os modos LINTRCV_TRCV_MODE_NORMAL, LINTRCV_TRCV_MODE_STANDBY e LINTRCV_TRCV_MODE_SLEEP [SWS_LinTrcv_00168]. Após ser ligado, ele fica inativo. LinTrcv_Init ativa-o com um conjunto de configuração [SWS_LinTrcv_00001]; o modo inicial é SLEEP LinTrcv-SWS p. 1. STANDBY é opcional e pode ser um estado puramente interno LinTrcv-SWS Fig. 7.1 p. 15.

LinTrcvModi cluster_power_on POWER_ON cluster_active ACTIVE PowerOn Power On NOT_ACTIVE NOT_ACTIVE PowerOn->NOT_ACTIVE [Power On] PowerOff Power Off NOT_ACTIVE->PowerOff [Power Off] SLEEP LINTRCV_TRCV_MODE_SLEEP NOT_ACTIVE->SLEEP LinTrcv_Init(ConfigPtr) Ausgangsmodus SLEEP NORMAL LINTRCV_TRCV_MODE_NORMAL SLEEP->NORMAL LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_NORMAL) NORMAL->SLEEP LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_SLEEP) STANDBY LINTRCV_TRCV_MODE_STANDBY (opcional, eventualmente apenas interno) NORMAL->STANDBY optional: LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_STANDBY) STANDBY->SLEEP optional: LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_SLEEP) STANDBY->NORMAL LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_NORMAL)

Diagrama de estados: ciclo de vida desde o Power-On, passando por LinTrcv_Init, até as mudanças de modo com LinTrcv_SetOpMode. As transições opcionais foram reconstruídas (interpretação). Fontes: LinTrcv-SWS Fig. 7.1 p. 15 [SWS_LinTrcv_00168]

O driver não detecta wakeups externos por meio de uma ISR própria, mas sim através da ICU LinTrcv-SWS p. 17. A LinIf consulta-os com LinTrcv_CheckWakeup. Na R20-11, E_OK significa «wake-up detectado» [SWS_LinTrcv_00012]. Versões posteriores definem isso de forma diferente. Um wakeup detectado é reportado via LinIf_WakeupConfirmation [SWS_LinTrcv_91002]. LinTrcv_SetWakeupMode habilita a notificação, desabilita-a ou limpa eventos armazenados [SWS_LinTrcv_00169].

Wake-up externo (valores de retorno conforme R20-11)LIN-Bus / TransceiverIcuLinTrcvLinIfUse Case: VorbereitungIcu_EnableNotification(na transição para STANDBY)Use Case: Wakeup-EreignisWakeup-Ereignis (dominanter Buspegelou borda no pino de wake-up)O caminho da notificação do ICU até a chamadapelo LinIf situa-se fora do LinTrcv(não descrito no payload)LinTrcv_CheckWakeup(LinNetwork)Wake-up noadressierten Netz auswertenaltWakeup erkanntLinIf_WakeupConfirmation(WakeupSource)Definir flag de wake-up do canalE_OKkein Wakeup erkanntE_NOT_OKUse Case: Consultar motivo de wake-up (via LinIf_GetTrcvWakeupReason)LinTrcv_GetBusWuReason(LinNetwork, Reason)E_OK, Reason z. B.LINTRCV_WU_BY_BUS

Diagrama de sequência: wakeup externo desde a detecção pela ICU, passando por LinTrcv_CheckWakeup e LinIf_WakeupConfirmation, até a consulta do motivo. Fontes: [SWS_LinTrcv_00012] [SWS_LinTrcv_91002] LinTrcv-SWS p. 17

Para a operação, aplicam-se as seguintes condições de contorno:

  • Tempos de espera em mudanças de estado devem ser implementados com Tm_BusyWait1us16bit [SWS_LinTrcv_00171].
  • Em sistemas multinúcleo, LinTrcvChannel e LinChannel de um canal devem referenciar a mesma partição [SWS_LinTrcv_00177].
  • Em caso de comunicação degradada com o transceptor, as consultas retornam E_NOT_OK LinTrcv-SWS p. 26.

Os códigos de erro DET são comprovados apenas a partir de versões posteriores. Como a R21-11 saneou os códigos de erro, os seus nomes podem divergir na R20-11 LinTrcv-SWS p. 1.

Papel entre a interface LIN e o componente transceptor

O LIN Transceiver Driver (LinTrcv) encapsula o controle do transceptor físico LIN. A sua interface é composta por sete serviços:

Todos os serviços são síncronos. Os estados de software do driver são separados dos estados de hardware do componente. O componente pode ter mais transições do que o driver. Quais estados de hardware um estado de software cobre é decidido pela implementação. Ela deve, no entanto, fornecer integralmente a funcionalidade descrita LinTrcv-SWS p. 16.

Na direção superior, a interface LIN (LinIf) é o usuário comprovado no payload. Os serviços da LinIf chamam, cada um, um serviço de LinTrcv:

  • LinIf_SetTrcvMode chama LinTrcv_SetOpMode e retorna o seu valor de retorno sem alterações LinIf-SWS p. 90.
  • LinIf_GetTrcvMode chama LinTrcv_GetOpMode LinIf-SWS p. 91.
  • LinIf_GetTrcvWakeupReason chama LinTrcv_GetBusWuReason LinIf-SWS p. 92.
  • LinIf_SetTrcvWakeupMode chama LinTrcv_SetWakeupMode LinIf-SWS p. 93.

Os tipos LinTrcv_TrcvModeType e LinTrcv_TrcvWakeupModeType estão disponíveis via Lin_GeneralTypes.h [SWS_LinTrcv_00168] [SWS_LinTrcv_00169]. A LinIf utiliza-os diretamente nas suas assinaturas. O antigo tipo próprio LinIf_TrcvModeType foi substituído na versão 3.1.5 por LinTrcv_TrcvModeType LinIf-SWS p. 4.

Na direção inferior, o driver utiliza os seguintes serviços:

O driver reporta wakeups detectados à LinIf por meio de LinIf_WakeupConfirmation [SWS_LinTrcv_91002]. A LinIf define em seguida a flag de wakeup do canal afetado LinIf-SWS p. 98.

LinTrcvKontext LinIf LinIf LinTrcv LinTrcv LinIf->LinTrcv LinTrcv_SetOpMode, LinTrcv_GetOpMode, LinTrcv_GetBusWuReason, LinTrcv_SetWakeupMode, LinTrcv_CheckWakeup LinTrcv->LinIf LinIf_WakeupConfirmation Dio Dio LinTrcv->Dio Dio-Lese-/Schreibdienste (LinTrcvDioAccess) Spi Spi LinTrcv->Spi SPI-Sequenz (LinTrcvSpiSequence) Icu Icu LinTrcv->Icu Icu_EnableNotification / Icu_DisableNotification Tm Tm LinTrcv->Tm Tm_BusyWait1us16bit Det DET LinTrcv->Det Det_ReportError EcuM EcuM LinTrcv->EcuM EcuM_SetWakeupEvent HW LIN-Transceiver-Baustein Dio->HW Pins Spi->HW SPI HW->Icu Wakeup-Signal

Diagrama de contexto: LinTrcv situa-se entre LinIf e os serviços de baixo nível Dio/Spi, Icu e Tm, reportando wakeups de volta à LinIf. Fontes: [SWS_LinTrcv_91001] [SWS_LinTrcv_91002] [SWS_LinTrcv_91003] [SWS_LinTrcv_00171] LinTrcv-SWS p. 17 LinTrcv-SWS Fig. 10.3 p. 45

Ciclo de vida dos modos de operação desde o Power-On até o Sleep

O driver possui três modos de operação de software: LINTRCV_TRCV_MODE_NORMAL, LINTRCV_TRCV_MODE_STANDBY e LINTRCV_TRCV_MODE_SLEEP [SWS_LinTrcv_00168]. A Figura 7.1 da especificação enquadra-os em um ciclo de vida LinTrcv-SWS Fig. 7.1 p. 15:

  • Após a inicialização (power-on), o driver encontra-se no estado NOT_ACTIVE.
  • LinTrcv_Init faz a transição dele para o estado ACTIVE. Os três modos encontram-se dentro de ACTIVE.
  • Uma perda de tensão encerra o ciclo de vida.

LinTrcv_Init recebe um ponteiro para o conjunto de configuração selecionado [SWS_LinTrcv_00001]. A estrutura LinTrcv_ConfigType é específica da implementação [SWS_LinTrcv_00172]. Desde a versão 4.3.1, o modo inicial após a inicialização está restrito a LINTRCV_TRCV_MODE_SLEEP LinTrcv-SWS p. 1.

No estado ACTIVE, LinTrcv_SetOpMode comuta o estado interno do canal endereçado para o modo transmitido [SWS_LinTrcv_00002] LinTrcv-SWS p. 25. O modo LINTRCV_TRCV_MODE_STANDBY é opcional. Ele pode ser um estado puramente interno utilizado pelo hardware para transições. Um hardware concreto talvez não necessite de todas as interfaces LinTrcv-SWS Fig. 7.1 p. 15. A especificação cita ainda condições sob as quais LinTrcv_SetOpMode comuta o canal para STANDBY. Estas condições estão cortadas no presente excerto e não são detalhadas aqui LinTrcv-SWS p. 25.

LinTrcv_GetOpMode fornece no parâmetro de saída OpMode o estado atual de software do driver [SWS_LinTrcv_00005] LinTrcv-SWS p. 26. Esse não é necessariamente o estado do componente. Um chamador pode, assim, verificar em que modo o canal está antes de uma mudança de modo. Através da LinIf, essa consulta está disponível como LinIf_GetTrcvMode LinIf-SWS p. 91.

LinTrcvModi cluster_power_on POWER_ON cluster_active ACTIVE PowerOn Power On NOT_ACTIVE NOT_ACTIVE PowerOn->NOT_ACTIVE [Power On] PowerOff Power Off NOT_ACTIVE->PowerOff [Power Off] SLEEP LINTRCV_TRCV_MODE_SLEEP NOT_ACTIVE->SLEEP LinTrcv_Init(ConfigPtr) Ausgangsmodus SLEEP NORMAL LINTRCV_TRCV_MODE_NORMAL SLEEP->NORMAL LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_NORMAL) NORMAL->SLEEP LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_SLEEP) STANDBY LINTRCV_TRCV_MODE_STANDBY (opcional, eventualmente apenas interno) NORMAL->STANDBY optional: LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_STANDBY) STANDBY->SLEEP optional: LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_SLEEP) STANDBY->NORMAL LinTrcv_SetOpMode( LINTRCV_TRCV_MODE_NORMAL)

Diagrama de estados: após Power-On, o driver está inativo. LinTrcv_Init conduz à área ativa com modo inicial SLEEP, LinTrcv_SetOpMode alterna entre os modos. As transições opcionais foram reconstruídas a partir das legendas da Fig. 7.1 (interpretação). Mudanças condicionais para STANDBY não estão representadas. Fontes: LinTrcv-SWS Fig. 7.1 p. 15 [SWS_LinTrcv_00168] [SWS_LinTrcv_00001] LinTrcv-SWS p. 1

Mudanças de modo e consultas através da interface LIN

Cada serviço endereça um canal por meio do parâmetro LinNetwork do tipo uint8 [SWS_LinTrcv_00002] [SWS_LinTrcv_00005]. Na LinIf, o parâmetro correspondente chama-se Channel e possui o tipo NetworkHandleType LinIf-SWS p. 90.

LinTrcv_SetOpMode é síncrono e não reentrante; o Service ID é 0x01. Os valores de retorno significam [SWS_LinTrcv_00002]:

  • E_OK: o estado do transceptor mudou para o modo solicitado.
  • E_NOT_OK: a mudança não foi aceita, falhou ou o parâmetro está fora da faixa permitida.

A LinIf deve permitir a chamada para todos os transceptores e todos os modos, mesmo que o hardware não suporte determinado modo LinIf-SWS p. 90. O mapeamento para o hardware permanece, portanto, como tarefa do LinTrcv.

Tempos de espera durante mudanças de estado são realizados pelo driver com Tm_BusyWait1us16bit [SWS_LinTrcv_00171]. Como LinTrcv_SetOpMode opera de forma síncrona [SWS_LinTrcv_00002], presume-se que este tempo de espera ativo ocorra dentro da chamada e prolongue o seu tempo de execução (interpretação). Pergunta Q-54fe21bbe7c737d9 (aberta) Ao comutar para o modo Standby, o driver ativa adicionalmente os canais de ICU para a detecção de wakeup LinTrcv-SWS p. 17.

Os serviços de consulta são reentrantes. LinTrcv_GetBusWuReason fornece o motivo de wakeup detectado no tipo LinTrcv_TrcvWakeupReasonType [SWS_LinTrcv_00007]. Entre os seus valores estão LINTRCV_WU_ERROR, LINTRCV_WU_NOT_SUPPORTED, LINTRCV_WU_BY_BUS e LINTRCV_WU_BY_PIN [SWS_LinTrcv_00170]. A precisão na distinção dos motivos de wakeup depende fortemente do hardware do transceptor LinTrcv-SWS p. 28. LinTrcv_GetVersionInfo retorna a informação de versão como Std_VersionInfoType [SWS_LinTrcv_00008] LinTrcv-SWS p. 29.

Troca de modo via LinIf_SetTrcvModeAufrufer oberhalb LinIfLinIfLinTrcvDio / SpiTmIcuLinIf_SetTrcvMode(Channel,TransceiverMode)Verificar canal(ggf. LINIF_E_NONEXISTENT_CHANNEL)LinTrcv_SetOpMode(LinNetwork, OpMode)Baustein ansteuern (Interpretation:Pinos de DIO ou sequência SPI)Tm_BusyWait1us16bit(Wartezeit Zustandswechsel)Tempo de espera expiradooptOpMode == LINTRCV_TRCV_MODE_STANDBYIcu_EnableNotification(ativar canais de ICU para wake-up)E_OK / E_NOT_OKValor de retorno deLinTrcv_SetOpMode

Diagrama de sequência: uma mudança de modo transcorre da LinIf para o LinTrcv. O LinTrcv aguarda por meio de Tm, ativa a notificação de ICU na mudança para STANDBY e retorna o seu resultado inalterado via LinIf. O controle via Dio/Spi e a localização do tempo de espera dentro da chamada são interpretação. Fontes: [SWS_LinTrcv_00002] [SWS_LinTrcv_00171] LinIf-SWS p. 90 LinTrcv-SWS p. 17

Detetar, notificar e controlar o wakeup

O driver distingue dois tipos de wakeup LinTrcv-SWS p. 17:

  • Wakeup interno: uma camada superior desencadeia-o, por exemplo através de LinTrcv_Init ou LinTrcv_SetOpMode.
  • Wakeup externo: o driver deteta-o no canal LIN. A LinIf tem de chamar LinTrcv_CheckWakeup para que o wakeup seja notificado para cima.

O driver não prevê uma ISR própria para o wakeup. A deteção processa-se através da ICU com Icu_EnableNotification e Icu_DisableNotification. O tipo de wakeup é selecionado através do parâmetro de configuração LinTrcvWakeUpSupport. Com LinTrcvWakeupByBusUsed é possível ativar e desativar o suporte de wakeup por canal LinTrcv-SWS p. 17.

LinTrcv_CheckWakeup avalia o wakeup na rede endereçada, por exemplo um nível de barramento dominante ou um flanco negativo no pino de wakeup LinTrcv-SWS p. 30. Na R20-11, os valores de retorno significam [SWS_LinTrcv_00012]:

  • E_OK: foi detetado um wakeup.
  • E_NOT_OK: não foi detetado qualquer wakeup.

A passagem do documento de releases posteriores define os valores de forma diferente, como «chamada aceite/não aceite». Esta alteração surgiu com a R22-11 e não se aplica à R20-11 LinTrcv-SWS p. 1 LinTrcv-SWS p. 30. Após uma deteção bem-sucedida, o driver notifica a fonte de wakeup através de LinIf_WakeupConfirmation [SWS_LinTrcv_91002]. O LinTrcv não oferece notificações de callback próprias LinTrcv-SWS p. 32. Por conseguinte, LinTrcv_CheckWakeup tem de ser chamada ativamente.

LinTrcv_SetWakeupMode é síncrona e não reentrante. Controla a notificação de wakeup por rede através de LinTrcv_TrcvWakeupModeType [SWS_LinTrcv_00009] [SWS_LinTrcv_00169]:

  • LINTRCV_WUMODE_ENABLE ativa a notificação.
  • LINTRCV_WUMODE_DISABLE bloqueia-a.
  • LINTRCV_WUMODE_CLEAR elimina um evento de wakeup guardado.

Se, ao ativar, já existir um evento guardado, o driver executa a notificação ainda durante a chamada ou imediatamente a seguir LinTrcv-SWS p. 31. A LinIf disponibiliza este controlo como LinIf_SetTrcvWakeupMode LinIf-SWS p. 93.

Wake-up externo (valores de retorno conforme R20-11)LIN-Bus / TransceiverIcuLinTrcvLinIfUse Case: VorbereitungIcu_EnableNotification(na transição para STANDBY)Use Case: Wakeup-EreignisWakeup-Ereignis (dominanter Buspegelou borda no pino de wake-up)O caminho da notificação do ICU até a chamadapelo LinIf situa-se fora do LinTrcv(não descrito no payload)LinTrcv_CheckWakeup(LinNetwork)Wake-up noadressierten Netz auswertenaltWakeup erkanntLinIf_WakeupConfirmation(WakeupSource)Definir flag de wake-up do canalE_OKkein Wakeup erkanntE_NOT_OKUse Case: Consultar motivo de wake-up (via LinIf_GetTrcvWakeupReason)LinTrcv_GetBusWuReason(LinNetwork, Reason)E_OK, Reason z. B.LINTRCV_WU_BY_BUS

Diagrama de sequência: um wakeup externo é detetado através da ICU. A LinIf verifica-o com LinTrcv_CheckWakeup, o LinTrcv confirma-o através de LinIf_WakeupConfirmation e o motivo pode ser consultado de seguida (valores de retorno conforme a R20-11). Fontes: [SWS_LinTrcv_00012] [SWS_LinTrcv_91002] [SWS_LinTrcv_00007] LinTrcv-SWS p. 17 LinIf-SWS p. 98

SetWakeupMode Start LinTrcv_SetWakeupMode(LINNetwork, TrcvWakupMode) Modus TrcvWakupMode? Start->Modus Gespeichert Wakeup-Ereignis gespeichert? Modus->Gespeichert LINTRCV_WUMODE_ENABLE Gesperrt Notificação desabilitada para eventos de wake-up Modus->Gesperrt LINTRCV_WUMODE_DISABLE Geloescht Evento de wake-up armazenado apagado Modus->Geloescht LINTRCV_WUMODE_CLEAR Sofort Notificação na chamada ou imediatamente após Gespeichert->Sofort sim Frei Notificação habilitada para eventos de wake-up Gespeichert->Frei não Ende Retorno E_OK (E_NOT_OK, se o modo não foi definido) Sofort->Ende Frei->Ende Gesperrt->Ende Geloescht->Ende

Diagrama de atividades: LinTrcv_SetWakeupMode ramifica de acordo com o modo solicitado. Apenas em caso de ENABLE com evento guardado segue-se imediatamente uma notificação. Fontes: [SWS_LinTrcv_00009] [SWS_LinTrcv_00169] LinTrcv-SWS p. 31

Acesso ao hardware, configuração de canais e particionamento

A forma como o driver acede ao componente é definida pelo contentor de seleção LinTrcvAccess LinTrcv-SWS Fig. 10.3 p. 45. Deve ser selecionada exatamente uma de duas variantes:

  • LinTrcvDioAccess: os pinos do transceptor são mapeados em canais DIO.
  • LinTrcvSpiSequence: um componente compatível com SPI é acedido através de uma sequência SPI.

O diagrama provém da R23-11 e de releases posteriores. No entanto, os serviços de leitura e escrita DIO, bem como os tipos SPI, já constam na R20-11 como interfaces utilizadas ou tipos importados [SWS_LinTrcv_91003] [SWS_LinTrcv_91001].

Para sistemas multinúcleo aplicam-se na R20-11 as seguintes regras:

  • O driver tem de rejeitar configurações com atribuições de partição não suportadas [SWS_LinTrcv_00174].
  • As partições referenciadas através de LinTrcvChannelEcucPartitionRef têm de ser um subconjunto daquelas referenciadas através de LinTrcvEcucPartitionRef. Se o módulo referenciar partições, cada canal tem de referenciar exatamente uma delas [SWS_LinTrcv_00176].
  • LinTrcvChannel e LinChannel do mesmo canal de comunicação têm de referenciar a mesma partição [SWS_LinTrcv_00177].

A distribuição multinúcleo foi introduzida com a R19-11 e clarificada na R24-11 LinTrcv-SWS p. 1.

Comportamento em caso de erro

Os erros de tempo de execução manifestam-se no valor de retorno:

  • Em caso de comunicação inexistente ou com falhas para o transceptor, LinTrcv_GetOpMode LinTrcv-SWS p. 26 e LinTrcv_GetBusWuReason fornecem LinTrcv-SWS p. 28 E_NOT_OK.
  • LinTrcv_SetOpMode fornece E_NOT_OK se uma transição não tiver sido aceite ou tiver falhado [SWS_LinTrcv_00002].
  • LinTrcv_SetWakeupMode fornece E_NOT_OK se não tiver sido possível definir o modo de wakeup LinTrcv-SWS p. 31.
  • Se, devido a um erro, não for possível determinar um motivo de wakeup, está disponível para o efeito o valor LINTRCV_WU_ERROR [SWS_LinTrcv_00170].

O driver notifica erros de desenvolvimento através de Det_ReportError [SWS_LinTrcv_91003]. Na R20-11, em LinTrcv_GetOpMode e LinTrcv_GetBusWuReason, estes conduzem a E_NOT_OK [SWS_LinTrcv_00005] [SWS_LinTrcv_00007]. As passagens do documento de releases posteriores mencionam verificações concretas LinTrcv-SWS p. 26 LinTrcv-SWS p. 30 LinTrcv-SWS p. 29:

  • Chamada antes da inicialização: LINTRCV_E_UNINIT
  • Número de rede inválido: LINTRCV_E_INVALID_LIN_NETWORK
  • Ponteiro nulo em LinTrcv_GetVersionInfo: LINTRCV_E_PARAM_POINTER

Estas verificações deverão, em termos substantivos, aplicar-se também à R20-11 (interpretação). Pergunta Q-58e3d310b525b810 (aberta) Contudo, a R20-11 saneou a classificação de erros e a R21-11 os códigos de erro. Por conseguinte, os identificadores podem divergir na R20-11 LinTrcv-SWS p. 1.

Uma parte das utilizações incorretas é intercetada logo pela LinIf. Em caso de Channel inválido, LinIf_SetTrcvMode e LinIf_GetTrcvMode notificam o erro LINIF_E_NONEXISTENT_CHANNEL LinIf-SWS p. 90. Além disso, no caso de canal inválido ou ponteiro nulo, LinIf_GetTrcvMode fornece E_NOT_OK LinIf-SWS p. 91. Se LinIf_WakeupConfirmation receber uma fonte de wakeup inválida, desencadeia LINIF_E_PARAM_WAKEUPSOURCE se a deteção de erros estiver ativada LinIf-SWS p. 98.

Evidências mais detalhadas

Guia gerado por IA. Tem como base os requisitos normativos para a R20-11 e passagens de documentos associadas, em parte da R23-11 à R25-11. As divergências entre as releases são indicadas no texto. Apenas a especificação é vinculativa.

LIN Transceiver Driver (LinTrcv)

Controls physical bus transceiver states and wakeup on LIN lines.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

função LinTrcv_Init [SWS_LinTrcv_00001] 📄 PDF

void LinTrcv_Init (const LinTrcv_ConfigType* ConfigPtr);

Initializes the Lin Transceiver Driver module.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: a6b1d693304d 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 LinTrcv_Init serve para a inicialização básica do módulo de driver do transcetor LIN de acordo com a especificação em [SWS_LinTrcv_00001]. A interface é declarada através do ficheiro de cabeçalho LinTrcv.h e possui o Service-ID numérico 0x00 [SWS_LinTrcv_00001].

Utilização e parâmetros

A chamada de LinTrcv_Init é executada de forma síncrona e não possui qualquer valor de retorno (void) [SWS_LinTrcv_00001]. Como único parâmetro de passagem é transmitido o ponteiro de entrada ConfigPtr do tipo const LinTrcv_ConfigType*, que aponta para o conjunto de dados de configuração selecionado do transcetor LIN [SWS_LinTrcv_00001]. Outros parâmetros, como parâmetros de entrada/saída ou puramente de saída, não existem para esta rotina [SWS_LinTrcv_00001].

Simultaneidade e restrições

Em relação ao comportamento de concorrência, LinTrcv_Init está classificado obrigatoriamente como não reentrante (Non Reentrant) [SWS_LinTrcv_00001]. Por conseguinte, chamadas paralelas ou que causem interrupção a esta função devem ser excluídas no sistema. Além disso, não devem ocorrer acessos concorrentes durante a inicialização. Interpretação: A execução da função de inicialização deve ocorrer tipicamente de forma centralizada no âmbito da fase de inicialização do sistema, antes mesmo de outros serviços do driver do transceptor LIN serem chamados. Pergunta Q-9845a0c76e3146fa (aberta)

Este texto foi criado por uma IA; todas as informações baseiam-se nos requisitos do padrão AUTOSAR.

Guia do implementador em breve (complexidade I1)

função LinTrcv_SetOpMode [SWS_LinTrcv_00002] 📄 PDF

Std_ReturnType LinTrcv_SetOpMode (uint8 LinNetwork, LinTrcv_TrcvModeType OpMode);

The internal state of the LIN transceiver driver is switched to mode given in the parameter Op Mode.

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

A função LinTrcv_SetOpMode serve para comutar o estado interno do driver do transceptor LIN para o modo de operação transmitido de acordo com [SWS_LinTrcv_00002].

Utilização e semântica

  • Contexto de chamada e parâmetros: a chamada endereça a respectiva rede LIN por meio do parâmetro LinNetwork, enquanto OpMode (tipo LinTrcv_TrcvModeType) define o modo de operação de destino ([SWS_LinTrcv_00002]). A interface está disponível via LinTrcv.h.
  • Valores de retorno: a função retorna E_OK assim que o estado do transceptor for alterado com sucesso para o modo solicitado. Se a mudança de estado falhar, não for aceita ou um parâmetro estiver fora do intervalo permitido, E_NOT_OK é retornado ([SWS_LinTrcv_00002]).
  • Execução síncrona: o serviço opera de forma síncrona (Sync/Async: Synchronous) sob o ID de serviço 0x01 ([SWS_LinTrcv_00002]).

Simultaneidade e restrições

A interface é especificada como não reentrante (Non Reentrant) ([SWS_LinTrcv_00002]). Os chamadores devem, portanto, assegurar que chamadas paralelas para o mesmo módulo ou rede sejam evitadas.

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)

função LinTrcv_GetBusWuReason [SWS_LinTrcv_00007] 📄 PDF

Std_ReturnType LinTrcv_GetBusWuReason (uint8 LinNetwork, LinTrcv_TrcvWakeupReasonType* Reason);

This API provides the reason for the wakeup that the LIN transceiver has detected in the parameter "Reason". The ability to dete ct and differentiate the possible wakeup reasons depends strongly on the LIN transceiver hardware.

função LinTrcv_CheckWakeup [SWS_LinTrcv_00012] 📄 PDF

Std_ReturnType LinTrcv_CheckWakeup (uint8 LinNetwork);

Service LinTrcv_CheckWakeup.

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

A função síncrona LinTrcv_CheckWakeup serve para verificar se um evento de wake-up foi detectado em uma rede LIN endereçada [SWS_LinTrcv_00012]. Ela informa diretamente o chamador sobre a presença de uma condição de wake-up correspondente [SWS_LinTrcv_00012].

Chamada e parâmetros

A função possui o ID de serviço 0x07 e é disponibilizada através do arquivo de cabeçalho LinTrcv.h [SWS_LinTrcv_00012]:

  • LinNetwork (parâmetro de entrada, uint8): Designa a rede LIN à qual a chamada de API deve ser aplicada [SWS_LinTrcv_00012].

Valores de retorno

O valor de retorno do tipo Std_ReturnType sinaliza o resultado da verificação de wake-up [SWS_LinTrcv_00012]:

  • E_OK: Um evento de wake-up foi detectado com sucesso na rede LIN especificada [SWS_LinTrcv_00012].
  • E_NOT_OK: Nenhum evento de wake-up foi constatado na rede LIN especificada [SWS_LinTrcv_00012].

simultaneidade

A execução de LinTrcv_CheckWakeup ocorre de forma totalmente síncrona e está especificada como reentrante [SWS_LinTrcv_00012]. A execução síncrona assegura que o resultado esteja disponível imediatamente no retorno da função.

Esta nota de uso foi gerada por uma IA com base na especificação para o LIN Transceiver Driver no AUTOSAR CP R20-11.

função LinTrcv_SetWakeupMode [SWS_LinTrcv_00009] 📄 PDF

Std_ReturnType LinTrcv_SetWakeupMode (uint8 LINNetwork, LinTrcv_TrcvWakeupModeType TrcvWakupMode);

This API enables, disables and clears the notification for wakeup events on the addressed network. A vailable via Lin Trcv.h

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

A função síncrona LinTrcv_SetWakeupMode serve para ativar, desativar e limpar notificações de eventos de wake-up na rede LIN endereçada [SWS_LinTrcv_00009]. Ela é declarada através do arquivo de cabeçalho LinTrcv.h e possui o ID de serviço 0x05 [SWS_LinTrcv_00009].

Parâmetros e valores de retorno

A função espera dois parâmetros de entrada [SWS_LinTrcv_00009]:

  • LINNetwork (uint8): Designa a rede LIN concreta à qual a API deve ser aplicada [SWS_LinTrcv_00009].
  • TrcvWakupMode (LinTrcv_TrcvWakeupModeType): Passa o modo ou motivo de wake-up solicitado para o transceptor [SWS_LinTrcv_00009].

Como valor de retorno, é fornecido um status do tipo Std_ReturnType [SWS_LinTrcv_00009]:

  • E_OK: Indica que o estado do transceptor foi transferido com sucesso para o modo solicitado [SWS_LinTrcv_00009].
  • E_NOT_OK: Sinaliza que a chamada falhou devido a erros de desenvolvimento ou que o modo de wake-up desejado não pôde ser definido [SWS_LinTrcv_00009].

Simultaneidade e restrições

A interface está especificada como não reentrante (non Reentrant) e realiza a mudança de estado de forma síncrona [SWS_LinTrcv_00009]. Componentes chamadores devem, portanto, assegurar que não ocorram chamadas paralelas para a mesma interface.

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

Guia do implementador em breve (complexidade I1)

tipo LinTrcv_ConfigType [SWS_LinTrcv_00172] 📄 PDF

Configuration data structure of the Lin Trcv module. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_LINTransceiverDriver

tipo LinTrcv_TrcvModeType [SWS_LinTrcv_00168] 📄 PDF

Operating modes of the LIN Transceiver Driver

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 304001f922be 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 LinTrcv_TrcvModeType define os modos de operação para o driver do transceptor LIN conforme [SWS_LinTrcv_00168]. A definição de tipo encontra-se no arquivo de cabeçalho Lin_GeneralTypes.h e fica, assim, disponível para camadas de software superiores [SWS_LinTrcv_00168].

A faixa de valores abrange três estados padronizados para o transceptor [SWS_LinTrcv_00168]:

  • LINTRCV_TRCV_MODE_NORMAL: Identifica o modo de operação regular (Transceiver mode NORMAL) do transceptor LIN [SWS_LinTrcv_00168].
  • LINTRCV_TRCV_MODE_STANDBY: Representa o modo standby (Transceiver mode STANDBY) do transceptor [SWS_LinTrcv_00168].
  • LINTRCV_TRCV_MODE_SLEEP: Descreve o modo sleep (Transceiver mode SLEEP) para o transceptor LIN [SWS_LinTrcv_00168].

Em relação ao uso e à interação funcional, este tipo de enumeração serve para a modelagem uniforme de estados do transceptor [SWS_LinTrcv_00168]. Presume-se que o tipo seja utilizado como parâmetro ou valor de retorno em funções de driver, a fim de solicitar ou consultar transições de estado direcionadas entre operação normal, prontidão e estado de repouso com economia de energia. Pergunta Q-8966f1299f224eff (aberta) Contextos de chamada específicos, códigos de erro, bem como características de concorrência e reentrância não estão vinculados a este tipo de dados em si, mas dependem das respectivas APIs do driver do transceptor [SWS_LinTrcv_00168].

Este texto foi gerado por uma IA e serve para orientação técnica.

Guia do implementador em breve (complexidade I1)

tipo LinTrcv_TrcvWakeupModeType [SWS_LinTrcv_00169] 📄 PDF

Wake up operating modes of the LIN Transceiver Driver.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: e813afb11b1a 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 LinTrcv_TrcvWakeupModeType é uma enumeração que define os modos de operação para eventos de wake-up do driver do transceptor LIN [SWS_LinTrcv_00169]. Ele é disponibilizado através do arquivo de cabeçalho Lin_GeneralTypes.h [SWS_LinTrcv_00169].

A enumeração abrange os seguintes valores para controle da rede endereçada [SWS_LinTrcv_00169]:

  • LINTRCV_WUMODE_ENABLE: Ativa a notificação de eventos de wake-up na rede endereçada [SWS_LinTrcv_00169].
  • LINTRCV_WUMODE_DISABLE: Desativa a notificação de eventos de wake-up na rede endereçada [SWS_LinTrcv_00169].
  • LINTRCV_WUMODE_CLEAR: Limpa um evento de wake-up previamente armazenado na rede endereçada [SWS_LinTrcv_00169].

Tratamento de erros e condições de contorno

Para o tipo em si, nenhum código de erro específico, valor de retorno ou mensagem de erro DET/DEM está definido na especificação [SWS_LinTrcv_00169]. Como tipo de dados, ele não está sujeito a restrições diretas de reentrância ou execução.

Interação

Interpretação: O tipo deve servir como parâmetro de passagem em funções de API do driver do transceptor LIN para ligar ou desligar a detecção de wake-up especificamente por rede ou para resetar o status de wake-up [SWS_LinTrcv_00169]. Pergunta Q-cfb3e28d7baefc72 (aberta)

Este texto foi criado por uma IA. Ele baseia-se exclusivamente nos dados de especificação de SWS_LinTrcv_00169.

Guia do implementador em breve (complexidade I1)

tipo LinTrcv_TrcvWakeupReasonType [SWS_LinTrcv_00170] 📄 PDF

This type denotes the wake up reason detected by the LIN transceiver in detail.

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

Record
AUTOSAR/AP/record/CP_MOD_LinTrcv
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_LinTrcv@rel:R20-11#10d345bf
Content hash
10d345bf
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINTransceiverDriver.pdf#nameddest=SWS_LinTrcv_00001

Inicialização e estado

This service provides the version information of this module through the parameter "versioninfo".

void LinTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);
LinTrcv_Init função

Initializes the Lin Transceiver Driver module.

void LinTrcv_Init (const LinTrcv_ConfigType* ConfigPtr);

Serviços

Service LinTrcv_CheckWakeup.

Std_ReturnType LinTrcv_CheckWakeup (uint8 LinNetwork);

This API provides the reason for the wakeup that the LIN transceiver has detected in the parameter "Reason". The ability to dete ct and differentiate the possible wakeup reasons depends strongly on the LIN transceiver hardware.

Std_ReturnType LinTrcv_GetBusWuReason (uint8 LinNetwork, LinTrcv_TrcvWakeupReasonType* Reason);

API detects the actual software state of LIN transceiver driv er.

Std_ReturnType LinTrcv_GetOpMode (uint8 LinNetwork, LinTrcv_TrcvModeType* OpMode);

The internal state of the LIN transceiver driver is switched to mode given in the parameter Op Mode.

Std_ReturnType LinTrcv_SetOpMode (uint8 LinNetwork, LinTrcv_TrcvModeType OpMode);

This API enables, disables and clears the notification for wakeup events on the addressed network. A vailable via Lin Trcv.h

Std_ReturnType LinTrcv_SetWakeupMode (uint8 LINNetwork, LinTrcv_TrcvWakeupModeType TrcvWakupMode);

Tipos

Configuration data structure of the Lin Trcv module. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_LINTransceiverDriver

Operating modes of the LIN Transceiver Driver

Wake up operating modes of the LIN Transceiver Driver.

This type denotes the wake up reason detected by the LIN transceiver in detail.