DEENESPTFRRUARHIKOZHNL

LIN Interface (LinIf)

ModulLinIf (LIN Interface)
BSW-Modul-ID62
Standard-Header#include "LinIf.h"
SWS-SpezifikationAUTOSAR_SWS_LINInterface.pdf
ClusterLIN

Guia do móduloGERADO POR IA

Intermedeia frames LIN entre as camadas superiores e o driver LIN e controla tabelas de schedule, repouso, despertar e LIN-TP.
GERADO POR IA não revisado Modelo: claude-opus-5-5 · Esforço: high · Temperatura: não controlável · Prompt: 2c16f0f64a13 Procedência Perguntas em aberto (2)
Â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

Intermedeia frames LIN entre as camadas superiores e o driver LIN e controla tabelas de schedule, repouso, despertar e LIN-TP.

A LIN Interface conecta os módulos de comunicação superiores com o driver LIN e o transceptor, além de incluir o protocolo de transporte LIN. Como mestre, um canal processa tabelas de schedule selecionadas via LinIf_ScheduleRequest [SWS_LinIf_00202]. Como escravo, por outro lado, ele apenas reage às notificações de cabeçalho do driver [SWS_LinIf_91004]. Além disso, ela controla, por canal, o repouso e despertar, a transmissão de diagnóstico e, no escravo, a Node Configuration. Quais serviços estão disponíveis depende do tipo de nó configurado para os canais.

A LIN Interface (LinIf) intermedeia entre os módulos de comunicação superiores e o driver LIN, contendo simultaneamente o protocolo de transporte LIN [SWS_LinIf_00351]. Para as camadas superiores, ela chama no R20-11 os callouts configuráveis <User_TriggerTransmit>, <User_TxConfirmation> e <User_RxIndication> [SWS_LinIf_00528] [SWS_LinIf_00529] [SWS_LinIf_00530]; o usuário é o PduR ou um CDD. Ela notifica as mudanças de modo de volta ao LinSM via callouts de <User>_…Confirmation [SWS_LinIf_00521]. Para as camadas inferiores, ela utiliza Lin e, opcionalmente, LinTrcv [SWS_LinIf_00359].

kontext Nutzer PduR / CDD (<User_…>-Callouts) LinIf LinIf (inkl. LinTp) Nutzer->LinIf LinIf_Transmit, LinTp_Transmit LinSM LinSM (<User>-Callouts) LinSM->LinIf LinIf_ScheduleRequest, LinIf_GotoSleep, LinIf_Wakeup BswM BswM Com Com EcuM EcuM EcuM->LinIf LinIf_CheckWakeup Mirror Mirror (Bus Mirroring) Det Det LinIf->Nutzer <User_TriggerTransmit>, <User_TxConfirmation>, <User_RxIndication> LinIf->LinSM <User>_ScheduleRequestConfirmation, <User>_GotoSleepConfirmation, <User>_WakeupConfirmation LinIf->BswM BswM_LinTp_RequestMode (LinTp_Mode) LinIf->Com Com_SendSignal (response_error) LinIf->Mirror Mirror_ReportLinFrame LinIf->Det Det_ReportError, Det_ReportRuntimeError Lin Lin (LIN-Treiber) LinIf->Lin Lin_SendFrame, Lin_GetStatus, Lin_GoToSleepInternal, Lin_Wakeup LinTrcv LinTrcv (optional) LinIf->LinTrcv Serviços de modo e wake-up (LinTrcv_SetOpMode, entre outros) Lin->LinIf LinIf_HeaderIndication, LinIf_RxIndication, LinIf_TxConfirmation, LinIf_LinErrorIndication, LinIf_WakeupConfirmation

Diagrama de contexto: LinIf entre usuários, LinSM, BswM, EcuM, Mirror, bem como Lin e LinTrcv. Fontes: [SWS_LinIf_00360] [SWS_LinIf_00469]

De acordo com LinIf_Init [SWS_LinIf_00198], cada canal fica em LINIF_CHANNEL_SLEEP. A LinIf processa frames apenas em LINIF_CHANNEL_OPERATIONAL SWS LinIf p. 45. O trabalho é realizado por uma MainFunction própria por canal [SWS_LinIf_00384].

linif_zustand cluster_init LINIF_INIT (subestados por canal) Reset Reset UNINIT LINIF_UNINIT Reset->UNINIT SLEEP LINIF_CHANNEL_SLEEP UNINIT->SLEEP LinIf_Init (sem comando Go-to-sleep) OP LINIF_CHANNEL_OPERATIONAL SLEEP->OP LinIf_Wakeup OP->SLEEP LinIf_GotoSleep (slave: após comando Go-to-sleep ou timeout de bus-idle)

Diagrama de estados: a inicialização conduz ao estado de repouso; LinIf_Wakeup e LinIf_GotoSleep alternam entre os estados do canal. Fontes: SWS LinIf p. 45

Mestre e escravo operam de forma fundamentalmente diferente. Um canal mestre processa tabelas de schedule, selecionadas via LinIf_ScheduleRequest com índice 1..255; 0 representa o NULL_SCHEDULE [SWS_LinIf_00197] [SWS_LinIf_00202]. LinIf_Transmit apenas marca quadros esporádicos; a LinIf só busca os dados no slot previsto [SWS_LinIf_00706]. Um escravo, por outro lado, apenas reage a LinIf_HeaderIndication. Ele decide sobre enviar, receber ou ignorar com base no PID [SWS_LinIf_00738] [SWS_LinIf_00733] [SWS_LinIf_00748] e gerencia o sinal response_error de forma autônoma [SWS_LinIf_00763].

Um escravo entra em repouso após um comando go-to-sleep ou após um timeout de bus-idle [SWS_LinIf_00750] [SWS_LinIf_00755]. Ele só confirma o despertar com o primeiro cabeçalho recebido [SWS_LinIf_00761]. Para o diagnóstico, a LinTp comuta no mestre as tabelas de schedule via BswM_LinTp_RequestMode [SWS_LinIf_00629]. No escravo, a LinIf atende a Node Configuration conforme a ISO 17987-3 [SWS_LinIf_00771]. A LinIf reporta erros ao DET, por exemplo LINIF_E_RESPONSE [SWS_LinIf_00729]. Em transmissões TP, ela realiza o cancelamento em caso de timeouts com E_NOT_OK [SWS_LinIf_00801] [SWS_LinIf_00806].

Papel da LIN Interface entre usuários, driver e transceptor

A LIN Interface (LinIf) intermedeia entre os módulos de comunicação superiores e o driver LIN. Ela contém simultaneamente o protocolo de transporte LIN: também os serviços deste, como LinTp_Init e LinTp_Transmit, estão disponíveis via LinIf.h [SWS_LinIf_00350] [SWS_LinIf_00351]. Para as camadas inferiores, a LinIf utiliza serviços do driver como Lin_GoToSleepInternal, Lin_Wakeup e Lin_WakeupInternal [SWS_LinIf_00359]. Opcionalmente, soma-se o LIN Transceiver Driver, cujos serviços de modo e de despertar a LinIf mapeia para uma interface uniforme para todos os transceptores SWS LinIf p. 24. Para isso, LinIf_SetTrcvMode, LinIf_GetTrcvMode, LinIf_GetTrcvWakeupReason e LinIf_SetTrcvWakeupMode repassam as chamadas para o driver do transceptor [SWS_LinIf_00544] [SWS_LinIf_00545] [SWS_LinIf_00547] [SWS_LinIf_00550].

Para as camadas superiores, a LinIf chama seus usuários por meio de callouts configuráveis: <User_TriggerTransmit>, <User_TxConfirmation> e <User_RxIndication> [SWS_LinIf_00528] [SWS_LinIf_00529] [SWS_LinIf_00530]. O usuário é o PduR, devendo ser registrado PduR_LinIfTriggerTransmit [SWS_LinIf_00722], ou um CDD, cujo cabeçalho de callback a LinIf inclui [SWS_LinIf_00669]. A LinIf reporta as mudanças de modo por meio de <User>_ScheduleRequestConfirmation, <User>_GotoSleepConfirmation e <User>_WakeupConfirmation [SWS_LinIf_00520] [SWS_LinIf_00521] [SWS_LinIf_00522]. O destinatário dessas mensagens é o LinSM SWS LinSM p. 24. Além disso, a LinIf requer os serviços BswM_LinTp_RequestMode, Com_SendSignal e Det_ReportError [SWS_LinIf_00360]. A partir do R24-11, o LSduR substitui o PduR ou CDD como usuário superior SWS LinIf p. 1. Para o R20-11 aplicam-se os callouts de <User_…>.

Cada canal é mestre ou escravo. Serviços de escravo como LinIf_HeaderIndication ou LinIf_GetConfiguredNAD só existem se pelo menos um canal escravo estiver configurado [SWS_LinIf_00863] [SWS_LinIf_00861]. LinIf_ScheduleRequest só existe com pelo menos um canal mestre [SWS_LinIf_00858]. O processamento cíclico ocorre em LinIf_MainFunction_<LinIfChannel.ShortName> [SWS_LinIf_00384]. Essa função existe uma vez por canal SWS LinIf p. 119 e é chamada com a periodicidade LinIfMainFunctionPeriod. No mestre, ela consulta o Schedule Table Manager; no escravo, ela monitora condições temporais SWS LinIf p. 45. O bus mirroring é ativado por canal com LinIf_EnableBusMirroring; em seguida, a LinIf reporta frames recebidos e enviados ao módulo Mirror [SWS_LinIf_00876] [SWS_LinIf_00838] [SWS_LinIf_00873].

kontext Nutzer PduR / CDD (<User_…>-Callouts) LinIf LinIf (inkl. LinTp) Nutzer->LinIf LinIf_Transmit, LinTp_Transmit LinSM LinSM (<User>-Callouts) LinSM->LinIf LinIf_ScheduleRequest, LinIf_GotoSleep, LinIf_Wakeup BswM BswM Com Com EcuM EcuM EcuM->LinIf LinIf_CheckWakeup Mirror Mirror (Bus Mirroring) Det Det LinIf->Nutzer <User_TriggerTransmit>, <User_TxConfirmation>, <User_RxIndication> LinIf->LinSM <User>_ScheduleRequestConfirmation, <User>_GotoSleepConfirmation, <User>_WakeupConfirmation LinIf->BswM BswM_LinTp_RequestMode (LinTp_Mode) LinIf->Com Com_SendSignal (response_error) LinIf->Mirror Mirror_ReportLinFrame LinIf->Det Det_ReportError, Det_ReportRuntimeError Lin Lin (LIN-Treiber) LinIf->Lin Lin_SendFrame, Lin_GetStatus, Lin_GoToSleepInternal, Lin_Wakeup LinTrcv LinTrcv (optional) LinIf->LinTrcv Serviços de modo e wake-up (LinTrcv_SetOpMode, entre outros) Lin->LinIf LinIf_HeaderIndication, LinIf_RxIndication, LinIf_TxConfirmation, LinIf_LinErrorIndication, LinIf_WakeupConfirmation

