DEENESPTFRRUARHIKOZHNL

CAN Transceiver Driver (CanTrcv)

ModulCanTrcv (CAN Transceiver Driver)
BSW-Modul-ID70
Standard-Header#include "CanTrcv.h"
SWS-SpezifikationAUTOSAR_SWS_CANTransceiverDriver.pdf
ClusterCAN

ModulegidsAI-GEGENEREERD

Bestuurt externe CAN-transceivers: bedrijfsmodi, wake-updetectie en selectief wekken via wake-upframes.
DOOR AI GEGENEREERD ongecontroleerd Model: claude-opus-5-5 · Inspanning: high · Temperatuur: niet regelbaar · Prompt: 61900c5cf397 Herkomst Open vragen (4)
Causaal anker: R20-11 Geldig vanaf R20-11 Nieuw gesynthetiseerd voor deze specificatiestand.
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Bestuurt externe CAN-transceivers: bedrijfsmodi, wake-updetectie en selectief wekken via wake-upframes.

CanTrcv bestuurt externe CAN-transceivers en brengt deze onder in een generiek modusmodel met NORMAL, STANDBY en SLEEP. Moduswisselingen vraagt CanIf asynchroon aan; bereikte modi meldt de driver terug via een indicatie [SWS_CanTrcv_00158]. Daarnaast detecteert hij wake-ups, meldt deze aan EcuM en ondersteunt bij geschikte hardware selectief wekken via wake-upframes. Belangrijkste randvoorwaarde: SLEEP is alleen bereikbaar vanuit STANDBY [SWS_CanTrcv_00104], en tijdens geblokkeerde notificatie mogen er geen wake-ups verloren gaan.

De CAN Transceiver Driver (CanTrcv) kapselt externe CAN-transceivers in achter een generiek modusmodel. Daardoor blijven ComM en EcuM ontkoppeld van de concrete hardware (SWS CanTrcv p. 19). Voor elk transceiver-hardwaretype is er een driverinstantie [SWS_CanTrcv_00016]. De driver wordt aangesproken via CanIf en bestuurt de hardware via Dio en Spi, die vóór CanTrcv_Init moeten zijn geïnitialiseerd [SWS_CanTrcv_00099]. Na init bevindt elke transceiver zich, per kanaal geconfigureerd, in STANDBY of SLEEP [SWS_CanTrcv_00148]. CanTrcv_DeInit leidt naar NOT_ACTIVE [SWS_CanTrcv_91003].

CanTrcv_SetOpMode schakelt tussen NORMAL, STANDBY en SLEEP [SWS_CanTrcv_00102]. SLEEP is alleen toegestaan vanuit STANDBY [SWS_CanTrcv_00104]. Een overgang naar de actuele modus is geen fout [SWS_CanTrcv_00161]. De functie werkt asynchroon: zodra de doelmodus is bereikt, meldt CanTrcv dit via CanIf_TrcvModeIndication [SWS_CanTrcv_00158].

zustaende cluster_power_on POWER_ON cluster_active ACTIVE start NOT_ACTIVE NOT_ACTIVE start->NOT_ACTIVE Power on stop NOT_ACTIVE->stop Power off STANDBY CANTRCV_TRCVMODE_STANDBY NOT_ACTIVE->STANDBY CanTrcv_Init() [Init-Zustand STANDBY] SLEEP CANTRCV_TRCVMODE_SLEEP NOT_ACTIVE->SLEEP CanTrcv_Init() [Init-Zustand SLEEP] NORMAL CANTRCV_TRCVMODE_NORMAL NORMAL->NOT_ACTIVE CanTrcv_DeInit() NORMAL->NORMAL SetOpMode(NORMAL) NORMAL->STANDBY SetOpMode(STANDBY) STANDBY->NORMAL SetOpMode(NORMAL) STANDBY->STANDBY SetOpMode(STANDBY) STANDBY->SLEEP SetOpMode(SLEEP) SLEEP->NORMAL SetOpMode(NORMAL) SLEEP->SLEEP SetOpMode(SLEEP)

Toestandsdiagram: Init leidt naar STANDBY of SLEEP, SLEEP is alleen bereikbaar via STANDBY, DeInit leidt naar NOT_ACTIVE. Bronnen: SWS CanTrcv p. 19, [SWS_CanTrcv_00148]

Wake-ups controleert CanIf via CanTrcv_CheckWakeup. Deze functie meldt gedetecteerde wake-ups via EcuM_SetWakeupEvent [SWS_CanTrcv_00146]. CanTrcv_MainFunction doorzoekt de bussen in STANDBY en SLEEP [SWS_CanTrcv_00112]. CanTrcv_SetWakeupMode kan de notificatie blokkeren, vrijgeven of opgeslagen wake-ups wissen. Daarbij mag geen wake-up verloren gaan [SWS_CanTrcv_00095].

