DEENESPTFRRUARHIKOZHNL

LIN Driver (Lin)

ModulLin (LIN Driver)
BSW-Modul-ID82
Standard-Header#include "Lin.h"
SWS-SpezifikationAUTOSAR_SWS_LINDriver.pdf
ClusterLIN

Guia do móduloGERADO POR IA

Controla o hardware LIN e fornece à LIN Interface serviços para frames, estado de suspensão e wake-up por canal.
GERADO POR IA não revisado Modelo: claude-opus-5-5 · Esforço: high · Temperatura: não controlável · Prompt: ea366bb8619c Procedência Perguntas em aberto (1)
Â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 o hardware LIN e fornece à LIN Interface serviços para frames, estado de suspensão e wake-up por canal.

O driver LIN encapsula o hardware LIN do microcontrolador e disponibiliza à LIN Interface serviços relacionados a canais para frames, estado de suspensão e wake-up. Canais master disparam frames de forma assíncrona com Lin_SendFrame e os avaliam por meio de Lin_GetStatus. Canais slave reagem a cada cabeçalho recebido com uma indicação para a LIN Interface e, em seguida, transmitem, recebem ou ignoram a resposta ([SWS_Lin_00280]). Quais serviços estão disponíveis depende do tipo de nó configurado; os serviços de master existem apenas havendo pelo menos um canal master ([SWS_Lin_00287]).

O driver LIN Lin é o driver de hardware da pilha LIN. Ele encapsula controladores LIN ou SCI/UARTs (SWS LIN Driver p. 9) e oferece à LIN Interface serviços relativos a canais para frames, estado de suspensão e wake-up. Ele requer obrigatoriamente Dem_SetEventStatus, EcuM_SetWakeupEvent e LinIf_WakeupConfirmation ([SWS_Lin_00234]). Opcionalmente, utiliza DET, Icu e os callbacks de slave da LinIf ([SWS_Lin_00235]).

LinKontext LinIf LinIf (LIN Interface) Lin Lin (LIN-Treiber, MCAL) LinIf->Lin Lin_SendFrame, Lin_GetStatus (Master) Lin_GoToSleep(Internal), Lin_Wakeup(Internal) Lin_CheckWakeup EcuM EcuM Dem DEM Det DET (optional) Icu Icu (optional) Lin->LinIf LinIf_HeaderIndication, LinIf_RxIndication, LinIf_TxConfirmation, LinIf_LinErrorIndication (Slave) LinIf_WakeupConfirmation Lin->EcuM EcuM_SetWakeupEvent Lin->Dem Dem_SetEventStatus (LIN_E_TIMEOUT) Lin->Det Det_ReportError Lin->Icu Icu_Enable/DisableNotification HW LIN-Hardware-Unit (LIN-Controller / SCI/UART) Lin->HW Hardwarezugriff HW->Lin Interrupt Trcv Transceiver-IC HW->Trcv TxD / RxD Cluster LIN-Cluster Trcv->Cluster LIN-Bus

Diagrama de contexto: Lin situa-se entre LinIf e o hardware LIN e reporta wake-ups e erros ao EcuM, LinIf, DEM e DET. Fontes: [SWS_Lin_00234], [SWS_Lin_00235]

Lin_Init transfere o módulo de LIN_UNINIT para LIN_INIT ([SWS_Lin_00006], SWS LIN Driver p. 24). Depois disso, cada canal comuta entre LIN_CH_OPERATIONAL, LIN_CH_SLEEP_PENDING (apenas master) e LIN_CH_SLEEP. Para isso, estão disponíveis Lin_GoToSleep, Lin_GoToSleepInternal, Lin_Wakeup e Lin_WakeupInternal ([SWS_Lin_00166], [SWS_Lin_00167], [SWS_Lin_00169], [SWS_Lin_00256]).

LinZustaende cluster_kanal Estados de canal por canal (apenas em LIN_INIT) Reset Reset LIN_UNINIT LIN_UNINIT (não utilizável) Reset->LIN_UNINIT após reset LIN_INIT LIN_INIT (canais operacionais) LIN_UNINIT->LIN_INIT Lin_Init LIN_CH_OPERATIONAL LIN_CH_OPERATIONAL (participa do cluster) LIN_CH_SLEEP_PENDING LIN_CH_SLEEP_PENDING (apenas master) LIN_CH_OPERATIONAL->LIN_CH_SLEEP_PENDING Lin_GoToSleep (Go-to-sleep-Kommando) LIN_CH_SLEEP LIN_CH_SLEEP (Wake-up-Erkennung aktiv) LIN_CH_OPERATIONAL->LIN_CH_SLEEP Lin_GoToSleepInternal LIN_CH_SLEEP_PENDING->LIN_CH_SLEEP Lin_GetStatus (Interpretation) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_Wakeup (com pulso de wake-up) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_WakeupInternal (sem pulso de wake-up)

Diagrama de estados: estados do módulo e estados dos canais com suas transições. Que Lin_GetStatus conclui a etapa para LIN_CH_SLEEP é uma interpretação do diagrama. Fontes: SWS LIN Driver p. 24, [SWS_Lin_00166]

Canais mestre e escravo operam de forma fundamentalmente diferente. Um mestre dispara frames assincronamente com Lin_SendFrame e consulta o resultado mais tarde com Lin_GetStatus ([SWS_Lin_00191], [SWS_Lin_00168]). Esses serviços existem apenas quando pelo menos um canal está configurado como mestre ([SWS_Lin_00287]). Um escravo notifica cada header via LinIf_HeaderIndication ([SWS_Lin_00280]). Em função de Drc, ele então transmite, recebe ou ignora a resposta e a conclui com LinIf_TxConfirmation ou LinIf_RxIndication ([SWS_Lin_00282], [SWS_Lin_00274], [SWS_Lin_00275]).

Lin_CheckWakeup verifica wake-ups do barramento e os reporta ao EcuM e LinIf ([SWS_Lin_00160]). Em caso de erro, usos indevidos vão para a DET, como LIN_E_UNINIT ([SWS_Lin_00258]). Um timeout de hardware é reportado como LIN_E_TIMEOUT ao DEM ([SWS_Lin_00290]). Um canal mestre retorna erros de barramento como status; um canal escravo os reporta via LinIf_LinErrorIndication ([SWS_Lin_00233], [SWS_Lin_00277]).

Função, limite do sistema e relação de instâncias do driver LIN