Diagrama de contexto: a LinIf (com LinTp) localiza-se entre usuários, gerenciamento de modo e serviços de diagnóstico/espelhamento na parte superior, e Lin e LinTrcv na parte inferior. Fontes: [SWS_LinIf_00359] [SWS_LinIf_00360] [SWS_LinIf_00469] [SWS_LinIf_00872] SWS LinIf (Abb.) p. 17.

Inicialização e máquinas de estado de canal e LinTp

LinIf_Init recebe um ponteiro para LinIf_ConfigType [SWS_LinIf_00198] [SWS_LinIf_00668] e conduz o módulo de LINIF_UNINIT para LINIF_INIT SWS LinIf p. 47. Cada canal possui uma sub-máquina de estados própria. Após a inicialização, ele se encontra em LINIF_CHANNEL_SLEEP, sem que um comando go-to-sleep tenha sido enviado. A LinIf processa cabeçalhos e respostas apenas em LINIF_CHANNEL_OPERATIONAL SWS LinIf p. 45. Canais mestres iniciam com o NULL_SCHEDULE SWS LinIf p. 90. Canais escravos assumem o NAD inicial e configurado, bem como os PIDs da configuração [SWS_LinIf_00767] [SWS_LinIf_00768] e disponibilizam a LIN Product Identification [SWS_LinIf_00769].

linif_zustand cluster_init LINIF_INIT (subestados por canal) Reset Reset UNINIT LINIF_UNINIT Reset->UNINIT SLEEP LINIF_CHANNEL_SLEEP UNINIT->SLEEP LinIf_Init (sem comando Go-to-sleep) OP LINIF_CHANNEL_OPERATIONAL SLEEP->OP LinIf_Wakeup OP->SLEEP LinIf_GotoSleep (slave: após comando Go-to-sleep ou timeout de bus-idle)

Diagrama de estados: ciclo de vida da LinIf e subestados de canal; a inicialização conduz ao estado de repouso, despertar e adormecer alternam entre os estados do canal. Fontes: SWS LinIf p. 45 [SWS_LinIf_00204] [SWS_LinIf_00205] [SWS_LinIf_00755]

O protocolo de transporte possui uma máquina de estados própria por canal. LinTp_Init [SWS_LinIf_00350] define LINTP_INIT com o subestado LINTP_CHANNEL_IDLE [SWS_LinIf_00710] SWS LinIf p. 99. O canal transiciona para LINTP_CHANNEL_BUSY assim que um FF ou SF for reconhecido como mensagem TP [SWS_LinIf_00322] [SWS_LinIf_00323] ou LinTp_Transmit for chamada SWS LinIf p. 108. LinTp_Shutdown [SWS_LinIf_00355] encerra todas as conexões abertas e define todos os canais para LINTP_UNINIT SWS LinIf p. 102. A inclusão da LinTp é determinada em tempo de compilação por LinIfTpSupported SWS LinIf p. 61.

lintp_zustand cluster_init LINTP_INIT (je Kanal) Reset Reset UNINIT LINTP_UNINIT Reset->UNINIT IDLE LINTP_CHANNEL_IDLE UNINIT->IDLE LinTp_Init IDLE->UNINIT LinTp_Shutdown BUSY LINTP_CHANNEL_BUSY IDLE->BUSY Mensagem TP é iniciada (LinTp_Transmit ou FF/SF detectado) BUSY->UNINIT LinTp_Shutdown (fechar conexões) BUSY->IDLE TP-Nachricht beendet

Diagrama de estados: canal da LinTp entre IDLE e BUSY dentro de LINTP_INIT. Fontes: SWS LinIf (Abb.) p. 43 [SWS_LinIf_00322] [SWS_LinIf_00710] [SWS_LinIf_00355]

Canal master: tabelas de schedule determinam o tráfego do barramento

No mestre, a tabela de schedule constitui a base de toda a comunicação. Cada canal possui um NULL_SCHEDULE vazio, e os intervalos entre frames são múltiplos de LinIfMainFunctionPeriod SWS LinIf p. 44. LinIf_SchHandleType codifica o NULL_SCHEDULE como 0x00 e as demais tabelas como índice 1..255. O índice é único por canal, mas não por unidade de controle [SWS_LinIf_00197]. LinIf_ScheduleRequest opera de forma assíncrona [SWS_LinIf_00202]; a mudança concluída é reportada por <User>_ScheduleRequestConfirmation [SWS_LinIf_00520]. Na configuração, cada tabela recebe um LinIfRunMode, especificamente RUN_CONTINUOUS ou RUN_ONCE ECUC-Parameter p. 265. O parâmetro Schedule só foi renomeado no R22-11 SWS LinIf p. 1.

LinIf_Transmit [SWS_LinIf_00201] não dispara um envio imediato. Apenas marca quadros esporádicos (mestre) ou quadros disparados por evento (escravo) como pendentes SWS LinIf p. 79. Para outros frames, ela ainda assim fornece E_OK [SWS_LinIf_00700], enquanto durante um NULL_SCHEDULE, por outro lado, fornece E_NOT_OK [SWS_LinIf_00719]. Se um slot de envio estiver previsto, a LinIf obtém os dados via <User_TriggerTransmit> e os repassa ao driver com Lin_SendFrame SWS LinIf p. 37. Se o usuário fornecer E_NOT_OK, o frame é omitido [SWS_LinIf_00706]. A LinIf verifica a conclusão com Lin_GetStatus, no mínimo após a duração máxima do frame e, no máximo, na próxima entrada da tabela SWS LinIf p. 35. LIN_TX_ERROR e LIN_TX_BUSY levam a <User_TxConfirmation> com E_NOT_OK [SWS_LinIf_00728]; LIN_TX_OK conduz a E_OK SWS LinIf p. 40.

Transmissão de frame no canal masterNutzer (PduR/CDD)LinIfLinBSW-TaskUse Case: Registro (apenas Sporadic Frame)LinIf_Transmit(TxPduId, PduInfoPtr)CheckId()SetFlag()E_OK (E_NOT_OK em caso de NULL_SCHEDULE)Use Case: Slot de envio vencidoLinIf_MainFunction_<LinIfChannel.ShortName>()<User_TriggerTransmit>(TxPduId, PduInfoPtr)E_OK / E_NOT_OKaltE_OKLin_SendFrame(...)E_NOT_OKFrame não é transmitidoUse Case: Verificação de status após o comprimento máximo do frameLinIf_MainFunction_<LinIfChannel.ShortName>()Lin_GetStatus(...)LIN_TX_OK / LIN_TX_BUSY / LIN_TX_ERROR<User_TxConfirmation>(TxPduId, result)E_OK em caso de LIN_TX_OK, caso contrário E_NOT_OK

Diagrama de sequência: registro, busca de dados controlada por slots e avaliação de status durante o envio pelo mestre. Fontes: [SWS_LinIf_00201] [SWS_LinIf_00706] [SWS_LinIf_00728] SWS LinIf p. 125 SWS PduR p. 107

Canal escravo: reação aos cabeçalhos do mestre

Um escravo não tem schedule. Ele reage exclusivamente a LinIf_HeaderIndication [SWS_LinIf_91004] SWS LinIf p. 39. A LinIf avalia inicialmente o PID:

  • Frame de envio: <User_TriggerTransmit> escreve diretamente no buffer do driver [SWS_LinIf_00738]. Em seguida, a LinIf define Cs e Dl e reporta LIN_FRAMERESPONSE_TX [SWS_LinIf_00739]. Se o usuário fornecer E_NOT_OK, a LinIf reporta LIN_FRAMERESPONSE_IGNORE [SWS_LinIf_00740].
  • Frame de recepção: a LinIf reporta LIN_FRAMERESPONSE_RX [SWS_LinIf_00733].
  • Frame irrelevante: a LinIf reporta LIN_FRAMERESPONSE_IGNORE [SWS_LinIf_00748].

Após uma recepção bem-sucedida, o driver chama LinIf_RxIndication, e a LinIf repassa os dados para <User_RxIndication> [SWS_LinIf_91005] [SWS_LinIf_00734]. Após um envio bem-sucedido, o driver chama LinIf_TxConfirmation, e a LinIf confirma com E_OK [SWS_LinIf_91006] [SWS_LinIf_00741]. Em frames disparados por evento, o PID do frame incondicional correspondente encontra-se no primeiro byte de dados [SWS_LinIf_00731]. A flag de pendência é limpa após a transmissão bem-sucedida [SWS_LinIf_00732].

A LinIf gerencia o sinal response_error de forma autônoma para cada canal escravo [SWS_LinIf_00763] e o atualiza via Com_SendSignal [SWS_LinIf_00764]. Após a transmissão bem-sucedida, ele é limpo [SWS_LinIf_00747]. Cada alteração pode opcionalmente ser reportada via <User_ResponseErrorSignalChanged> [SWS_LinIf_00765] [SWS_LinIf_00766]. O NAD e a lista de PIDs podem ser lidos e gravados em tempo de execução [SWS_LinIf_00829] [SWS_LinIf_00833] [SWS_LinIf_91002] [SWS_LinIf_91003]. Excluem-se os PIDs de MRF e SRF [SWS_LinIf_00809] [SWS_LinIf_00824]. A fonte típica desses valores é a memória não volátil SWS LinIf p. 57.

Processamento de frame orientado a cabeçalho no canal slaveLinController/UARTLinLinIfNutzer (PduR/CDD)Interrupt (Header empfangen)LinIf_HeaderIndication(Channel, PduPtr)EvaluatePID()altSende-Frame<User_TriggerTransmit>(TxPduId, PduInfoPtr)SduDataPtr = PduPtr->SduPtrE_OKCs, Dl setzenDrc = LIN_FRAMERESPONSE_TXEmpfangs-FrameCs, Dl setzenDrc = LIN_FRAMERESPONSE_RXirrelevante ou TriggerTransmit = E_NOT_OKDrc = LIN_FRAMERESPONSE_IGNOREE_OKInterrupt (Response abgeschlossen)altResponse gesendetLinIf_TxConfirmation(Channel)<User_TxConfirmation>(TxPduId, E_OK)Response empfangenLinIf_RxIndication(Channel, Lin_SduPtr)<User_RxIndication>(RxPduId, PduInfoPtr)Fehler erkanntLinIf_LinErrorIndication(Channel, ErrorStatus)

Diagrama de sequência: avaliação do cabeçalho no escravo com ramificação segundo a direção do frame, seguida de confirmação, notificação de recepção ou notificação de erro. Fontes: [SWS_LinIf_91004] [SWS_LinIf_00738] [SWS_LinIf_00733] [SWS_LinIf_00748] SWS LinIf p. 121 SWS LinIf (Abb.) p. 133

Repouso e despertar de um canal LIN

