LIN Driver (Lin)
Controls hardware LIN controllers on the ECU.
Funktionen — Übersicht
void Lin_Init (const Lin_ConfigType* Config);Initializes the LIN module.Std_ReturnType Lin_CheckWakeup (uint8 Channel);This function checks if a wakeup has occurred on the addressed LIN channel.void Lin_GetVersionInfo (Std_VersionInfoType* versioninfo);Returns the version information of this module.Std_ReturnType Lin_SendFrame (uint8 Channel, const Lin_PduType* PduInfoPtr);Sends a LIN header and a LIN response, if necessary.Std_ReturnType Lin_GoToSleep (uint8 Channel);The service instructs the driver to transmit a go - to - sleep - command on the addressed LIN channel.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...Std_ReturnType Lin_Wakeup (uint8 Channel);Generates a wake up pulse and sets the channel state to LIN_ CH_ OPERATIONAL.Std_ReturnType Lin_WakeupInternal (uint8 Channel);Sets the channel state to LIN_ CH_ OPERATIONAL without generating a wake up pulse.Lin_StatusType Lin_GetStatus (uint8 Channel, const uint8* * Lin_SduPtr);Service Lin_GetStatus.
Typen — Übersicht
struct Lin_ConfigTypeThis is the type of the external data structure containing the overall initialization data for the LIN driver and the SFR...Lin_FramePidTypeRepresents all valid protected identifier used by Lin_ Send Frame().Lin_FrameCsModelTypeThis type is used to specify the Checksum model to be used for the LIN Frame.Lin_FrameResponseTypeThi s type is used to specify whether the frame processor is required to transmit the response part of the LIN frame.Lin_FrameDlTypeThis type is used to specify the number of SDU data bytes to copy.Lin_PduTypeThis Type is used to provide PID, checksum model, data length and SDU pointer from the LIN Interface to the LIN driver.enum Lin_StatusTypeLIN operation states for a LIN channel or frame, as returned by the API service Lin_ Get Status().enum Lin_SlaveErrorTypeThis type represents the slave error types that are detected during header reception and response transmission / reception.
Funktionen & Typen — Detailansicht
função Lin_Init [SWS_Lin_00006] 📄 PDF
void Lin_Init (const Lin_ConfigType* Config);
Initializes the LIN module.
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 tipoconst 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.
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_GetVersionInfo [SWS_Lin_00161] 📄 PDF
void Lin_GetVersionInfo (Std_VersionInfoType* versioninfo);
Returns the version information of this module.
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.
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 comouint8[SWS_Lin_00191].PduInfoPtr: Ponteiro para uma estrutura do tipoLin_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.
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).
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.
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.
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 estadoLIN_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)
função Lin_GetStatus [SWS_Lin_00168] 📄 PDF
Lin_StatusType Lin_GetStatus (uint8 Channel, const uint8* * Lin_SduPtr);
Service Lin_GetStatus.
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.
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_FrameDlType [SWS_Lin_00231] 📄 PDF
This type is used to specify the number of SDU data bytes to copy.
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().
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_OPERATIONALrepresenta 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_SLEEPrepresenta 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_BUSYidentifica um envio em andamento de cabeçalho ou resposta.LIN_RX_BUSYsinaliza 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_OKconfirma a transmissão bem-sucedida, enquantoLIN_RX_OKindica a recepção sem erros de uma resposta completa [SWS_Lin_00233]. - Estados de erro e timeouts:
LIN_NOT_OKindica erros de desenvolvimento ou de produção. Em operações de envio, o tipo diferencia entreLIN_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) eLIN_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_ERRORcaracteriza erros de recepção como erros de enquadramento (framing), overrun, checksum ou respostas incompletas;LIN_RX_NO_RESPONSEreporta 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.
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
gemini-3.8-flash-low· 2026-10-13 · Original em alemão