PN-compatibele transceivers (CanTrcvHwPnSupport) wekken daarnaast via geconfigureerde wake-up-frames [SWS_CanTrcv_00175]. Bij de shutdown wist CanSM eerst de WUF-flag en schakelt vervolgens naar STANDBY [SWS_CanTrcv_00194]. Aansluitend laat CanSM de wake-flag asynchroon controleren [SWS_CanTrcv_00224].

In geval van fouten geldt:

  • Bij geactiveerde DET worden ontwikkelingsfouten gemeld; bij uitgeschakelde DET leveren de API's E_NOT_OK [SWS_CanTrcv_00050].
  • Een verstoorde hardwarecommunicatie meldt de driver als runtimefout CANTRCV_E_NO_TRCV_CONTROL [SWS_CanTrcv_91006].
  • Busfouten meldt CanTrcv_MainFunctionDiagnostics als CANTRCV_E_BUS_ERROR aan DEM [SWS_CanTrcv_00206].
Shutdown met Partial Networking (SPI asynchroon)CanSMCanIfCanTrcvSpiAusgang: Anforderung NoCom,Transceiver NORMAL, Controller STARTEDUse Case: Deel I: WUF-flag wissen, STANDBYCanIf_ClearTrcvWufFlag(TransceiverId)CanTrcv_ClearTrcvWufFlag(Transceiver)Spi_AsyncTransmit(Sequence)CanIf_ClearTrcvWufFlagIndication(TransceiverId)CanSM_ClearTrcvWufFlagIndicationCanIf_SetControllerMode(ControllerId, CAN_CS_STOPPED)CanIf_SetTrcvMode(TransceiverId, CANIF_TRCV_MODE_STANDBY)CanTrcv_SetOpMode(Transceiver, STANDBY)Spi_AsyncTransmit(Sequence)CanIf_TrcvModeIndication(TransceiverId, STANDBY)CanSM_TransceiverModeIndication(TransceiverId, STANDBY)Use Case: Deel II: controller-sleep, wake-flag controlerenCanIf_SetControllerMode(ControllerId, CAN_CS_SLEEP)CanIf_CheckTrcvWakeFlag(TransceiverId)CanTrcv_CheckWakeFlag(Transceiver)Spi_AsyncTransmit (Wake-Flag lesen)CanIf_CheckTrcvWakeFlagIndication(TransceiverId)<User_CheckTrcvWakeFlagIndication>

Sequentiediagram: Bij de PN-shutdown wordt de WUF-flag gewist, de transceiver naar STANDBY geschakeld en de wake-flag asynchroon gecontroleerd. Bronnen: SWS CanTrcv p. 55, [SWS_CanTrcv_00194].

Rol: driver voor externe CAN-transceivers onder CanIf

De CAN Transceiver Driver (CanTrcv) stuurt externe CAN-transceivercomponenten aan. Hij beeldt hun hardwaretoestanden af op een generiek bedrijfsmodusmodel. Dit model moet vele beschikbare transceivers uniform dekken. Volgens de specificatie neemt het er daarvoor genoegen mee voor een concrete component een of twee toestanden te veel te hebben, maar ontkoppelt daarmee ComM en EcuM van de hardware (SWS CanTrcv p. 19). De transceiverhardware moet daartoe een interface bieden die zich op dit model laat afbeelden [SWS_CanTrcv_00098].

Naar boven toe is CanIf de directe partner:

Terugmeldingen lopen via CanIf_TrcvModeIndication, dat tot de verplichte interfaces behoort [SWS_CanTrcv_00085]. Voor de PN-indicaties zijn aanvullende CanIf-callbacks vermeld [SWS_CanTrcv_00086]. Naar beneden toe gebruikt CanTrcv Dio en Spi voor hardwareaansturing, evenals Icu, DEM en EcuM-typen, zoals de importlijst laat zien [SWS_CanTrcv_00084]. Wachttijden bij toestandsovergangen realiseert de driver met Tm_BusyWait1us16bit [SWS_CanTrcv_00230]. CanTrcv_MainFunction en CanTrcv_MainFunctionDiagnostics worden aangeroepen door de BSW-scheduler (SWS CanTrcv p. 47).

kontext EcuM EcuM / Integrationscode CanTrcv CanTrcv EcuM->CanTrcv CanTrcv_Init SchM BSW-Scheduler (SchM) SchM->CanTrcv CanTrcv_MainFunction CanTrcv_MainFunctionDiagnostics CanSM CanSM CanIf CanIf CanSM->CanIf CanIf_SetTrcvMode CanIf_ClearTrcvWufFlag CanIf_CheckTrcvWakeFlag CanIf->CanSM CanSM_TransceiverModeIndication CanIf->CanTrcv SetOpMode, GetOpMode, GetBusWuReason, SetWakeupMode, CheckWakeup, ClearTrcvWufFlag, CheckWakeFlag CanTrcv->EcuM EcuM_SetWakeupEvent CanTrcv->CanIf CanIf_TrcvModeIndication CanIf_ClearTrcvWufFlagIndication CanIf_CheckTrcvWakeFlagIndication Dio Dio CanTrcv->Dio Dio_WriteChannel Spi Spi CanTrcv->Spi SPI-Sequenzen Icu Icu CanTrcv->Icu Icu_EnableNotification Icu_DisableNotification Tm Tm CanTrcv->Tm Tm_BusyWait1us16bit Det Det CanTrcv->Det Ontwikkelings- en runtimefouten Dem Dem CanTrcv->Dem Dem_SetEventStatus (CANTRCV_E_BUS_ERROR) HW CAN-Transceiver-Hardware Dio->HW Pins Spi->HW Register