O mestre envia um comando go-to-sleep mediante solicitação. O escravo entra em repouso se receber esse comando ou se o barramento permanecer inativo SWS LinIf p. 48. Considera-se como comando go-to-sleep no escravo um MRF com NAD 0 [SWS_LinIf_00750]. O monitoramento de bus-idle é executado no estado LINIF_CHANNEL_OPERATIONAL [SWS_LinIf_00751] [SWS_LinIf_00752] [SWS_LinIf_00753]. Cada callback do driver reinicia o temporizador [SWS_LinIf_00754]. Em ambos os casos, a LinIf chama <User>_GotoSleepIndication [SWS_LinIf_00756]. Se o usuário chamar em seguida LinIf_GotoSleep [SWS_LinIf_00204], ocorre imediatamente Lin_GoToSleepInternal [SWS_LinIf_00757]. Depois disso, a LinIf limpa a flag de despertar [SWS_LinIf_00758] e confirma com TRUE [SWS_LinIf_00759]. No mestre, a MainFunction envia o comando via Lin_GoToSleep, conforme o diagrama, e confirma após a verificação de status SWS LinIf (Abb.) p. 93 [SWS_LinIf_00521].

Transição para o estado sleep (canal slave)LinLinIfLinTrcvLinIf User (LinSM)altGo-to-sleep-Kommando empfangenLinIf_RxIndication(Channel, Lin_SduPtr)MRF com NAD = 0Bus-Idle-TimeoutBus-Idle-Timer abgelaufen<User>_GotoSleepIndication()LinIf_GotoSleep(Channel)Lin_GoToSleepInternal(Channel)imediatamente, não apenas na MainFunctionLimpar flag de wake-up do canal<User>_GotoSleepConfirmation(channel, TRUE)E_OKoptDriver de transceiver suportadoLinIf_SetTrcvMode(LINTRCV_TRCV_MODE_SLEEP)LinTrcv_SetOpMode(LINTRCV_TRCV_MODE_SLEEP)

Diagrama de sequência: transição de um canal escravo para o estado de repouso após comando go-to-sleep ou timeout de bus-idle. Fontes: [SWS_LinIf_00750] [SWS_LinIf_00755] [SWS_LinIf_00756] [SWS_LinIf_00757] [SWS_LinIf_00759] SWS LinIf p. 137

O despertar parte do usuário por meio de LinIf_Wakeup ou de um wakeup de barramento detectado. A LinIf verifica um wakeup de barramento por meio de LinIf_CheckWakeup SWS LinIf p. 51. Para isso, LinIf_CheckWakeup [SWS_LinIf_00378] chama Lin_CheckWakeup ou LinTrcv_CheckWakeup SWS LinIf p. 112. Os drivers reportam um wakeup detectado por meio de LinIf_WakeupConfirmation [SWS_LinIf_00715], após o que a LinIf define a flag de despertar do canal SWS LinIf p. 98. LinIf_Wakeup [SWS_LinIf_00205] comporta-se de forma diferente conforme o estado. Em um canal acordado, simula sucesso. Em um canal em repouso sem flag de despertar, chama Lin_Wakeup SWS LinIf p. 89. Se a flag de despertar estiver definida, supõe-se que Lin_WakeupInternal ative o canal sem pulso de despertar [SWS_LinIf_00359]. Pergunta Q-2efc22e03c8e284e (aberta)

A confirmação provém da MainFunction no mestre SWS LinIf (Abb.) p. 87. No escravo, ela surge com o primeiro cabeçalho recebido [SWS_LinIf_00761]. Antes de um retorno de E_NOT_OK, a LinIf reporta FALSE [SWS_LinIf_00762]. Se o mestre não enviar cabeçalhos, a confirmação não ocorre e o LinSM entra em timeout SWS LinIf p. 52. Se uma solicitação de despertar chegar durante o adormecimento, o mestre permanece operacional SWS LinIf p. 56. O escravo, nesse caso, reinicia o despertar SWS LinIf p. 53.

Verificação de wake-up e solicitação de wake-upEcuMLinIf User (LinSM)LinIfLin / LinTrcvBSW-TaskUse Case: Bus-Wakeup (falls aufgetreten)LinIf_CheckWakeup(WakeupSource)Lin_CheckWakeup / LinTrcv_CheckWakeupLinIf_WakeupConfirmation(WakeupSource)Definir flag de wake-up do canalUse Case: WeckanforderungLinIf_Wakeup(Channel)altCanal está em sleep, flag de wake-up não definidaLin_Wakeup(Channel)Canal está em sleep, flag de wake-up definida (suposição)Lin_WakeupInternal(Channel)Canal está acordadokein Treiberaufruf, Erfolg simulierenE_OKVor E_NOT_OK ruft LinIf<User>_WakeupConfirmation(channel, FALSE)altMasterLinIf_MainFunction_<LinIfChannel.ShortName>()<User>_WakeupConfirmation(channel, TRUE)SlaveLinIf_HeaderIndication(Channel, PduPtr)primeiro cabeçalho após LinIf_Wakeup<User>_WakeupConfirmation(channel, TRUE)

Diagrama de sequência: verificação de wakeup via EcuM, solicitação de despertar pelo usuário e confirmação dependente do nó. Fontes: [SWS_LinIf_00378] [SWS_LinIf_00715] [SWS_LinIf_00205] [SWS_LinIf_00761] [SWS_LinIf_00762] SWS EcuM p. 182

Diagnóstico: LIN TP e Node Configuration

No mestre, a LinTp controla as tabelas de schedule via BswM_LinTp_RequestMode com LinTp_Mode [SWS_LinIf_00629], desde que LinTpScheduleChangeDiag esteja ativo. Com LinTp_Transmit [SWS_LinIf_00351], a LinTp solicita o schedule de requisição de diagnóstico. Após a requisição física, segue-se o schedule de resposta de diagnóstico; após a resposta, o schedule da aplicação SWS LinIf p. 62. Após uma requisição funcional, o canal retorna ao schedule anterior [SWS_LinIf_00707]. PduR_LinTpTxConfirmation ocorre apenas após o término da troca de schedule [SWS_LinIf_00702]. Uma nova requisição física encerra o processamento TP em andamento [SWS_LinIf_00708]. LinTp_ChangeParameter [SWS_LinIf_00501] é apenas um placeholder e rejeita qualquer alteração SWS LinIf p. 103.

Envio LIN-TP no master com comutação de schedulePduRLinIf (LinTp)BswMLinSMBSW-TaskLinTp_Transmit(TxPduId, PduInfoPtr)optLinTpScheduleChangeDiag = TRUEBswM_LinTp_RequestMode(Network, LINTP_DIAG_REQUEST)LinSM_ScheduleRequest(...)LinIf_ScheduleRequest(Channel, Schedule)E_OK (E_NOT_OK, se a troca de schedule foi rejeitada)loopje MRF (SF, FF, CF)LinIf_MainFunction_<LinIfChannel.ShortName>()PduR_LinTpCopyTxData(...)Enviar MRF (como transmissão normal de frame)optphysischer Request, Schedule-Wechsel aktiviertBswM_LinTp_RequestMode(Network, LINTP_DIAG_RESPONSE)PduR_LinTpTxConfirmation(id, result)após a conclusão da troca de schedule

Diagrama de sequência: envio TP no mestre com comutação de schedule via BswM e LinSM. Fontes: [SWS_LinIf_00351] [SWS_LinIf_00702] [SWS_LinIf_00878] SWS LinIf (Abb.) p. 90 SWS LinIf p. 139

Para a recepção, a LinIf deve estar pronta a qualquer momento. Um FF ou SF inicia a aceitação com PduR_LinTpStartOfReception. Nisso, a LinIf associa o NAD a um N-SDU-Id e copia cada frame com PduR_LinTpCopyRxData SWS LinIf p. 67. No escravo, a camada de transporte e a Node Configuration compartilham os frames MRF e SRF SWS LinIf p. 54. A LinIf, portanto, avalia o NAD, PCI e SID de cada MRF [SWS_LinIf_00771] e o distribui adequadamente [SWS_LinIf_00772] [SWS_LinIf_00773] [SWS_LinIf_00774]. O tratador da Node Configuration atende a um cabeçalho SRF se houver uma resposta pendente; caso contrário, este vai para a camada de transporte [SWS_LinIf_00775] [SWS_LinIf_00776]. São suportados os seguintes serviços:

Respostas positivas saem no próximo cabeçalho SRF [SWS_LinIf_00780].

nodecfg mrf MRF empfangen (LinIf_RxIndication) eval Avaliar NAD, PCI e SID mrf->eval pci PCI válido? eval->pci ign1 Frame ignorieren pci->ign1 não func NAD funcional 0x7E com requisição de Node-Configuration? pci->func sim ign2 Anfrage ignorieren func->ign2 sim own endereça o próprio nó? func->own não fremd Informar handler de Node-Configuration e camada de transporte; cancelar resposta pendente own->fremd não nc requisição de Node-Configuration válida? own->nc sim srf próximo cabeçalho SRF: resposta pendente? fremd->srf acc Anfrage annehmen, N_As-Timer starten, Transportschicht informieren nc->acc sim tp MRF an Transportschicht weiterleiten nc->tp não acc->srf tp->srf resp Antwort durch Node-Configuration-Handler senden srf->resp sim tpsrf SRF-Header an Transportschicht srf->tpsrf não

Diagrama de atividades: distribuição de MRF recebido e de cabeçalho SRF no escravo para o tratador de Node Configuration e para a camada de transporte. Interpretação: a ordem das verificações foi escolhida para fins de representação. Fontes: [SWS_LinIf_00771] [SWS_LinIf_00772] [SWS_LinIf_00774] [SWS_LinIf_00788] [SWS_LinIf_00790] [SWS_LinIf_00776] SWS LinIf p. 59

Comportamento em caso de erro

A LinIf reporta erros de desenvolvimento ao DET, entre outros com LINIF_E_UNINIT, LINIF_E_NONEXISTENT_CHANNEL, LINIF_E_PARAMETER, LINIF_E_PARAM_POINTER e LINIF_E_SCHEDULE_REQUEST_ERROR [SWS_LinIf_00376]. Os callbacks verificam o canal e o ponteiro [SWS_LinIf_00843] [SWS_LinIf_00844]. Chamadas inesperadas de LinIf_RxIndication ou LinIf_TxConfirmation sem cabeçalho anterior são ignoradas pela LinIf [SWS_LinIf_00848] [SWS_LinIf_00852].

Como erros de tempo de execução, a LinIf reconhece LINIF_E_RESPONSE e LINIF_E_NC_NO_RESPONSE [SWS_LinIf_00729]. Se o driver no escravo chamar LinIf_LinErrorIndication, o frame é considerado perdido. A LinIf reporta então LINIF_E_RESPONSE, exceto em LIN_ERR_HEADER [SWS_LinIf_00735] [SWS_LinIf_00743]. Além disso, ela confirma a tentativa de envio com E_NOT_OK [SWS_LinIf_00742] e, em erros de resposta, define o sinal response_error [SWS_LinIf_00736] [SWS_LinIf_00744]. Um novo cabeçalho enquanto uma resposta ainda é aguardada invalida o frame antigo [SWS_LinIf_00846]. Com o espelhamento ativo, a LinIf reporta tais erros com o código de status convertido [SWS_LinIf_00869] [SWS_LinIf_00870].

A LinTp monitora três limites de tempo e cancela a operação com E_NOT_OK para o PduR se forem excedidos:

