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
functie CanTp_Init [SWS_CanTp_00208] 📄 PDF
void CanTp_Init (const CanTp_ConfigType* CfgPtr);
This function initializes the Can Tp module.
De synchrone en niet-reentrante functie CanTp_Init initialiseert de CanTp-module [SWS_CanTp_00208]. Deze neemt via parameter CfgPtr een pointer naar de post-build configuratiegegevens (CanTp_ConfigType) over en heeft geen retourwaarde [SWS_CanTp_00208]. De moduleomgeving moet CanTp_Init dwingend aanroepen voordat de module voor verdere verwerkingen kan worden gebruikt [SWS_CanTp_00199].
Tijdens de initialisatie worden alle globale variabelen van de module geïnitialiseerd en worden alle transportprotocolverbindingen in een subtoestand van CANTP_ON gebracht, waarin noch een gesegmenteerde transmissie noch een gesegmenteerde ontvangst actief is [SWS_CanTp_00030]. De ontvangstpaden bevinden zich daarbij in de toestand CANTP_RX_WAIT en de zendpaden in de toestand CANTP_TX_WAIT [SWS_CanTp_00030]. Na succesvolle uitvoering gaat de module over naar de interne toestand CANTP_ON [SWS_CanTp_00170].
Als CanTp_Init wordt aangeroepen wanneer de module zich al in de globale toestand CANTP_ON bevindt, zet de functie de module terug in de toestand Idle, zodat er noch zend- noch ontvangstprocessen lopen [SWS_CanTp_00111].
Als ontwikkelingsfoutdetectie (Development Error Detection) is ingeschakeld, meldt de CanTp-module de fout CANTP_E_UNINIT wanneer de PDU Router of het CAN Interface probeert functies van de module (met uitzondering van CanTp_GetVersionInfo) uit te voeren vóór de aanroep van CanTp_Init [SWS_CanTp_00031].
Deze tekst is gegenereerd door een AI op basis van de specificatie.
Implementer's Guide volgt (complexiteit I2)
functie CanTp_GetVersionInfo [SWS_CanTp_00210] 📄 PDF
void CanTp_GetVersionInfo (Std_VersionInfoType* versioninfo);
This function returns the version information of the Can Tp module.
functie CanTp_Shutdown [SWS_CanTp_00211] 📄 PDF
void CanTp_Shutdown (void);
This function is called to shutdown the Can Tp module.
Gebruik en aanroepcontext
De functie CanTp_Shutdown dient ertoe de gehele CanTp-module ordelijk af te sluiten ([SWS_CanTp_00211]). De interface wordt beschikbaar gesteld via het headerbestand CanTp.h en heeft de service-ID 0x02 ([SWS_CanTp_00211]). De aanroep wordt synchroon verwerkt, accepteert geen overdrachtsparameters en levert geen retourwaarde op ([SWS_CanTp_00211]).
Toestandsovergang en opschoning
Bij uitvoering sluit CanTp_Shutdown alle nog openstaande transportprotocolverbindingen, geeft alle gealloceerde resources vrij en brengt de CanTp-module over naar de toestand CANTP_OFF ([SWS_CanTp_00202]). Een wezenlijk aspect van het afbreekgedrag is dat voor nog uitstaande frame-verzendingen of frame-ontvangstprocessen uitdrukkelijk geen enkele notificatie naar bovenliggende lagen mag worden getriggerd ([SWS_CanTp_00200]).
Gelijktijdigheid en randvoorwaarden
De functie is gespecificeerd als niet-re-entrant (Non Reentrant) ([SWS_CanTp_00211]). Deze mag bijgevolg niet gelijktijdig vanuit verschillende uitvoeringscontexten of interruptroutines worden aangeroepen. Specifieke foutcodes of notificaties aan het foutbeheer zijn niet opgenomen in de functionaliteit van de interface.
Deze gebruiksinstructie is automatisch opgesteld op basis van de specificatie AUTOSAR Classic Release R20-11.
Implementer's Guide volgt (complexiteit I1)
functie CanTp_Transmit [SWS_CanTp_00212] 📄 PDF
Std_ReturnType CanTp_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);
Requests transmission of a PDU.
Gebruik
De functie CanTp_Transmit dient voor het aanvragen van de overdracht van een N-SDU via de CAN-transportlaag [SWS_CanTp_00212]. Als parameters worden de identifier van de over te dragen PDU (TxPduId) en een pointer naar data, lengte en metadata (PduInfoPtr) meegegeven [SWS_CanTp_00212]. De aanroep meldt met E_OK de succesvolle acceptatie of met E_NOT_OK de afwijzing van het verzoek terug [SWS_CanTp_00212]. Terwijl de aanroep synchroon wordt bevestigd, is de afhandeling van de overdracht asynchroon [SWS_CanTp_00176] (Interpretatie: De vermelding “Synchronous” in de specificatietabel heeft vermoedelijk betrekking op het in ontvangst nemen van de aanvraag). Vraag Q-df438ddaa4963aba (open)
Wisselwerking en PDU-verwerking
Bij N-SDU's met metadata slaat de module de adresinformatie op (afhankelijk van het adresseringsformaat zoals Normal, Extended, Mixed 11 bit, Normal fixed of Mixed 29 bit) om deze te gebruiken voor SF-, FF- en CF-N-PDU's en voor de identificatie van FC-N-PDU's [SWS_CanTp_00334]. Worden er geen metadata gebruikt, dan raadpleegt CanTp_Transmit voor de voorbereiding van de SF- of FF-PCI uitsluitend de lengteopgave SduLength en maakt geen gebruik van de N-SDU-databuffer [SWS_CanTp_00225].
Foutafhandeling en gelijktijdigheid
- Foutcontrole: Als DET geactiveerd is en
PduInfoPtreenNULL-pointer is, meldt de functie de foutCANTP_E_PARAM_POINTERen keert zonder verdere actie terug [SWS_CanTp_00321]. - Kanaalbezetting: Bevindt het toegewezen kanaal zich in de toestand
CANTP_TX_PROCESSINGof loopt er al een sessie voor de N-SDU-identificatie, dan wordt het transmissieverzoek afgewezen enE_NOT_OKgeretourneerd [SWS_CanTp_00123], [SWS_CanTp_00206]. - Re-entrantie: De service is re-entrant voor verschillende PDU-ID's, maar niet re-entrant voor dezelfde PDU-ID [SWS_CanTp_00212].
Deze tekst is gegenereerd door een AI op basis van de specificatie AUTOSAR Classic R20-11.
Implementer's Guide volgt (complexiteit I2)
functie 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.
De synchrone functie CanTp_CancelTransmit verzoekt om het afbreken van een lopende PDU-transmissie in een onderliggende communicatiemodule [SWS_CanTp_00246] en zet daarmee de annulering van het zendproces in gang [SWS_CanTp_00274]. Als parameter wordt de identificatie van de betreffende PDU (TxPduId) meegegeven [SWS_CanTp_00246]. Als retourwaarde signaleert E_OK de succesvolle uitvoering van het afbreken door de doelmodule, terwijl E_NOT_OK een afwijzing aangeeft [SWS_CanTp_00246].
Na de functieaanroep wordt de transmissie op de betreffende verbinding afgebroken [SWS_CanTp_00243]. Is het afbreken succesvol uitgevoerd, dan roept de module CanTp verplicht de bevestiging PduR_CanTpTxConfirmation met het negatieve resultaat E_NOT_OK aan om de hogere lagen over het afbreken te informeren [SWS_CanTp_00255].
Bij ingeschakelde ontwikkelingsfoutdetectie (Development Error Detection) controleert CanTp_CancelTransmit de geldigheid van TxPduId: bij een ongeldige parameter wordt de ontwikkelingsfout CANTP_E_PARAM_ID gegenereerd en wordt E_NOT_OK geretourneerd [SWS_CanTp_00254]. Indien het afbreken wordt aangevraagd voor een N-SDU die zich momenteel niet in het transmissieproces bevindt, meldt de module de runtimefout CANTP_E_OPER_NOT_SUPPORTED aan de Default Error Tracer (DET) en levert eveneens E_NOT_OK op [SWS_CanTp_00254].
Wat betreft concurrency is de functie reentrant voor verschillende PDU-ID's, maar mag deze voor dezelfde TxPduId niet gelijktijdig worden aangeroepen [SWS_CanTp_00246].
Deze gebruiksinstructie is automatisch opgesteld op basis van de AUTOSAR-specificatie.
Implementer's Guide volgt (complexiteit I2)
functie 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.
De functie CanTp_CancelReceive breekt de lopende ontvangst van een PDU in een onderliggende transportprotocolmodule synchroon af [SWS_CanTp_00257]. Deze is beschikbaar via het headerbestand CanTp.h en heeft service-ID 0x4c [SWS_CanTp_00257].
Gebruik en aanroepvoorwaarden
Via de ingangsparameter RxPduId wordt de identificatie van de af te breken PDU meegegeven [SWS_CanTp_00257]. De aanroep wordt synchroon verwerkt en is gespecificeerd als niet-reentrant (Non Reentrant) [SWS_CanTp_00257]. Als retourwaarde levert de interface van het type Std_ReturnType:
E_OK: Het afbreken is door de doelmodule succesvol uitgevoerd [SWS_CanTp_00257].E_NOT_OK: Het afbreken is door de doelmodule afgewezen [SWS_CanTp_00257].
Foutafhandeling
Bij ingeschakelde ontwikkelingsfoutdetectie (Development Error Detection) valideert de functie de parameter RxPduId [SWS_CanTp_00260]:
- Is de waarde van
RxPduIdongeldig, dan meldtCanTp_CancelReceivede ontwikkelingsfoutCANTP_E_PARAM_IDen geeftE_NOT_OKterug [SWS_CanTp_00260]. - Wordt een afbreking aangevraagd voor een N-SDU die zich momenteel niet in het lopende ontvangstproces bevindt, dan meldt de module de runtimefout
CANTP_E_OPER_NOT_SUPPORTEDaan de Default Error Tracer en levertE_NOT_OKterug [SWS_CanTp_00260].
Samenspel met naburige modules
Als het afbreken van de ontvangst succesvol is uitgevoerd, roept CanTp de callback-functie PduR_CanTpRxIndication aan met het notificatieresultaat E_NOT_OK om de bovenliggende laag over het afbreken te informeren [SWS_CanTp_00263].
Deze gebruiksinstructie is gebaseerd op de specificatie AUTOSAR Classic R20-11 en is automatisch gegenereerd.
Implementer's Guide volgt (complexiteit I1)
functie 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).
De synchrone functie CanTp_ChangeParameter dient voor de runtimewijziging van een specifieke transportprotocolparameter zoals bijvoorbeeld de blokgrootte ([SWS_CanTp_00302]). De service, die beschikbaar wordt gesteld via het headerbestand CanTp.h, neemt de PDU-identificatie (id), de identificatie van de parameter (parameter) en de nieuw in te stellen waarde (value) aan ([SWS_CanTp_00302]). Bij succesvolle uitvoering retourneert de functie E_OK; als de wijziging mislukt of wordt afgewezen, levert deze E_NOT_OK op ([SWS_CanTp_00302]).
Met betrekking tot concurrency en aanroepvoorwaarden gelden de volgende specificaties:
- De interface is niet-re-entrant (Non Reentrant) uitgevoerd ([SWS_CanTp_00302]).
- Als de betreffende N-SDU zich op het moment van de aanroep al in een lopend ontvangstproces bevindt, breekt
CanTp_ChangeParameteronmiddellijk af, retourneertE_NOT_OKen wijzigt de parameterwaarde niet ([SWS_CanTp_00304]).
Er bestaat een bijzondere wisselwerking bij generieke verbindingen: als de functie wordt aangeroepen voor een N-SDU met MetaData, dan wordt de parameterwijziging toegepast op alle generieke verbindingen en overgenomen voor alle daaropvolgende ontvangstprocessen ([SWS_CanTp_00338]).
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie-eisen.
Implementer's Guide volgt (complexiteit I1)
functie 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.
Gebruik
De synchrone functie CanTp_ReadParameter dient voor het uitlezen van de actuele waarde van de ontvangstparameters BS (Block Size) of STmin (Separation Time minimum) voor een gespecificeerde ontvangst-N-SDU [SWS_CanTp_00323]. De declaratie is beschikbaar via het headerbestand CanTp.h [SWS_CanTp_00323].
De interface heeft de volgende parameters:
id(in): Identificator van de ontvangen N-SDU (typePduIdType), waarvoor de ontvangstparameter wordt gelezen [SWS_CanTp_00323].parameter(in): Bepaalt de uit te lezen parameter (BSofSTminvan het typeTPParameterType) [SWS_CanTp_00323].value(out): Pointer naaruint16, waarmee de uitgelezen parameterwaarde beschikbaar wordt gesteld [SWS_CanTp_00323].
Als retourwaarde levert de functie Std_ReturnType op; hierbij signaleert E_OK de acceptatie van het verzoek en E_NOT_OK de afwijzing [SWS_CanTp_00323].
Foutafhandeling
Voor zover de ontwikkelingsfoutdetectie (Development Error Detection) is geactiveerd, controleert CanTp_ReadParameter de geldigheid van de parameters id en parameter [SWS_CanTp_00324]. Als een van deze parameters ongeldig is, meldt de functie de ontwikkelingsfout CANTP_E_PARAM_ID en retourneert E_NOT_OK [SWS_CanTp_00324].
Gelijktijdigheid en beperkingen
De functie is gespecificeerd als niet-re-entrant (Non Reentrant) [SWS_CanTp_00323]. Aanroepers moeten gelijktijdige toegang tot dezelfde interface vermijden.
Deze tekst is gegenereerd door een AI op basis van de specificatiedocumenten van AUTOSAR R20-11.
Implementer's Guide volgt (complexiteit I1)
functie CanTp_MainFunction [SWS_CanTp_00213] 📄 PDF
void CanTp_MainFunction (void);
The main function for scheduling the CAN TP.
De functie CanTp_MainFunction dient als centraal instappunt voor de periodieke scheduling van het CAN-transportprotocol (CAN TP) [SWS_CanTp_00213], [SWS_CanTp_00164]. Deze heeft het service-ID 0x06, heeft de signatuur void CanTp_MainFunction(void) en is beschikbaar via de header SchM_CanTp.h [SWS_CanTp_00213]. De functie accepteert geen parameters en levert geen retourwaarde [SWS_CanTp_00213].
Aanroepcontext en tijdsbesturing
De aanroep wordt conform de benodigde periodeduur geïnitieerd door de Schedule Manager of door de module Free Running Timer [SWS_CanTp_00164]. Binnen de module neemt CanTp_MainFunction de tijdsbewaking en besturing van de protocolafloop voor zijn rekening [SWS_CanTp_00164]. Concreet is de functie betrokken bij de afhandeling van de volgende timers en tijdcondities:
- De protocoltimeouts van de transmissie en bevestiging:
N_As,N_Bs,N_CsevenalsN_Ar,N_BrenN_Cr[SWS_CanTp_00164]. - De naleving van de minimale frameseparationtijd
STMmin[SWS_CanTp_00164].
Foutafhandeling en gelijktijdigheid
Specifieke foutcodes voor DET of DEM zijn in de payload niet gedefinieerd voor deze functie. Interpretatie: Als cyclisch aangeroepen schedulingfunctie is CanTp_MainFunction vermoedelijk niet-re-entrant en vereist deze een consistente aanroepsnelheid om een correcte decrementatie van de interne timers te waarborgen. Vraag Q-2fe22e31085abf49 (open)
Deze tekst is door een AI gegenereerd op basis van de AUTOSAR-specificatie R20-11.
Implementer's Guide volgt (complexiteit I1)
functie 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.
Gebruik en semantiek
De synchrone functie [SWS_CanTp_00214] meldt aan de CAN-transportmodule de ontvangst van een N-PDU door een onderliggende communicatie-interfacemodule. De aanroep geeft de identificatie van de ontvangen PDU door (RxPduId) alsook via de pointer PduInfoPtr de lengte (SduLength), payload (SduDataPtr) en bijbehorende metadata. De functie heeft geen retourwaarde.
Gelijktijdigheid en aanroepcontext
De functie is re-entrant voor verschillende PDU-ID's, maar niet re-entrant voor dezelfde PDU-ID [SWS_CanTp_00214]. CanTp_RxIndication mag in interruptcontext worden aangeroepen, bijvoorbeeld direct vanuit de CAN-ontvangstinterrupt [SWS_CanTp_00235].
Samenspel bij generieke verbindingen
Bij aanroep voor Single Frames (SF) of First Frames (FF) met metadata slaat CanTp de aanwezige adresinformatie op (zoals N_SA en N_TA bij Normal-fixed- of Mixed-29-bit-adressering). Deze informatie dient voor de opbouw van de verbinding naar de bovenliggende laag, het verzenden van Flow Control-frames (FC) en de herkenning van Consecutive Frames (CF) [SWS_CanTp_00330]. Bij opeenvolgende CF- en ontvangen FC-frames controleert CanTp de adresgegevens van de metadata tegen de opgeslagen waarden [SWS_CanTp_00333], [SWS_CanTp_00336].
Foutafhandeling en padding
Indien DET is geactiveerd en PduInfoPtr een NULL-pointer is, meldt de functie de fout CANTP_E_PARAM_POINTER en keert zonder actie terug [SWS_CanTp_00322]. Als de paddingcontrole voor frames met een payload tot 8 bytes is geactiveerd (CanTpRxPaddingActivation resp. CanTpTxPaddingActivation gelijk aan CANTP_ON), wordt bij lengtefouten de runtimefout CANTP_E_PADDING aan de DET gemeld:
- Een SF met
SduLength < 8wordt afgewezen [SWS_CanTp_00345]. - Een laatste CF met
SduLength != 8breekt de lopende ontvangst af viaPduR_CanTpRxIndication()metE_NOT_OK[SWS_CanTp_00346]. - Een ontvangen FC met
SduLength < 8breekt de lopende verzending af viaPduR_CanTpTxConfirmation()metE_NOT_OK[SWS_CanTp_00349].
Deze tekst is gegenereerd door een AI en dient als oriëntatiehulp. Doorslaggevend is de AUTOSAR-specificatie.
Implementer's Guide volgt (complexiteit I2)
functie 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.
De CanTp-module stelt de synchrone callbackfunctie CanTp_TxConfirmation (service-ID 0x40) beschikbaar via de header CanTp.h om bevestigingsaanroepen voor verzonden PDU's in ontvangst te nemen [SWS_CanTp_00076] [SWS_CanTp_00215]. Via deze interface meldt de onderliggende communicatie-interfacemodule de succesvolle verzending of het mislukken van een PDU-overdracht [SWS_CanTp_00215].
Parameters en retourwaarden
De functie levert geen retourwaarde op (void) en verwacht twee ingangsparameters [SWS_CanTp_00215]:
TxPduId: ID van de overgedragen PDU [SWS_CanTp_00215].result: Overdrachtsstatus. De waardeE_OKbevestigt de succesvolle overdracht, terwijlE_NOT_OKhet mislukken van de PDU-overdracht signaleert [SWS_CanTp_00215].
Foutafhandeling
Wordt CanTp_TxConfirmation aangeroepen met de resultaatwaarde E_NOT_OK, dan breekt de CanTp-module de bijbehorende transmissiesessie af [SWS_CanTp_00355].
Gelijktijdigheid en uitvoeringscontext
Wat betreft gelijktijdigheid is de functie re-entrant voor verschillende PDU-ID's, maar niet re-entrant voor dezelfde PDU-ID [SWS_CanTp_00215]. Deze moet aanroepbaar zijn in interruptcontext en mag bijvoorbeeld direct vanuit de CAN-zend-interrupt worden aangeroepen [SWS_CanTp_00236].
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie van AUTOSAR Classic Release R20-11.
Implementer's Guide volgt (complexiteit I2)
type 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#6285c794- Content hash
6285c794- 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 · Duits origineel