Contextdiagram: CanTrcv wordt bediend door CanIf, EcuM en de scheduler en benadert de hardware via Dio, Spi en Icu. Fouten meldt het aan DET en DEM. Bronnen: [SWS_CanTrcv_00084], [SWS_CanTrcv_00085], [SWS_CanTrcv_00146], SWS EcuM p. 35

Initialisatie, levenscyclus en de-initialisatie

Voorafgaand aan de aanroep van CanTrcv_Init [SWS_CanTrcv_00001] moet de omgeving alle gebruikte drivers hebben geïnitialiseerd, in het bijzonder Spi en Dio [SWS_CanTrcv_00099]. De documentpassage voegt twee tijdsvoorwaarden toe: de initialisatie moet vroeg na de power-up plaatsvinden en de onderliggende services moeten kort en synchroon zijn (SWS CanTrcv p. 26).

CanTrcv_Init initialiseert alle aangesloten transceivers conform hun initialisatiesequenties en de configuratie uit ConfigPtr [SWS_CanTrcv_00180]. De inhoud van CanTrcv_ConfigType is hardwarespecifiek [SWS_CanTrcv_00209]. Daarna bevindt elke transceiver zich in CANTRCV_TRCVMODE_SLEEP of CANTRCV_TRCVMODE_STANDBY; dat is per transceiver configureerbaar [SWS_CanTrcv_00148].

De initialisatie controleert tegelijkertijd op wake-ups:

  • Ondersteunt de hardware dit, dan controleert CanTrcv_Init of transceiveractiviteit het ontwaken heeft getriggerd. Het resultaat meldt deze via EcuM_SetWakeupEvent met de bron uit CanTrcvWakeupSourceRef [SWS_CanTrcv_00167].
  • Bij PN-compatibele transceivers wordt bovendien de configuratiesequentie opnieuw uitgevoerd wanneer de POR- of SYSERR-flag is gezet. Anders blijft de in de transceiver opgeslagen configuratie geldig [SWS_CanTrcv_00182].
  • Een gezette POR-flag wordt bovendien via CanTrcvPorWakeupSourceRef als wake-up gemeld [SWS_CanTrcv_00183].

De POR-melding past bij transceivers met geïntegreerde voeding. Bij deze ziet een passief ontwaken er voor de ECU uit als een power-on-reset (SWS EcuM p. 70).

init start vor Omgeving heeft Spi en Dio geïnitialiseerd start->vor init CanTrcv_Init(ConfigPtr) vor->init komm Communicatie naar de transceiver correct? init->komm noctrl Laufzeitfehler CANTRCV_E_NO_TRCV_CONTROL komm->noctrl nein baud Baudrate ondersteund? komm->baud ja baudErr DET: CANTRCV_E_BAUDRATE_NOT_SUPPORTED baud->baudErr nein seq Initialisatiesequenties conform configuratie uitvoeren baud->seq ja porsys PN-hardware: POR of SYSERR ingesteld? seq->porsys rekonf Configuratiesequentie opnieuw uitvoeren porsys->rekonf ja wu Wake-up door transceiver-activiteit? porsys->wu nee / geen PN-HW por POR-Flag gesetzt? rekonf->por porWu EcuM_SetWakeupEvent (CanTrcvPorWakeupSourceRef) por->porWu ja por->wu nein porWu->wu wuMeld EcuM_SetWakeupEvent (CanTrcvWakeupSourceRef) wu->wuMeld ja ziel Per kanaal geconfigureerde toestand: CANTRCV_TRCVMODE_STANDBY of CANTRCV_TRCVMODE_SLEEP wu->ziel nein wuMeld->ziel ende ziel->ende

Activiteitendiagram: De initialisatie controleert de bereikbaarheid van de hardware, behandelt POR/SYSERR, meldt wake-ups aan EcuM en eindigt per kanaal in STANDBY of SLEEP. De volgorde van de controles is een interpretatie. Bronnen: [SWS_CanTrcv_00180], [SWS_CanTrcv_00182], [SWS_CanTrcv_00183], [SWS_CanTrcv_00167], [SWS_CanTrcv_00148]

CanTrcv_DeInit [SWS_CanTrcv_91001] brengt de transceiverhardware in de toestand NOT_ACTIVE [SWS_CanTrcv_91003]. In deze toestand kan deze met een nieuwe configuratiesequentie worden ingesteld (SWS CanTrcv p. 49). De verwachte uitgangstoestand is CANTRCV_TRCVMODE_NORMAL; anders meldt de ontwikkelingsfoutcontrole CANTRCV_E_TRCV_NOT_NORMAL [SWS_CanTrcv_91005].