A LinTp também realiza o cancelamento em caso de problemas de buffer [SWS_LinIf_00676] [SWS_LinIf_00677]. No mestre, isso ocorre somente após o retorno ao schedule da aplicação [SWS_LinIf_00792] [SWS_LinIf_00879]. Se o buffer for insuficiente por pouco, o mestre retém os cabeçalhos SRF [SWS_LinIf_00679] SWS LinIf p. 65. Alternativamente, a LinIf repete a tentativa de cópia com comprimento 0 até que haja espaço disponível ou que o próximo CF chegue [SWS_LinIf_00793] [SWS_LinIf_00795]. O cancelamento com E_NOT_OK também ocorre em caso de NAD incorreto [SWS_LinIf_00655], número de sequência incorreto [SWS_LinIf_00081], um FF ou SF após um CF [SWS_LinIf_00653] e erro na resposta SRF [SWS_LinIf_00796]. Em caso de timeout de P2, a LinIf solicita o schedule da aplicação [SWS_LinIf_00877]. Se LinIf_ScheduleRequest rejeitar a mudança, LinTp_Transmit fornece E_NOT_OK [SWS_LinIf_00878].

Na Node Configuration, a LinIf cancela uma resposta pendente se N_As expirar [SWS_LinIf_00785] [SWS_LinIf_00786], se um NAD desconhecido chegar [SWS_LinIf_00787] ou se uma nova requisição válida chegar [SWS_LinIf_00789]. Por outro lado, um MRF corrompido mantém a resposta pendente [SWS_LinIf_00791]. Os Extended Production Errors para timeouts da LinTp e mudanças de schedule rejeitadas só foram adicionados no R23-11; não se aplicam ao R20-11 SWS LinIf p. 1 SWS LinIf p. 74.

Evidências mais detalhadas

Guia gerado por IA com base nos trechos de especificação contidos no payload para R20-11. Vinculativos são os requisitos referenciados. Passagens da documentação de releases posteriores são utilizadas apenas de forma complementar, e as divergências são indicadas.

LIN Interface (LinIf)

Abstracts LIN hardware and manages schedule tables and frame transmission.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

função LinIf_Init [SWS_LinIf_00198] 📄 PDF

void LinIf_Init (const LinIf_ConfigType* ConfigPtr);

Initializes the LIN Interface.

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

A função síncrona LinIf_Init serve para a inicialização da interface LIN de acordo com [SWS_LinIf_00198]. A interface possui o Service-ID 0x01, está disponível através do ficheiro de cabeçalho LinIf.h e é executada sincronamente.

Contexto de chamada e parâmetros

A função espera como único parâmetro ConfigPtr (const LinIf_ConfigType*), que serve como ponteiro para a configuração da interface LIN [SWS_LinIf_00198]. Não possui valor de retorno e não dispõe de parâmetros de entrada/saída ou puramente de saída.

Sequências de inicialização e interação

No âmbito da inicialização, a interface LIN efetua parametrizações específicas para nós escravos:

  • De acordo com [SWS_LinIf_00767], o módulo inicializa em LinIf_Init o endereço de nó inicial (initial NAD) e o endereço de nó configurado (configured NAD) do nó escravo com base nos parâmetros de configuração LinIfInitialNAD e LinIfConfiguredNAD.
  • De acordo com [SWS_LinIf_00768], o módulo inicializa em LinIf_Init os PIDs configurados do nó escravo a partir dos dados de configuração através dos parâmetros de configuração LinIfFrameId.

Simultaneidade e restrições

A função está especificada como não reentrante (Non Reentrant) [SWS_LinIf_00198]. Uma chamada concorrente ou sobreposta é, portanto, inadmissível. Códigos de erro específicos ou mensagens DET não são indicados no âmbito de especificação fornecido para este serviço.

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

Guia do implementador em breve (complexidade I1)

função LinIf_Transmit [SWS_LinIf_00201] 📄 PDF

Std_ReturnType LinIf_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);

Re quests transmission of a PDU.

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

Utilização e contexto de chamada

A função LinIf_Transmit declarada em LinIf.h (ID de serviço 0x49) serve para a solicitação síncrona de transmissão de uma PDU [SWS_LinIf_00201]. Como parâmetro de entrada, ela espera TxPduId para a identificação unívoca da PDU a ser transmitida, bem como o ponteiro PduInfoPtr para uma estrutura PduInfoType, que, além do comprimento dos dados e dos próprios dados úteis, também pode referenciar metadados [SWS_LinIf_00201]. Não existem parâmetros adicionais de entrada/saída ou de saída [SWS_LinIf_00201].

Valores de retorno e requisitos de comportamento

Como valor de retorno, o serviço fornece o status Std_ReturnType [SWS_LinIf_00201]:

  • E_OK: A solicitação de transmissão foi aceita com sucesso pela interface LIN [SWS_LinIf_00201].
  • E_NOT_OK: A solicitação de transmissão não pôde ser aceita [SWS_LinIf_00201].

A interação com os tipos de frame é especificada por [SWS_LinIf_00700]: Com a interface LIN inicializada, LinIf_Transmit também retorna E_OK se a PDU pertencer a um frame não esporádico em um nó LIN master ou a um frame não orientado a eventos em um nó LIN slave.

simultaneidade

Em relação ao ambiente de execução, LinIf_Transmit é reentrante para diferentes IDs de PDU, mas não pode ser chamada simultaneamente ou de forma concorrente para o mesmo TxPduId [SWS_LinIf_00201].

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

Guia do implementador em breve (complexidade I1)

função LinIf_ScheduleRequest [SWS_LinIf_00202] 📄 PDF

Std_ReturnType LinIf_ScheduleRequest (NetworkHandleType Channel, LinIf_SchHandleType Schedule);

Requests a schedule table to be executed. Only used for LIN master nodes.

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

A função LinIf_ScheduleRequest serve exclusivamente em nós mestres LIN para solicitar a execução de uma tabela de escalonamento predefinida [SWS_LinIf_00202]. A chamada é processada assincronamente e foi concebida como reentrante [SWS_LinIf_00202].

Parâmetros e valores de retorno

Através do parâmetro Channel é transmitido o índice do canal LIN afetado, enquanto Schedule define a identificação da nova tabela de escalonamento a ser executada [SWS_LinIf_00202]. A função devolve o estado como Std_ReturnType:

Condições de erro e restrições

Um valor de retorno de E_NOT_OK ocorre, de acordo com a especificação, nos seguintes casos de erro [SWS_LinIf_00202]:

  • A interface LIN ainda não está inicializada.
  • O canal referenciado não existe ou o índice transmitido situa-se fora da faixa de valores.
  • A tabela de escalonamento referenciada não existe ou o seu identificador é inválido.
  • O estado atual é Sleep.

Interação

A falha de uma solicitação de escalonamento afeta processos de transporte de nível superior: se, no âmbito de uma chamada a LinTp_Transmit através de BswM_LinTp_RequestMode, for iniciada uma mudança de escalonamento via LinIf_ScheduleRequest, LinTp_Transmit deve obrigatoriamente devolver E_NOT_OK se LinIf_ScheduleRequest responder com E_NOT_OK [SWS_LinIf_00878].

Esta nota de utilização baseia-se exclusivamente nos dados de especificação do AUTOSAR Classic R20-11.

Guia do implementador em breve (complexidade I1)

função LinIf_GotoSleep [SWS_LinIf_00204] 📄 PDF

Std_ReturnType LinIf_GotoSleep (NetworkHandleType Channel);

Initiates a transition into the Sleep Mode on the selected channel.

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

usar

A função LinIf_GotoSleep (ID de serviço 0x06, declarada em LinIf.h) inicia a transição para o modo sleep no canal LIN especificado [SWS_LinIf_00204]. A chamada ocorre de forma assíncrona e recebe como parâmetro de entrada Channel do tipo NetworkHandleType o identificador do respectivo canal [SWS_LinIf_00204].

Valores de retorno e tratamento de erros

Como valor de retorno, o serviço fornece o tipo Std_ReturnType com os seguintes significados [SWS_LinIf_00204]:

  • E_OK: A solicitação de mudança para o modo sleep foi aceita com sucesso, a transição de estado para o modo sleep já está em andamento ou o controlador já se encontra no estado sleep [SWS_LinIf_00204].
  • E_NOT_OK: A solicitação não foi aceita. As causas possíveis para isso são uma interface LIN ainda não inicializada ou um identificador de canal inexistente ou fora da faixa de valores válidos [SWS_LinIf_00204].

Concorrência e interação no sistema

A interface é definida como não reentrante (Non Reentrant) [SWS_LinIf_00204]. Se LinIf_GotoSleep for chamada, a interface LIN deve chamar imediatamente a função Lin_GotoSleepInternal e não pode aguardar até o próximo ciclo da função principal [SWS_LinIf_00757].

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

Guia do implementador em breve (complexidade I1)

função LinIf_Wakeup [SWS_LinIf_00205] 📄 PDF

Std_ReturnType LinIf_Wakeup (NetworkHandleType Channel);

Initiates the wake up process.

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

A função reentrante LinIf_Wakeup dispara o processo de wakeup assíncrono para o canal LIN identificado pelo parâmetro Channel [SWS_LinIf_00205]. Ela está disponível por meio do header LinIf.h [SWS_LinIf_00205].

O valor de retorno Std_ReturnType fornece informações sobre a aceitação da solicitação [SWS_LinIf_00205]:

  • E_OK sinaliza que a solicitação de wakeup foi aceita ou que o controlador já não se encontra no estado de repouso [SWS_LinIf_00205].
  • E_NOT_OK é retornado se a LIN Interface não estiver inicializada, se o ID do canal fornecido estiver fora da faixa válida ou se as chamadas de driver subjacentes Lin_Wakeup ou Lin_WakeupInternal falharem com E_NOT_OK [SWS_LinIf_00205].

A interação com o usuário ocorre por meio da função de callback <User>_WakeupConfirmation:

  • Em caso de erro, a LIN Interface chama obrigatoriamente <User>_WakeupConfirmation(FALSE) antes do retorno de E_NOT_OK [SWS_LinIf_00762].
  • Em caso de aceitação bem-sucedida (E_OK), a LIN Interface confirma o wakeup de forma assíncrona: Somente quando, em seguida, a função LinIf_HeaderIndication for chamada pela primeira vez, o módulo emite a chamada <User>_WakeupConfirmation(TRUE) [SWS_LinIf_00761].

Este texto foi gerado automaticamente. Ele baseia-se nos requisitos da especificação AUTOSAR.

Guia do implementador em breve (complexidade I1)

função LinIf_SetTrcvMode [SWS_LinIf_00544] 📄 PDF

Std_ReturnType LinIf_SetTrcvMode (NetworkHandleType Channel, LinTrcv_TrcvModeType TransceiverMode);

Set the given LIN transceiver to the given mode.

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

A função síncrona e reentrante LinIf_SetTrcvMode (ID de serviço 0x08) serve para comutar o transceiver LIN especificado para o modo de operação solicitado [SWS_LinIf_00544]. A interface está disponível por meio do arquivo de cabeçalho LinIf.h [SWS_LinIf_00544].