O driver LIN Lin encapsula o hardware LIN do microcontrolador. Ele disponibiliza ao LIN Interface (LinIf) serviços relacionados ao canal: transmitir e receber frames, colocar canais em sleep e acordá-los, bem como verificar wake-ups. Todos os serviços estão disponíveis via Lin.h ([SWS_Lin_00191], [SWS_Lin_00160]). Como hardware, a especificação menciona três tipos de LIN-Hardware-Units: controladores LIN completos, SCI/UARTs simples e SCI/UARTs estendidas. Cada uma é conectada a um cluster LIN por meio de CIs transceptores (SWS LIN Driver p. 9). O próprio driver não disponibiliza funções de callback (SWS LIN Driver p. 49). Em vez disso, ele chama funções de seu ambiente.

Interfaces externas obrigatórias são Dem_SetEventStatus, EcuM_SetWakeupEvent e LinIf_WakeupConfirmation ([SWS_Lin_00234]). Opcionalmente, o driver utiliza, entre outros:

  • Det_ReportError e EcuM_CheckWakeup,
  • Icu_EnableNotification e Icu_DisableNotification,
  • para canais escravos, os callbacks LinIf_HeaderIndication, LinIf_RxIndication e LinIf_LinErrorIndication ([SWS_Lin_00235]).

[SWS_Lin_00226] lista os tipos importados como NetworkHandleType, EcuM_WakeupSourceType ou Std_ReturnType.

LinKontext LinIf LinIf (LIN Interface) Lin Lin (LIN-Treiber, MCAL) LinIf->Lin Lin_SendFrame, Lin_GetStatus (Master) Lin_GoToSleep(Internal), Lin_Wakeup(Internal) Lin_CheckWakeup EcuM EcuM Dem DEM Det DET (optional) Icu Icu (optional) Lin->LinIf LinIf_HeaderIndication, LinIf_RxIndication, LinIf_TxConfirmation, LinIf_LinErrorIndication (Slave) LinIf_WakeupConfirmation Lin->EcuM EcuM_SetWakeupEvent Lin->Dem Dem_SetEventStatus (LIN_E_TIMEOUT) Lin->Det Det_ReportError Lin->Icu Icu_Enable/DisableNotification HW LIN-Hardware-Unit (LIN-Controller / SCI/UART) Lin->HW Hardwarezugriff HW->Lin Interrupt Trcv Transceiver-IC HW->Trcv TxD / RxD Cluster LIN-Cluster Trcv->Cluster LIN-Bus

Diagrama de contexto: Lin situa-se entre LinIf e a LIN-Hardware-Unit. O driver reporta wake-ups ao EcuM e LinIf, e erros ao DEM e DET. Fontes: [SWS_Lin_00234], [SWS_Lin_00235], SWS LIN Driver p. 9

O driver é particionável. Ele opera em cada partição como uma instância independente, e uma chamada de API afeta apenas a partição na qual é realizada ([SWS_Lin_CONSTR_00270]). Se LinEcucPartitionRef referencia partições, LinChannelEcucPartitionRef deve referenciar exatamente uma delas ([SWS_Lin_CONSTR_00291]). LinChannel e LinTrcvChannel de um canal de comunicação devem referenciar a mesma partição ([SWS_Lin_CONSTR_00279]). O módulo rejeita mapeamentos de partição que a implementação não suporta ([SWS_Lin_00269]). Por canal, configuram-se, entre outros, baud rate, ID do canal, LinChannelWakeupSupport e o tipo de nó LinNodeType. Esta descrição de container provém de um release posterior (SWS LIN Driver p. 60).

Estados do módulo e dos canais, de Lin_Init até o estado de sleep

Após o reset, o módulo está no estado LIN_UNINIT e inutilizável. Lin_Init o conduz para LIN_INIT; ali, cada canal disponível está pronto para operação (SWS LIN Driver p. 24). Lin_Init recebe um ponteiro para uma estrutura Lin_ConfigType. O seu conteúdo é específico do hardware; ela contém os dados de inicialização para o driver, a Hardware-Unit e os canais ([SWS_Lin_00006], [SWS_Lin_00227]). O ambiente deve chamar Lin_Init apenas uma vez em tempo de execução (SWS LIN Driver p. 24).

Dentro de LIN_INIT, cada canal possui um estado próprio:

  • LIN_CH_OPERATIONAL: O canal participa do cluster.
  • LIN_CH_SLEEP: A detecção de wake-up está ativa; o hardware está, se aplicável, em modo de baixo consumo.
  • LIN_CH_SLEEP_PENDING: apenas em canais mestre, após Lin_GoToSleep.

Evidências: SWS LIN Driver p. 24, [SWS_Lin_00166]. Lin_GoToSleepInternal define o canal diretamente como LIN_CH_SLEEP ([SWS_Lin_00167]). Lin_Wakeup conduz de volta para LIN_CH_OPERATIONAL com pulso de wake-up; Lin_WakeupInternal, sem pulso ([SWS_Lin_00169], [SWS_Lin_00256]).

Interpretação: É provável que Lin_GetStatus conclua a transição de LIN_CH_SLEEP_PENDING para LIN_CH_SLEEP. Pergunta Q-bb592e1d2ab668f0 (aberta) O diagrama apresenta Lin_GetStatus como transição na parte do mestre, e a LIN Interface espera o valor de retorno LIN_CH_SLEEP na verificação do comando go-to-sleep (SWS LIN Interface p. 56).

LinZustaende cluster_kanal Estados de canal por canal (apenas em LIN_INIT) Reset Reset LIN_UNINIT LIN_UNINIT (não utilizável) Reset->LIN_UNINIT após reset LIN_INIT LIN_INIT (canais operacionais) LIN_UNINIT->LIN_INIT Lin_Init LIN_CH_OPERATIONAL LIN_CH_OPERATIONAL (participa do cluster) LIN_CH_SLEEP_PENDING LIN_CH_SLEEP_PENDING (apenas master) LIN_CH_OPERATIONAL->LIN_CH_SLEEP_PENDING Lin_GoToSleep (Go-to-sleep-Kommando) LIN_CH_SLEEP LIN_CH_SLEEP (Wake-up-Erkennung aktiv) LIN_CH_OPERATIONAL->LIN_CH_SLEEP Lin_GoToSleepInternal LIN_CH_SLEEP_PENDING->LIN_CH_SLEEP Lin_GetStatus (Interpretation) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_Wakeup (com pulso de wake-up) LIN_CH_SLEEP->LIN_CH_OPERATIONAL Lin_WakeupInternal (sem pulso de wake-up)