Bedrijfsmodi NORMAL, STANDBY en SLEEP

CanTrcv_TrcvModeType definieert de drie modi [SWS_CanTrcv_00163]. CanTrcv_SetOpMode [SWS_CanTrcv_00002] schakelt de interne toestand van de geadresseerde transceiver naar een van deze modi [SWS_CanTrcv_00102]. Voor de overgangen geldt:

zustaende cluster_power_on POWER_ON cluster_active ACTIVE start NOT_ACTIVE NOT_ACTIVE start->NOT_ACTIVE Power on stop NOT_ACTIVE->stop Power off STANDBY CANTRCV_TRCVMODE_STANDBY NOT_ACTIVE->STANDBY CanTrcv_Init() [Init-Zustand STANDBY] SLEEP CANTRCV_TRCVMODE_SLEEP NOT_ACTIVE->SLEEP CanTrcv_Init() [Init-Zustand SLEEP] NORMAL CANTRCV_TRCVMODE_NORMAL NORMAL->NOT_ACTIVE CanTrcv_DeInit() NORMAL->NORMAL SetOpMode(NORMAL) NORMAL->STANDBY SetOpMode(STANDBY) STANDBY->NORMAL SetOpMode(NORMAL) STANDBY->STANDBY SetOpMode(STANDBY) STANDBY->SLEEP SetOpMode(SLEEP) SLEEP->NORMAL SetOpMode(NORMAL) SLEEP->SLEEP SetOpMode(SLEEP)

Toestandsdiagram: Na Init bevindt de transceiver zich in STANDBY of SLEEP. SLEEP is alleen bereikbaar via STANDBY, NORMAL vanuit alle modi. DeInit leidt naar NOT_ACTIVE. Bronnen: SWS CanTrcv p. 19, [SWS_CanTrcv_00148], [SWS_CanTrcv_00103], [SWS_CanTrcv_00104], [SWS_CanTrcv_91003]

CanTrcv_SetOpMode werkt asynchroon: E_OK betekent alleen dat de aanvraag is geaccepteerd (SWS CanTrcv p. 33). Pas wanneer de doelmodus is bereikt, roept CanTrcv CanIf_TrcvModeIndication met de abstracte CanIf-TransceiverId aan [SWS_CanTrcv_00158]. CanSM negeert een dergelijke melding voor SLEEP, omdat SLEEP alleen door integratiecode wordt aangevraagd (SWS CanSM p. 94).

Bij PN-compatibele hardware controleert CanTrcv_SetOpMode tevens de flags POR en SYSERR [SWS_CanTrcv_00186]. Na een POR initialiseert het de transceiver opnieuw [SWS_CanTrcv_00187]. CanTrcv_GetOpMode [SWS_CanTrcv_00005] levert synchroon de actuele toestand op [SWS_CanTrcv_00106].

Moduswissel van de transceiverCanSMCanIfCanTrcvDio / SpiCanIf_SetTrcvMode(TransceiverId, TransceiverMode)CanTrcv_SetOpMode(Transceiver, OpMode)optPN-Hardware (CanTrcvHwPnSupport = TRUE)POR-/SYSERR-flags controleren,na POR opnieuw initialiserenDio_WriteChannel resp. SPI-sequentieE_OK (Anforderung angenommen)E_OKasynchroon: doelmodus wordtlater bereiktCanIf_TrcvModeIndication(TransceiverId, TransceiverMode)CanSM_TransceiverModeIndication(TransceiverId, TransceiverMode)Melding voor SLEEP negeert CanSM

Sequentiediagram: Een modusomschakeling wordt synchroon geaccepteerd en later via een indicatie over CanIf aan CanSM bevestigd. Bronnen: SWS CanTrcv p. 52, [SWS_CanTrcv_00158], [SWS_CanTrcv_00186]

Wake-up: herkenning, oorzaak en notificatiebesturing

Een wake-up wordt via interrupt of via polling herkend (SWS EcuM p. 179). CanIf vraagt daarbij via CanIf_CheckWakeup de functie CanTrcv_CheckWakeup [SWS_CanTrcv_00143] op (SWS CanIf p. 56). Ondersteunt de hardware dit, dan valideert deze functie een wake-up door transceiveractiviteit en meldt deze via EcuM_SetWakeupEvent [SWS_CanTrcv_00146].

CanTrcv_MainFunction [SWS_CanTrcv_00013] doorzoekt alle bussen in STANDBY en SLEEP op wake-ups en zet een wake-up-flag [SWS_CanTrcv_00112]. Vermoedelijk is deze vooral relevant bij een pollingconfiguratie; het configuratiediagram voorziet daarvoor in de waarde CanTrcvWakeUpByPolling (ECUC-Parameter p. 185). Vraag Q-6144fdedb98cea44 (open)