Parâmetros e valores de retorno

A chamada requer dois parâmetros de entrada [SWS_LinIf_00544]:

  • Channel (NetworkHandleType): Identifica o canal LIN a ser controlado [SWS_LinIf_00544].
  • TransceiverMode (LinTrcv_TrcvModeType): Determina a transição de estado solicitada do transceiver [SWS_LinIf_00544].

O valor de retorno do tipo Std_ReturnType sinaliza o resultado do processo de comutação [SWS_LinIf_00544]:

  • E_OK: É retornado quando o estado do transceiver foi comutado com sucesso para o modo solicitado [SWS_LinIf_00544].
  • E_NOT_OK: Sinaliza que a mudança de estado falhou ou que pelo menos um parâmetro está fora da faixa permitida. O estado anterior do transceiver permanece inalterado [SWS_LinIf_00544].

Execução e comportamento em caso de erro

A função é executada de forma síncrona e é especificada como reentrante [SWS_LinIf_00544]. Mensagens de erro específicas de DET ou DEM não estão listadas separadamente no elemento de especificação; uma falha na mudança de modo ou valores de parâmetros inadmissíveis levam diretamente ao valor de retorno E_NOT_OK [SWS_LinIf_00544].

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

Guia do implementador em breve (complexidade I1)

função LinIf_GetTrcvMode [SWS_LinIf_00545] 📄 PDF

Std_ReturnType LinIf_GetTrcvMode (NetworkHandleType Channel, LinTrcv_TrcvModeType* TransceiverModePtr);

Returns the actual sta te of a LIN Transceiver Driver.

função LinIf_GetTrcvWakeupReason [SWS_LinIf_00547] 📄 PDF

Std_ReturnType LinIf_GetTrcvWakeupReason (NetworkHandleType Channel, LinTrcv_TrcvWakeupReasonType* TrcvWuReasonPtr);

Returns the reason for the wake up that has been detected by the LIN Transceiver Driver.

função LinIf_SetTrcvWakeupMode [SWS_LinIf_00550] 📄 PDF

Std_ReturnType LinIf_SetTrcvWakeupMode (NetworkHandleType Channel, LinTrcv_TrcvWakeupModeType LinTrcvWakeupMode);

This API enables, disables and cl ears the notification for wakeup events on the addressed network

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

A função síncrona e reentrante LinIf_SetTrcvWakeupMode serve para ativar, desativar ou reiniciar notificações para eventos de wake-up no canal LIN indicado [SWS_LinIf_00550]. A declaração é disponibilizada através do cabeçalho LinIf.h e possui o Service-ID 0x0b [SWS_LinIf_00550].

A interface espera dois parâmetros de entrada [SWS_LinIf_00550]:

  • Channel: Identificador unívoco da rede LIN ou canal LIN a endereçar do tipo NetworkHandleType [SWS_LinIf_00550].
  • LinTrcvWakeupMode: Modo de wake-up solicitado do transcetor do tipo LinTrcv_TrcvWakeupModeType [SWS_LinIf_00550].

Como valor de retorno, a função fornece o status Std_ReturnType [SWS_LinIf_00550]:

  • E_OK: A chamada do serviço de API do controlador do transcetor LIN foi bem-sucedida e devolveu E_OK [SWS_LinIf_00550].
  • E_NOT_OK: O serviço de API do controlador do transcetor LIN falhou (retorno E_NOT_OK) ou pelo menos um dos parâmetros transmitidos para o canal ou modo é inválido [SWS_LinIf_00550].

No que diz respeito à interação, a função delega o pedido ao controlador do transcetor LIN; presumivelmente, o LinIf constitui aqui uma interface intermediária entre as camadas superiores e o hardware do transcetor [SWS_LinIf_00550]. Pergunta Q-07b525a14a2c5fcd (aberta) Como o serviço está especificado como reentrante, pode ser executado em paralelo para canais diferentes ou para o mesmo canal [SWS_LinIf_00550].

Este texto foi gerado por uma IA e serve como guia de orientação. Determinantes são os documentos de especificação oficiais da AUTOSAR.

Guia do implementador em breve (complexidade I1)

função LinIf_GetPIDTable [SWS_LinIf_91002] 📄 PDF

Std_ReturnType LinIf_GetPIDTable (NetworkHandleType Channel, Lin_FramePidType* PidBuffer, uint8* PidBufferLength);

Retrieves all assigned PID values. The order is congruent to the LIN frame index. Only applicable for LIN slave nodes.

função LinIf_SetPIDTable [SWS_LinIf_91003] 📄 PDF

Std_ReturnType LinIf_SetPIDTable (NetworkHandleType Channel, Lin_FramePidType* PidBuffer, uint8 PidBufferLength);

Sets all assigned PID values. The order is congruent to the LIN frame index. Only applicable for LIN slave nodes.

função LinTp_Init [SWS_LinIf_00350] 📄 PDF

void LinTp_Init (const LinTp_ConfigType* ConfigPtr);

Initializes the LIN Transport Layer.

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

Utilização e contexto de chamada

A função LinTp_Init serve para a inicialização da camada de transporte do protocolo LIN ([SWS_LinIf_00350]). De acordo com a especificação [SWS_LinIf_00350], a chamada da função opera de forma síncrona.

A assinatura da função é void LinTp_Init (const LinTp_ConfigType* ConfigPtr). A configuração é transmitida através do parâmetro de entrada:

  • ConfigPtr (in): Ponteiro para os dados de configuração da camada de transporte LIN do tipo LinTp_ConfigType ([SWS_LinIf_00350]).

A função não devolve qualquer valor de retorno (void) e não define parâmetros de saída nem de entrada/saída ([SWS_LinIf_00350]). Possui o Service-ID hexadecimal 0x40 e é disponibilizada através do ficheiro de cabeçalho LinIf.h ([SWS_LinIf_00350]).

Tratamento de erros

O requisito [SWS_LinIf_00350] não define códigos de erro específicos, mensagens DET ou eventos DEM para esta função. Não ocorre qualquer retorno de um estado de erro para o chamador ([SWS_LinIf_00350]).

Simultaneidade e restrições

A função LinTp_Init está explicitamente classificada como não reentrante (Non Reentrant) ([SWS_LinIf_00350]). Consequentemente, não pode ser chamada concorrentemente a partir de múltiplas threads, tarefas ou rotinas de interrupção. Interpretação: A chamada deverá ocorrer tipicamente de forma centralizada no âmbito da sequência de inicialização do software básico, antes que solicitações de comunicação subsequentes possam ser processadas. Pergunta Q-6e391bdf8abb1a09 (aberta)

Interação

Para LinTp_Init, não são listadas no presente excerto quaisquer ligações diretas a outros requisitos de especificação ou funções vizinhas ([SWS_LinIf_00350]). O módulo LinIf disponibiliza a declaração ([SWS_LinIf_00350]).

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

Guia do implementador em breve (complexidade I1)

função LinTp_Transmit [SWS_LinIf_00351] 📄 PDF

Std_ReturnType LinTp_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);

Requests transmission of a PDU.

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

A função síncrona LinTp_Transmit serve para solicitar uma transmissão de PDU por meio do protocolo de transporte LIN ([SWS_LinIf_00351]). Como parâmetros de transferência, ela espera o identificador de PDU TxPduId, bem como o ponteiro PduInfoPtr, que fornece o comprimento dos dados e ponteiros para os dados da PDU e metadados ([SWS_LinIf_00351]). O valor de retorno é E_OK em caso de aceitação bem-sucedida da solicitação de envio e E_NOT_OK em caso de rejeição ([SWS_LinIf_00351]).

O comportamento em tempo de execução e a interação com a LIN Interface estão sujeitos às seguintes diretrizes:

  • Solicitação de schedule: Se a troca de schedule iniciada em LinIf_ScheduleRequest no âmbito da chamada via BswM_LinTp_RequestMode falhar e retornar E_NOT_OK, LinTp_Transmit também deve responder diretamente com E_NOT_OK ([SWS_LinIf_00878]).
  • Confirmação: Apenas se LinTp_Transmit tiver sido bem-sucedida (valor de retorno E_OK), a LIN Interface chama a função PduR_LinTpTxConfirmation com resultado positivo ou negativo após a troca de schedule table bem-sucedida ou com falha ([SWS_LinIf_00702]). Se a ordem de envio for rejeitada, essa chamada é totalmente omitida ([SWS_LinIf_00702]).
  • Interrupção de processos em andamento: Se uma nova requisição física for disparada via LinTp_Transmit durante a espera por uma resposta física ou durante o recebimento de uma resposta, a LIN Interface aborta o tratamento de TP em andamento, incluindo a recepção e o monitoramento de timeout de N_Cr e P2, e aceita a nova requisição ([SWS_LinIf_00708]).

No que diz respeito à concorrência, LinTp_Transmit é reentrante para diferentes TxPduId, mas não pode ser executada concorrentemente para o mesmo TxPduId ([SWS_LinIf_00351]).

Esta nota de uso baseia-se na especificação AUTOSAR Classic R20-11.

Guia do implementador em breve (complexidade I1)

função LinTp_Shutdown [SWS_LinIf_00355] 📄 PDF

void LinTp_Shutdown (void);

Shutdowns the LIN TP.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: a1aa6e2da5f3 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 LinTp_Shutdown serve para o encerramento controlado do protocolo de transporte LIN ([SWS_LinIf_00355]). Através da sua chamada, a operação do componente LIN-TP é terminada ([SWS_LinIf_00355]). A declaração da função está disponível através do ficheiro de cabeçalho LinIf.h ([SWS_LinIf_00355]).

Para a utilização e execução aplicam-se as seguintes características de especificação ([SWS_LinIf_00355]):

  • Parâmetros e valor de retorno: A função não possui parâmetros de entrada, de entrada/saída ou de saída (void) e não devolve qualquer valor de retorno (void) ([SWS_LinIf_00355]).
  • Identificação do serviço: O serviço está definido sob o Service-ID 0x43 ([SWS_LinIf_00355]).
  • Sincronismo: A chamada é processada de forma síncrona ([SWS_LinIf_00355]).
  • Reentrância: A função é não reentrante (Non Reentrant) ([SWS_LinIf_00355]). Chamadas concorrentes ou aninhadas a partir de diferentes contextos não são permitidas.

Códigos de erro específicos, mensagens de retorno para o Development Error Tracer (DET) ou tratamentos especiais em caso de erro não estão descritos nas fontes para esta função ([SWS_LinIf_00355]). Da mesma forma, faltam indicações sobre requisitos relacionados ou sobre o chamador exato; presumivelmente, a chamada ocorre no âmbito da desinicialização sequencial da pilha de comunicação por uma gestão de estados BSW de nível superior. Pergunta Q-e25a3c9531527c4f (aberta)

Esta nota de utilização foi criada automaticamente. Baseia-se exclusivamente nas informações de especificação do elemento AUTOSAR na release R20-11.

Guia do implementador em breve (complexidade I1)

função LinTp_ChangeParameter [SWS_LinIf_00501] 📄 PDF