Diagrama de estados: Lin_Init eleva o módulo de LIN_UNINIT para LIN_INIT. Nele, cada canal alterna entre operação e sleep por meio de serviços de sleep e wake-up; a transição via Lin_GetStatus é uma interpretação. Fontes: SWS LIN Driver p. 24, [SWS_Lin_00166], [SWS_Lin_00167], [SWS_Lin_00169], [SWS_Lin_00256]

Descrição de frames via Lin_PduType e mapeamento de dados

Entre LinIf e o driver, Lin_PduType descreve um frame. A estrutura contém Pid, o modelo de checksum Cs, a direção da resposta Drc, o comprimento dos dados Dl e o ponteiro de dados SduPtr ([SWS_Lin_00232]). Os tipos dos elementos:

  • Lin_FramePidType: identificador 0…0x3F com dois bits de paridade, faixa de valores 0…0xFE ([SWS_Lin_00228]).
  • Lin_FrameDlType: 1…8 bytes de dados ([SWS_Lin_00231]).
  • Lin_FrameCsModelType: LIN_ENHANCED_CS ou LIN_CLASSIC_CS ([SWS_Lin_00229]). O driver deve ser capaz de calcular ambos os checksums ([SWS_Lin_00019]).

Lin_FrameResponseType define como o nó trata a resposta ([SWS_Lin_00230]): ele mesmo a transmite (LIN_FRAMERESPONSE_TX), recebe uma resposta externa relevante (LIN_FRAMERESPONSE_RX) ou a ignora (LIN_FRAMERESPONSE_IGNORE). Na memória, o byte transmitido primeiro fica no elemento 0, e o transmitido por último, no elemento n-1 (SWS LIN Driver p. 30). Se o hardware não puder armazenar bytes em buffer, como em uma UART simples, o driver disponibiliza um buffer temporário. A transmissão com verificação por releitura e a recepção operam de forma não bloqueante (SWS LIN Driver p. 28).

Canais mestre: Lin_SendFrame e consulta de status

Em canais mestre, LinIf dispara cada frame com o serviço assíncrono Lin_SendFrame. O serviço transmite o header LIN e, se aplicável, a resposta ([SWS_Lin_00191]). Isso se aplica a entradas de recepção, transmissão e slave-to-slave da tabela de escalonamento (SWS LIN Interface p. 34, SWS LIN Interface p. 37, SWS LIN Interface p. 40).

LinIf consulta o resultado com o serviço síncrono Lin_GetStatus: no mínimo após o comprimento máximo do frame, no máximo na próxima entrada pendente da tabela de escalonamento (SWS LIN Interface p. 35, [SWS_Lin_00168]). O serviço retorna um Lin_StatusType, como LIN_TX_OK, LIN_TX_BUSY, LIN_RX_OK, LIN_RX_BUSY ou LIN_RX_NO_RESPONSE. Via Lin_SduPtr, ele também retorna um ponteiro para o buffer de recepção shadow ou de hardware ([SWS_Lin_00233]).

Os dados recebidos permanecem consistentes até que o próximo frame seja recebido com sucesso ou o estado do canal mude. O processamento completo de recepção pode residir em Lin_GetStatus (SWS LIN Driver p. 30). Para frames disparados por eventos, aplica-se (SWS LIN Interface p. 127, SWS LIN Interface p. 129):

  • LIN_RX_NO_RESPONSE não avalia LinIf como erro.
  • LIN_RX_ERROR é considerado uma colisão e conduz à mudança para o escalonamento de resolução de colisão.

Lin_SendFrame, Lin_GoToSleep e Lin_GetStatus existem apenas se pelo menos um canal estiver configurado como mestre via LinNodeType ([SWS_Lin_00287], [SWS_Lin_00288], [SWS_Lin_00289]). No R20-11, esses serviços são especificados como não reentrantes ([SWS_Lin_00168]). Versões posteriores permitem reentrância para diferentes canais (SWS LIN Driver p. 48); para o R20-11, aplica-se o requisito.

Processamento de frame em um canal masterBSW-Task (zyklisch)LinIfLinObere SchichtUse Case: Entrada da schedule vencidaLinIf_MainFunction_<ChannelId>()RequestFrame()Lin_SendFrame(Channel, PduInfoPtr)E_OKassíncrono: cabeçalho e respostaexecutam de forma não bloqueanteUse Case: Verificação de status a partir do comprimento máximo do framelooppor chamada de MainFunction, enquanto o frame ainda estiver em execuçãoLinIf_MainFunction_<ChannelId>()Lin_GetStatus(Channel, &Lin_SduPtr)LIN_TX_BUSY / LIN_RX_BUSYaltLIN_RX_OKReceber dados via Lin_SduPtr (CopyBuffer)Rx-IndicationLIN_TX_OKTx-Confirmation (E_OK)LIN_RX_NO_RESPONSE (Event-triggered Frame)kein Kommunikationsfehler,nenhuma açãoLIN_RX_ERROR (Event-triggered Frame)ChangeToCollisionResolvingSchedule()

Diagrama de sequência: O mestre dispara um frame assincronamente com Lin_SendFrame e avalia o resultado em chamadas posteriores da MainFunction via Lin_GetStatus. Fontes: [SWS_Lin_00191], [SWS_Lin_00168], SWS LIN Interface p. 128, SWS LIN Interface p. 129, SWS LIN Interface p. 40

Canais escravos: processamento de resposta orientado por header

Um canal escravo deve ser capaz de receber um header a qualquer momento em LIN_CH_OPERATIONAL ([SWS_Lin_00272]). Para cada header, o driver chama LinIf_HeaderIndication. Nisso, PduPtr->Pid contém o PID recebido e PduPtr->SduPtr aponta para seu buffer de hardware ou shadow ([SWS_Lin_00280]). Se o hardware não detectar PIDs inválidos, o driver repassa o PID sem verificação ([SWS_Lin_00271]). Após o retorno E_OK, ele avalia PduPtr->Drc ([SWS_Lin_00282]):

  • Em LIN_FRAMERESPONSE_TX, ele utiliza Cs, Dl e SduPtr para transmitir a resposta ([SWS_Lin_00283]).
  • Em LIN_FRAMERESPONSE_RX, ele configura a recepção com Cs e Dl ([SWS_Lin_00284]).