CanTrcv_GetBusWuReason [SWS_CanTrcv_00007] levert de door de transceiver herkende wake-up-oorzaak [SWS_CanTrcv_00107]. Mogelijke waarden zijn bijvoorbeeld CANTRCV_WU_BY_BUS, CANTRCV_WU_INTERNALLY of CANTRCV_WU_RESET [SWS_CanTrcv_00165]. Hoe fijnmazig de oorzaken kunnen worden onderscheiden, hangt sterk van de hardware af (SWS CanTrcv p. 35).

Voor wake-up-interrupts gebruikt de driver ICU-kanalen. Icu_EnableNotification en Icu_DisableNotification roept hij alleen aan wanneer CanTrcvIcuChannelRef is geconfigureerd [SWS_CanTrcv_00171]. Bij de overgang naar STANDBY activeert hij de kanalen [SWS_CanTrcv_00172]. De documentpassage uit R24-11 noemt daarnaast het deactiveren bij de overgang naar NORMAL (SWS CanTrcv p. 23).

Wake-up-detectie via de transceiverTransceiver-HardwareEcuM / IntegrationscodeCanIfCanTrcvaltWake-up per InterruptWake-up-Interrupt (ICU-Kanal)CanIf_CheckWakeup(WakeupSource)CanTrcv_CheckWakeup(Transceiver)Wake-up durch Transceiver-Activiteit validerenEcuM_SetWakeupEvent(CanTrcvWakeupSourceRef)Wake-up per PollingCanTrcv_MainFunction: Busse inSTANDBY/SLEEP controleren, flag instellenCanIf_CheckWakeup(WakeupSource)CanTrcv_CheckWakeup(Transceiver)EcuM_SetWakeupEvent(CanTrcvWakeupSourceRef)Use Case: Ursache abfragenCanIf_GetTrcvWakeupReason(TransceiverId, TrcvWuReasonPtr)CanTrcv_GetBusWuReason(Transceiver, reason)E_OK, reason = z. B. CANTRCV_WU_BY_BUSE_OK

Sequentiediagram: Een wake-up wordt via interrupt of polling via CanIf bij de transceiver gecontroleerd, aan EcuM gemeld en later uitgevraagd naar de oorzaak ervan. Bronnen: SWS EcuM p. 179, SWS EcuM p. 138, SWS EcuM p. 140, [SWS_CanTrcv_00146], [SWS_CanTrcv_00112]

CanTrcv_SetWakeupMode [SWS_CanTrcv_00009] bestuurt de wake-up-notificatie via CanTrcv_TrcvWakeupModeType [SWS_CanTrcv_00164]:

In de geblokkeerde fase mogen geen wake-ups verloren gaan [SWS_CanTrcv_00095]. Het wissen dient ertoe opgeslagen wake-ups bij geblokkeerde notificatie onder controle van de hogere laag te verwerpen [SWS_CanTrcv_00150]. CanIf geeft de aanvraag via CanIf_SetTrcvWakeupMode door aan CanTrcv (SWS CanIf p. 100).

Selectief ontwaken (Partial Networking)

Bij Partial Networking blijven knooppunten in de low-power-modus totdat vooraf gedefinieerde wake-up-frames (WUF) hen wekken. PN-compatibele transceivers reageren dus niet alleen op het wake-up-pattern (WUP), maar ook op deze frames (SWS CanTrcv p. 27). Of de hardware dit ondersteunt, geeft CanTrcvHwPnSupport aan [SWS_CanTrcv_00174]. Alleen wanneer deze parameter TRUE is, bestaan de container CanTrcvPartialNetwork en vijf API's: CanTrcv_GetTrcvSystemData, CanTrcv_ClearTrcvWufFlag, CanTrcv_ReadTrcvTimeoutFlag, CanTrcv_ClearTrcvTimeoutFlag en CanTrcv_ReadTrcvSilenceFlag [SWS_CanTrcv_00175].

Op welke frames de transceiver reageert, leggen CanTrcvPnFrameCanId, CanTrcvPnFrameCanIdMask en CanTrcvPnFrameDataMask vast [SWS_CanTrcv_00177]. CanTrcv_SetPNActivationState [SWS_CanTrcv_00219] schakelt de PN-wake-up-functie met PN_ENABLED in [SWS_CanTrcv_00221] en met PN_DISABLED uit [SWS_CanTrcv_00222].

Centraal staat het shutdown-verloop:

  1. CanSM wist via CanTrcv_ClearTrcvWufFlag de WUF-flag, zodat bij het binnengaan van de low-power-modus geen frame-wake-up verloren gaat. Aansluitend komt de transceiver in STANDBY [SWS_CanTrcv_00194].
  2. CanTrcv bevestigt het wissen met CanIf_ClearTrcvWufFlagIndication [SWS_CanTrcv_00195].
  3. Tenslotte vraagt CanSM de asynchrone controle CanTrcv_CheckWakeFlag aan [SWS_CanTrcv_00223]. Het resultaat meldt CanTrcv via CanIf_CheckTrcvWakeFlagIndication [SWS_CanTrcv_00224].

