CAN Transceiver Driver (CanTrcv)
Controls physical bus transceiver states and wakeup detection on CAN lines.
Funktionen — Übersicht
void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);Initializes the Can Trcv module.Std_ReturnType CanTrcv_SetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType OpMode);Sets the mode of the Transceiver to the value Op Mode.Std_ReturnType CanTrcv_GetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType* OpMode);Gets the mode of the Transceiver and returns it in Op Mode.Std_ReturnType CanTrcv_GetBusWuReason (uint8 Transceiver, CanTrcv_TrcvWakeupReasonType* reason);Gets the wakeup reason for the Transceiver and returns it in parameter Reason.void CanTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);Gets the version of the module and returns it in Version Info.Std_ReturnType CanTrcv_SetWakeupMode (uint8 Transceiver, CanTrcv_TrcvWakeupModeType TrcvWakeupMode);En ables, disables or clears wake - up events of the Transceiver according to Trcv Wakeup Mode.Std_ReturnType CanTrcv_GetTrcvSystemData (uint8 Transceiver, uint32* TrcvSysData);Reads the transceiver configuration/ status data and returns it through parameter Trcv Sys Data.Std_ReturnType CanTrcv_ClearTrcvWufFlag (uint8 Transceiver);Clears the WUF flag in the transceiver hardware.Std_ReturnType CanTrcv_ReadTrcvTimeoutFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);Reads the status of the tim eout flag from the transceiver hardware.Std_ReturnType CanTrcv_ClearTrcvTimeoutFlag (uint8 Transceiver);Clears the status of the timeout flag in the transceiver hardware.Std_ReturnType CanTrcv_ReadTrcvSilenceFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);Reads the status of the silence flag from the transceiver hardware.Std_ReturnType CanTrcv_CheckWakeup (uint8 Transceiver);Service is called by underlying CANIF in case a wake up interrupt is detected.Std_ReturnType CanTrcv_SetPNActivationState (CanTrcv_PNActivationType ActivationState);The API configures the wake - up of the transceiver for Standby and Sleep Mode: Either the CAN transceiver is woken up by a...Std_ReturnType CanTrcv_CheckWakeFlag (uint8 Transceiver);Requests to check the status of the wakeup flag from the transceiver hardware.void CanTrcv_DeInit (void);De - initializes the Can Trcv module.void CanTrcv_MainFunction (void);Service to scan all busses for wake up events and perform these event.void CanTrcv_MainFunctionDiagnostics (void);Reads the transceiver diagnostic status periodically and sets product/ development accordingly.
Typen — Übersicht
struct CanTrcv_ConfigTypeThis is the type of the external data structure containing the overall initialization data for the CAN transceiver driver and...CanTrcv_PNActivationTypeDatatype used for describing whether PN wakeup functionality in Can Trcv is enabled or disabled.enum CanTrcv_TrcvFlagStateTypeProvides the state of a flag in the transceiver hardware.enum CanTrcv_TrcvModeTypeOperating modes of the CAN Transceiver Driver.enum CanTrcv_TrcvWakeupModeTypeThis type shall be used to control the CAN transceiver concerning wake up events and wake up notifications.enum CanTrcv_TrcvWakeupReasonTypeThis type denotes the wake up reason detected by the CAN transceiver in detail.
Funktionen & Typen — Detailansicht
functie CanTrcv_Init [SWS_CanTrcv_00001] 📄 PDF
void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);
Initializes the Can Trcv module.
Gebruik en semantiek
De functie CanTrcv_Init dient voor de basisinitialisatie van de module CanTrcv en alle aangesloten CAN-transceivers [SWS_CanTrcv_00001] [SWS_CanTrcv_00180]. De uitvoering verloopt synchroon en is gespecificeerd als niet-re-entrant [SWS_CanTrcv_00001]. Als overdrachtsparameter verwacht de functie via ConfigPtr een pointer naar de driverconfiguratie en deze heeft geen retourwaarde [SWS_CanTrcv_00001].
Samenspel en hardwarecontrole
Tijdens de afloop voert de functie de hardwaregerelateerde initialisatiesequenties van alle aangesloten transceivers conform de configuratie uit en ondersteunt daarbij de initialisatievolgorde van de AUTOSAR-stack [SWS_CanTrcv_00180]. Door de aanroep wisselt elke transceiver afhankelijk van zijn specifieke configuratie afzonderlijk naar de modus CANTRCV_TRCVMODE_SLEEP of naar CANTRCV_TRCVMODE_STANDBY [SWS_CanTrcv_00148]. Voor zover hardwarematig ondersteund, controleert CanTrcv_Init bovendien of er voordien een wake-up-event door transceiveractiviteit was, en meldt dit via EcuM_SetWakeupEvent met de via CanTrcvWakeupSourceRef gedefinieerde bron aan de EcuM [SWS_CanTrcv_00167].
Foutafhandeling
Bij foutieve of ontbrekende communicatie met de hardware (bijvoorbeeld via poortpinnen of SPI) meldt de functie de runtimefout CANTRCV_E_NO_TRCV_CONTROL aan de Default Error Tracer [SWS_CanTrcv_00113]. Is de detectie van ontwikkelingsfouten actief, dan wordt voorts CANTRCV_E_BAUDRATE_NOT_SUPPORTED gemeld indien een geconfigureerde baudrate niet door de desbetreffende transceiver wordt ondersteund [SWS_CanTrcv_00168].
Deze tekst is gegenereerd door een AI op basis van de specificatie AUTOSAR R20-11.
Implementer's Guide volgt (complexiteit I1)
functie CanTrcv_SetOpMode [SWS_CanTrcv_00002] 📄 PDF
Std_ReturnType CanTrcv_SetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType OpMode);
Sets the mode of the Transceiver to the value Op Mode.
De functie CanTrcv_SetOpMode dient voor het asynchroon omschakelen van de bedrijfsmodus van een CAN-transceiver [SWS_CanTrcv_00002]. Deze accepteert het apparaatnummer van de transceiver (Transceiver) en de gewenste doelmodus (OpMode), die de waarden CANTRCV_TRCVMODE_NORMAL, CANTRCV_TRCVMODE_STANDBY of CANTRCV_TRCVMODE_SLEEP kan aannemen [SWS_CanTrcv_00102]. De functie is re-entrant voor verschillende transceivers [SWS_CanTrcv_00002]. De retourwaarde E_OK bevestigt de acceptatie van de omschakelopdracht; E_NOT_OK signaleert de afwijzing van het verzoek, parameterfouten of het ontbreken van ondersteuning voor de modus door de hardware [SWS_CanTrcv_00002], [SWS_CanTrcv_00105].
Bij de aanroep moeten vooraf gedefinieerde toestandsovergangen worden aangehouden:
- Als de transceiver zich in de modus
CANTRCV_TRCVMODE_NORMALbevindt, mag als doelmodus alleenCANTRCV_TRCVMODE_STANDBYofCANTRCV_TRCVMODE_NORMALworden doorgegeven [SWS_CanTrcv_00103]. - Als de transceiver zich in
CANTRCV_TRCVMODE_STANDBYbevindt, mag de functie alleen metCANTRCV_TRCVMODE_SLEEPofCANTRCV_TRCVMODE_STANDBYworden aangeroepen [SWS_CanTrcv_00104].
Bij geactiveerde ontwikkelingsfoutdetectie (DET) meldt de functie aanroepen vóór de initialisatie als CANTRCV_E_UNINIT [SWS_CanTrcv_00122], ongeldige transceivernummers als CANTRCV_E_INVALID_TRANSCEIVER [SWS_CanTrcv_00123] en ontoelaatbare bedrijfsmodi als CANTRCV_E_PARAM_TRCV_OPMODE [SWS_CanTrcv_00087]. Als Standby wordt aangevraagd zonder dat de transceiver in Normal of Standby is, wordt CANTRCV_E_TRCV_NOT_NORMAL geactiveerd [SWS_CanTrcv_00120]; bij het aanvragen van Sleep buiten Standby of Sleep volgt de melding CANTRCV_E_TRCV_NOT_STANDBY [SWS_CanTrcv_00121]. Als DET is gedeactiveerd, wordt in deze gevallen E_NOT_OK geretourneerd. Bij ontbrekende of foutieve transceivercommunicatie wordt de runtimefout CANTRCV_E_NO_TRCV_CONTROL aan DET gemeld en wordt E_NOT_OK geretourneerd [SWS_CanTrcv_00114].
Als Selective Wakeup hardwarematig wordt ondersteund, controleert de API de statusvlaggen POR en SYSERR [SWS_CanTrcv_00186]. Zodra de transceiver de aangevraagde modus heeft bereikt, informeert de module de bovenliggende laag via de callback CanIf_TrcvModeIndication [SWS_CanTrcv_00158].
Deze tekst is gegenereerd door een AI op basis van de specificatievereisten.
Implementer's Guide volgt (complexiteit I2)
functie CanTrcv_GetOpMode [SWS_CanTrcv_00005] 📄 PDF
Std_ReturnType CanTrcv_GetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType* OpMode);
Gets the mode of the Transceiver and returns it in Op Mode.
functie CanTrcv_GetBusWuReason [SWS_CanTrcv_00007] 📄 PDF
Std_ReturnType CanTrcv_GetBusWuReason (uint8 Transceiver, CanTrcv_TrcvWakeupReasonType* reason);
Gets the wakeup reason for the Transceiver and returns it in parameter Reason.
functie CanTrcv_GetVersionInfo [SWS_CanTrcv_00008] 📄 PDF
void CanTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);
Gets the version of the module and returns it in Version Info.
functie CanTrcv_SetWakeupMode [SWS_CanTrcv_00009] 📄 PDF
Std_ReturnType CanTrcv_SetWakeupMode (uint8 Transceiver, CanTrcv_TrcvWakeupModeType TrcvWakeupMode);
En ables, disables or clears wake - up events of the Transceiver according to Trcv Wakeup Mode.
Gebruik en semantiek
De synchrone functie CanTrcv_SetWakeupMode dient voor het activeren, deactiveren of wissen van wake-up-events voor een bepaalde transceiver [SWS_CanTrcv_00009]. Hieraan worden de doeltransceiver via de parameter Transceiver en de gewenste modus via TrcvWakeupMode doorgegeven. Bij een succesvolle toestandsverandering retourneert de functie E_OK. Als de toestand niet kan worden gewijzigd of een parameter ongeldig is, wordt E_NOT_OK geretourneerd en blijft de eerdere toestand ongewijzigd behouden [SWS_CanTrcv_00009].
Bedrijfsmodi en wisselwerking
Als TrcvWakeupMode wordt aangeroepen met de waarde CANTRCV_WUMODE_CLEAR, wist de functie een opgeslagen wake-up-event van de geadresseerde transceiver [SWS_CanTrcv_00094]. Bij aanroep met CANTRCV_WUMODE_ENABLE actualiseert de module het wake-up-event naar de toestand „present”, mits er voor de betreffende bus al een opgeslagen wake-up-event aanwezig is [SWS_CanTrcv_00111]. Interpretatie: Voor het deactiveren van wake-up-events bestaat er vermoedelijk analoog een overeenkomstige moduswaarde, ook al is deze in het onderhavige specificatie-uittreksel niet nader gedetailleerd. Vraag Q-e0f15d1d0855db81 (open)
Foutafhandeling en gelijktijdigheid
De functie is re-entrant voor verschillende transceiver-instanties [SWS_CanTrcv_00009]. Vóór de aanroep moet de transceiverdriver volledig geïnitialiseerd zijn: een aanroep in niet-geïnitialiseerde toestand activeert bij actieve ontwikkelingsfoutdetectie (DET) de fout CANTRCV_E_UNINIT, anders wordt E_NOT_OK geretourneerd [SWS_CanTrcv_00127]. Een ongeldige index bij Transceiver leidt tot CANTRCV_E_INVALID_TRANSCEIVER (resp. E_NOT_OK) [SWS_CanTrcv_00131], en een ontoelaatbare moduswaarde in TrcvWakeupMode meldt CANTRCV_E_PARAM_TRCV_WAKEUP_MODE of levert E_NOT_OK op [SWS_CanTrcv_00089]. Als er geen of foutieve communicatie met de transceiver is, wordt de runtimefout CANTRCV_E_NO_TRCV_CONTROL aan de Default Error Tracer gemeld en wordt E_NOT_OK geretourneerd [SWS_CanTrcv_00117].
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie van AUTOSAR Classic R20-11.
Implementer's Guide volgt (complexiteit I2)
functie CanTrcv_GetTrcvSystemData [SWS_CanTrcv_00213] 📄 PDF
Std_ReturnType CanTrcv_GetTrcvSystemData (uint8 Transceiver, uint32* TrcvSysData);
Reads the transceiver configuration/ status data and returns it through parameter Trcv Sys Data. This API shall exist only if Can Trcv Hw Pn Support = TRUE.
functie CanTrcv_ClearTrcvWufFlag [SWS_CanTrcv_00214] 📄 PDF
Std_ReturnType CanTrcv_ClearTrcvWufFlag (uint8 Transceiver);
Clears the WUF flag in the transceiver hardware. This API shall exist only if Can Trcv Hw Pn Support = TRUE.
De synchrone functie CanTrcv_ClearTrcvWufFlag wist de wake-up-frame-vlag (WUF) in de hardware van de geadresseerde CAN-transceiver en is alleen beschikbaar wanneer Selective Wakeup-ondersteuning is geconfigureerd (CanTrcvHwPnSupport = TRUE) [SWS_CanTrcv_00214], [SWS_CanTrcv_00175]. Bij succesvol wissen wordt E_OK geretourneerd, anders E_NOT_OK [SWS_CanTrcv_00214], [SWS_CanTrcv_00194].
Samenspel en verloop
De API wordt gebruikt door de module CanSM bij het binnengaan van een low-power-modus om te waarborgen dat tijdens de toestandsovergang geen frame-wake-up-gebeurtenis verloren gaat [SWS_CanTrcv_00194]. Na het resetten van de WUF-vlag moet de CAN-transceiver in de stand-bymodus (CANTRCV_STANDBY) worden geplaatst [SWS_CanTrcv_00194].
Gelijktijdigheid en aanroepcontext
Aanroepen van CanTrcv_ClearTrcvWufFlag zijn re-entrant voor verschillende transceiver-instanties (Transceiver) [SWS_CanTrcv_00214].
Foutafhandeling
- Ontwikkelfouten (DET): Als foutdetectie actief is, meldt de functie bij een niet-geïnitialiseerde driver
CANTRCV_E_UNINIT[SWS_CanTrcv_00197] en bij een ongeldige parameterTransceiverde foutCANTRCV_E_INVALID_TRANSCEIVER[SWS_CanTrcv_00198]. Als DET is gedeactiveerd, wordt in deze gevallen directE_NOT_OKgeretourneerd [SWS_CanTrcv_00197], [SWS_CanTrcv_00198]. - Runtimefouten: Als de communicatie met de transceiver mislukt of foutief is, meldt de functie de runtimefout
CANTRCV_E_NO_TRCV_CONTROLaan de Default Error Tracer en retourneertE_NOT_OK[SWS_CanTrcv_00196].
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de AUTOSAR-specificatie R20-11.
Implementer's Guide volgt (complexiteit I1)
functie CanTrcv_ReadTrcvTimeoutFlag [SWS_CanTrcv_00215] 📄 PDF
Std_ReturnType CanTrcv_ReadTrcvTimeoutFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);
Reads the status of the tim eout flag from the transceiver hardware. This API shall exist only if Can Trcv Hw Pn Support = TRUE.
De synchrone functie CanTrcv_ReadTrcvTimeoutFlag leest de status van de timeoutvlag rechtstreeks uit de hardware van de CAN-transceiver uit [SWS_CanTrcv_00215]. Als invoerparameter dient Transceiver voor de identificatie van de aan te spreken transceiver, terwijl via de uitvoerparameter FlagState van het type CanTrcv_TrcvFlagStateType* de toestand van de vlag wordt geretourneerd [SWS_CanTrcv_00215]. De retourwaarde signaleert met E_OK een succesvol uitlezen en met E_NOT_OK dat de status van de timeoutvlag niet kon worden vastgesteld [SWS_CanTrcv_00215].
Voor het gebruik en de integratie in de transceiverdriver gelden de volgende randvoorwaarden:
-
Configuratie: De API is uitsluitend beschikbaar als de hardware-ondersteuning voor gedeeltelijk netwerken geactiveerd is (
CanTrcvHwPnSupport = TRUE) [SWS_CanTrcv_00215]. Ook de bijbehorende configuratiecontainerCanTrcvPartialNetworkbestaat alleen onder deze voorwaarde [SWS_CanTrcv_00175]. -
Concurrency: De functie is gespecificeerd als niet-re-entrant (
Non Reentrant) [SWS_CanTrcv_00215].
De foutafhandeling maakt onderscheid naar de toestand van de ontwikkelingsfoutdetectie (Development Error Detection, DET):
-
Als een ongeldige transceiveridentificator wordt doorgegeven, genereert de module bij actieve DET de fout
CANTRCV_E_INVALID_TRANSCEIVER; bij gedeactiveerde DET wordt in plaats daarvanE_NOT_OKgeretourneerd [SWS_CanTrcv_00199]. -
Als een null-pointer voor
FlagStatewordt doorgegeven (FlagState = NULL), meldt de module bij actieve DET de foutCANTRCV_E_PARAM_POINTER; als DET is uitgeschakeld, levert de aanroepE_NOT_OKop [SWS_CanTrcv_00200].
Deze gebruiksinstructie is automatisch gegenereerd op basis van de specificatie AUTOSAR CP R20-11.
Implementer's Guide volgt (complexiteit I2)
functie CanTrcv_ClearTrcvTimeoutFlag [SWS_CanTrcv_00216] 📄 PDF
Std_ReturnType CanTrcv_ClearTrcvTimeoutFlag (uint8 Transceiver);
Clears the status of the timeout flag in the transceiver hardware. This API shall exist only if Can Trcv Hw Pn Support = TRUE.
De synchrone functie CanTrcv_ClearTrcvTimeoutFlag dient voor het resetten van de timeoutvlag in de transceiverhardware [SWS_CanTrcv_00216]. Deze is uitsluitend beschikbaar als de hardware-ondersteuning voor Partial Networking via de configuratieparameter CanTrcvHwPnSupport = TRUE geactiveerd is [SWS_CanTrcv_00175], [SWS_CanTrcv_00216].
Gebruik en interface
De aanroep vindt synchroon plaats via de interface in CanTrcv.h onder opgave van de doeltransceiver:
- Parameter:
Transceiverbepaalt als invoerwaarde (uint8) het aan te spreken transceiverkanaal [SWS_CanTrcv_00216]. - Retourwaarde: Een
Std_ReturnTypesignaleert metE_OKhet succesvol wissen van de hardwarevlag of metE_NOT_OKhet mislukken van de bewerking [SWS_CanTrcv_00216].
Foutafhandeling
Als aan de functie een ongeldige identificator voor de parameter Transceiver wordt doorgegeven, geldt een gedifferentieerde foutafhandeling:
- Bij actieve ontwikkelingsfoutdetectie (Development Error Detection) wordt de fout
CANTRCV_E_INVALID_TRANSCEIVERaan DET gemeld [SWS_CanTrcv_00201]. - Als de ontwikkelingsfoutdetectie is gedeactiveerd, breekt de aanroep af en retourneert
E_NOT_OKaan de aanroeper [SWS_CanTrcv_00201].
Gelijktijdigheid en systeemintegratie
De functie is geclassificeerd als niet-re-entrant (Non Reentrant) [SWS_CanTrcv_00216]. Gelijktijdige aanroepen voor dezelfde hardware-eenheid moeten daarom door de aanroepende laag worden vermeden of gesynchroniseerd. Bovendien maakt de functie deel uit van de functionaliteitsomvang voor selectieve wekfuncties (Partial Networking); de bijbehorende configuratiestructuren in de container CanTrcvPartialNetwork bestaan eveneens alleen bij een gezette CanTrcvHwPnSupport [SWS_CanTrcv_00175].
Deze gebruiksinstructie is gebaseerd op de specificatie AUTOSAR CP R20-11.
Implementer's Guide volgt (complexiteit I1)
functie CanTrcv_ReadTrcvSilenceFlag [SWS_CanTrcv_00217] 📄 PDF
Std_ReturnType CanTrcv_ReadTrcvSilenceFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);
Reads the status of the silence flag from the transceiver hardware. This API shall exi st only if Can Trcv Hw Pn Support = TRUE.
De synchrone en niet-re-entrante functie CanTrcv_ReadTrcvSilenceFlag (service-ID 0x0d) dient voor het uitlezen van de silence-vlagstatus rechtstreeks uit de CAN-transceiverhardware [SWS_CanTrcv_00217]. Deze wordt via de header CanTrcv.h beschikbaar gesteld en mag vanwege het ontbreken van re-entrantie niet gelijktijdig worden uitgevoerd [SWS_CanTrcv_00217].
Parameters en retourwaarden
Transceiver: Invoerparameter (uint8) voor het adresseren van de respectieve transceiver-instantie via de bijbehorende identificatie [SWS_CanTrcv_00217].FlagState: Uitvoerparameter als pointer naarCanTrcv_TrcvFlagStateType, waarmee de uitgelezen status van de silence-vlag wordt geretourneerd [SWS_CanTrcv_00217].- Retourwaarde (
Std_ReturnType): RetourneertE_OKals de hardwaretoestand van de silence-vlag succesvol kon worden gelezen, andersE_NOT_OK[SWS_CanTrcv_00217].
Foutafhandeling
Als aan de functie voor de uitvoerparameter een null-pointer wordt doorgegeven (FlagState == NULL), hangt de foutafhandeling af van de ontwikkelingscontrole: bij geactiveerde DET meldt de CAN-transceiverdriver de ontwikkelingsfout CANTRCV_E_PARAM_POINTER; als DET is gedeactiveerd, wordt de aanroep onmiddellijk afgebroken met E_NOT_OK [SWS_CanTrcv_00203].
Configuratie en interactie
De functie staat in de context van selectief wekken (Selective Wakeup). De bijbehorende configuratiecontainer CanTrcvPartialNetwork en de interface CanTrcv_ReadTrcvSilenceFlag zijn alleen dan in de driver beschikbaar als de hardware-ondersteuning voor Partial Networking via CanTrcvHwPnSupport = TRUE is geconfigureerd [SWS_CanTrcv_00175], [SWS_CanTrcv_00217].
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de AUTOSAR-specificatie R20-11.
Implementer's Guide volgt (complexiteit I1)
functie CanTrcv_CheckWakeup [SWS_CanTrcv_00143] 📄 PDF
Std_ReturnType CanTrcv_CheckWakeup (uint8 Transceiver);
Service is called by underlying CANIF in case a wake up interrupt is detected.
De synchrone en re-entrante functie CanTrcv_CheckWakeup wordt aangeroepen door de onderliggende interface CanIf zodra een wake-up-interrupt is gedetecteerd [SWS_CanTrcv_00143]. Via de parameter Transceiver wordt de te controleren CAN-transceiver geadresseerd [SWS_CanTrcv_00143]. De retourwaarde E_OK signaleert de acceptatie van de aanroep, terwijl E_NOT_OK de niet-acceptatie aangeeft [SWS_CanTrcv_00143].
Voor zover hardwarematig ondersteund, controleert de functie of er daadwerkelijk sprake is van een wake-up-event door activiteit op de transceiver [SWS_CanTrcv_00146]. Is dit het geval, dan vindt de wake-up-melding aan de EcuM plaats via de API EcuM_SetWakeupEvent met de in CanTrcvWakeupSourceRef gerefereerde wake-up-bron [SWS_CanTrcv_00146].
Voor de foutafhandeling gelden bij geactiveerde ontwikkelingsdetectie (DET) de volgende voorschriften:
- Wordt de functie vóór de initialisatie van de module CanTrcv aangeroepen, dan wordt de ontwikkelingsfout
CANTRCV_E_UNINITgemeld; bij gedeactiveerde DET levert de aanroep in plaats daarvanE_NOT_OKop [SWS_CanTrcv_00144]. - Bij overdracht van een ongeldig transceivernummer meldt de functie
CANTRCV_E_INVALID_TRANSCEIVER; is DET gedeactiveerd, dan wordtE_NOT_OKgeretourneerd [SWS_CanTrcv_00145].
Deze gebruiksinstructie is uitsluitend gebaseerd op de specificatie-eisen van AUTOSAR Classic R20-11.
Implementer's Guide volgt (complexiteit I1)
functie CanTrcv_SetPNActivationState [SWS_CanTrcv_00219] 📄 PDF
Std_ReturnType CanTrcv_SetPNActivationState (CanTrcv_PNActivationType ActivationState);
The API configures the wake - up of the transceiver for Standby and Sleep Mode: Either the CAN transceiver is woken up by a remote wake - up pattern (standard CAN wake - up) or by the configured remote wake - up frame.
De synchrone functie CanTrcv_SetPNActivationState configureert het wekgedrag van de CAN-transceiver voor de standby- en sleep-modus ([SWS_CanTrcv_00219]). Deze legt vast of de transceiver via een standaard wake-up-pattern dan wel gericht via een geconfigureerd remote wake-up-frame in het kader van Partial Networking wordt gewekt ([SWS_CanTrcv_00219]).
Gebruik en parameters
De functie wordt beschikbaar gesteld via CanTrcv.h met de service-ID 0x0f en synchroon uitgevoerd ([SWS_CanTrcv_00219]). De overdrachtsparameter ActivationState van het type CanTrcv_PNActivationType bestuurt de bedrijfsmodus:
PN_ENABLED: Activeert de PN-wakeup-functionaliteit in de CAN-transceiver ([SWS_CanTrcv_00219]).PN_DIABLED: Deactiveert de PN-wakeup-functionaliteit ([SWS_CanTrcv_00219]).
Als retourwaarde levert de functie E_OK op wanneer de transceiver succesvol is omgeschakeld naar de aangevraagde PN-configuratie. Als de omschakeling mislukt, wordt E_NOT_OK geretourneerd; in dat geval blijft de voorgaande configuratie ongewijzigd van kracht ([SWS_CanTrcv_00219]).
Beperkingen en foutafhandeling
De functie is niet-re-entrant (Non Reentrant) ([SWS_CanTrcv_00219]). Als dwingende randvoorwaarde moet de module CanTrcv vóór de aanroep volledig zijn geïnitialiseerd: als de aanroep vóór de initialisatie plaatsvindt, meldt de functie bij actieve ontwikkelingsfoutdetectie de fout CANTRCV_E_UNINIT aan DET; als DET is gedeactiveerd, wordt de aanroep onmiddellijk afgewezen met de retourwaarde E_NOT_OK ([SWS_CanTrcv_00220]).
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie.
Implementer's Guide volgt (complexiteit I1)
functie CanTrcv_CheckWakeFlag [SWS_CanTrcv_00223] 📄 PDF
Std_ReturnType CanTrcv_CheckWakeFlag (uint8 Transceiver);
Requests to check the status of the wakeup flag from the transceiver hardware.
De functie CanTrcv_CheckWakeFlag vraagt de controle van de wake-up-flagstatus rechtstreeks op bij de transceiverhardware ([SWS_CanTrcv_00223]). De aanroep verloopt asynchroon en verwijst via de ingangsparameter Transceiver naar de betreffende identifier van de aan te spreken CAN-transceiver ([SWS_CanTrcv_00223]).
Als retourwaarde levert de functie de status Std_ReturnType ([SWS_CanTrcv_00223]):
E_OK: Het verzoek om de wake-up-flag te controleren is met succes geaccepteerd ([SWS_CanTrcv_00223]).E_NOT_OK: De aanvraag is afgewezen ([SWS_CanTrcv_00223]).
Met betrekking tot gelijktijdigheid is vastgelegd dat de functie niet-re-entrant is (Non Reentrant) ([SWS_CanTrcv_00223]). Aangezien de service als asynchroon is gespecificeerd, weerspiegelt de retourwaarde louter de acceptatie van de controleopdracht; het daadwerkelijke uitlezen van de hardware vindt vermoedelijk later plaats ([SWS_CanTrcv_00223]). Vraag Q-f09b7ff49c24cea8 (open) Concrete foutcodes evenals DET- of DEM-meldingen zijn voor deze service niet vermeld.
Deze gebruiksinstructie is gegenereerd door een AI op basis van de AUTOSAR-specificatie.
Implementer's Guide volgt (complexiteit I1)
functie CanTrcv_DeInit [SWS_CanTrcv_91001] 📄 PDF
void CanTrcv_DeInit (void);
De - initializes the Can Trcv module.
De synchrone functie CanTrcv_DeInit dient voor de de-initialisatie van de CAN-transceiverdriver [SWS_CanTrcv_91001]. Deze accepteert geen parameters, levert geen retourwaarde en is gespecificeerd als niet-re-entrant (Non Reentrant) [SWS_CanTrcv_91001]. De interface wordt beschikbaar gesteld via de header CanTrcv.h met het service-ID 0x10 [SWS_CanTrcv_91001].
Bij de uitvoering brengt de functie de CAN-transceiverhardware naar de toestand NOT_ACTIVE [SWS_CanTrcv_91003]. Omdat CanTrcv_DeInit niet re-entrant is, mogen aanroepen niet onderbrekend of gelijktijdig ten opzichte van elkaar plaatsvinden [SWS_CanTrcv_91001].
Wat betreft de foutafhandeling en volgordevoorwaarden geldt:
- Is de ontwikkelingsdetectie (Development Error Detection) voor de module geactiveerd, dan controleert de functie de bedrijfsmodus van de transceiver. Bevindt de transceiver zich bij de aanroep niet in de modus
CANTRCV_TRCVMODE_NORMAL, dan meldtCanTrcv_DeInitde ontwikkelingsfoutCANTRCV_E_TRCV_NOT_NORMAL[SWS_CanTrcv_91005]. - Hieruit volgt voor de aanroeper de functionele randvoorwaarde om de transceiver vóór de de-initialisatie in de toestand
CANTRCV_TRCVMODE_NORMALte laten draaien, om een foutmelding in de ontwikkelingsmodus te voorkomen [SWS_CanTrcv_91005].
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie AUTOSAR CP R20-11.
functie CanTrcv_MainFunction [SWS_CanTrcv_00013] 📄 PDF
void CanTrcv_MainFunction (void);
Service to scan all busses for wake up events and perform these event.
De functie CanTrcv_MainFunction dient als centrale driverservice van de CAN-transceiverdriver voor het bewaken van alle aangesloten buskanalen op opgetreden wake-up-events evenals voor de uitvoering van deze events [SWS_CanTrcv_00013]. Deze heeft de C-signatuur void CanTrcv_MainFunction(void), is gedefinieerd onder het hexadecimale service-ID 0x06 en werkt synchroon zonder overdrachtsparameters of retourwaarden [SWS_CanTrcv_00013].
Voor de cyclische bewaking scant de functie doelgericht alle bussen af die zich in de rusttoestanden STANDBY of SLEEP bevinden [SWS_CanTrcv_00112]. Detecteert de driver een wake-up-event op een van de bewaakte bussen, dan zet CanTrcv_MainFunction een interne wake-up-event-flag om de daaropvolgende uitvoering en verwerking van deze events in het systeem te initiëren [SWS_CanTrcv_00112].
Wat de aanroepcontext betreft, wordt de interface beschikbaar gesteld via het headerbestand SchM_CanTrcv.h [SWS_CanTrcv_00013]. Interpretatie: De beschikbaarstelling via deze SchM-header suggereert dat de functie vermoedelijk periodiek door de BSW-scheduler in de context van een cyclische task zou kunnen worden aangeroepen om de buskanalen in inactieve toestanden regelmatig af te tasten. Vraag Q-588109b1111a0f43 (open) Specifieke foutcodes, meldingen aan DET of DEM en eisen aan de re-entrantie worden in het onderhavige specificatie-uittreksel niet genoemd.
Deze tekst is door een AI gegenereerd op basis van de AUTOSAR-specificatie R20-11.
Implementer's Guide volgt (complexiteit I1)
functie CanTrcv_MainFunctionDiagnostics [SWS_CanTrcv_00218] 📄 PDF
void CanTrcv_MainFunctionDiagnostics (void);
Reads the transceiver diagnostic status periodically and sets product/ development accordingly.
De functie CanTrcv_MainFunctionDiagnostics (service-ID 0x08) leest periodiek de diagnosestatus van de transceiver uit en stelt overeenkomstige productie- en ontwikkelingsfouten in [SWS_CanTrcv_00218]. De functie is parameterloos, heeft geen retourwaarde (void CanTrcv_MainFunctionDiagnostics(void)) en wordt via de header SchM_CanTrcv.h beschikbaar gesteld [SWS_CanTrcv_00218].
Aanroepcontext en gelijktijdigheid
Vanwege de beschikbaarstelling via SchM_CanTrcv.h wordt de hoofdfunctie vermoedelijk cyclisch door de BSW-scheduler (SchM) in een taskcontext aangeroepen (interpretatie). Vraag Q-ab1f6c55abcb8d4b (open) Aangezien de specificatie geen re-entrantie aangeeft, moet worden uitgegaan van een niet-re-entrante uitvoering.
Foutafhandeling en samenspel met de DEM
De diagnose-evaluatie vindt plaats afhankelijk van configuratie en hardwareondersteuning:
- Is de door de BSW gemelde
BUSERR-flag gezet, dan roept de functie de APIDem_SetEventStatusaan met de parameterEventIdalsCANTRCV_E_BUS_ERRORenEventStatusalsDEM_EVENT_STATUS_FAILED[SWS_CanTrcv_00206]. - Is de
BUSERR-flag gereset, dan roeptCanTrcv_MainFunctionDiagnosticsde APIDem_SetEventStatusaan met dezelfdeEventId(CANTRCV_E_BUS_ERROR) en de statusDEM_EVENT_STATUS_PASSED[SWS_CanTrcv_00227].
Deze tekst is opgesteld door een AI. Deze vervangt niet het bestuderen van de desbetreffende AUTOSAR-specificaties.
Implementer's Guide volgt (complexiteit I1)
type CanTrcv_ConfigType [SWS_CanTrcv_00209] 📄 PDF
This is the type of the external data structure containing the overall initialization data for the CAN transceiver driver and settings affecting all transceivers. Furthermore it contains pointers to transceiver configuration structures. The con tents of the initialization data structure are CAN transceiver hardware specific.
type CanTrcv_PNActivationType [SWS_CanTrcv_00210] 📄 PDF
Datatype used for describing whether PN wakeup functionality in Can Trcv is enabled or disabled.
type CanTrcv_TrcvFlagStateType [SWS_CanTrcv_00211] 📄 PDF
Provides the state of a flag in the transceiver hardware.
Het enumeratietype CanTrcv_TrcvFlagStateType representeert de toestand van een individuele vlag in de transceiverhardware [SWS_CanTrcv_00211]. De declaratie wordt via het headerbestand CanTrcv.h beschikbaar gesteld voor toepassende softwaremodules en drivers [SWS_CanTrcv_00211].
Het waardebereik is binair opgebouwd en onderscheidt twee discrete toestanden conform [SWS_CanTrcv_00211]:
CANTRCV_FLAG_SET: Geeft aan dat de betreffende vlag in de transceiverhardware is gezet [SWS_CanTrcv_00211].CANTRCV_FLAG_CLEARED: Geeft aan dat de vlag in de transceiverhardware is gewist of niet is gezet [SWS_CanTrcv_00211].
Voor het praktische gebruik kan worden vastgesteld dat het type primair dient voor de gestandaardiseerde weergave van hardwarematige registertoestanden [SWS_CanTrcv_00211]. Interpretatie: Aanroepende lagen zoals de CAN-interfacedriver of diagnosemodules lezen dit type typisch uit via opvraagfuncties via pointerparameters of retourwaarde om eventuele fout- of wekvlaggen te beoordelen. Vraag Q-1b75b4baf2f4c6e3 (open) Aangezien het type zelf geen functielogica, re-entrantie-restricties of DET-meldingen bevat, berust de controle op geldige waardebereiken bij de verwerkende interfaces.
Deze tekst is gegenereerd door een AI en dient als oriëntatiehulp. Bindend is de AUTOSAR-specificatie.
Implementer's Guide volgt (complexiteit I1)
type CanTrcv_TrcvModeType [SWS_CanTrcv_00163] 📄 PDF
Operating modes of the CAN Transceiver Driver.
Het enumeratietype CanTrcv_TrcvModeType definieert conform [SWS_CanTrcv_00163] de gestandaardiseerde bedrijfsmodi voor de CAN-transceiverdriver (CanTrcv). De declaratie wordt via het headerbestand Can_GeneralTypes.h beschikbaar gesteld voor softwareoverstijgende interfaces in de AUTOSAR-communicatiestack.
Waardebereik en betekenissen
Conform [SWS_CanTrcv_00163] zijn er drie enumeratiewaarden beschikbaar:
CANTRCV_TRCVMODE_NORMAL(waarde0x00): Duidt de reguliere transceiver-bedrijfsmodus aan voor het verzenden en ontvangen van CAN-berichten.CANTRCV_TRCVMODE_STANDBY: Representeert de standby-modus van de transceiver, waarin de communicatie rust en er sprake is van een gereduceerd stroomverbruik.CANTRCV_TRCVMODE_SLEEP: Representeert de slaapmodus van de transceiver voor maximale energiebesparing.
Gebruik en beperkingen
De enumeratie dient als gemeenschappelijke datatype-representatie voor de hardwaretoestand van de CAN-transceiver [SWS_CanTrcv_00163]. Interpretatie: Het type dient vermoedelijk vooral voor parameteroverdracht in besturings- en opvraaginterfaces van de transceiverdriver, waarmee hogere lagen zoals de CAN-interface moduswijzigingen initiëren of de actuele status inlezen. Vraag Q-95fceb6988818621 (open) Aangezien het onderhavige specificatie-uittreksel geen runtimefouten (DET/DEM), re-entrantiegegevens of concrete functiesignaturen bevat, moeten aanroepcontexten en concurrencyregels worden ontleend aan de respectieve gebruikmakende driverfuncties.
Deze gebruiksinstructie is uitsluitend gebaseerd op de specificatiegegevens uit AUTOSAR R20-11 over [SWS_CanTrcv_00163].
Implementer's Guide volgt (complexiteit I1)
type CanTrcv_TrcvWakeupModeType [SWS_CanTrcv_00164] 📄 PDF
This type shall be used to control the CAN transceiver concerning wake up events and wake up notifications.
Het enumeratietype CanTrcv_TrcvWakeupModeType dient voor de besturing van een CAN-transceiver met betrekking tot wek-events en weknotificaties [SWS_CanTrcv_00164]. De typedefinitie wordt via het headerbestand Can_GeneralTypes.h beschikbaar gesteld en is daarmee stackwijd beschikbaar [SWS_CanTrcv_00164].
Het waardebereik omvat drie besturingsmodi voor de telkens geadresseerde transceiver [SWS_CanTrcv_00164]:
CANTRCV_WUMODE_ENABLE(waarde0x00): Activeert de notificatie voor wake-up-events op de geadresseerde transceiver [SWS_CanTrcv_00164].CANTRCV_WUMODE_DISABLE(waarde0x01): Deactiveert de notificatie voor wake-up-events op de geadresseerde transceiver [SWS_CanTrcv_00164].CANTRCV_WUMODE_CLEAR(waarde0x02): Wist een in de geadresseerde transceiver opgeslagen wake-up-event [SWS_CanTrcv_00164].
Interpretatie: Het type wordt in de praktijk vermoedelijk primair gebruikt als overdrachtsparameter in besturingsfuncties van de transceiverdriver om weknotificaties dynamisch in- of uit te schakelen en gedetecteerde wek-events te resetten. Vraag Q-c53d60cdad0442ca (open) Aangezien de specificatie als zuiver enumeratietype geen functiesignaturen, uitvoeringssemantiek, foutcodes of concurrencyregels voorschrijft, worden deze aspecten volledig bepaald door de aanroepende en verwerkende driverinterfaces [SWS_CanTrcv_00164].
Deze tekst is opgesteld door een AI; de juistheid kan niet worden gegarandeerd.
Implementer's Guide volgt (complexiteit I1)
type CanTrcv_TrcvWakeupReasonType [SWS_CanTrcv_00165] 📄 PDF
This type denotes the wake up reason detected by the CAN transceiver in detail. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CANTransceiverDriver
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_CanTrcv- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_CanTrcv@rel:R20-11#fe8f436d- Content hash
fe8f436d- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CANTransceiverDriver.pdf#nameddest=SWS_CanTrcv_00001
gemini-3.8-flash-low· 2026-10-13 · Duits origineel