Se LinIf_HeaderIndication retornar E_NOT_OK ou se Drc for igual a LIN_FRAMERESPONSE_IGNORE, o driver ignora a resposta ([SWS_Lin_00286]). Até o próximo header, ele não reporta nada ([SWS_Lin_00276]). Ele repassa diretamente uma resposta recebida com sucesso via LinIf_RxIndication e confirma uma transmitida via LinIf_TxConfirmation ([SWS_Lin_00274], [SWS_Lin_00275]). Cada resposta relevante deve ser concluída com um desses callbacks ou com LinIf_LinErrorIndication antes que o próximo header seja reportado ([SWS_Lin_00285]). O diagrama de recepção distingue duas variantes de hardware: controlador LIN em hardware e UART simples, na qual o driver copia cada byte para um buffer por interrupção (SWS LIN Driver p. 57).

Processamento de cabeçalho e resposta em um canal slaveLinController/UARTLinLinIfObere SchichtUse Case: Header-Empfang in LIN_CH_OPERATIONALInterrupt (Header empfangen)LinIf_HeaderIndication(Channel, PduPtr)PduPtr->Pid, PduPtr->SduPtr gesetztEvaluatePID()optSende-FrameTriggerTransmit (Daten in SduPtr-Puffer)SetPduPtrValues() (Drc, Cs, Dl)E_OK / E_NOT_OKPduPtr->Drc auswertenaltE_OK e Drc = LIN_FRAMERESPONSE_TXEnviar resposta com Cs, Dl, SduPtrInterrupt (Response gesendet)LinIf_TxConfirmation()Tx-ConfirmationE_OK e Drc = LIN_FRAMERESPONSE_RXConfigurar recepção com Cs, DlInterrupt (Response empfangen)LinIf_RxIndication(Channel, Lin_SduPtr)Rx-Indication (CopyBuffer)E_NOT_OK ou Drc = LIN_FRAMERESPONSE_IGNOREResponse ignorieren;nenhuma notificação até o próximo cabeçalhoErro de barramento no envio/recepção: cancelamento eLinIf_LinErrorIndication(Channel, ErrorStatus)

Diagrama de sequência: Em um canal escravo, cada header dispara uma indicação para LinIf. Em função de Drc, o driver transmite, recebe ou ignora a resposta. Fontes: [SWS_Lin_00280], [SWS_Lin_00282], [SWS_Lin_00283], [SWS_Lin_00284], [SWS_Lin_00286], [SWS_Lin_00274], [SWS_Lin_00275], SWS LIN Interface p. 121, SWS LIN Interface p. 132

Sleep, acordar e detecção de wake-up

Apenas um mestre pode transmitir o comando go-to-sleep. Lin_GoToSleep o envia assincronamente conforme a LIN 2.1 e define o canal como LIN_CH_SLEEP_PENDING mesmo em caso de falha na transmissão. Se LinChannelWakeupSupport estiver configurado, o serviço ativa também o monitoramento do barramento ([SWS_Lin_00166], SWS LIN Driver p. 43). Para escravos, Lin_GoToSleep não é aplicável; eles utilizam Lin_GoToSleepInternal (SWS LIN Driver p. 31). Esse serviço define LIN_CH_SLEEP de forma síncrona, ativa a detecção de wake-up e, opcionalmente, coloca o hardware em um modo de economia de energia ([SWS_Lin_00167], SWS LIN Driver p. 44). Cada canal aceita solicitações de sleep independentemente dos demais (SWS LIN Driver p. 31).

Para acordar, há dois serviços disponíveis. Lin_Wakeup envia um pulso de wake-up no barramento; Lin_WakeupInternal coloca o canal em operação sem pulso ([SWS_Lin_00169], [SWS_Lin_00262]). Lin_CheckWakeup verifica um wake-up do barramento. Se o serviço reconhece um evento, como um nível RxD permanentemente baixo, reporta-o imediatamente via EcuM_SetWakeupEvent ao EcuM e via LinIf_WakeupConfirmation a LinIf ([SWS_Lin_00160], SWS LIN Driver p. 42). LinIf_CheckWakeup decide com base na fonte de wake-up se Lin_CheckWakeup ou LinTrcv_CheckWakeup é chamado (SWS LIN Interface p. 112). O LIN não necessita de validação de wake-up (SWS EcuM p. 173).

Verificação de um wake-up a partir do barramento LINLIN-Hardware (Controller/Transceiver)EcuMLinIfLinKanal in LIN_CH_SLEEP,Monitoramento de barramento ativo (LinChannelWakeupSupport)Evento de wake-up (interrupção ou polling)LinIf_CheckWakeup(WakeupSource)Lin_CheckWakeup(Channel)(origem controlador LIN; caso contrário LinTrcv_CheckWakeup)Wake-up auswerten(z. B. RxD dauerhaft low)optWake-up erkanntEcuM_SetWakeupEvent()LinIf_WakeupConfirmation()E_OK / E_NOT_OKE_OK / E_NOT_OKLIN não requer validação de wake-up

Diagrama de sequência: Um wake-up do barramento é repassado via EcuM e LinIf_CheckWakeup para Lin_CheckWakeup. O driver reporta um evento detectado ao EcuM e LinIf. Fontes: [SWS_Lin_00160], [SWS_Lin_00234], SWS LIN Driver p. 42, SWS LIN Interface p. 112, SWS EcuM p. 147

Comportamento em caso de erro

Com a detecção de erros de desenvolvimento ativada, os serviços reportam o uso indevido à DET ([SWS_Lin_00258], [SWS_Lin_00259], [SWS_Lin_00260]; para Lin_Wakeup, de forma análoga SWS LIN Driver p. 45):

  • LIN_E_UNINIT em caso de chamada antes da inicialização,
  • LIN_E_INVALID_CHANNEL em caso de canal inválido ou inativo,
  • LIN_E_STATE_TRANSITION em caso de wake-up fora de LIN_CH_SLEEP.

Lin_GetVersionInfo reporta um ponteiro NULL com LIN_E_PARAM_POINTER ([SWS_Lin_00161], SWS LIN Driver p. 41). Com a DET desativada, Lin_CheckWakeup retorna E_NOT_OK para um canal inválido (SWS LIN Driver p. 42). Em geral, E_NOT_OK e LIN_NOT_OK indicam que ocorreu um erro de desenvolvimento ou de produção ([SWS_Lin_00191], [SWS_Lin_00233]).