Std_ReturnType LinTp_ChangeParameter (PduIdType id, TPParameterType parameter, uint16 value);

Request to change a specific transport protocol parameter (e.g. block size).

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 17541ee3b055 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 semântica

A função síncrona LinTp_ChangeParameter serve para ajustar em tempo de execução um parâmetro específico do protocolo de transporte para uma determinada PDU [SWS_LinIf_00501]. Como parâmetros são transmitidos o identificador da PDU (id), o identificador do parâmetro do protocolo de transporte a ser alterado (parameter, por exemplo o tamanho do bloco), bem como o novo valor pretendido (value) [SWS_LinIf_00501]. A declaração é disponibilizada através do cabeçalho LinIf.h [SWS_LinIf_00501].

Valores de retorno e comportamento em caso de erro

A função sinaliza o resultado do pedido diretamente através do seu valor de retorno do tipo Std_ReturnType [SWS_LinIf_00501]:

Simultaneidade e restrições

De acordo com a especificação, LinTp_ChangeParameter está classificada como não reentrante (Non Reentrant) [SWS_LinIf_00501]. Uma chamada concorrente ou aninhada para o mesmo contexto ou contextos paralelos é, portanto, inadmissível e deve ser evitada pelo chamador. O fluxo síncrono bloqueia o chamador até à decisão sobre a adoção do valor do parâmetro [SWS_LinIf_00501].

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

função LinIf_CheckWakeup [SWS_LinIf_00378] 📄 PDF

Std_ReturnType LinIf_CheckWakeup (EcuM_WakeupSourceType WakeupSource);

Will be called when the Ecu M has been notified about a wakeup on a specific LIN channel.

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

Utilização e contexto de chamada

A função síncrona LinIf_CheckWakeup é chamada assim que o módulo EcuM for notificado sobre um evento de wake-up num determinado canal LIN [SWS_LinIf_00378]. A chamada ocorre com o parâmetro de entrada WakeupSource do tipo EcuM_WakeupSourceType [SWS_LinIf_00378]. Este parâmetro especifica o dispositivo de origem que iniciou o evento de despertar, podendo tratar-se de um controlador LIN ou de um transcetor LIN [SWS_LinIf_00378].

Tratamento de erros e valores de retorno

Como valor de retorno a função fornece um status do tipo Std_ReturnType [SWS_LinIf_00378]:

  • E_OK: Não ocorreu qualquer erro durante a execução da interface [SWS_LinIf_00378].
  • E_NOT_OK: Ocorreu um erro durante a execução da interface ou foi transmitido um valor inválido para WakeupSource [SWS_LinIf_00378].

Simultaneidade e integração

A interface está especificada como reentrante, possui o Service-ID 0x60 e é disponibilizada através do ficheiro de cabeçalho LinIf.h [SWS_LinIf_00378]. Liga o processamento de despertar do EcuM diretamente aos canais da interface LIN [SWS_LinIf_00378].

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

função LinIf_EnableBusMirroring [SWS_LinIf_00876] 📄 PDF

Std_ReturnType LinIf_EnableBusMirroring (NetworkHandleType Channel, boolean MirroringActive);

Enables or disables mirroring for a LIN channel.

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

A função síncrona e reentrante LinIf_EnableBusMirroring ativa ou desativa o espelhamento de barramento para um canal LIN individual [SWS_LinIf_00876]. Está disponível através do cabeçalho LinIf.h e pode ser omitida se o espelhamento de barramento não estiver ativado através do parâmetro de configuração LinIfBusMirroringSupport [SWS_LinIf_00875]. Como chamador deverá funcionar tipicamente o módulo Mirror. Pergunta Q-1703af5207cb7ade (aberta)

Através do parâmetro Channel é transmitido o canal LIN afetado, enquanto MirroringActive controla o modo [SWS_LinIf_00876]: aquando da transmissão de TRUE, o espelhamento é ativado, em FALSE desativado [SWS_LinIf_00876]. Como valor de retorno, a função devolve E_OK se o modo de espelhamento tiver sido alterado com sucesso, ou E_NOT_OK caso tenha sido indicado um canal inválido ou o espelhamento esteja globalmente desativado [SWS_LinIf_00876]. Mensagens de erro DET ou DEM específicas não são indicadas na definição da função [SWS_LinIf_00876].

Se o espelhamento de barramento estiver ativado globalmente através de LinIfBusMirroringSupported, bem como para o respetivo canal, a interface LIN encaminha eventos relevantes para Mirror_ReportLinFrame:

  • Tramas recebidas em LinIf_RxIndication com estado LIN_RX_OK e ponteiro para os dados úteis [SWS_LinIf_00838], bem como na leitura do estado do driver LIN para slots Rx [SWS_LinIf_00873].
  • Tramas enviadas em LinIf_TxConfirmation com estado LIN_TX_OK e ponteiro para os dados transmitidos [SWS_LinIf_00839], bem como na leitura do estado do driver LIN para slots Tx [SWS_LinIf_00874].
  • Notificações de erro em LinIf_LinErrorIndication para todos os códigos de erro exceto LIN_ERR_HEADER com estado de erro e ponteiro NULL como conteúdo de dados [SWS_LinIf_00869].

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)

função LinIf_WakeupConfirmation [SWS_LinIf_00715] 📄 PDF

void LinIf_WakeupConfirmation (EcuM_WakeupSourceType WakeupSource);

The LIN Driver or LIN Transceiver Driver will call this function to report the wake up source after the successful wakeup detection during Check Wakeup or after power on by bus.

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

A função LinIf_WakeupConfirmation serve para comunicar à interface LIN a deteção bem-sucedida de um evento de despertar [SWS_LinIf_00715].

Chamada e parâmetros

A chamada é efetuada pelo controlador LIN (LIN Driver) ou pelo controlador do transcetor LIN (LIN Transceiver Driver), após ter ocorrido uma deteção bem-sucedida de despertar durante Check Wakeup ou após uma ativação através do barramento (power on by bus) [SWS_LinIf_00715]. Como parâmetro de transmissão é passado WakeupSource do tipo EcuM_WakeupSourceType, que indica o dispositivo de origem que iniciou o evento de despertar (controlador LIN ou transcetor LIN) [SWS_LinIf_00715].

Propriedades de execução e interface

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

função LinIf_HeaderIndication [SWS_LinIf_91004] 📄 PDF

Std_ReturnType LinIf_HeaderIndication (NetworkHandleType Channel, Lin_PduType* PduPtr);

The LIN Driver will call this function to report a received LIN header. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).

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

A função de callback LinIf_HeaderIndication é chamada sincronicamente pelo driver LIN para notificar o recebimento de um header LIN em um canal slave [SWS_LinIf_91004]. Ela está disponível exclusivamente se a ECU possuir pelo menos um canal LIN slave configurado [SWS_LinIf_91004]. A função é reentrante para canais diferentes, mas não pode ser chamada concorrentemente para o mesmo canal [SWS_LinIf_91004].

Por meio do parâmetro de entrada/saída PduPtr, o driver passa o identificador recebido (PID) bem como o ponteiro para o buffer de dados da SDU [SWS_LinIf_91004]. O LinIf avalia o PID e controla a reação do nó slave:

  • Frame de recepção: Se o PID pertencer a um frame de recepção configurado, o LinIf define o tipo de checksum PduPtr->Cs, o comprimento dos dados PduPtr->Dl e atribui o valor LIN_FRAMERESPONSE_RX a PduPtr->Drc antes do retorno [SWS_LinIf_00733].
  • Frame de envio: Se for um frame de envio, o LinIf solicita os dados úteis via <User_TriggerTransmit> [SWS_LinIf_00738]. Havendo disponibilização bem-sucedida (valor de retorno E_OK ou dados SRF pelo Node Configuration Handler / protocolo de transporte), o checksum e o comprimento são configurados e PduPtr->Drc é definido como LIN_FRAMERESPONSE_TX [SWS_LinIf_00739]. Se a consulta falhar com E_NOT_OK, PduPtr->Drc é definido como LIN_FRAMERESPONSE_IGNORE [SWS_LinIf_00740].
  • Frames irrelevantes: Se o frame não for relevante para o slave, o LinIf também define PduPtr->Drc como LIN_FRAMERESPONSE_IGNORE [SWS_LinIf_00748].

Além disso, cada chamada recarrega o timer de bus idle em execução [SWS_LinIf_00754]. Se a chamada ocorrer pela primeira vez após um LinIf_Wakeup bem-sucedido, <User>_WakeupConfirmation(TRUE) é disparado [SWS_LinIf_00761]. Ao receber um header SRF, o LinIf também inicia o timer N_As para Consecutive Frames (CF) [SWS_LinIf_00800]. Como valor de retorno, E_OK sinaliza a aceitação da solicitação, enquanto E_NOT_OK indica erros de desenvolvimento ou de produção [SWS_LinIf_91004].

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

Guia do implementador em breve (complexidade I2)

função LinIf_RxIndication [SWS_LinIf_91005] 📄 PDF

void LinIf_RxIndication (NetworkHandleType Channel, uint8* Lin_SduPtr);

The LIN Driver will call this function to report a successfully received response and provides the reception data to the LIN Interface. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).

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

A função de callback LinIf_RxIndication é chamada sincronicamente pelo driver LIN para comunicar à interface LIN o recebimento bem-sucedido de uma response, incluindo os dados recebidos [SWS_LinIf_91005]. A função está disponível exclusivamente em ECUs com pelo menos um canal LIN slave configurado [SWS_LinIf_91005].

Em relação à parametrização e concorrência, aplicam-se as seguintes condições:

  • Parâmetros: São passados a identificação do canal Channel e o ponteiro Lin_SduPtr para um shadow buffer ou para o buffer de recepção mapeado em memória do hardware LIN [SWS_LinIf_91005]. Esse ponteiro é válido apenas em caso de response efetivamente recebida [SWS_LinIf_91005].
  • Valor de retorno: A função não possui valor de retorno (void) [SWS_LinIf_91005].
  • Reentrância: A interface é reentrante para canais LIN diferentes, porém não reentrante para o mesmo canal [SWS_LinIf_91005].

Na interação com o comportamento do módulo, a chamada dispara várias ações coordenadas:

  • Encaminhamento dos dados úteis recebidos e do comprimento dos dados úteis para a camada superior via <User_RxIndication> [SWS_LinIf_00734].
  • Verificação de comandos sleep: Se for um Master Request Frame (MRF) com o NAD 0, a interface LIN reconhece um comando go-to-sleep e inicia a transição para o modo sleep [SWS_LinIf_00750].
  • Controle de timers: A cada chamada, o timer de bus idle é recarregado [SWS_LinIf_00754]. Além disso, em frames MRF (FF, CF), a chamada controla o timer N_Cr (início/reinício em FF e CF antes do último frame, parada no último CF) [SWS_LinIf_00805].
  • Bus mirroring: Se o espelhamento estiver ativado globalmente e para o canal, a interface LIN reporta o frame com o status LIN_RX_OK via Mirror_ReportLinFrame() [SWS_LinIf_00838].

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