Voor SPI-aansluiting beschrijft de specificatie een asynchrone (SWS CanTrcv p. 55) en een synchrone variant (SWS CanTrcv p. 57).

Shutdown met Partial Networking (SPI asynchroon)CanSMCanIfCanTrcvSpiAusgang: Anforderung NoCom,Transceiver NORMAL, Controller STARTEDUse Case: Deel I: WUF-flag wissen, STANDBYCanIf_ClearTrcvWufFlag(TransceiverId)CanTrcv_ClearTrcvWufFlag(Transceiver)Spi_AsyncTransmit(Sequence)CanIf_ClearTrcvWufFlagIndication(TransceiverId)CanSM_ClearTrcvWufFlagIndicationCanIf_SetControllerMode(ControllerId, CAN_CS_STOPPED)CanIf_SetTrcvMode(TransceiverId, CANIF_TRCV_MODE_STANDBY)CanTrcv_SetOpMode(Transceiver, STANDBY)Spi_AsyncTransmit(Sequence)CanIf_TrcvModeIndication(TransceiverId, STANDBY)CanSM_TransceiverModeIndication(TransceiverId, STANDBY)Use Case: Deel II: controller-sleep, wake-flag controlerenCanIf_SetControllerMode(ControllerId, CAN_CS_SLEEP)CanIf_CheckTrcvWakeFlag(TransceiverId)CanTrcv_CheckWakeFlag(Transceiver)Spi_AsyncTransmit (Wake-Flag lesen)CanIf_CheckTrcvWakeFlagIndication(TransceiverId)<User_CheckTrcvWakeFlagIndication>

Sequentiediagram: Bij de PN-shutdown wordt de WUF-flag gewist, de transceiver naar STANDBY geschakeld en na de controller-sleep de wake-flag asynchroon gecontroleerd. Bronnen: SWS CanTrcv p. 55, SWS CanTrcv p. 56, SWS CanSM p. 36, [SWS_CanTrcv_00194], [SWS_CanTrcv_00224].

Voor de diagnose leest CanTrcv_GetTrcvSystemData [SWS_CanTrcv_00213] configuratie en status van de transceiver als uint32 uit [SWS_CanTrcv_00189]. Timeout- en silence-flags worden via CanTrcv_ReadTrcvTimeoutFlag [SWS_CanTrcv_00215], CanTrcv_ClearTrcvTimeoutFlag [SWS_CanTrcv_00216] en CanTrcv_ReadTrcvSilenceFlag [SWS_CanTrcv_00217] gelezen respectievelijk gewist. Hun toestand geeft CanTrcv_TrcvFlagStateType aan [SWS_CanTrcv_00211].

Configuratie en instantierelatie

Voor elk transceiverhardwaretype is er een driverinstantie die alle componenten van dit type bedient [SWS_CanTrcv_00016]. Het CanIf-diagram toont het geval van gelijke controllers met verschillende transceivertypen, wat dan twee transceiverdrivers vereist (SWS CanIf p. 34). Elk kanaal wordt beschreven door een container CanTrcvChannel (multipliciteit 1..*). Deze bevat onder andere CanTrcvHwPnSupport, CanTrcvInitState, CanTrcvWakeupByBusUsed en de wake-up-bronreferenties (SWS CanTrcv p. 70).

Een verschil tussen de bronnen betreft de toestand na Init. Het configuratiediagram noemt CanTrcvOpModeNormal als default van CanTrcvInitState (ECUC-Parameter p. 187). Normatief voor R20-11 is echter [SWS_CanTrcv_00148], dat na Init alleen SLEEP of STANDBY voorziet. Configuraties met niet-ondersteunde partitietoewijzingen moet de driver afwijzen [SWS_CanTrcv_00231].

Gedrag in het foutgeval

De ontwikkelingsfouten uit [SWS_CanTrcv_00050] volgen een uniform patroon. Bij geactiveerde DET melden de API's:

Is de DET uitgeschakeld, dan leveren de API's in deze gevallen E_NOT_OK.

Is de communicatie met de transceiver verstoord, dan meldt de driver de runtimefout CANTRCV_E_NO_TRCV_CONTROL [SWS_CanTrcv_91006] via Det_ReportRuntimeError [SWS_CanTrcv_00085]. Dat geldt bijvoorbeeld in Init [SWS_CanTrcv_00113], SetOpMode [SWS_CanTrcv_00114], GetOpMode [SWS_CanTrcv_00115], SetWakeupMode [SWS_CanTrcv_00117], GetTrcvSystemData [SWS_CanTrcv_00190] en ClearTrcvWufFlag [SWS_CanTrcv_00196]. Een uitzondering vormt CanTrcv_GetBusWuReason: deze retourneert in dit geval volgens [SWS_CanTrcv_00116] E_OK. Een niet-ondersteunde baudrate meldt Init als CANTRCV_E_BAUDRATE_NOT_SUPPORTED [SWS_CanTrcv_00168].