LIN_E_TIMEOUT está especificado como erro de produção. Se for necessário aguardar uma alteração de status após uma modificação em registradores de controle do hardware, um timeout configurável protege essa espera. Se ele expirar, o erro é reportado ([SWS_Lin_00290]). A notificação segue via Dem_SetEventStatus ([SWS_Lin_00234]) para o evento referenciado em LinDemEventParameterRefs (SWS LIN Driver p. 65).

O driver reporta erros de comunicação de maneira distinta dependendo do tipo de nó. Canais mestre os retornam como status de Lin_GetStatus ([SWS_Lin_00233]):

  • LIN_TX_HEADER_ERROR em caso de erros de releitura, paridade ou barramento no header,
  • LIN_TX_ERROR em caso de falha na transmissão da resposta,
  • LIN_RX_ERROR em caso de erros de enquadramento, overrun ou checksum, bem como resposta curta demais.

Canais escravos abortam o processamento do frame e chamam LinIf_LinErrorIndication com um Lin_SlaveErrorType ([SWS_Lin_00277], [SWS_Lin_91140]). Eles reportam eventos inválidos de barramento enquanto aguardam um header como LIN_ERR_HEADER ([SWS_Lin_00281]).

LinFehlerpfade start Evento de erro no driver LIN art Tipo de erro? start->art dev Erro de desenvolvimento (apenas com detecção DET ativada) art->dev Uso incorreto da API hw Timeout durante a espera após modificação de registradores de controle do hardware art->hw Hardwarefehler com Erro de comunicação no barramento art->com Busfehler det Det_ReportError: LIN_E_UNINIT / LIN_E_INVALID_CHANNEL / LIN_E_STATE_TRANSITION / LIN_E_PARAM_POINTER dev->det ret Retorno E_NOT_OK ou LIN_NOT_OK det->ret dem Dem_SetEventStatus: LIN_E_TIMEOUT hw->dem dem->ret typ Tipo de nó do canal? com->typ master Master: status de erro em Lin_GetStatus (LIN_TX_HEADER_ERROR, LIN_TX_ERROR, LIN_RX_ERROR) typ->master Master slave Slave: aktuelle Frame-Bearbeitung abbrechen typ->slave Slave sind LinIf_LinErrorIndication(Channel, Lin_SlaveErrorType) z. B. LIN_ERR_HEADER, LIN_ERR_RESP_CHKSUM, LIN_ERR_NO_RESP slave->sind

Diagrama de atividades: Erros de desenvolvimento vão para a DET, o timeout de hardware para o DEM. Um canal mestre reporta erros de comunicação de barramento como status; um canal escravo, como indicação de erro. Fontes: [SWS_Lin_00258], [SWS_Lin_00290], [SWS_Lin_00233], [SWS_Lin_00277], [SWS_Lin_00281], [SWS_Lin_00235]

Evidências mais detalhadas

Guia gerado por IA. Baseia-se exclusivamente nas evidências fornecidas; passagens isoladas de documentos provêm de releases posteriores. Normativos são os requisitos do R20-11. Declarações identificadas como interpretação não são comprovadas diretamente.

LIN Driver (Lin)

Controls hardware LIN controllers on the ECU.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

função Lin_Init [SWS_Lin_00006] 📄 PDF

void Lin_Init (const Lin_ConfigType* Config);

Initializes the LIN module.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 2e00d30976de 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 Lin_Init serve para a inicialização do módulo de driver LIN da AUTOSAR Classic Platform conforme a especificação [SWS_Lin_00006]. A interface é disponibilizada através do cabeçalho Lin.h e endereçada internamente pelo ID de serviço 0x00 [SWS_Lin_00006].

Para a utilização e a chamada da função aplicam-se as seguintes condições de parâmetros e de interface:

  • Parâmetro de entrada: Como único parâmetro de passagem, é esperado Config [SWS_Lin_00006]. Trata-se de um ponteiro para o conjunto de dados de configuração do driver LIN do tipo const Lin_ConfigType* [SWS_Lin_00006]. Nem parâmetros de entrada/saída nem parâmetros puramente de saída estão previstos para esta interface [SWS_Lin_00006].
  • Valor de retorno: A função não retorna nenhum valor (void) [SWS_Lin_00006].
  • Semântica de execução: O processamento ocorre de forma totalmente síncrona (Synchronous), de modo que as etapas de inicialização do driver são executadas diretamente durante a chamada da função [SWS_Lin_00006].

No que diz respeito ao contexto de chamada e à concorrência, está determinado que Lin_Init não é reentrante (Non Reentrant) [SWS_Lin_00006]. Interpretação: Como a função inicializa fundamentalmente o módulo de driver LIN e não é concebida como reentrante, ela deve tipicamente ser chamada durante a fase de inicialização de todo o sistema, antes que outros serviços do driver LIN sejam utilizados. Pergunta Q-d535602a0d4708ce (aberta) Uma chamada simultânea ou múltipla a partir de diferentes contextos de execução é, presumivelmente, inadmissível.

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

Guia do implementador em breve (complexidade I1)

função Lin_CheckWakeup [SWS_Lin_00160] 📄 PDF

Std_ReturnType Lin_CheckWakeup (uint8 Channel);

This function checks if a wakeup has occurred on the addressed LIN channel.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 706d1bc705a9 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 Lin_CheckWakeup serve para verificar se ocorreu um evento de wake-up em um canal LIN endereçado [SWS_Lin_00160]. A interface está disponível através do arquivo de cabeçalho Lin.h e possui o ID de serviço 0x0a [SWS_Lin_00160]. Para a identificação do canal, a função recebe o parâmetro Channel do tipo de dados uint8 [SWS_Lin_00160]. Outros parâmetros de entrada ou de saída não estão previstos para esta interface [SWS_Lin_00160].

O resultado da execução é retornado sincronamente através do tipo de retorno Std_ReturnType [SWS_Lin_00160]. O valor de status E_OK indica que nenhum erro ocorreu durante a execução da chamada de API [SWS_Lin_00160]. Se, por outro lado, ocorrer um erro durante a execução, o serviço fornece o valor de retorno E_NOT_OK [SWS_Lin_00160]. Códigos de erro específicos, bem como notificações ao DET ou DEM, não estão especificados para este elemento nas fontes.