Guia do implementador em breve (complexidade I1)

função LinIf_TxConfirmation [SWS_LinIf_91006] 📄 PDF

void LinIf_TxConfirmation (NetworkHandleType Channel);

The LIN Driver will call this function to report a successfully transmitted response. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).

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

A função de callback síncrona LinIf_TxConfirmation (ID de serviço 0x7a, declarada em LinIf.h) é chamada pelo driver LIN para confirmar a transmissão bem-sucedida de uma resposta (response) no canal especificado [SWS_LinIf_91006]. A função não possui valor de retorno e destina-se exclusivamente a ECUs com pelo menos um canal LIN slave configurado [SWS_LinIf_91006].

Ao receber a confirmação, a interface LIN executa vários processamentos subsequentes:

  • Notificação da camada superior: O módulo encaminha o evento de envio para a camada superior por meio da função de callback <User_TxConfirmation> com o valor de retorno E_OK [SWS_LinIf_00741].
  • Status de erro: Caso o frame transmitido com sucesso contenha o sinal de erro response_error, a interface LIN redefine esse sinal [SWS_LinIf_00747].
  • Monitoramento de repouso do barramento: Cada chamada de LinIf_TxConfirmation recarrega o timer de bus idle em execução do canal [SWS_LinIf_00754].
  • Protocolo de transporte (LinTp): Se o driver confirmar a resposta a um header SRF (Slave Response Frame), a interface para o timer de monitoramento N_As [SWS_LinIf_00800].
  • Bus mirroring: Se o espelhamento estiver configurado globalmente via LinIfBusMirroringSupported e ativado por LinIf_EnableBusMirroring(), a interface reporta o frame com o status LIN_TX_OK e o ponteiro para os dados de envio para Mirror_ReportLinFrame() [SWS_LinIf_00839].

Quanto à concorrência, LinIf_TxConfirmation foi projetada para ser reentrante para diferentes canais LIN, mas não pode ser chamada de forma reentrante para o mesmo canal [SWS_LinIf_91006].

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

Guia do implementador em breve (complexidade I1)

função LinIf_LinErrorIndication [SWS_LinIf_91007] 📄 PDF

void LinIf_LinErrorIndication (NetworkHandleType Channel, Lin_SlaveErrorType ErrorStatus);

The LIN Driver will call this function to report a detected error event during header or response processing. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).

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

Utilização e contexto de chamada

A função síncrona LinIf_LinErrorIndication é chamada pelo driver LIN para reportar erros ocorridos durante o processamento do cabeçalho ou da resposta [SWS_LinIf_91007]. Ela é destinada exclusivamente a nós LIN slave e pressupõe que a ECU possua pelo menos um canal LIN slave configurado [SWS_LinIf_91007]. Como parâmetros, são transmitidos a identificação do canal Channel e o status do erro ocorrido ErrorStatus do tipo Lin_SlaveErrorType [SWS_LinIf_91007].

Tratamento de erros e simultaneidade

A função é reentrante para canais distintos, porém não deve ser chamada concorrentemente para o mesmo canal [SWS_LinIf_91007]. Ao ser chamada, o LIN Interface considera a resposta ou o frame transmitido como perdido e reporta o erro em tempo de execução LINIF_E_RESPONSE ao Default Error Tracer (DET), a menos que o status de erro reportado seja LIN_ERR_HEADER [SWS_LinIf_00735], [SWS_LinIf_00743].

Interação e monitoramento de barramento

Independentemente do código de erro transmitido, o LIN Interface recarrega o temporizador de barramento ocioso (bus idle timer) ativo a cada chamada de LinIf_LinErrorIndication [SWS_LinIf_00754]. Se ocorrer um erro em uma resposta SRF após a recepção de um cabeçalho SRF, o LIN Interface cancela a transmissão e reporta isso à camada superior por meio de PduR_LinTpTxConfirmation com o resultado E_NOT_OK [SWS_LinIf_00796].

Se o espelhamento de barramento (bus mirroring) estiver globalmente ativo via LinIfBusMirroringSupported e habilitado para o canal, o LIN Interface encaminha erros diferentes de LIN_ERR_HEADER via Mirror_ReportLinFrame() com um ponteiro NULL para o conteúdo dos dados [SWS_LinIf_00869]. Nessa etapa, os códigos de erro do driver são traduzidos previamente para os valores de status correspondentes do tipo Lin_StatusType [SWS_LinIf_00870].

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

Guia do implementador em breve (complexidade I2)

função <User_TriggerTransmit> [SWS_LinIf_00528] 📄 PDF

Std_ReturnType <User_TriggerTransmit> (PduIdType TxPduId, PduInfoType* PduInfoPtr);

Within this API, the upper layer module (called module) shall check whether the available data fits into the b uffer size reported by Pdu Info Ptr - >Sdu Length. If it fits, it shall copy its data into the buffer provided by Pdu Info Ptr - >Sdu Data Ptr and update the length of the actual copied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without ch anging Pdu Info Ptr.

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

A interface configurável <User_TriggerTransmit> serve para a obtenção síncrona de dados de SDU a partir de um módulo sobrejacente para uma transmissão pendente [SWS_LinIf_00528].

Através do parâmetro TxPduId identifica-se a SDU solicitada, enquanto PduInfoPtr é transmitido como ponteiro para uma estrutura com o buffer de destino (SduDataPtr) e o tamanho de buffer disponível (SduLength) [SWS_LinIf_00528]. O módulo sobrejacente chamado verifica dentro desta API se os dados prontos cabem no tamanho de buffer reportado [SWS_LinIf_00528]. Se houver espaço suficiente, o módulo copia os seus dados para SduDataPtr, atualiza SduLength com o número de bytes efetivamente copiados e sinaliza o sucesso com o valor de retorno E_OK [SWS_LinIf_00528].

Se, pelo contrário, o tamanho do buffer não for suficiente, nenhuns dados de SDU são copiados e o módulo devolve E_NOT_OK, sem alterar PduInfoPtr [SWS_LinIf_00528]. Com um valor de retorno de E_NOT_OK, o chamador não deve de forma alguma utilizar PduInfoPtr, uma vez que este pode apontar para dados inválidos ou ser um ponteiro NULL [SWS_LinIf_00528].

No que respeita à concorrência, a função é reentrante para IDs de PDU diferentes, mas não é reentrante para o mesmo ID de PDU [SWS_LinIf_00528].

Esta nota de utilização baseia-se na especificação AUTOSAR SWS_LinIf_00528.

função <User_TxConfirmation> [SWS_LinIf_00529] 📄 PDF

void <User_TxConfirmation> (PduIdType TxPduId, Std_ReturnType result);

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 37f6ac5aed5e 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 de callback configurável <User_TxConfirmation> é chamada pelo módulo de interface de comunicação subjacente para confirmar a uma camada superior a transmissão de uma PDU ou a falha da transmissão [SWS_LinIf_00529]. A chamada ocorre de forma síncrona e não devolve qualquer valor de retorno [SWS_LinIf_00529].

Parâmetros e semântica

  • TxPduId (In): Designa o identificador da PDU transmitida do tipo PduIdType [SWS_LinIf_00529].
  • result (In): Reporta o estado de sucesso da transmissão como Std_ReturnType com os valores E_OK em caso de transmissão bem-sucedida da PDU ou E_NOT_OK em caso de transmissão falhada [SWS_LinIf_00529].

Simultaneidade e tratamento de erros

No que diz respeito à reentrância, a função foi concebida como reentrante para IDs de PDU diferentes, mas não pode ser chamada de forma reentrante para o mesmo ID de PDU [SWS_LinIf_00529]. O módulo não especifica quaisquer códigos de erro separados ou mensagens DET ou DEM para esta interface; em vez disso, a falha de uma transmissão é indicada através do valor do parâmetro E_NOT_OK [SWS_LinIf_00529]. O identificador real da função deverá ser definido de forma específica da integração, consoante a camada de utilizador configurada, uma vez que o serviço é indicado como configurável [SWS_LinIf_00529]. Pergunta Q-35de931161f26cb8 (aberta)

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

função <User_RxIndication> [SWS_LinIf_00530] 📄 PDF

void <User_RxIndication> (PduIdType RxPduId, const PduInfoType* PduInfoPtr);

Indication of a received PDU from a lower layer communication interface module.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: efc39fd11ced 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 de callback <User_RxIndication> serve para a sinalização de uma PDU recebida a partir de um módulo de interface de comunicação subjacente para a camada sobrejacente [SWS_LinIf_00530]. A chamada ocorre com semântica síncrona e não possui valor de retorno [SWS_LinIf_00530].

Parâmetros e especificação da interface

A função transmite dois parâmetros de entrada para a camada superior [SWS_LinIf_00530]:

  • RxPduId: Identificador da PDU recebida do tipo PduIdType [SWS_LinIf_00530].
  • PduInfoPtr: Ponteiro para uma estrutura do tipo PduInfoType, que disponibiliza o comprimento dos dados úteis (SduLength), um ponteiro para o buffer com os dados úteis (SduDataPtr), bem como metadados associados à PDU [SWS_LinIf_00530].

Nem parâmetros de entrada/saída nem parâmetros puramente de saída estão previstos para esta interface [SWS_LinIf_00530].

Simultaneidade e configuração

Relativamente à reentrância, a função foi concebida como reentrante para IDs de PDU diferentes, mas está explicitamente especificada como não reentrante para IDs de PDU idênticos [SWS_LinIf_00530]. Os chamadores devem, portanto, assegurar que não ocorram chamadas sobrepostas para o mesmo RxPduId. A função está declarada como interface configurável [SWS_LinIf_00530]; o nome concreto da função da camada superior deverá, portanto, ser definido através da configuração do módulo. Pergunta Q-94175e8cd86775b6 (aberta)

Esta nota de utilização foi gerada automaticamente com base na especificação SWS_LinIf_00530.

função <User_ResponseErrorSignalChanged> [SWS_LinIf_00856] 📄 PDF

void <User_ResponseErrorSignalChanged> (NetworkHandleType Channel, boolean RespErrSigValue);

Notifies the change of the response error signal with the new value. Only applicable for LIN slave nodes. AUTOSAR CP R20 - of Document ID : AUTOSAR_ SWS_ LINInterface

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

A interface <User_ResponseErrorSignalChanged> serve no módulo LinIf como função de notificação para reportar uma alteração de valor do sinal Response-Error com o novo valor do sinal [SWS_LinIf_00856]. A chamada ocorre de forma síncrona e possui o Service ID 0x74 [SWS_LinIf_00856]. Não estão previstos parâmetros de entrada/saída nem valor de retorno; a assinatura é definida com o tipo de retorno void [SWS_LinIf_00856].

Como parâmetros de passagem, a função espera dois valores puramente de entrada [SWS_LinIf_00856]:

  • Channel (tipo NetworkHandleType): identificação unívoca do canal LIN afetado [SWS_LinIf_00856].
  • RespErrSigValue (tipo boolean): valor atual do sinal Response-Error. O parâmetro é true se o sinal estiver definido como 1; caso contrário, false [SWS_LinIf_00856].