fehler start aufruf API-Aufruf, z. B. CanTrcv_SetOpMode start->aufruf init Modul initialisiert? aufruf->init eUninit DET: CANTRCV_E_UNINIT (DET aus: E_NOT_OK) init->eUninit nein id Transceiver-ID geldig? init->id ja eId DET: CANTRCV_E_INVALID_TRANSCEIVER (DET aus: E_NOT_OK) id->eId nein ptr Zeigerparameter != NULL? id->ptr ja ePtr DET: CANTRCV_E_PARAM_POINTER (DET aus: E_NOT_OK) ptr->ePtr nein modus Modus / overgang toegestaan? ptr->modus ja / kein Zeiger eModus DET: CANTRCV_E_PARAM_TRCV_OPMODE, CANTRCV_E_TRCV_NOT_NORMAL of CANTRCV_E_TRCV_NOT_STANDBY (DET uit: E_NOT_OK) modus->eModus nein hw Hardwaretoegang via Dio / Spi modus->hw ja komm Kommunikation korrekt? hw->komm eKomm Det_ReportRuntimeError: CANTRCV_E_NO_TRCV_CONTROL Retourwaarde E_NOT_OK (GetBusWuReason: E_OK) komm->eKomm nein ok E_OK komm->ok ja

Activiteitendiagram: API-aanroepen doorlopen ontwikkelingsfoutcontroles en daarna de hardwaretoegang met runtimefoutafhandeling. De controlevolgorde is een interpretatie. Bronnen: [SWS_CanTrcv_00050], [SWS_CanTrcv_00122], [SWS_CanTrcv_00123], [SWS_CanTrcv_00132], [SWS_CanTrcv_00114], [SWS_CanTrcv_00116]

Busfouten worden als productiefouten behandeld. Voorwaarde is dat de hardware busfouten van andere fouten kan onderscheiden [SWS_CanTrcv_00178] en CanTrcvBusErrFlag = TRUE is [SWS_CanTrcv_00205]. Dan leest CanTrcv_MainFunctionDiagnostics [SWS_CanTrcv_00218] cyclisch de BUSERR-flag. Deze meldt CANTRCV_E_BUS_ERROR als DEM_EVENT_STATUS_FAILED [SWS_CanTrcv_00206] resp. DEM_EVENT_STATUS_PASSED [SWS_CanTrcv_00227] aan DEM [SWS_CanTrcv_00228] [SWS_CanTrcv_00229]. Het DEM-event wordt via CanTrcvDemEventParameterRefs gerefereerd (SWS CanTrcv p. 78).

Verdere gedetailleerde bewijzen

AI-gegenereerde handleiding op basis van de in de payload opgenomen requirements en documentlocaties voor CanTrcv (Classic, R20-11). Documentlocaties uit andere releases zijn aanvullend gebruikt; waar deze afwijken, is dit aangegeven. Als interpretatie gemarkeerde uitspraken zijn niet normatief.

CAN Transceiver Driver (CanTrcv)

Controls physical bus transceiver states and wakeup detection on CAN lines.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

functie CanTrcv_Init [SWS_CanTrcv_00001] 📄 PDF

void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);