Quanto ao comportamento de concorrência, Lin_CheckWakeup está definida como não reentrante (Non Reentrant) [SWS_Lin_00160]. Os chamadores devem, portanto, garantir que as chamadas ocorram sequencialmente e que nenhuma execução simultânea aconteça. Como o contexto de chamada exato não está detalhado na especificação, a chamada deve ser iniciada, presumivelmente, por camadas superiores, como o gerenciamento de wake-up ou o ECU State Manager. Pergunta Q-40221056a2e2c042 (aberta)

Este texto foi criado por uma IA; todas as afirmações provêm das diretrizes do padrão AUTOSAR.

função Lin_SendFrame [SWS_Lin_00191] 📄 PDF

Std_ReturnType Lin_SendFrame (uint8 Channel, const Lin_PduType* PduInfoPtr);

Sends a LIN header and a LIN response, if necessary. The direction of the frame response (master response, slave response, slave - to - slave communication) is provided by the Pdu Info Ptr. 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: fb92456f64e2 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

A função Lin_SendFrame serve para o envio de um cabeçalho LIN e, quando necessário, da resposta LIN correspondente, sendo destinada exclusivamente a nós mestres LIN [SWS_Lin_00191]. Através do ponteiro PduInfoPtr é definida a direção de transmissão da resposta do frame, a qual pode mapear uma resposta de mestre, uma resposta de escravo ou uma comunicação escravo-para-escravo [SWS_Lin_00191].

Chamada e parâmetros: A execução da função ocorre de forma assíncrona [SWS_Lin_00191]. Na chamada, são passados os seguintes parâmetros de entrada:

  • Channel: Determina o canal LIN a ser endereçado como uint8 [SWS_Lin_00191].
  • PduInfoPtr: Ponteiro para uma estrutura do tipo Lin_PduType, que contém o identificador protegido (PID), o modelo de checksum (Checksum Model), o tipo de resposta, o comprimento de dados (Dl), bem como o ponteiro de dados para a SDU [SWS_Lin_00191].

Valores de retorno e comportamento em caso de erro: A função fornece o tipo de retorno Std_ReturnType [SWS_Lin_00191]:

  • E_OK: A solicitação de transmissão foi recebida com sucesso e aceita para execução assíncrona [SWS_Lin_00191].
  • E_NOT_OK: A solicitação de transmissão foi rejeitada porque há um erro de desenvolvimento (Development Error) ou um erro de produção (Production Error) [SWS_Lin_00191].

Concorrência e integração: A interface está especificada como não reentrante (Non Reentrant), motivo pelo qual chamadas paralelas no mesmo canal devem ser evitadas [SWS_Lin_00191]. A função possui o ID de serviço 0x04 e é incluída através do arquivo de cabeçalho Lin.h [SWS_Lin_00191].

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

função Lin_GoToSleep [SWS_Lin_00166] 📄 PDF

Std_ReturnType Lin_GoToSleep (uint8 Channel);

The service instructs the driver to transmit a go - to - sleep - command on the addressed LIN channel. 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: e15a8b1ff51c Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Função e contexto de chamada

A função Lin_GoToSleep instrui o driver LIN a enviar um comando go-to-sleep no canal LIN endereçado [SWS_Lin_00166]. Esse serviço de driver possui o ID de serviço 0x06 e é disponibilizado por meio do arquivo de cabeçalho Lin.h [SWS_Lin_00166]. A execução do serviço ocorre de forma assíncrona para o chamador [SWS_Lin_00166]. A declaração da função é Std_ReturnType Lin_GoToSleep (uint8 Channel) [SWS_Lin_00166].

Parâmetros e valores de retorno

Como único parâmetro de entrada, é passado Channel do tipo uint8, o qual identifica o canal LIN a ser acessado [SWS_Lin_00166]. Não existem parâmetros adicionais de entrada ou saída [SWS_Lin_00166].

O valor de retorno do tipo Std_ReturnType informa sobre a aceitação da solicitação [SWS_Lin_00166]:

  • E_OK: o comando go-to-sleep foi aceito com sucesso pelo driver [SWS_Lin_00166].
  • E_NOT_OK: o comando não foi aceito porque ocorreu um erro de desenvolvimento ou um erro de produção [SWS_Lin_00166].

Restrições e concorrência

Em relação à concorrência, a função é declarada como não reentrante (Non Reentrant) [SWS_Lin_00166]. Como restrição funcional essencial, Lin_GoToSleep é destinado exclusivamente a nós LIN master [SWS_Lin_00166].

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

função Lin_GoToSleepInternal [SWS_Lin_00167] 📄 PDF

Std_ReturnType Lin_GoToSleepInternal (uint8 Channel);

Sets the channel state to LIN_ CH_ SLEEP, enables the wake - up detection and optionally sets the LIN hardware unit to reduced power operation mode (if supported by HW).

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

A função síncrona Lin_GoToSleepInternal define o estado do canal LIN endereçado como LIN_CH_SLEEP, ativa a detecção de wake-up e coloca a unidade de hardware LIN opcionalmente em um modo reduzido de economia de energia, desde que isso seja suportado pelo hardware [SWS_Lin_00167]. O endereçamento do canal LIN desejado ocorre por meio do parâmetro de entrada Channel do tipo uint8, não havendo outros parâmetros de entrada ou saída [SWS_Lin_00167].

O resultado da execução é sinalizado sincronamente por meio do valor de retorno do tipo Std_ReturnType [SWS_Lin_00167]:

  • E_OK: o comando para colocar no modo de repouso foi aceito com sucesso [SWS_Lin_00167].
  • E_NOT_OK: o comando foi rejeitado porque ocorreu um erro de desenvolvimento ou de produção [SWS_Lin_00167].

Quanto à concorrência e ao contexto de chamada, Lin_GoToSleepInternal é especificado como não reentrante (Non Reentrant) [SWS_Lin_00167]. As unidades de software chamadoras devem, portanto, assegurar que as chamadas ocorram sequencialmente e não sejam sobrepostas de forma concorrente. A função é definida sob o ID de serviço 0x09 e está disponível por meio do arquivo de cabeçalho Lin.h [SWS_Lin_00167].

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

Guia do implementador em breve (complexidade I1)

função Lin_Wakeup [SWS_Lin_00169] 📄 PDF

Std_ReturnType Lin_Wakeup (uint8 Channel);

