CAN Transport Layer (CanTp)
Provides segmentation and reassembly of CAN messages up to 4095 bytes (ISO 15765-2).
Funktionen — Übersicht
void CanTp_Init (const CanTp_ConfigType* CfgPtr);This function initializes the Can Tp module.void CanTp_GetVersionInfo (Std_VersionInfoType* versioninfo);This function returns the version information of the Can Tp module.void CanTp_Shutdown (void);This function is called to shutdown the Can Tp module.Std_ReturnType CanTp_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);Requests transmission of a PDU.Std_ReturnType CanTp_CancelTransmit (PduIdType TxPduId);Requests cancellation of an ongoing transmission of a PDU in a lower layer communication module.Std_ReturnType CanTp_CancelReceive (PduIdType RxPduId);Requests cancellation of an ongoing reception of a PDU in a lower layer transport protocol module.Std_ReturnType CanTp_ChangeParameter (PduIdType id, TPParameterType parameter, uint16 value);Request to change a specific transport protocol parameter (e.Std_ReturnType CanTp_ReadParameter (PduIdType id, TPParameterType parameter, uint16* value);This service is used to read the current value of reception parameters BS and STmin for a specified N - SDU.void CanTp_MainFunction (void);The main function for scheduling the CAN TP.void CanTp_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);Indication of a received PDU from a lower layer communication interface module.void CanTp_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.
Typen — Übersicht
struct CanTp_ConfigTypeData structure type for the post - build configuration parameters.
Funktionen & Typen — Detailansicht
função CanTp_Init [SWS_CanTp_00208] 📄 PDF
void CanTp_Init (const CanTp_ConfigType* CfgPtr);
This function initializes the Can Tp module.
A função síncrona e não reentrante CanTp_Init inicializa o módulo CanTp [SWS_CanTp_00208]. Ela recebe, por meio do parâmetro CfgPtr, um ponteiro para os dados de configuração post-build (CanTp_ConfigType) e não possui valor de retorno [SWS_CanTp_00208]. O ambiente do módulo deve obrigatoriamente chamar CanTp_Init antes que o módulo possa ser utilizado para outros processamentos [SWS_CanTp_00199].
Durante a inicialização, todas as variáveis globais do módulo são inicializadas e todas as conexões do protocolo de transporte são colocadas em um subestado de CANTP_ON, no qual nenhuma transmissão segmentada nem recepção segmentada está ativa [SWS_CanTp_00030]. Os caminhos de recepção encontram-se no estado CANTP_RX_WAIT e os caminhos de transmissão no estado CANTP_TX_WAIT [SWS_CanTp_00030]. Após a execução bem-sucedida, o módulo muda para o estado interno CANTP_ON [SWS_CanTp_00170].
Se CanTp_Init for chamada quando o módulo já estiver no estado global CANTP_ON, a função reinicia o módulo para o estado Idle, de modo que nenhuma operação de transmissão ou recepção esteja em andamento [SWS_CanTp_00111].
Se a detecção de erros de desenvolvimento (Development Error Detection) estiver ativada, o módulo CanTp reporta o erro CANTP_E_UNINIT caso o PDU Router ou a CAN Interface tente executar funções do módulo (com exceção de CanTp_GetVersionInfo) antes da chamada de CanTp_Init [SWS_CanTp_00031].
Este texto foi gerado por uma IA com base na especificação.
Guia do implementador em breve (complexidade I2)
função CanTp_GetVersionInfo [SWS_CanTp_00210] 📄 PDF
void CanTp_GetVersionInfo (Std_VersionInfoType* versioninfo);
This function returns the version information of the Can Tp module.
função CanTp_Shutdown [SWS_CanTp_00211] 📄 PDF
void CanTp_Shutdown (void);
This function is called to shutdown the Can Tp module.
Utilização e contexto de chamada
A função CanTp_Shutdown serve para desativar de forma ordenada todo o módulo CanTp ([SWS_CanTp_00211]). A interface é disponibilizada através do arquivo de cabeçalho CanTp.h e possui o Service ID 0x02 ([SWS_CanTp_00211]). A chamada é processada de forma síncrona, não recebe parâmetros de entrada e não fornece nenhum valor de retorno ([SWS_CanTp_00211]).
Transição de estado e limpeza
Durante a execução, CanTp_Shutdown fecha todas as conexões de protocolo de transporte ainda pendentes, libera todos os recursos alocados e transita o módulo CanTp para o estado CANTP_OFF ([SWS_CanTp_00202]). Um aspecto essencial do comportamento de cancelamento é que nenhuma notificação expressa pode ser disparada para camadas superiores para transmissões de quadros ou procedimentos de recepção de quadros ainda pendentes ([SWS_CanTp_00200]).
Simultaneidade e condições marginais
A função é especificada como não reentrante (Non Reentrant) ([SWS_CanTp_00211]). Por conseguinte, não deve ser chamada simultaneamente a partir de diferentes contextos de execução ou rotinas de interrupção. Códigos de erro específicos ou notificações para a gestão de erros não estão previstos no âmbito funcional da interface.
Esta nota de uso foi criada de forma automatizada com base na especificação AUTOSAR Classic Release R20-11.
Guia do implementador em breve (complexidade I1)
função CanTp_Transmit [SWS_CanTp_00212] 📄 PDF
Std_ReturnType CanTp_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);
Requests transmission of a PDU.
usar
A função CanTp_Transmit destina-se à solicitação de transmissão de uma N-SDU através da camada de transporte CAN [SWS_CanTp_00212]. Como parâmetros, são passados o identificador da PDU a ser transmitida (TxPduId), bem como um ponteiro para dados, comprimento e metadados (PduInfoPtr) [SWS_CanTp_00212]. A chamada reporta com E_OK a aceitação bem-sucedida ou com E_NOT_OK a rejeição da solicitação [SWS_CanTp_00212]. Enquanto a chamada é confirmada de forma síncrona, o processamento da transmissão é assíncrono [SWS_CanTp_00176] (Interpretação: a indicação "Synchronous" na tabela de especificação deve referir-se à recepção da solicitação). Pergunta Q-df438ddaa4963aba (aberta)
Interação e processamento de PDUs
Para N-SDUs com metadados, o módulo armazena as informações de endereçamento (dependendo do formato de endereçamento, como Normal, Extended, Mixed 11 bit, Normal fixed ou Mixed 29 bit) a fim de utilizá-las para N-PDUs SF, FF e CF, bem como para a identificação de N-PDUs FC [SWS_CanTp_00334]. Se nenhum metadado for utilizado, CanTp_Transmit acessa apenas a indicação de comprimento SduLength para a preparação do PCI de SF ou FF e não utiliza o buffer de dados da N-SDU [SWS_CanTp_00225].
Tratamento de erros e simultaneidade
- Verificação de erros: se o DET estiver ativado e
PduInfoPtrfor um ponteiroNULL, a função reporta o erroCANTP_E_PARAM_POINTERe retorna sem nenhuma ação adicional [SWS_CanTp_00321]. - Ocupação do canal: se o canal atribuído estiver no estado
CANTP_TX_PROCESSINGou se uma sessão para o identificador da N-SDU já estiver em andamento, a solicitação de transmissão é rejeitada eE_NOT_OKé retornado [SWS_CanTp_00123], [SWS_CanTp_00206]. - Reentrância: o serviço é reentrante para IDs de PDU diferentes, mas não é reentrante para o mesmo ID de PDU [SWS_CanTp_00212].
Este texto foi gerado por uma IA com base na especificação AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I2)
função CanTp_CancelTransmit [SWS_CanTp_00246] 📄 PDF
Std_ReturnType CanTp_CancelTransmit (PduIdType TxPduId);
Requests cancellation of an ongoing transmission of a PDU in a lower layer communication module.
A função síncrona CanTp_CancelTransmit solicita o cancelamento de uma transmissão de PDU em andamento em um módulo de comunicação subordinado [SWS_CanTp_00246] e inicia, assim, o cancelamento do processo de envio [SWS_CanTp_00274]. O identificador da PDU afetada (TxPduId) é passado como parâmetro [SWS_CanTp_00246]. Como valor de retorno, E_OK sinaliza a realização bem-sucedida do cancelamento pelo módulo de destino, enquanto E_NOT_OK indica uma rejeição [SWS_CanTp_00246].
Após a chamada da função, a transmissão na conexão afetada é cancelada [SWS_CanTp_00243]. Se o cancelamento tiver sido executado com sucesso, o módulo CanTp chama obrigatoriamente a confirmação PduR_CanTpTxConfirmation com o resultado negativo E_NOT_OK para informar as camadas superiores sobre o cancelamento [SWS_CanTp_00255].
Com a detecção de erros de desenvolvimento (Development Error Detection) ativada, CanTp_CancelTransmit verifica a validade de TxPduId: no caso de um parâmetro inválido, o erro de desenvolvimento CANTP_E_PARAM_ID é gerado e E_NOT_OK é retornado [SWS_CanTp_00254]. Caso o cancelamento seja solicitado para uma N-SDU que não esteja atualmente em processo de transmissão, o módulo reporta o erro de tempo de execução CANTP_E_OPER_NOT_SUPPORTED ao Default Error Tracer (DET) e retorna igualmente E_NOT_OK [SWS_CanTp_00254].
Em relação à simultaneidade, a função é reentrante para diferentes IDs de PDU, mas não pode ser chamada concorrentemente para a mesma TxPduId [SWS_CanTp_00246].
Esta nota de uso foi criada automaticamente com base na especificação AUTOSAR.
Guia do implementador em breve (complexidade I2)
função CanTp_CancelReceive [SWS_CanTp_00257] 📄 PDF
Std_ReturnType CanTp_CancelReceive (PduIdType RxPduId);
Requests cancellation of an ongoing reception of a PDU in a lower layer transport protocol module.
A função CanTp_CancelReceive cancela de forma síncrona a recepção em andamento de uma PDU em um módulo subordinado de protocolo de transporte [SWS_CanTp_00257]. Ela está disponível por meio do arquivo de cabeçalho CanTp.h e possui o Service-ID 0x4c [SWS_CanTp_00257].
Uso e condições de chamada
Por meio do parâmetro de entrada RxPduId é passado o identificador da PDU a ser cancelada [SWS_CanTp_00257]. A chamada é processada de forma síncrona e está especificada como não reentrante (Non Reentrant) [SWS_CanTp_00257]. Como valor de retorno, a interface do tipo Std_ReturnType fornece:
E_OK: o cancelamento foi executado com sucesso pelo módulo de destino [SWS_CanTp_00257].E_NOT_OK: o cancelamento foi rejeitado pelo módulo de destino [SWS_CanTp_00257].
Tratamento de erros
Com a detecção de erros de desenvolvimento (Development Error Detection) ativada, a função valida o parâmetro RxPduId [SWS_CanTp_00260]:
- Se o valor de
RxPduIdfor inválido,CanTp_CancelReceivereporta o erro de desenvolvimentoCANTP_E_PARAM_IDe retornaE_NOT_OK[SWS_CanTp_00260]. - Se for solicitado um cancelamento para uma N-SDU que não se encontre atualmente em processo de recepção em andamento, o módulo reporta o erro de tempo de execução
CANTP_E_OPER_NOT_SUPPORTEDao Default Error Tracer e retornaE_NOT_OK[SWS_CanTp_00260].
Interação com módulos vizinhos
Se o cancelamento da recepção tiver sido executado com sucesso, o CanTp chama a função de callback PduR_CanTpRxIndication com o resultado da notificação E_NOT_OK para informar a camada superior sobre o cancelamento [SWS_CanTp_00263].
Esta nota de uso baseia-se na especificação AUTOSAR Classic R20-11 e foi gerada automaticamente.
Guia do implementador em breve (complexidade I1)
função CanTp_ChangeParameter [SWS_CanTp_00302] 📄 PDF
Std_ReturnType CanTp_ChangeParameter (PduIdType id, TPParameterType parameter, uint16 value);
Request to change a specific transport protocol parameter (e.g. block size).
A função síncrona CanTp_ChangeParameter destina-se à alteração em tempo de execução de um parâmetro específico do protocolo de transporte, como, por exemplo, o tamanho do bloco ([SWS_CanTp_00302]). Disponibilizado por meio do arquivo de cabeçalho CanTp.h, o serviço aceita o identificador da PDU (id), o identificador do parâmetro (parameter), bem como o novo valor a ser definido (value) ([SWS_CanTp_00302]). Em caso de execução bem-sucedida, a função retorna E_OK; se a alteração falhar ou for rejeitada, ela retorna E_NOT_OK ([SWS_CanTp_00302]).
Em relação à simultaneidade e às condições de chamada, aplicam-se as seguintes diretrizes:
- A interface é implementada como não reentrante (Non Reentrant) ([SWS_CanTp_00302]).
- Se a N-SDU afetada já se encontrar em um processo de recepção em andamento no momento da chamada,
CanTp_ChangeParameteré interrompida imediatamente, retornaE_NOT_OKe não altera o valor do parâmetro ([SWS_CanTp_00304]).
Existe uma interação especial no caso de conexões genéricas: se a função for chamada para uma N-SDU com MetaData, a alteração do parâmetro será aplicada a todas as conexões genéricas e assumida para todos os processos de recepção subsequentes ([SWS_CanTp_00338]).
Esta nota de uso foi gerada automaticamente com base nos requisitos da especificação.
Guia do implementador em breve (complexidade I1)
função CanTp_ReadParameter [SWS_CanTp_00323] 📄 PDF
Std_ReturnType CanTp_ReadParameter (PduIdType id, TPParameterType parameter, uint16* value);
This service is used to read the current value of reception parameters BS and STmin for a specified N - SDU.
usar
A função síncrona CanTp_ReadParameter destina-se à leitura do valor atual dos parâmetros de recepção BS (Block Size) ou STmin (Separation Time minimum) para uma N-SDU de recepção especificada [SWS_CanTp_00323]. A declaração está disponível por meio do arquivo de cabeçalho CanTp.h [SWS_CanTp_00323].
A interface possui os seguintes parâmetros:
id(in): identificador da N-SDU recebida (tipoPduIdType), para a qual o parâmetro de recepção é lido [SWS_CanTp_00323].parameter(in): determina o parâmetro a ser lido (BSouSTmindo tipoTPParameterType) [SWS_CanTp_00323].value(out): ponteiro parauint16, através do qual o valor do parâmetro lido é disponibilizado [SWS_CanTp_00323].
Como valor de retorno, a função retorna Std_ReturnType; neste caso, E_OK sinaliza a aceitação da solicitação e E_NOT_OK a rejeição [SWS_CanTp_00323].
Tratamento de erros
Caso a detecção de erros de desenvolvimento (Development Error Detection) esteja ativada, CanTp_ReadParameter verifica a validade dos parâmetros id e parameter [SWS_CanTp_00324]. Se um desses parâmetros for inválido, a função reporta o erro de desenvolvimento CANTP_E_PARAM_ID e retorna E_NOT_OK [SWS_CanTp_00324].
Simultaneidade e restrições
A função está especificada como não reentrante (Non Reentrant) [SWS_CanTp_00323]. Os chamadores devem evitar acessos paralelos à mesma interface.
Este texto foi gerado por uma IA com base nos documentos de especificação do AUTOSAR R20-11.
Guia do implementador em breve (complexidade I1)
função CanTp_MainFunction [SWS_CanTp_00213] 📄 PDF
void CanTp_MainFunction (void);
The main function for scheduling the CAN TP.
A função CanTp_MainFunction serve como ponto de entrada central para o escalonamento periódico do protocolo de transporte CAN (CAN TP) [SWS_CanTp_00213], [SWS_CanTp_00164]. Ela possui o ID de serviço 0x06, tem a assinatura void CanTp_MainFunction(void) e está disponível através do cabeçalho SchM_CanTp.h [SWS_CanTp_00213]. Ela não recebe parâmetros e não retorna nenhum valor [SWS_CanTp_00213].
Contexto de chamada e temporização
A chamada é iniciada de acordo com o período necessário pelo Schedule Manager ou pelo módulo Free Running Timer [SWS_CanTp_00164]. Dentro do módulo, CanTp_MainFunction assume o monitoramento temporal e o controle das execuções do protocolo [SWS_CanTp_00164]. Especificamente, a função participa do processamento dos seguintes temporizadores e condições de tempo:
- Os timeouts de protocolo da transmissão e confirmação:
N_As,N_Bs,N_Csbem comoN_Ar,N_BreN_Cr[SWS_CanTp_00164]. - O cumprimento do tempo mínimo de separação de frames
STMmin[SWS_CanTp_00164].
Tratamento de erros e simultaneidade
Códigos de erro específicos para DET ou DEM não estão definidos no payload para esta função. Interpretação: como função de escalonamento chamada ciclicamente, CanTp_MainFunction não deve ser reentrante e deve exigir uma taxa de chamada consistente para assegurar a decrementação correta dos temporizadores internos.
Pergunta Q-2fe22e31085abf49 (aberta)
Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I1)
função CanTp_RxIndication [SWS_CanTp_00214] 📄 PDF
void CanTp_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);
Indication of a received PDU from a lower layer communication interface module.
Utilização e semântica
A função síncrona [SWS_CanTp_00214] notifica o módulo de transporte CAN sobre a receção de uma N-PDU por parte de um módulo de interface de comunicação subjacente. A chamada transmite a identificação da PDU recebida (RxPduId), bem como o comprimento (SduLength), os dados úteis (SduDataPtr) e os metadados associados através do ponteiro PduInfoPtr. A função não possui valor de retorno.
Simultaneidade e contexto de chamada
A função é reentrante para IDs de PDU diferentes, mas não é reentrante para o mesmo ID de PDU [SWS_CanTp_00214]. CanTp_RxIndication pode ser chamada no contexto de interrupção, por exemplo diretamente a partir da interrupção de receção CAN [SWS_CanTp_00235].
Interação em ligações genéricas
Em caso de chamada para Single Frames (SF) ou First Frames (FF) com metadados, o CanTp armazena as informações de endereço contidas (tais como N_SA e N_TA no endereçamento Normal fixed ou Mixed de 29 bits). Estas informações servem para o estabelecimento da ligação com a camada superior, o envio de Flow Control Frames (FC) e a deteção de Consecutive Frames (CF) [SWS_CanTp_00330]. Em frames CF subsequentes e frames FC recebidos, o CanTp valida os dados de endereço dos metadados contra os valores armazenados [SWS_CanTp_00333], [SWS_CanTp_00336].
Tratamento de erros e padding
Se o DET estiver ativado e PduInfoPtr for um ponteiro NULL, a função reporta o erro CANTP_E_PARAM_POINTER e retorna sem efetuar qualquer ação [SWS_CanTp_00322]. Se a verificação de padding estiver ativada para frames com uma carga útil de até 8 bytes (CanTpRxPaddingActivation ou CanTpTxPaddingActivation igual a CANTP_ON), o erro de tempo de execução CANTP_E_PADDING é reportado ao DET em caso de erros de comprimento:
- Um SF com
SduLength < 8é rejeitado [SWS_CanTp_00345]. - Um último CF com
SduLength != 8cancela a receção em curso viaPduR_CanTpRxIndication()comE_NOT_OK[SWS_CanTp_00346]. - Um FC recebido com
SduLength < 8cancela a transmissão em curso viaPduR_CanTpTxConfirmation()comE_NOT_OK[SWS_CanTp_00349].
Este texto foi gerado por uma IA e serve como orientação. A especificação AUTOSAR é determinante.
Guia do implementador em breve (complexidade I2)
função CanTp_TxConfirmation [SWS_CanTp_00215] 📄 PDF
void CanTp_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.
O módulo CanTp disponibiliza a função de callback síncrona CanTp_TxConfirmation (Service-ID 0x40) através do ficheiro de cabeçalho CanTp.h para receber chamadas de confirmação de PDUs enviadas [SWS_CanTp_00076] [SWS_CanTp_00215]. Através desta interface, o módulo de interface de comunicação subjacente reporta o envio bem-sucedido ou a falha de uma transmissão de PDU [SWS_CanTp_00215].
Parâmetros e valores de retorno
A função não retorna nenhum valor (void) e aguarda dois parâmetros de entrada [SWS_CanTp_00215]:
TxPduId: ID da PDU transmitida [SWS_CanTp_00215].result: Estado da transmissão. O valorE_OKconfirma a transmissão bem-sucedida, enquantoE_NOT_OKsinaliza a falha da transmissão da PDU [SWS_CanTp_00215].
Tratamento de erros
Se CanTp_TxConfirmation for chamada com o valor de resultado E_NOT_OK, o módulo CanTp cancela a sessão de transmissão correspondente [SWS_CanTp_00355].
Concorrência e contexto de execução
No que diz respeito à concorrência, a função é reentrante para IDs de PDU diferentes, mas não é reentrante para o mesmo ID de PDU [SWS_CanTp_00215]. Tem de poder ser chamada no contexto de interrupção e pode ser chamada, por exemplo, diretamente a partir da interrupção de envio CAN [SWS_CanTp_00236].
Esta nota de uso foi gerada automaticamente com base na especificação do AUTOSAR Classic Release R20-11.
Guia do implementador em breve (complexidade I2)
tipo CanTp_ConfigType [SWS_CanTp_00340] 📄 PDF
Data structure type for the post - build configuration parameters.
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_CanTp- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_CanTp@rel:R20-11#564cbb43- Content hash
564cbb43- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CANTransportLayer.pdf#nameddest=SWS_CanTp_00208
gemini-3.8-flash-low· 2026-10-13 · Original em alemão