Initializes the Can Trcv module.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 69eb894dc0d7 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 62862d69beb4 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

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_NORMAL bevindt, mag als doelmodus alleen CANTRCV_TRCVMODE_STANDBY of CANTRCV_TRCVMODE_NORMAL worden doorgegeven [SWS_CanTrcv_00103].
  • Als de transceiver zich in CANTRCV_TRCVMODE_STANDBY bevindt, mag de functie alleen met CANTRCV_TRCVMODE_SLEEP of CANTRCV_TRCVMODE_STANDBY worden 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_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_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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 7ddf69d5a7ae Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 10eca0b578cb Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

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 parameter Transceiver de fout CANTRCV_E_INVALID_TRANSCEIVER [SWS_CanTrcv_00198]. Als DET is gedeactiveerd, wordt in deze gevallen direct E_NOT_OK geretourneerd [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_CONTROL aan de Default Error Tracer en retourneert E_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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: a58e25cc2696 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

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 configuratiecontainer CanTrcvPartialNetwork bestaat 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 daarvan E_NOT_OK geretourneerd [SWS_CanTrcv_00199].
  • Als een null-pointer voor FlagState wordt doorgegeven (FlagState = NULL), meldt de module bij actieve DET de fout CANTRCV_E_PARAM_POINTER; als DET is uitgeschakeld, levert de aanroep E_NOT_OK op [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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 58509e1d0c7c Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

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: Transceiver bepaalt als invoerwaarde (uint8) het aan te spreken transceiverkanaal [SWS_CanTrcv_00216].
  • Retourwaarde: Een Std_ReturnType signaleert met E_OK het succesvol wissen van de hardwarevlag of met E_NOT_OK het 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_TRANSCEIVER aan DET gemeld [SWS_CanTrcv_00201].
  • Als de ontwikkelingsfoutdetectie is gedeactiveerd, breekt de aanroep af en retourneert E_NOT_OK aan 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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: be15c667bc30 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

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 naar CanTrcv_TrcvFlagStateType, waarmee de uitgelezen status van de silence-vlag wordt geretourneerd [SWS_CanTrcv_00217].
  • Retourwaarde (Std_ReturnType): Retourneert E_OK als de hardwaretoestand van de silence-vlag succesvol kon worden gelezen, anders E_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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 3bcebb868332 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

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_UNINIT gemeld; bij gedeactiveerde DET levert de aanroep in plaats daarvan E_NOT_OK op [SWS_CanTrcv_00144].
  • Bij overdracht van een ongeldig transceivernummer meldt de functie CANTRCV_E_INVALID_TRANSCEIVER; is DET gedeactiveerd, dan wordt E_NOT_OK geretourneerd [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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: ed5e02955479 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

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:

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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 3347f44cb215 Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

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]):

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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: f6b7395c6c6d Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

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 meldt CanTrcv_DeInit de ontwikkelingsfout CANTRCV_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_NORMAL te 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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 8f993661c2b3 Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 958c670ba046 Herkomst Open vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

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 API Dem_SetEventStatus aan met de parameter EventId als CANTRCV_E_BUS_ERROR en EventStatus als DEM_EVENT_STATUS_FAILED [SWS_CanTrcv_00206].
  • Is de BUSERR-flag gereset, dan roept CanTrcv_MainFunctionDiagnostics de API Dem_SetEventStatus aan met dezelfde EventId (CANTRCV_E_BUS_ERROR) en de status DEM_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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 4ef0e0487226 Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: b8ef2e8c5d35 Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

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 (waarde 0x00): 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.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: ceecd083c1cd Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

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 (waarde 0x00): Activeert de notificatie voor wake-up-events op de geadresseerde transceiver [SWS_CanTrcv_00164].
  • CANTRCV_WUMODE_DISABLE (waarde 0x01): Deactiveert de notificatie voor wake-up-events op de geadresseerde transceiver [SWS_CanTrcv_00164].
  • CANTRCV_WUMODE_CLEAR (waarde 0x02): 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

Initialisatie en status

De - initializes the Can Trcv module.

void CanTrcv_DeInit (void);

Gets the version of the module and returns it in Version Info.

void CanTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);
CanTrcv_Init functie

Initializes the Can Trcv module.

void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);

Diensten · Get…

Gets the wakeup reason for the Transceiver and returns it in parameter Reason.

Std_ReturnType CanTrcv_GetBusWuReason (uint8 Transceiver, CanTrcv_TrcvWakeupReasonType* reason);

Gets the mode of the Transceiver and returns it in Op Mode.

Std_ReturnType CanTrcv_GetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType* OpMode);

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.

Std_ReturnType CanTrcv_GetTrcvSystemData (uint8 Transceiver, uint32* TrcvSysData);

Diensten · Set…

Sets the mode of the Transceiver to the value Op Mode.

Std_ReturnType CanTrcv_SetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType OpMode);

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.

Std_ReturnType CanTrcv_SetPNActivationState (CanTrcv_PNActivationType ActivationState);

En ables, disables or clears wake - up events of the Transceiver according to Trcv Wakeup Mode.

Std_ReturnType CanTrcv_SetWakeupMode (uint8 Transceiver, CanTrcv_TrcvWakeupModeType TrcvWakeupMode);

Diensten · Overige

Requests to check the status of the wakeup flag from the transceiver hardware.

Std_ReturnType CanTrcv_CheckWakeFlag (uint8 Transceiver);

Service is called by underlying CANIF in case a wake up interrupt is detected.

Std_ReturnType CanTrcv_CheckWakeup (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.

Std_ReturnType CanTrcv_ClearTrcvTimeoutFlag (uint8 Transceiver);

Clears the WUF flag in the transceiver hardware. This API shall exist only if Can Trcv Hw Pn Support = TRUE.

Std_ReturnType CanTrcv_ClearTrcvWufFlag (uint8 Transceiver);

Reads the status of the silence flag from the transceiver hardware. This API shall exi st only if Can Trcv Hw Pn Support = TRUE.

Std_ReturnType CanTrcv_ReadTrcvSilenceFlag (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.

Std_ReturnType CanTrcv_ReadTrcvTimeoutFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);

Cyclisch

Service to scan all busses for wake up events and perform these event.

void CanTrcv_MainFunction (void);

Reads the transceiver diagnostic status periodically and sets product/ development accordingly.

void CanTrcv_MainFunctionDiagnostics (void);

Typen

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.

Datatype used for describing whether PN wakeup functionality in Can Trcv is enabled or disabled.

Provides the state of a flag in the transceiver hardware.

Operating modes of the CAN Transceiver Driver.

This type shall be used to control the CAN transceiver concerning wake up events and wake up notifications.

This type denotes the wake up reason detected by the CAN transceiver in detail. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CANTransceiverDriver