Generates a wake up pulse and sets the channel state to LIN_ CH_ OPERATIONAL.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 6a03f55b81c5 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 Lin_Wakeup pertence ao módulo de driver Lin da plataforma AUTOSAR Classic [SWS_Lin_00169]. Sua finalidade consiste em gerar um pulso de ativação (wake-up pulse) no canal de barramento endereçado e transferir o estado do canal imediatamente para LIN_CH_OPERATIONAL [SWS_Lin_00169]. A interface é disponibilizada por meio do arquivo de cabeçalho Lin.h com o ID de serviço 0x07 e a assinatura Std_ReturnType Lin_Wakeup (uint8 Channel) [SWS_Lin_00169].

Como parâmetro de entrada, a função recebe Channel do tipo uint8, com o qual o canal LIN a ser acionado é especificado [SWS_Lin_00169]. Não existem parâmetros de entrada/saída ou puramente de saída [SWS_Lin_00169]. O comportamento de execução é assíncrono (Asynchronous); o retorno da função confirma, portanto, apenas a aceitação da ordem, enquanto o pulso físico de wake-up é gerado posteriormente no barramento [SWS_Lin_00169].

Valores de retorno e tratamento de erros

Por meio do tipo de retorno Std_ReturnType, é informado o resultado da aceitação da solicitação [SWS_Lin_00169]:

  • E_OK: a solicitação de wake-up foi aceita pelo driver LIN e será processada [SWS_Lin_00169].
  • E_NOT_OK: a solicitação foi rejeitada porque ocorreu um erro de desenvolvimento ou de produção [SWS_Lin_00169].

Simultaneidade e restrições

De acordo com a especificação, a função é classificada como não reentrante (Non Reentrant) [SWS_Lin_00169]. Chamadas não devem, portanto, ocorrer de forma intercalada ou concorrente a partir de diferentes contextos de execução para a mesma instância de driver. Os componentes chamadores devem garantir a sincronização adequada.

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

Guia do implementador em breve (complexidade I1)

função Lin_WakeupInternal [SWS_Lin_00256] 📄 PDF

Std_ReturnType Lin_WakeupInternal (uint8 Channel);

Sets the channel state to LIN_ CH_ OPERATIONAL without generating a wake up pulse.

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

A função Lin_WakeupInternal disponibilizada através do cabeçalho Lin.h coloca um canal LIN assincronamente no estado operacional LIN_CH_OPERATIONAL, sem emitir um pulso de wake-up no barramento LIN físico [SWS_Lin_00256]. Ela processa solicitações internas de wake-up da interface LIN superior nas quais nenhum sinal de wake-up de barramento pode ser enviado [SWS_Lin_00262]. A chamada ocorre através do parâmetro Channel do tipo uint8. A função retorna E_OK quando a solicitação de wake-up foi aceita, ou E_NOT_OK quando a solicitação foi rejeitada ou há um erro de desenvolvimento ou de produção [SWS_Lin_00256].

Para o contexto de chamada e a concorrência, aplica-se que Lin_WakeupInternal não é reentrante (Non Reentrant) [SWS_Lin_00256]. Como condição estrita de ordenação, a máquina de estados do canal endereçado deve encontrar-se no estado de repouso LIN_CH_SLEEP no momento da chamada [SWS_Lin_00260].

Com a detecção de erros de desenvolvimento ativada, o módulo monitora as seguintes condições de erro e reporta os erros de desenvolvimento correspondentes:

  • LIN_E_UNINIT: Chamada da função antes da inicialização do módulo de driver LIN [SWS_Lin_00258].
  • LIN_E_INVALID_CHANNEL: O parâmetro de canal passado é inválido ou o canal endereçado está inativo [SWS_Lin_00259].
  • LIN_E_STATE_TRANSITION: Ocorre uma transição de estado inadmissível, pois o canal LIN não se encontra no estado LIN_CH_SLEEP [SWS_Lin_00260].

Esta nota de uso foi gerada automaticamente com base nos requisitos da especificação.

Guia do implementador em breve (complexidade I1)

tipo Lin_ConfigType [SWS_Lin_00227] 📄 PDF

This is the type of the external data structure containing the overall initialization data for the LIN driver and the SFR settings affecting the LIN channels. A pointe r to such a structure is provided to the LIN driver initialization routine for configuration of the driver, LIN hardware unit and LIN hardware channels.

tipo Lin_FramePidType [SWS_Lin_00228] 📄 PDF

Represents all valid protected identifier used by Lin_ Send Frame().

tipo Lin_FrameCsModelType [SWS_Lin_00229] 📄 PDF

This type is used to specify the Checksum model to be used for the LIN Frame.

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

O tipo de enumeração Lin_FrameCsModelType serve, conforme [SWS_Lin_00229], para a definição do modelo de checksum que é utilizado para um frame LIN individual. A definição de tipo está disponível por padrão através do cabeçalho Lin_GeneralTypes.h [SWS_Lin_00229].

Para a configuração, estão disponíveis dois valores conforme [SWS_Lin_00229]:

  • LIN_ENHANCED_CS: Seleciona o modelo de checksum aprimorado (Enhanced checksum model) [SWS_Lin_00229].
  • LIN_CLASSIC_CS: Seleciona o modelo de checksum clássico (Classic checksum model) [SWS_Lin_00229].

Como tipo de dados puro, Lin_FrameCsModelType não define, por si só, interfaces de função, valores de retorno ou mensagens de erro DET/DEM [SWS_Lin_00229]. A utilização deve ocorrer primariamente como parâmetro ou elemento dentro de descritores de configuração e de frame no módulo Lin (interpretação), para informar ao driver segundo qual algoritmo o checksum do frame é verificado durante a transmissão ou recepção. Um tratamento de erros para valores inválidos deve, presumivelmente, ser interceptado ao nível das APIs de processamento do driver ou da configuração do módulo (interpretação). Pergunta Q-06e26f4bcff1e520 (aberta) Pergunta Q-6d3354059d0641df (aberta)

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

Guia do implementador em breve (complexidade I1)

tipo Lin_FrameResponseType [SWS_Lin_00230] 📄 PDF

Thi s type is used to specify whether the frame processor is required to transmit the response part of the LIN frame.

tipo Lin_PduType [SWS_Lin_00232] 📄 PDF

This Type is used to provide PID, checksum model, data length and SDU pointer from the LIN Interface to the LIN driver.

tipo Lin_StatusType [SWS_Lin_00233] 📄 PDF

LIN operation states for a LIN channel or frame, as returned by the API service Lin_ Get Status().

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

O tipo de enumeração Lin_StatusType é disponibilizado via Lin_GeneralTypes.h e define os estados operacionais e de transmissão para canais LIN e frames LIN que são informados como valor de retorno do serviço de API Lin_GetStatus() [SWS_Lin_00233].