Em relação à concorrência e ao contexto de chamada, está estabelecido que a função é reentrante para canais diferentes, porém não pode ser chamada de forma reentrante para o mesmo canal [SWS_LinIf_00856]. Uma condição funcional de contorno consiste em que este serviço de notificação é aplicável exclusivamente para nós escravos LIN [SWS_LinIf_00856]. A declaração é disponibilizada por meio do arquivo de cabeçalho LinIf_Externals.h [SWS_LinIf_00856].

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

função <User_SaveConfigurationRequest> [SWS_LinIf_00857] 📄 PDF

boolean <User_SaveConfigurationRequest> (NetworkHandleType Channel);

Notifies the reception of a Save Configuration request. Only applicable for LIN slave nodes.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: f9fc99467908 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 de callback <User_SaveConfigurationRequest> (Service-ID 0x75) notifica uma camada superior sobre a receção de um pedido «Save Configuration» e está declarada em LinIf_Externals.h [SWS_LinIf_00857]. Esta interface é aplicável exclusivamente a nós escravos LIN [SWS_LinIf_00857].

A chamada ocorre sincronamente e está especificada como reentrante [SWS_LinIf_00857]:

  • Parâmetros: Através do parâmetro de entrada Channel do tipo NetworkHandleType é transmitido o canal LIN afetado [SWS_LinIf_00857]. Não existem parâmetros adicionais de entrada ou de saída [SWS_LinIf_00857].
  • Valor de retorno: A função devolve um valor do tipo boolean [SWS_LinIf_00857]. O valor de retorno TRUE sinaliza que deve ser enviada uma resposta positiva para o barramento LIN, enquanto FALSE impede a transmissão de qualquer resposta [SWS_LinIf_00857].

No que respeita ao tratamento de erros, a especificação não define códigos de erro específicos nem mensagens DET ou DEM [SWS_LinIf_00857]. O comportamento em caso de erro ou de rejeição é controlado diretamente através do valor de retorno booleano, ao impedir por FALSE o envio de uma resposta [SWS_LinIf_00857]. Como a chamada está classificada como reentrante, a função deverá estar concebida para a chamada concorrente em canais diferentes [SWS_LinIf_00857]. Pergunta Q-84432030c1aff644 (aberta)

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

tipo LinIf_SchHandleType [SWS_LinIf_00197] 📄 PDF

Index of the schedule table that is selectable and followed by LIN Interface. Value is unique per LIN c hannel/ controller, but not per ECU. The number of schedule tables is limited to 255

tipo LinIf_ConfigType [SWS_LinIf_00668] 📄 PDF

A pointer to an instance of this structure will be used in the initialization of the LIN Interface. The outline of the structure is defined in chapter 10 Configuration Specification.

tipo LinTp_ConfigType [SWS_LinIf_00426] 📄 PDF

This is the base type for the configuration of the LIN Transport Protocol A pointer to an instance of this structure will be used in the initialization of the LIN Transport Protocol. The outline of the structure is defined in chapter 10 Configuration Specification

tipo LinTp_Mode [SWS_LinIf_00629] 📄 PDF

This type denotes which Schedule table can be requested by LIN TP during diagnostic session

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 237979748ffe 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 LinTp_Mode é definido no arquivo de cabeçalho LinIf.h e especifica qual modo de schedule table pode ser solicitado pelo protocolo de transporte LIN (LIN TP) durante uma sessão de diagnóstico [SWS_LinIf_00629].

A faixa de valores abrange três literais de enumeração para o controle da troca de schedule no barramento LIN [SWS_LinIf_00629]:

  • LINTP_APPLICATIVE_SCHEDULE: Seleciona a schedule table de aplicação para o tráfego regular de mensagens [SWS_LinIf_00629].
  • LINTP_DIAG_REQUEST: Seleciona a master request schedule table para a transmissão de solicitações de diagnóstico [SWS_LinIf_00629].
  • LINTP_DIAG_RESPONSE: Seleciona a slave response schedule table para a recepção de respostas de diagnóstico [SWS_LinIf_00629].

Em relação à interação, o tipo serve para a comutação entre transmissões de diagnóstico e comunicação regular de aplicação dentro da interface LIN [SWS_LinIf_00629]. Contextos específicos de chamada, propriedades de reentrância ou tratamentos de erro (como mensagens de DET ou DEM) não são indicados nas fontes para este tipo de dados puro; presume-se que o tipo seja passado como parâmetro de função em chamadas de controle pelo protocolo de transporte LIN para a interface LIN. Pergunta Q-1bf7553401882471 (aberta)

Este texto foi gerado por uma IA e baseia-se exclusivamente nas especificações da release AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

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

Record
AUTOSAR/AP/record/CP_MOD_LinIf
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_LinIf@rel:R20-11#c251cc4a
Content hash
c251cc4a
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINInterface.pdf#nameddest=SWS_LinIf_00198

Inicialização e estado

Returns the version information of this module.

void LinIf_GetVersionInfo (Std_VersionInfoType* versioninfo);
LinIf_Init função

Initializes the LIN Interface.

void LinIf_Init (const LinIf_ConfigType* ConfigPtr);

Returns the version information of this module.

void LinTp_GetVersionInfo (Std_VersionInfoType* versioninfo);
LinTp_Init função

Initializes the LIN Transport Layer.

void LinTp_Init (const LinTp_ConfigType* ConfigPtr);

Serviços · Get…

Reports the current configured NAD. Only applicable for LIN slave nodes.

Std_ReturnType LinIf_GetConfiguredNAD (NetworkHandleType Channel, uint8* Nad);

Retrieves all assigned PID values. The order is congruent to the LIN frame index. Only applicable for LIN slave nodes.

Std_ReturnType LinIf_GetPIDTable (NetworkHandleType Channel, Lin_FramePidType* PidBuffer, uint8* PidBufferLength);

Returns the actual sta te of a LIN Transceiver Driver.

Std_ReturnType LinIf_GetTrcvMode (NetworkHandleType Channel, LinTrcv_TrcvModeType* TransceiverModePtr);

Returns the reason for the wake up that has been detected by the LIN Transceiver Driver.

Std_ReturnType LinIf_GetTrcvWakeupReason (NetworkHandleType Channel, LinTrcv_TrcvWakeupReasonType* TrcvWuReasonPtr);

Serviços · Set…

Sets the current configured NAD. Only applicable for LIN slave nodes.

Std_ReturnType LinIf_SetConfiguredNAD (NetworkHandleType Channel, uint8 Nad);

Sets all assigned PID values. The order is congruent to the LIN frame index. Only applicable for LIN slave nodes.

Std_ReturnType LinIf_SetPIDTable (NetworkHandleType Channel, Lin_FramePidType* PidBuffer, uint8 PidBufferLength);

Set the given LIN transceiver to the given mode.

Std_ReturnType LinIf_SetTrcvMode (NetworkHandleType Channel, LinTrcv_TrcvModeType TransceiverMode);

This API enables, disables and cl ears the notification for wakeup events on the addressed network

Std_ReturnType LinIf_SetTrcvWakeupMode (NetworkHandleType Channel, LinTrcv_TrcvWakeupModeType LinTrcvWakeupMode);

Serviços · Outros

Will be called when the Ecu M has been notified about a wakeup on a specific LIN channel.

Std_ReturnType LinIf_CheckWakeup (EcuM_WakeupSourceType WakeupSource);

Enables or disables mirroring for a LIN channel.

Std_ReturnType LinIf_EnableBusMirroring (NetworkHandleType Channel, boolean MirroringActive);

Initiates a transition into the Sleep Mode on the selected channel.

Std_ReturnType LinIf_GotoSleep (NetworkHandleType Channel);

The LIN Driver will call this function to report a received LIN header. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).

Std_ReturnType LinIf_HeaderIndication (NetworkHandleType Channel, Lin_PduType* PduPtr);

The LIN Driver will call this function to report a detected error event during header or response processing. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).

void LinIf_LinErrorIndication (NetworkHandleType Channel, Lin_SlaveErrorType ErrorStatus);

Requests a schedule table to be executed. Only used for LIN master nodes.

Std_ReturnType LinIf_ScheduleRequest (NetworkHandleType Channel, LinIf_SchHandleType Schedule);

Re quests transmission of a PDU.

Std_ReturnType LinIf_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);
LinIf_Wakeup função

Initiates the wake up process.

Std_ReturnType LinIf_Wakeup (NetworkHandleType Channel);

The LIN Driver or LIN Transceiver Driver will call this function to report the wake up source after the successful wakeup detection during Check Wakeup or after power on by bus.

void LinIf_WakeupConfirmation (EcuM_WakeupSourceType WakeupSource);

Request to change a specific transport protocol parameter (e.g. block size).

Std_ReturnType LinTp_ChangeParameter (PduIdType id, TPParameterType parameter, uint16 value);

Shutdowns the LIN TP.

void LinTp_Shutdown (void);

Requests transmission of a PDU.

Std_ReturnType LinTp_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);

Callbacks

The LIN Driver will call this function to report a successfully received response and provides the reception data to the LIN Interface. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).

void LinIf_RxIndication (NetworkHandleType Channel, uint8* Lin_SduPtr);

The LIN Driver will call this function to report a successfully transmitted response. This function is only applicable for LIN slave nodes (available only if the ECU has any LIN slave channel).

void LinIf_TxConfirmation (NetworkHandleType Channel);

Callouts e interfaces esperadas

Notifies the change of the response error signal with the new value. Only applicable for LIN slave nodes. AUTOSAR CP R20 - of Document ID : AUTOSAR_ SWS_ LINInterface

void <User_ResponseErrorSignalChanged> (NetworkHandleType Channel, boolean RespErrSigValue);

Indication of a received PDU from a lower layer communication interface module.

void <User_RxIndication> (PduIdType RxPduId, const PduInfoType* PduInfoPtr);

Notifies the reception of a Save Configuration request. Only applicable for LIN slave nodes.

boolean <User_SaveConfigurationRequest> (NetworkHandleType Channel);

Within this API, the upper layer module (called module) shall check whether the available data fits into the b uffer size reported by Pdu Info Ptr - >Sdu Length. If it fits, it shall copy its data into the buffer provided by Pdu Info Ptr - >Sdu Data Ptr and update the length of the actual copied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without ch anging Pdu Info Ptr.

Std_ReturnType <User_TriggerTransmit> (PduIdType TxPduId, PduInfoType* PduInfoPtr);

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.

void <User_TxConfirmation> (PduIdType TxPduId, Std_ReturnType result);

Tipos

A pointer to an instance of this structure will be used in the initialization of the LIN Interface. The outline of the structure is defined in chapter 10 Configuration Specification.

Index of the schedule table that is selectable and followed by LIN Interface. Value is unique per LIN c hannel/ controller, but not per ECU. The number of schedule tables is limited to 255

This is the base type for the configuration of the LIN Transport Protocol A pointer to an instance of this structure will be used in the initialization of the LIN Transport Protocol. The outline of the structure is defined in chapter 10 Configuration Specification

This type denotes which Schedule table can be requested by LIN TP during diagnostic session