Os valores de estado dividem-se em estados de canal e valores de operação de frame [SWS_Lin_00233]:

  • Status do canal: LIN_OPERATIONAL representa a operação normal, na qual o canal LIN está pronto para a transmissão do próximo cabeçalho e não há dados presentes de um frame anterior (por exemplo, após a inicialização). Em contrapartida, LIN_CH_SLEEP representa o estado de repouso do canal, no qual a detecção de wake-up está ativada para nós slave [SWS_Lin_00233].
  • Transmissões em andamento: LIN_TX_BUSY identifica um envio em andamento de cabeçalho ou resposta. LIN_RX_BUSY sinaliza um processo de recepção em andamento no qual pelo menos um byte de resposta já chegou, mas ainda não o byte final de checksum [SWS_Lin_00233].
  • Conclusão bem-sucedida: LIN_TX_OK confirma a transmissão bem-sucedida, enquanto LIN_RX_OK indica a recepção sem erros de uma resposta completa [SWS_Lin_00233].
  • Estados de erro e timeouts: LIN_NOT_OK indica erros de desenvolvimento ou de produção. Em operações de envio, o tipo diferencia entre LIN_TX_HEADER_ERROR (erro no envio do cabeçalho devido a divergência de dados, erro de paridade do identificador ou erros físicos de barramento) e LIN_TX_ERROR (erro na transmissão da resposta devido a divergência de dados ou erro de barramento). No lado da recepção, LIN_RX_ERROR caracteriza erros de recepção como erros de enquadramento (framing), overrun, checksum ou respostas incompletas; LIN_RX_NO_RESPONSE reporta a ausência total de bytes de resposta [SWS_Lin_00233].

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

Guia do implementador em breve (complexidade I1)

tipo Lin_SlaveErrorType [SWS_Lin_91140] 📄 PDF

This type represents the slave error types that are detected during header reception and response transmission / reception.

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

O tipo enumerado Lin_SlaveErrorType representa os tipos específicos de erro de um LIN slave detectados durante a recepção do cabeçalho, bem como durante a transmissão ou recepção da resposta [SWS_Lin_91140]. A definição do tipo é disponibilizada por meio do arquivo de cabeçalho Lin_GeneralTypes.h [SWS_Lin_91140].

Estados de erro e intervalo de valores

A enumeração cobre erros durante as diferentes fases da comunicação LIN [SWS_Lin_91140]:

  • LIN_ERR_HEADER: sinaliza um erro na recepção do cabeçalho LIN [SWS_Lin_91140].
  • LIN_ERR_RESP_STOPBIT: indica um erro de enquadramento (framing error) ou erro de stop bit na resposta [SWS_Lin_91140].
  • LIN_ERR_RESP_CHKSUM: identifica um erro de checksum da resposta recebida [SWS_Lin_91140].
  • LIN_ERR_RESP_DATABIT: reporta um erro de monitoramento de bit (bit monitoring error) de um bit de dados enviado na resposta [SWS_Lin_91140].
  • LIN_ERR_NO_RESP: indica que nenhuma resposta ao cabeçalho foi recebida [SWS_Lin_91140].
  • LIN_ERR_INC_RESP: ocorre quando uma resposta incompleta foi recebida ou transmitida [SWS_Lin_91140].

Uso e restrições

Interpretação: uma vez que o presente excerto de especificação não contém assinaturas de função concretas, supõe-se que o tipo sirva como valor de retorno ou parâmetro de status em notificações para módulos superiores, como o LIN Interface. Pergunta Q-6a9c54976345ca2b (aberta) Outros detalhes sobre reentrância, contextos de chamada ou execução síncrona ou assíncrona não estão contidos no excerto.

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

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

Record
AUTOSAR/AP/record/CP_MOD_Lin
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Lin@rel:R20-11#c5f8968a
Content hash
c5f8968a
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_LINDriver.pdf#nameddest=SWS_Lin_00006

Inicialização e estado

Lin_GetStatus função

Service Lin_GetStatus.

Lin_StatusType Lin_GetStatus (uint8 Channel, const uint8* * Lin_SduPtr);

Returns the version information of this module.

void Lin_GetVersionInfo (Std_VersionInfoType* versioninfo);
Lin_Init função

Initializes the LIN module.

void Lin_Init (const Lin_ConfigType* Config);

Serviços

This function checks if a wakeup has occurred on the addressed LIN channel.

Std_ReturnType Lin_CheckWakeup (uint8 Channel);
Lin_GoToSleep função

The service instructs the driver to transmit a go - to - sleep - command on the addressed LIN channel. Only used for LIN master nodes.

Std_ReturnType Lin_GoToSleep (uint8 Channel);

Sets the channel state to LIN_ CH_ SLEEP, enables the wake - up detection and optionally sets the LIN hardware unit to reduced power operation mode (if supported by HW).

Std_ReturnType Lin_GoToSleepInternal (uint8 Channel);
Lin_SendFrame função

Sends a LIN header and a LIN response, if necessary. The direction of the frame response (master response, slave response, slave - to - slave communication) is provided by the Pdu Info Ptr. Only used for LIN master nodes.

Std_ReturnType Lin_SendFrame (uint8 Channel, const Lin_PduType* PduInfoPtr);
Lin_Wakeup função

Generates a wake up pulse and sets the channel state to LIN_ CH_ OPERATIONAL.

Std_ReturnType Lin_Wakeup (uint8 Channel);

Sets the channel state to LIN_ CH_ OPERATIONAL without generating a wake up pulse.

Std_ReturnType Lin_WakeupInternal (uint8 Channel);

Tipos

This is the type of the external data structure containing the overall initialization data for the LIN driver and the SFR settings affecting the LIN channels. A pointe r to such a structure is provided to the LIN driver initialization routine for configuration of the driver, LIN hardware unit and LIN hardware channels.

This type is used to specify the Checksum model to be used for the LIN Frame.

This type is used to specify the number of SDU data bytes to copy.

Represents all valid protected identifier used by Lin_ Send Frame().

Thi s type is used to specify whether the frame processor is required to transmit the response part of the LIN frame.

This Type is used to provide PID, checksum model, data length and SDU pointer from the LIN Interface to the LIN driver.

This type represents the slave error types that are detected during header reception and response transmission / reception.

LIN operation states for a LIN channel or frame, as returned by the API service Lin_ Get Status().