DEENESPTFRRUARHIKOZHNL

CAN Transceiver Driver (CanTrcv)

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

Modul-GuideKI-GENERIERT

Steuert externe CAN-Transceiver: Betriebsmodi, Wake-up-Erkennung und selektives Aufwecken über Wake-up-Frames.
KI-GENERIERT ungeprüft Modell: claude-opus-5-5 · Aufwand: high · Temperatur: nicht steuerbar · Prompt: 61900c5cf397 Herkunft Offene Fragen (4)
Kausaler Anker: R20-11 Gültig ab R20-11 Neu synthetisiert für diesen Spezifikationsstand.
KI-generiertclaude-opus-5-5 · 2026-10-13

Steuert externe CAN-Transceiver: Betriebsmodi, Wake-up-Erkennung und selektives Aufwecken über Wake-up-Frames.

CanTrcv steuert externe CAN-Transceiver und bildet sie auf ein generisches Modusmodell mit NORMAL, STANDBY und SLEEP ab. Moduswechsel fordert CanIf asynchron an; erreichte Modi meldet der Treiber über eine Indikation zurück [SWS_CanTrcv_00158]. Zusätzlich erkennt er Wake-ups, meldet sie an EcuM und unterstützt bei geeigneter Hardware das selektive Aufwecken über Wake-up-Frames. Wichtigste Randbedingung: SLEEP ist nur aus STANDBY erreichbar [SWS_CanTrcv_00104], und während gesperrter Benachrichtigung dürfen keine Wake-ups verloren gehen.

Der CAN Transceiver Driver (CanTrcv) kapselt externe CAN-Transceiver hinter einem generischen Modusmodell. Dadurch bleiben ComM und EcuM von der konkreten Hardware entkoppelt (SWS CanTrcv S. 19). Für jeden Transceiver-Hardwaretyp gibt es eine Treiberinstanz [SWS_CanTrcv_00016]. Der Treiber wird über CanIf angesprochen und steuert die Hardware über Dio und Spi, die vor CanTrcv_Init initialisiert sein müssen [SWS_CanTrcv_00099]. Nach Init liegt jeder Transceiver, je Kanal konfiguriert, in STANDBY oder SLEEP [SWS_CanTrcv_00148]. CanTrcv_DeInit führt nach NOT_ACTIVE [SWS_CanTrcv_91003].

CanTrcv_SetOpMode schaltet zwischen NORMAL, STANDBY und SLEEP um [SWS_CanTrcv_00102]. SLEEP ist nur aus STANDBY zulässig [SWS_CanTrcv_00104]. Ein Wechsel in den aktuellen Modus ist kein Fehler [SWS_CanTrcv_00161]. Die Funktion arbeitet asynchron: Sobald der Zielmodus erreicht ist, meldet CanTrcv das über 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)

Zustandsdiagramm: Init führt nach STANDBY oder SLEEP, SLEEP ist nur über STANDBY erreichbar, DeInit führt nach NOT_ACTIVE. Quellen: SWS CanTrcv S. 19, [SWS_CanTrcv_00148]

Wake-ups prüft CanIf über CanTrcv_CheckWakeup. Diese Funktion meldet erkannte Wake-ups per EcuM_SetWakeupEvent [SWS_CanTrcv_00146]. CanTrcv_MainFunction durchsucht die Busse in STANDBY und SLEEP [SWS_CanTrcv_00112]. CanTrcv_SetWakeupMode kann die Benachrichtigung sperren, freigeben oder gespeicherte Wake-ups löschen. Dabei darf kein Wake-up verloren gehen [SWS_CanTrcv_00095].

PN-fähige Transceiver (CanTrcvHwPnSupport) wecken zusätzlich über konfigurierte Wake-up-Frames [SWS_CanTrcv_00175]. Beim Shutdown löscht CanSM zuerst das WUF-Flag und schaltet dann nach STANDBY [SWS_CanTrcv_00194]. Anschließend lässt CanSM das Wake-Flag asynchron prüfen [SWS_CanTrcv_00224].

Im Fehlerfall gilt:

  • Bei aktivierter DET werden Entwicklungsfehler gemeldet, bei abgeschalteter DET liefern die APIs E_NOT_OK [SWS_CanTrcv_00050].
  • Gestörte Hardwarekommunikation meldet der Treiber als Laufzeitfehler CANTRCV_E_NO_TRCV_CONTROL [SWS_CanTrcv_91006].
  • Busfehler meldet CanTrcv_MainFunctionDiagnostics als CANTRCV_E_BUS_ERROR an DEM [SWS_CanTrcv_00206].
Shutdown mit Partial Networking (SPI asynchron)CanSMCanIfCanTrcvSpiAusgang: Anforderung NoCom,Transceiver NORMAL, Controller STARTEDUse Case: Teil I: WUF-Flag löschen, 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: Teil II: Controller-Sleep, Wake-Flag prüfenCanIf_SetControllerMode(ControllerId, CAN_CS_SLEEP)CanIf_CheckTrcvWakeFlag(TransceiverId)CanTrcv_CheckWakeFlag(Transceiver)Spi_AsyncTransmit (Wake-Flag lesen)CanIf_CheckTrcvWakeFlagIndication(TransceiverId)<User_CheckTrcvWakeFlagIndication>

Sequenzdiagramm: Beim PN-Shutdown wird das WUF-Flag gelöscht, der Transceiver nach STANDBY geschaltet und das Wake-Flag asynchron geprüft. Quellen: SWS CanTrcv S. 55, [SWS_CanTrcv_00194]

Rolle: Treiber für externe CAN-Transceiver unterhalb von CanIf

Der CAN Transceiver Driver (CanTrcv) steuert externe CAN-Transceiver-Bausteine an. Er bildet deren Hardwarezustände auf ein generisches Betriebsmodusmodell ab. Dieses Modell soll viele verfügbare Transceiver einheitlich abdecken. Laut Spezifikation nimmt es dafür in Kauf, für einen konkreten Baustein ein oder zwei Zustände zu viel zu haben, entkoppelt damit aber ComM und EcuM von der Hardware (SWS CanTrcv S. 19). Die Transceiver-Hardware muss dazu eine Schnittstelle bieten, die sich auf dieses Modell abbilden lässt [SWS_CanTrcv_00098].

Nach oben ist CanIf der unmittelbare Partner:

Rückmeldungen laufen über CanIf_TrcvModeIndication, das zu den Pflichtschnittstellen gehört [SWS_CanTrcv_00085]. Für die PN-Indikationen sind weitere CanIf-Callbacks gelistet [SWS_CanTrcv_00086]. Nach unten nutzt CanTrcv Dio und Spi zur Hardwareansteuerung sowie Icu, DEM und EcuM-Typen, wie die Importliste zeigt [SWS_CanTrcv_00084]. Wartezeiten bei Zustandswechseln realisiert der Treiber mit Tm_BusyWait1us16bit [SWS_CanTrcv_00230]. CanTrcv_MainFunction und CanTrcv_MainFunctionDiagnostics ruft der BSW-Scheduler auf (SWS CanTrcv S. 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 Entwicklungs- und Laufzeitfehler Dem DEM CanTrcv->Dem Dem_SetEventStatus (CANTRCV_E_BUS_ERROR) HW CAN-Transceiver-Hardware Dio->HW Pins Spi->HW Register

Kontextdiagramm: CanTrcv wird von CanIf, EcuM und dem Scheduler bedient und greift über Dio, Spi und Icu auf die Hardware zu. Fehler meldet es an DET und DEM. Quellen: [SWS_CanTrcv_00084], [SWS_CanTrcv_00085], [SWS_CanTrcv_00146], SWS EcuM S. 35

Initialisierung, Lebenszyklus und Deinitialisierung

Vor dem Aufruf von CanTrcv_Init [SWS_CanTrcv_00001] muss die Umgebung alle benutzten Treiber initialisiert haben, insbesondere Spi und Dio [SWS_CanTrcv_00099]. Die Dokumentstelle ergänzt zwei Zeitvorgaben: Die Initialisierung soll früh nach dem Power-up erfolgen, und die unterlagerten Dienste sollen kurz und synchron sein (SWS CanTrcv S. 26).

CanTrcv_Init initialisiert alle angeschlossenen Transceiver gemäß ihrer Initialisierungssequenzen und der Konfiguration aus ConfigPtr [SWS_CanTrcv_00180]. Der Inhalt von CanTrcv_ConfigType ist hardwarespezifisch [SWS_CanTrcv_00209]. Danach befindet sich jeder Transceiver in CANTRCV_TRCVMODE_SLEEP oder CANTRCV_TRCVMODE_STANDBY; das ist je Transceiver konfigurierbar [SWS_CanTrcv_00148].

Die Initialisierung prüft zugleich auf Wake-ups:

  • Unterstützt die Hardware es, prüft CanTrcv_Init, ob Transceiver-Aktivität das Aufwachen ausgelöst hat. Das Ergebnis meldet sie per EcuM_SetWakeupEvent mit der Quelle aus CanTrcvWakeupSourceRef [SWS_CanTrcv_00167].
  • Bei PN-fähigen Transceivern wird zusätzlich die Konfigurationssequenz erneut ausgeführt, wenn das POR- oder SYSERR-Flag gesetzt ist. Sonst bleibt die im Transceiver gespeicherte Konfiguration gültig [SWS_CanTrcv_00182].
  • Ein gesetztes POR-Flag wird außerdem über CanTrcvPorWakeupSourceRef als Wake-up gemeldet [SWS_CanTrcv_00183].

Die POR-Meldung passt zu Transceivern mit integrierter Spannungsversorgung. Bei ihnen sieht ein passives Wecken für die ECU wie ein Power-on-Reset aus (SWS EcuM S. 70).

init start vor Umgebung hat Spi und Dio initialisiert start->vor init CanTrcv_Init(ConfigPtr) vor->init komm Kommunikation zum Transceiver korrekt? init->komm noctrl Laufzeitfehler CANTRCV_E_NO_TRCV_CONTROL komm->noctrl nein baud Baudrate unterstützt? komm->baud ja baudErr DET: CANTRCV_E_BAUDRATE_NOT_SUPPORTED baud->baudErr nein seq Initialisierungssequenzen gemäß Konfiguration ausführen baud->seq ja porsys PN-Hardware: POR oder SYSERR gesetzt? seq->porsys rekonf Konfigurationssequenz erneut ausführen porsys->rekonf ja wu Wake-up durch Transceiver-Aktivität? porsys->wu nein / keine 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 Je Kanal konfigurierter Zustand: CANTRCV_TRCVMODE_STANDBY oder CANTRCV_TRCVMODE_SLEEP wu->ziel nein wuMeld->ziel ende ziel->ende

Aktivitätsdiagramm: Die Initialisierung prüft die Hardwareerreichbarkeit, behandelt POR/SYSERR, meldet Wake-ups an EcuM und endet je Kanal in STANDBY oder SLEEP. Die Reihenfolge der Prüfungen ist eine Interpretation. Quellen: [SWS_CanTrcv_00180], [SWS_CanTrcv_00182], [SWS_CanTrcv_00183], [SWS_CanTrcv_00167], [SWS_CanTrcv_00148]

CanTrcv_DeInit [SWS_CanTrcv_91001] setzt die Transceiver-Hardware in den Zustand NOT_ACTIVE [SWS_CanTrcv_91003]. In diesem Zustand kann sie mit einer neuen Konfigurationssequenz eingerichtet werden (SWS CanTrcv S. 49). Erwarteter Ausgangszustand ist CANTRCV_TRCVMODE_NORMAL; andernfalls meldet die Entwicklungsfehlerprüfung CANTRCV_E_TRCV_NOT_NORMAL [SWS_CanTrcv_91005].

Betriebsmodi NORMAL, STANDBY und SLEEP

CanTrcv_TrcvModeType definiert die drei Modi [SWS_CanTrcv_00163]. CanTrcv_SetOpMode [SWS_CanTrcv_00002] schaltet den internen Zustand des adressierten Transceivers auf einen dieser Modi [SWS_CanTrcv_00102]. Für die Übergänge gilt:

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)

Zustandsdiagramm: Nach Init liegt der Transceiver in STANDBY oder SLEEP. SLEEP ist nur über STANDBY erreichbar, NORMAL aus allen Modi. DeInit führt nach NOT_ACTIVE. Quellen: SWS CanTrcv S. 19, [SWS_CanTrcv_00148], [SWS_CanTrcv_00103], [SWS_CanTrcv_00104], [SWS_CanTrcv_91003]

CanTrcv_SetOpMode arbeitet asynchron: E_OK bedeutet nur, dass die Anforderung angenommen wurde (SWS CanTrcv S. 33). Erst wenn der Zielmodus erreicht ist, ruft CanTrcv CanIf_TrcvModeIndication mit der abstrakten CanIf-TransceiverId auf [SWS_CanTrcv_00158]. CanSM ignoriert eine solche Meldung für SLEEP, weil SLEEP nur vom Integrationscode angefordert wird (SWS CanSM S. 94).

Bei PN-fähiger Hardware prüft CanTrcv_SetOpMode zusätzlich die Flags POR und SYSERR [SWS_CanTrcv_00186]. Nach einem POR initialisiert es den Transceiver neu [SWS_CanTrcv_00187]. CanTrcv_GetOpMode [SWS_CanTrcv_00005] liefert synchron den aktuellen Zustand [SWS_CanTrcv_00106].

Moduswechsel des TransceiversCanSMCanIfCanTrcvDio / SpiCanIf_SetTrcvMode(TransceiverId, TransceiverMode)CanTrcv_SetOpMode(Transceiver, OpMode)optPN-Hardware (CanTrcvHwPnSupport = TRUE)POR-/SYSERR-Flags prüfen,nach POR neu initialisierenDio_WriteChannel bzw. SPI-SequenzE_OK (Anforderung angenommen)E_OKasynchron: Zielmodus wirdspäter erreichtCanIf_TrcvModeIndication(TransceiverId, TransceiverMode)CanSM_TransceiverModeIndication(TransceiverId, TransceiverMode)Meldung für SLEEP ignoriert CanSM

Sequenzdiagramm: Ein Moduswechsel wird synchron angenommen und später per Indikation über CanIf an CanSM bestätigt. Quellen: SWS CanTrcv S. 52, [SWS_CanTrcv_00158], [SWS_CanTrcv_00186]

Wake-up: Erkennung, Ursache und Benachrichtigungssteuerung

Ein Wake-up wird per Interrupt oder per Polling erkannt (SWS EcuM S. 179). CanIf fragt dabei über CanIf_CheckWakeup die Funktion CanTrcv_CheckWakeup [SWS_CanTrcv_00143] ab (SWS CanIf S. 56). Unterstützt die Hardware es, validiert diese Funktion einen Wake-up durch Transceiver-Aktivität und meldet ihn per EcuM_SetWakeupEvent [SWS_CanTrcv_00146].

CanTrcv_MainFunction [SWS_CanTrcv_00013] durchsucht alle Busse in STANDBY und SLEEP nach Wake-ups und setzt ein Wake-up-Flag [SWS_CanTrcv_00112]. Vermutlich ist sie vor allem bei Polling-Konfiguration relevant; das Konfigurationsschaubild sieht dafür den Wert CanTrcvWakeUpByPolling vor (ECUC-Parameter S. 185). Frage Q-6144fdedb98cea44 (offen)

CanTrcv_GetBusWuReason [SWS_CanTrcv_00007] liefert die vom Transceiver erkannte Weckursache [SWS_CanTrcv_00107]. Mögliche Werte sind etwa CANTRCV_WU_BY_BUS, CANTRCV_WU_INTERNALLY oder CANTRCV_WU_RESET [SWS_CanTrcv_00165]. Wie fein sich die Ursachen unterscheiden lassen, hängt stark von der Hardware ab (SWS CanTrcv S. 35).

Für Wake-up-Interrupts nutzt der Treiber ICU-Kanäle. Icu_EnableNotification und Icu_DisableNotification ruft er nur auf, wenn CanTrcvIcuChannelRef konfiguriert ist [SWS_CanTrcv_00171]. Beim Wechsel nach STANDBY aktiviert er die Kanäle [SWS_CanTrcv_00172]. Die Dokumentstelle aus R24-11 nennt zusätzlich das Deaktivieren beim Wechsel nach NORMAL (SWS CanTrcv S. 23).

Wake-up-Erkennung über den TransceiverTransceiver-HardwareEcuM / IntegrationscodeCanIfCanTrcvaltWake-up per InterruptWake-up-Interrupt (ICU-Kanal)CanIf_CheckWakeup(WakeupSource)CanTrcv_CheckWakeup(Transceiver)Wake-up durch Transceiver-Aktivität validierenEcuM_SetWakeupEvent(CanTrcvWakeupSourceRef)Wake-up per PollingCanTrcv_MainFunction: Busse inSTANDBY/SLEEP prüfen, Flag setzenCanIf_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

Sequenzdiagramm: Ein Wake-up wird per Interrupt oder Polling über CanIf beim Transceiver geprüft, an EcuM gemeldet und später nach seiner Ursache abgefragt. Quellen: SWS EcuM S. 179, SWS EcuM S. 138, SWS EcuM S. 140, [SWS_CanTrcv_00146], [SWS_CanTrcv_00112]

CanTrcv_SetWakeupMode [SWS_CanTrcv_00009] steuert die Wake-up-Benachrichtigung über CanTrcv_TrcvWakeupModeType [SWS_CanTrcv_00164]:

  • CANTRCV_WUMODE_DISABLE: Wake-ups werden nicht gemeldet, aber intern gespeichert [SWS_CanTrcv_00093].
  • CANTRCV_WUMODE_ENABLE: Ein gespeicherter Wake-up wird als „present“ gemeldet [SWS_CanTrcv_00111].
  • CANTRCV_WUMODE_CLEAR: Ein gespeicherter Wake-up wird gelöscht [SWS_CanTrcv_00094].

In der gesperrten Phase dürfen keine Wake-ups verloren gehen [SWS_CanTrcv_00095]. Das Löschen dient dazu, gespeicherte Wake-ups bei gesperrter Benachrichtigung unter Kontrolle der höheren Schicht zu verwerfen [SWS_CanTrcv_00150]. CanIf reicht die Anforderung über CanIf_SetTrcvWakeupMode an CanTrcv weiter (SWS CanIf S. 100).

Selektives Aufwecken (Partial Networking)

Beim Partial Networking bleiben Knoten im Low-Power-Modus, bis vordefinierte Wake-up-Frames (WUF) sie wecken. PN-fähige Transceiver reagieren also nicht nur auf das Wake-up-Pattern (WUP), sondern auch auf diese Frames (SWS CanTrcv S. 27). Ob die Hardware das kann, zeigt CanTrcvHwPnSupport an [SWS_CanTrcv_00174]. Nur wenn dieser Parameter TRUE ist, existieren der Container CanTrcvPartialNetwork und fünf APIs: CanTrcv_GetTrcvSystemData, CanTrcv_ClearTrcvWufFlag, CanTrcv_ReadTrcvTimeoutFlag, CanTrcv_ClearTrcvTimeoutFlag und CanTrcv_ReadTrcvSilenceFlag [SWS_CanTrcv_00175].

Auf welche Frames der Transceiver reagiert, legen CanTrcvPnFrameCanId, CanTrcvPnFrameCanIdMask und CanTrcvPnFrameDataMask fest [SWS_CanTrcv_00177]. CanTrcv_SetPNActivationState [SWS_CanTrcv_00219] schaltet die PN-Weckfunktion mit PN_ENABLED ein [SWS_CanTrcv_00221] und mit PN_DISABLED aus [SWS_CanTrcv_00222].

Zentral ist der Shutdown-Ablauf:

  1. CanSM löscht über CanTrcv_ClearTrcvWufFlag das WUF-Flag, damit beim Eintritt in den Low-Power-Modus kein Frame-Wake-up verloren geht. Anschließend kommt der Transceiver nach STANDBY [SWS_CanTrcv_00194].
  2. CanTrcv bestätigt das Löschen mit CanIf_ClearTrcvWufFlagIndication [SWS_CanTrcv_00195].
  3. Zuletzt fordert CanSM die asynchrone Prüfung CanTrcv_CheckWakeFlag an [SWS_CanTrcv_00223]. Das Ergebnis meldet CanTrcv per CanIf_CheckTrcvWakeFlagIndication [SWS_CanTrcv_00224].

Für SPI-Anbindung beschreibt die Spezifikation eine asynchrone (SWS CanTrcv S. 55) und eine synchrone Variante (SWS CanTrcv S. 57).

Shutdown mit Partial Networking (SPI asynchron)CanSMCanIfCanTrcvSpiAusgang: Anforderung NoCom,Transceiver NORMAL, Controller STARTEDUse Case: Teil I: WUF-Flag löschen, 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: Teil II: Controller-Sleep, Wake-Flag prüfenCanIf_SetControllerMode(ControllerId, CAN_CS_SLEEP)CanIf_CheckTrcvWakeFlag(TransceiverId)CanTrcv_CheckWakeFlag(Transceiver)Spi_AsyncTransmit (Wake-Flag lesen)CanIf_CheckTrcvWakeFlagIndication(TransceiverId)<User_CheckTrcvWakeFlagIndication>

Sequenzdiagramm: Beim PN-Shutdown wird das WUF-Flag gelöscht, der Transceiver nach STANDBY geschaltet und nach dem Controller-Sleep das Wake-Flag asynchron geprüft. Quellen: SWS CanTrcv S. 55, SWS CanTrcv S. 56, SWS CanSM S. 36, [SWS_CanTrcv_00194], [SWS_CanTrcv_00224]

Für die Diagnose liest CanTrcv_GetTrcvSystemData [SWS_CanTrcv_00213] Konfiguration und Status des Transceivers als uint32 aus [SWS_CanTrcv_00189]. Timeout- und Silence-Flag werden über CanTrcv_ReadTrcvTimeoutFlag [SWS_CanTrcv_00215], CanTrcv_ClearTrcvTimeoutFlag [SWS_CanTrcv_00216] und CanTrcv_ReadTrcvSilenceFlag [SWS_CanTrcv_00217] gelesen bzw. gelöscht. Ihren Zustand gibt CanTrcv_TrcvFlagStateType an [SWS_CanTrcv_00211].

Konfiguration und Instanzbezug

Für jeden Transceiver-Hardwaretyp gibt es eine Treiberinstanz, die alle Bausteine dieses Typs bedient [SWS_CanTrcv_00016]. Das CanIf-Schaubild zeigt den Fall gleicher Controller mit unterschiedlichen Transceivertypen, der dann zwei Transceiver-Treiber erfordert (SWS CanIf S. 34). Jeden Kanal beschreibt ein Container CanTrcvChannel (Multiplizität 1..*). Er enthält unter anderem CanTrcvHwPnSupport, CanTrcvInitState, CanTrcvWakeupByBusUsed und die Wake-up-Quellreferenzen (SWS CanTrcv S. 70).

Ein Unterschied zwischen den Quellen betrifft den Zustand nach Init. Das Konfigurationsschaubild nennt CanTrcvOpModeNormal als Default von CanTrcvInitState (ECUC-Parameter S. 187). Normativ für R20-11 ist jedoch [SWS_CanTrcv_00148], das nach Init nur SLEEP oder STANDBY vorsieht. Konfigurationen mit nicht unterstützten Partitionszuordnungen muss der Treiber zurückweisen [SWS_CanTrcv_00231].

Verhalten im Fehlerfall

Die Entwicklungsfehler aus [SWS_CanTrcv_00050] folgen einem einheitlichen Muster. Bei aktivierter DET melden die APIs:

Ist die DET abgeschaltet, liefern die APIs in diesen Fällen E_NOT_OK.

Ist die Kommunikation zum Transceiver gestört, meldet der Treiber den Laufzeitfehler CANTRCV_E_NO_TRCV_CONTROL [SWS_CanTrcv_91006] über Det_ReportRuntimeError [SWS_CanTrcv_00085]. Das gilt etwa in Init [SWS_CanTrcv_00113], SetOpMode [SWS_CanTrcv_00114], GetOpMode [SWS_CanTrcv_00115], SetWakeupMode [SWS_CanTrcv_00117], GetTrcvSystemData [SWS_CanTrcv_00190] und ClearTrcvWufFlag [SWS_CanTrcv_00196]. Eine Ausnahme bildet CanTrcv_GetBusWuReason: Es gibt in diesem Fall laut [SWS_CanTrcv_00116] E_OK zurück. Eine nicht unterstützte Baudrate meldet 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 gültig? 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 / Übergang zulässig? ptr->modus ja / kein Zeiger eModus DET: CANTRCV_E_PARAM_TRCV_OPMODE, CANTRCV_E_TRCV_NOT_NORMAL oder CANTRCV_E_TRCV_NOT_STANDBY (DET aus: E_NOT_OK) modus->eModus nein hw Hardwarezugriff über Dio / Spi modus->hw ja komm Kommunikation korrekt? hw->komm eKomm Det_ReportRuntimeError: CANTRCV_E_NO_TRCV_CONTROL Rückgabe E_NOT_OK (GetBusWuReason: E_OK) komm->eKomm nein ok E_OK komm->ok ja

Aktivitätsdiagramm: API-Aufrufe durchlaufen Entwicklungsfehlerprüfungen und danach den Hardwarezugriff mit Laufzeitfehlerbehandlung. Die Prüfreihenfolge ist eine Interpretation. Quellen: [SWS_CanTrcv_00050], [SWS_CanTrcv_00122], [SWS_CanTrcv_00123], [SWS_CanTrcv_00132], [SWS_CanTrcv_00114], [SWS_CanTrcv_00116]

Busfehler werden als Produktionsfehler behandelt. Voraussetzung ist, dass die Hardware Busfehler von anderen Fehlern unterscheiden kann [SWS_CanTrcv_00178] und CanTrcvBusErrFlag = TRUE ist [SWS_CanTrcv_00205]. Dann liest CanTrcv_MainFunctionDiagnostics [SWS_CanTrcv_00218] zyklisch das BUSERR-Flag. Sie meldet CANTRCV_E_BUS_ERROR als DEM_EVENT_STATUS_FAILED [SWS_CanTrcv_00206] bzw. DEM_EVENT_STATUS_PASSED [SWS_CanTrcv_00227] an DEM [SWS_CanTrcv_00228] [SWS_CanTrcv_00229]. Das DEM-Event wird über CanTrcvDemEventParameterRefs referenziert (SWS CanTrcv S. 78).

Weiterführende Detailbelege

KI-generierter Leitfaden auf Basis der im Payload enthaltenen Requirements und Dokumentstellen für CanTrcv (Classic, R20-11). Dokumentstellen aus anderen Releases sind ergänzend genutzt; wo sie abweichen, ist das benannt. Als Interpretation markierte Aussagen sind nicht normativ.

CAN Transceiver Driver (CanTrcv)

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

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

function CanTrcv_Init [SWS_CanTrcv_00001] 📄 PDF

void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);

Initializes the Can Trcv module.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 69eb894dc0d7 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Semantik

Die Funktion CanTrcv_Init dient der grundlegenden Initialisierung des Moduls CanTrcv sowie aller angeschlossenen CAN-Transceiver [SWS_CanTrcv_00001] [SWS_CanTrcv_00180]. Die Ausführung erfolgt synchron und ist als nicht reentrant spezifiziert [SWS_CanTrcv_00001]. Als Übergabeparameter erwartet sie über ConfigPtr einen Zeiger auf die Treiberkonfiguration und besitzt keinen Rückgabewert [SWS_CanTrcv_00001].

Zusammenspiel und Hardwareprüfung

Während des Ablaufs führt die Funktion die hardwarebezogenen Initialisierungssequenzen aller angebundenen Transceiver gemäß der Konfiguration aus und unterstützt dabei die Initialisierungsabfolge des AUTOSAR-Stacks [SWS_CanTrcv_00180]. Durch den Aufruf wechselt jeder Transceiver abhängig von seiner jeweiligen Konfiguration separat entweder in den Modus CANTRCV_TRCVMODE_SLEEP oder in CANTRCV_TRCVMODE_STANDBY [SWS_CanTrcv_00148]. Sofern hardwareseitig unterstützt, prüft CanTrcv_Init zudem, ob zuvor ein Weckereignis durch Transceiver-Aktivität vorlag, und meldet dieses über EcuM_SetWakeupEvent mit der über CanTrcvWakeupSourceRef definierten Quelle an das EcuM [SWS_CanTrcv_00167].

Fehlerbehandlung

Bei fehlerhafter oder fehlender Kommunikation zur Hardware (beispielsweise über Port-Pins oder SPI) meldet die Funktion den Laufzeitfehler CANTRCV_E_NO_TRCV_CONTROL an den Default Error Tracer [SWS_CanTrcv_00113]. Ist die Erkennung von Entwicklungsfehlern aktiv, wird ferner CANTRCV_E_BAUDRATE_NOT_SUPPORTED gemeldet, falls eine konfigurierte Baudrate vom jeweiligen Transceiver nicht unterstützt wird [SWS_CanTrcv_00168].

Dieser Text wurde von einer KI basierend auf der Spezifikation AUTOSAR R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function 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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 62862d69beb4 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion CanTrcv_SetOpMode dient dem asynchronen Umschalten des Betriebsmodus eines CAN-Transceivers [SWS_CanTrcv_00002]. Sie übernimmt die Gerätenummer des Transceivers (Transceiver) sowie den gewünschten Zielmodus (OpMode), welcher die Werte CANTRCV_TRCVMODE_NORMAL, CANTRCV_TRCVMODE_STANDBY oder CANTRCV_TRCVMODE_SLEEP annehmen kann [SWS_CanTrcv_00102]. Die Funktion ist für unterschiedliche Transceiver reentrant [SWS_CanTrcv_00002]. Der Rückgabewert E_OK bestätigt die Annahme des Umschaltauftrags; E_NOT_OK signalisiert die Abweisung der Anforderung, Parameterfehler oder fehlende Unterstützung des Modus durch die Hardware [SWS_CanTrcv_00002], [SWS_CanTrcv_00105].

Beim Aufruf müssen vorgegebene Zustandsübergänge eingehalten werden:

  • Befindet sich der Transceiver im Modus CANTRCV_TRCVMODE_NORMAL, darf als Zielmodus nur CANTRCV_TRCVMODE_STANDBY oder CANTRCV_TRCVMODE_NORMAL übergeben werden [SWS_CanTrcv_00103].
  • Befindet sich der Transceiver in CANTRCV_TRCVMODE_STANDBY, darf die Funktion nur mit CANTRCV_TRCVMODE_SLEEP oder CANTRCV_TRCVMODE_STANDBY aufgerufen werden [SWS_CanTrcv_00104].

Bei aktivierter Entwicklungserkennung (DET) meldet die Funktion Aufrufe vor der Initialisierung als CANTRCV_E_UNINIT [SWS_CanTrcv_00122], ungültige Transceiver-Nummern als CANTRCV_E_INVALID_TRANSCEIVER [SWS_CanTrcv_00123] und unzulässige Betriebsmodi als CANTRCV_E_PARAM_TRCV_OPMODE [SWS_CanTrcv_00087]. Wird Standby angefordert, ohne dass der Transceiver in Normal oder Standby ist, wird CANTRCV_E_TRCV_NOT_NORMAL ausgelöst [SWS_CanTrcv_00120]; bei Anforderung von Sleep außerhalb von Standby oder Sleep erfolgt die Meldung CANTRCV_E_TRCV_NOT_STANDBY [SWS_CanTrcv_00121]. Ist das DET deaktiviert, wird in diesen Fällen E_NOT_OK zurückgegeben. Bei fehlender oder fehlerhafter Transceiver-Kommunikation wird der Laufzeitfehler CANTRCV_E_NO_TRCV_CONTROL an das DET gemeldet und E_NOT_OK retourniert [SWS_CanTrcv_00114].

Wird Selective Wakeup hardwareseitig unterstützt, prüft die API die Statusflags POR und SYSERR [SWS_CanTrcv_00186]. Sobald der Transceiver den angeforderten Modus erreicht hat, informiert das Modul die übergeordnete Schicht über den Callback CanIf_TrcvModeIndication [SWS_CanTrcv_00158].

Dieser Text wurde von einer KI auf Basis der Spezifikationsanforderungen generiert.

Implementer's Guide folgt (Komplexität I2)

function 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.

function 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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 7ddf69d5a7ae Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Semantik

Die synchrone Funktion CanTrcv_SetWakeupMode dient dem Aktivieren, Deaktivieren oder Löschen von Wake-up-Ereignissen für einen bestimmten Transceiver [SWS_CanTrcv_00009]. Ihr werden der Zieltransceiver über den Parameter Transceiver sowie der gewünschte Modus über TrcvWakeupMode übergeben. Bei erfolgreicher Zustandsänderung liefert die Funktion E_OK zurück. Kann der Zustand nicht geändert werden oder ist ein Parameter ungültig, wird E_NOT_OK zurückgegeben und der bisherige Zustand bleibt unverändert erhalten [SWS_CanTrcv_00009].

Betriebsmodi und Zusammenspiel

Wird TrcvWakeupMode mit dem Wert CANTRCV_WUMODE_CLEAR aufgerufen, löscht die Funktion ein gespeichertes Wake-up-Ereignis des adressierten Transceivers [SWS_CanTrcv_00094]. Beim Aufruf mit CANTRCV_WUMODE_ENABLE aktualisiert das Modul das Wake-up-Ereignis auf den Zustand „present“, sofern für den betreffenden Bus bereits ein gespeichertes Wake-up-Ereignis ansteht [SWS_CanTrcv_00111]. Interpretation: Für das Deaktivieren von Wake-up-Ereignissen dürfte analog ein entsprechender Moduswert existieren, auch wenn dieser im vorliegenden Anforderungsauszug nicht gesondert detailliert ist. Frage Q-e0f15d1d0855db81 (offen)

Fehlerbehandlung und Nebenläufigkeit

Die Funktion ist reentrant für unterschiedliche Transceiver-Instanzen [SWS_CanTrcv_00009]. Vor dem Aufruf muss der Transceiver-Treiber vollständig initialisiert sein: Ein Aufruf im uninitialisierten Zustand löst bei aktiver Entwicklungserkennung (DET) den Fehler CANTRCV_E_UNINIT aus, andernfalls wird E_NOT_OK zurückgegeben [SWS_CanTrcv_00127]. Ein ungültiger Index bei Transceiver führt zu CANTRCV_E_INVALID_TRANSCEIVER (bzw. E_NOT_OK) [SWS_CanTrcv_00131], und ein unzulässiger Moduswert in TrcvWakeupMode meldet CANTRCV_E_PARAM_TRCV_WAKEUP_MODE oder liefert E_NOT_OK [SWS_CanTrcv_00089]. Liegt keine oder eine fehlerhafte Kommunikation mit dem Transceiver vor, wird der Laufzeitfehler CANTRCV_E_NO_TRCV_CONTROL an den Default Error Tracer gemeldet und E_NOT_OK zurückgegeben [SWS_CanTrcv_00117].

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation von AUTOSAR Classic R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function 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.

function 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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 10eca0b578cb Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion CanTrcv_ClearTrcvWufFlag löscht das Wake-up-Frame-Flag (WUF) in der Hardware des adressierten CAN-Transceivers und steht nur zur Verfügung, wenn Selective-Wakeup-Unterstützung konfiguriert ist (CanTrcvHwPnSupport = TRUE) [SWS_CanTrcv_00214], [SWS_CanTrcv_00175]. Bei erfolgreichem Löschen wird E_OK zurückgegeben, andernfalls E_NOT_OK [SWS_CanTrcv_00214], [SWS_CanTrcv_00194].

Zusammenspiel und Ablauf

Die API wird vom Modul CanSM beim Eintritt in einen Low-Power-Modus verwendet, um sicherzustellen, dass während des Zustandsübergangs kein Frame-Wakeup-Ereignis verloren geht [SWS_CanTrcv_00194]. Nach dem Zurücksetzen des WUF-Flags muss der CAN-Transceiver in den Standby-Modus (CANTRCV_STANDBY) versetzt werden [SWS_CanTrcv_00194].

Nebenläufigkeit und Aufrufkontext

Aufrufe von CanTrcv_ClearTrcvWufFlag sind reentrant für unterschiedliche Transceiver-Instanzen (Transceiver) [SWS_CanTrcv_00214].

Fehlerbehandlung

  • Entwicklungsfehler (DET): Ist die Fehlererkennung aktiv, meldet die Funktion bei uninitialisiertem Treiber CANTRCV_E_UNINIT [SWS_CanTrcv_00197] und bei einem ungültigen Parameter Transceiver den Fehler CANTRCV_E_INVALID_TRANSCEIVER [SWS_CanTrcv_00198]. Ist DET deaktiviert, wird in diesen Fällen direkt E_NOT_OK retourniert [SWS_CanTrcv_00197], [SWS_CanTrcv_00198].
  • Laufzeitfehler: Schlägt die Kommunikation mit dem Transceiver fehl oder ist sie fehlerhaft, meldet die Funktion den Laufzeitfehler CANTRCV_E_NO_TRCV_CONTROL an den Default Error Tracer und gibt E_NOT_OK zurück [SWS_CanTrcv_00196].

Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function 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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: a58e25cc2696 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion CanTrcv_ReadTrcvTimeoutFlag liest den Status des Timeout-Flags direkt aus der Hardware des CAN-Transceivers aus [SWS_CanTrcv_00215]. Als Eingangsparameter dient Transceiver zur Identifikation des anzusprechenden Transceivers, während über den Ausgabeparameter FlagState vom Typ CanTrcv_TrcvFlagStateType* der Zustand des Flags zurückgegeben wird [SWS_CanTrcv_00215]. Der Rückgabewert signalisiert mit E_OK ein erfolgreiches Auslesen und mit E_NOT_OK, dass der Status des Timeout-Flags nicht ermittelt werden konnte [SWS_CanTrcv_00215].

Für die Nutzung und Integration im Transceiver-Treiber gelten folgende Randbedingungen:

  • Konfiguration: Die API steht ausschließlich zur Verfügung, wenn die Hardware-Unterstützung für partielles Netzwerken aktiviert ist (CanTrcvHwPnSupport = TRUE) [SWS_CanTrcv_00215]. Auch der zugehörige Konfigurationscontainer CanTrcvPartialNetwork existiert nur unter dieser Voraussetzung [SWS_CanTrcv_00175].
  • Nebenläufigkeit: Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_CanTrcv_00215].

Die Fehlerbehandlung unterscheidet nach dem Zustand der Entwicklungserkennung (Development Error Detection, DET):

  • Wird ein ungültiger Transceiver-Bezeichner übergeben, erzeugt das Modul bei aktivem DET den Fehler CANTRCV_E_INVALID_TRANSCEIVER; bei deaktiviertem DET wird stattdessen E_NOT_OK zurückgegeben [SWS_CanTrcv_00199].
  • Wird ein Nullzeiger für FlagState übergeben (FlagState = NULL), meldet das Modul bei aktivem DET den Fehler CANTRCV_E_PARAM_POINTER; ist DET abgeschaltet, liefert der Aufruf E_NOT_OK [SWS_CanTrcv_00200].

Dieser Nutzungshinweis wurde automatisch auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function 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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 58509e1d0c7c Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion CanTrcv_ClearTrcvTimeoutFlag dient dem Zurücksetzen des Timeout-Flags in der Transceiver-Hardware [SWS_CanTrcv_00216]. Sie steht ausschließlich zur Verfügung, wenn die Hardware-Unterstützung für Partial Networking über den Konfigurationsparameter CanTrcvHwPnSupport = TRUE aktiviert ist [SWS_CanTrcv_00175], [SWS_CanTrcv_00216].

Verwendung und Schnittstelle

Der Aufruf erfolgt synchron über die Schnittstelle in CanTrcv.h unter Angabe des Zieltransceivers:

  • Parameter: Transceiver bestimmt als Eingabewert (uint8) den anzusprechenden Transceiver-Kanal [SWS_CanTrcv_00216].
  • Rückgabewert: Ein Std_ReturnType signalisiert mit E_OK das erfolgreiche Löschen des Hardware-Flags oder mit E_NOT_OK ein Fehlschlagen der Operation [SWS_CanTrcv_00216].

Fehlerbehandlung

Wird der Funktion ein ungültiger Bezeichner für den Parameter Transceiver übergeben, greift eine differenzierte Fehlerbehandlung:

  • Bei aktiver Entwicklungserkennung (Development Error Detection) wird der Fehler CANTRCV_E_INVALID_TRANSCEIVER an das DET gemeldet [SWS_CanTrcv_00201].
  • Ist die Entwicklungserkennung deaktiviert, bricht der Aufruf ab und liefert E_NOT_OK an den Aufrufer zurück [SWS_CanTrcv_00201].

Nebenläufigkeit und Systemintegration

Die Funktion ist als nicht reentrant (Non Reentrant) klassifiziert [SWS_CanTrcv_00216]. Parallele Aufrufe für dieselbe Hardware-Einheit müssen daher durch die aufrufende Schicht vermieden oder synchronisiert werden. Zudem ist die Funktion Teil des Funktionsumfangs für selektive Weckfunktionen (Partial Networking); die zugehörigen Konfigurationsstrukturen im Container CanTrcvPartialNetwork existieren ebenfalls nur bei gesetztem CanTrcvHwPnSupport [SWS_CanTrcv_00175].

Dieser Nutzungshinweis basiert auf der Spezifikation AUTOSAR CP R20-11.

Implementer's Guide folgt (Komplexität I1)

function 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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: be15c667bc30 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone und nicht reentrante Funktion CanTrcv_ReadTrcvSilenceFlag (Service-ID 0x0d) dient dem Auslesen des Silence-Flag-Status direkt aus der CAN-Transceiver-Hardware [SWS_CanTrcv_00217]. Sie wird über den Header CanTrcv.h bereitgestellt und darf aufgrund der fehlenden Reentranz nicht nebenläufig ausgeführt werden [SWS_CanTrcv_00217].

Parameter und Rückgabewerte

  • Transceiver: Eingabeparameter (uint8) zur Adressierung der jeweiligen Transceiver-Instanz über ihre Kennung [SWS_CanTrcv_00217].
  • FlagState: Ausgabeparameter als Zeiger auf CanTrcv_TrcvFlagStateType, über den der ausgelesene Status des Silence-Flags zurückgeliefert wird [SWS_CanTrcv_00217].
  • Rückgabewert (Std_ReturnType): Gibt E_OK zurück, falls der Hardware-Zustand des Silence-Flags erfolgreich gelesen werden konnte, andernfalls E_NOT_OK [SWS_CanTrcv_00217].

Fehlerbehandlung

Wird der Funktion für den Ausgabeparameter ein Null-Zeiger übergeben (FlagState == NULL), hängt die Fehlerbehandlung von der Entwicklungskontrolle ab: Bei aktiviertem DET meldet der CAN-Transceiver-Treiber den Entwicklungsfehler CANTRCV_E_PARAM_POINTER; ist DET deaktiviert, wird der Aufruf unmittelbar mit E_NOT_OK abgebrochen [SWS_CanTrcv_00203].

Konfiguration und Zusammenspiel

Die Funktion steht im Kontext des selektiven Weckens (Selective Wakeup). Der zugehörige Konfigurationscontainer CanTrcvPartialNetwork sowie die Schnittstelle CanTrcv_ReadTrcvSilenceFlag sind nur dann im Treiber verfügbar, wenn die Hardware-Unterstützung für Partial Networking über CanTrcvHwPnSupport = TRUE konfiguriert ist [SWS_CanTrcv_00175], [SWS_CanTrcv_00217].

Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function 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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 3bcebb868332 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone und reentrante Funktion CanTrcv_CheckWakeup wird von der unterlagerten Schnittstelle CanIf aufgerufen, sobald ein Wakeup-Interrupt erkannt wurde [SWS_CanTrcv_00143]. Über den Parameter Transceiver wird der zu prüfende CAN-Transceiver adressiert [SWS_CanTrcv_00143]. Der Rückgabewert E_OK signalisiert die Annahme des Aufrufs, während E_NOT_OK die Nicht-Annahme anzeigt [SWS_CanTrcv_00143].

Sofern hardwareseitig unterstützt, prüft die Funktion, ob tatsächlich ein Weckereignis durch Aktivität auf dem Transceiver vorliegt [SWS_CanTrcv_00146]. Ist dies der Fall, erfolgt die Weckmeldung an den EcuM über die API EcuM_SetWakeupEvent mit der in CanTrcvWakeupSourceRef referenzierten Wakeup-Quelle [SWS_CanTrcv_00146].

Für die Fehlerbehandlung gelten bei aktivierter Entwicklungserkennung (DET) folgende Vorgaben:

  • Wird die Funktion vor der Initialisierung des Moduls CanTrcv aufgerufen, wird der Entwicklungsfehler CANTRCV_E_UNINIT gemeldet; bei deaktiviertem DET liefert der Aufruf stattdessen E_NOT_OK zurück [SWS_CanTrcv_00144].
  • Bei Übergabe einer ungültigen Transceiver-Nummer meldet die Funktion CANTRCV_E_INVALID_TRANSCEIVER; ist DET deaktiviert, wird E_NOT_OK zurückgegeben [SWS_CanTrcv_00145].

Dieser Nutzungshinweis basiert ausschließlich auf den Spezifikationsanforderungen von AUTOSAR Classic R20-11.

Implementer's Guide folgt (Komplexität I1)

function 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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: ed5e02955479 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion CanTrcv_SetPNActivationState konfiguriert das Aufwachverhalten des CAN-Transceivers für den Standby- und Sleep-Modus ([SWS_CanTrcv_00219]). Sie legt fest, ob der Transceiver über ein Standard-Wake-up-Pattern oder gezielt über einen konfigurierten Remote-Wake-up-Frame im Rahmen von Partial Networking geweckt wird ([SWS_CanTrcv_00219]).

Verwendung und Parameter

Die Funktion wird über CanTrcv.h mit der Service-ID 0x0f bereitgestellt und synchron ausgeführt ([SWS_CanTrcv_00219]). Ihr Übergabeparameter ActivationState vom Typ CanTrcv_PNActivationType steuert die Betriebsart:

Als Rückgabewert liefert die Funktion E_OK, wenn der Transceiver erfolgreich auf die angeforderte PN-Konfiguration umgestellt wurde. Schlägt die Umschaltung fehl, wird E_NOT_OK zurückgegeben; in diesem Fall bleibt die vorherige Konfiguration unverändert bestehen ([SWS_CanTrcv_00219]).

Einschränkungen und Fehlerbehandlung

Die Funktion ist nicht reentrant (Non Reentrant) ([SWS_CanTrcv_00219]). Als zwingende Vorbedingung muss das Modul CanTrcv vor dem Aufruf vollständig initialisiert worden sein: Erfolgt der Aufruf vor der Initialisierung, meldet die Funktion bei aktiver Entwicklungserkennung den Fehler CANTRCV_E_UNINIT an das DET; ist DET deaktiviert, wird der Aufruf unmittelbar mit dem Rückgabewert E_NOT_OK abgewiesen ([SWS_CanTrcv_00220]).

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation generiert.

Implementer's Guide folgt (Komplexität I1)

function 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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 3347f44cb215 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion CanTrcv_CheckWakeFlag fordert die Prüfung des Wakeup-Flag-Status direkt von der Transceiver-Hardware an ([SWS_CanTrcv_00223]). Der Aufruf erfolgt asynchron und bezieht sich über den Eingangsparameter Transceiver auf die jeweilige Kennung des anzusprechenden CAN-Transceivers ([SWS_CanTrcv_00223]).

Als Rückgabewert liefert die Funktion den Status Std_ReturnType ([SWS_CanTrcv_00223]):

Hinsichtlich der Nebenläufigkeit ist festgelegt, dass die Funktion nicht reentrant ist (Non Reentrant) ([SWS_CanTrcv_00223]). Da der Dienst als asynchron spezifiziert ist, spiegelt der Rückgabewert lediglich die Annahme des Prüfauftrags wider; das tatsächliche Auslesen der Hardware dürfte nachgelagert erfolgen ([SWS_CanTrcv_00223]). Frage Q-f09b7ff49c24cea8 (offen) Konkrete Fehlercodes sowie DET- oder DEM-Meldungen sind für diesen Service nicht aufgeführt.

Dieser Verwendungshinweis wurde von einer KI auf Basis der AUTOSAR-Spezifikation generiert.

Implementer's Guide folgt (Komplexität I1)

function CanTrcv_DeInit [SWS_CanTrcv_91001] 📄 PDF

void CanTrcv_DeInit (void);

De - initializes the Can Trcv module.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: f6b7395c6c6d Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion CanTrcv_DeInit dient der Deinitialisierung des CAN-Transceiver-Treibers [SWS_CanTrcv_91001]. Sie nimmt keine Parameter entgegen, liefert keinen Rückgabewert und ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_CanTrcv_91001]. Die Schnittstelle wird über den Header CanTrcv.h mit der Service-ID 0x10 bereitgestellt [SWS_CanTrcv_91001].

Bei der Ausführung versetzt die Funktion die CAN-Transceiver-Hardware in den Zustand NOT_ACTIVE [SWS_CanTrcv_91003]. Da CanTrcv_DeInit nicht reentrant ist, dürfen Aufrufe nicht unterbrechend oder nebenläufig zueinander erfolgen [SWS_CanTrcv_91001].

Hinsichtlich der Fehlerbehandlung und Reihenfolgebedingungen gilt:

  • Ist die Entwicklungserkennung (Development Error Detection) für das Modul aktiviert, prüft die Funktion den Betriebsmodus des Transceivers. Befindet sich der Transceiver beim Aufruf nicht im Modus CANTRCV_TRCVMODE_NORMAL, meldet CanTrcv_DeInit den Entwicklungsfehler CANTRCV_E_TRCV_NOT_NORMAL [SWS_CanTrcv_91005].
  • Daraus ergibt sich für den Aufrufer die funktionale Vorbedingung, den Transceiver vor der Deinitialisierung im Zustand CANTRCV_TRCVMODE_NORMAL zu betreiben, um einen Fehlerbericht im Entwicklungsmodus zu verhindern [SWS_CanTrcv_91005].

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.

function CanTrcv_MainFunction [SWS_CanTrcv_00013] 📄 PDF

void CanTrcv_MainFunction (void);

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 8f993661c2b3 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion CanTrcv_MainFunction dient als zentraler Treiberdienst des CAN-Transceiver-Treibers zum Überwachen aller angeschlossenen Buskanäle auf aufgetretene Wake-up-Ereignisse sowie zur Durchführung dieser Ereignisse [SWS_CanTrcv_00013]. Sie besitzt die C-Signatur void CanTrcv_MainFunction(void), ist unter der hexadezimalen Service-ID 0x06 definiert und arbeitet synchron ohne Übergabeparameter oder Rückgabewerte [SWS_CanTrcv_00013].

Zur zyklischen Überwachung scannt die Funktion gezielt alle Busse ab, die sich in den Ruhezuständen STANDBY oder SLEEP befinden [SWS_CanTrcv_00112]. Erkennt der Treiber ein Aufweckereignis auf einem der überwachten Busse, setzt CanTrcv_MainFunction ein internes Wake-up-Event-Flag, um die nachgelagerte Durchführung und Abarbeitung dieser Ereignisse im System zu veranlassen [SWS_CanTrcv_00112].

Hinsichtlich des Aufrufkontexts wird die Schnittstelle über die Header-Datei SchM_CanTrcv.h bereitgestellt [SWS_CanTrcv_00013]. Interpretation: Die Bereitstellung über diesen SchM-Header legt nahe, dass die Funktion vermutlich periodisch durch den BSW-Scheduler im Kontext einer zyklischen Task aufgerufen werden dürfte, um die Buskanäle in inaktiven Zuständen regelmäßig abzutasten. Frage Q-588109b1111a0f43 (offen) Spezifische Fehlercodes, Meldungen an das DET oder DEM sowie Anforderungen an die Reentranz werden im vorliegenden Spezifikationsauszug nicht genannt.

Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function CanTrcv_MainFunctionDiagnostics [SWS_CanTrcv_00218] 📄 PDF

void CanTrcv_MainFunctionDiagnostics (void);

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 958c670ba046 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion CanTrcv_MainFunctionDiagnostics (Service-ID 0x08) liest periodisch den Diagnose-Status des Transceivers aus und setzt entsprechende Produkt- und Entwicklungsfehler [SWS_CanTrcv_00218]. Die Funktion ist parameterlos, besitzt keinen Rückgabewert (void CanTrcv_MainFunctionDiagnostics(void)) und wird über den Header SchM_CanTrcv.h bereitgestellt [SWS_CanTrcv_00218].

Aufrufkontext und Nebenläufigkeit

Aufgrund der Bereitstellung über SchM_CanTrcv.h wird die Hauptfunktion vermutlich zyklisch durch den BSW-Scheduler (SchM) in einem Task-Kontext aufgerufen (Interpretation). Frage Q-ab1f6c55abcb8d4b (offen) Da die Spezifikation keine Reentranz ausweist, ist von einer nicht-reentranten Ausführung auszugehen.

Fehlerbehandlung und Zusammenspiel mit dem DEM

Die Diagnoseauswertung erfolgt in Abhängigkeit von Konfiguration und Hardware-Unterstützung:

  • Ist das vom BSW gemeldete BUSERR-Flag gesetzt, ruft die Funktion die API Dem_SetEventStatus mit dem Parameter EventId als CANTRCV_E_BUS_ERROR und EventStatus als DEM_EVENT_STATUS_FAILED auf [SWS_CanTrcv_00206].
  • Ist das BUSERR-Flag zurückgesetzt, ruft CanTrcv_MainFunctionDiagnostics die API Dem_SetEventStatus mit derselben EventId (CANTRCV_E_BUS_ERROR) und dem Status DEM_EVENT_STATUS_PASSED auf [SWS_CanTrcv_00227].

Dieser Text wurde von einer KI erstellt. Er ersetzt nicht das Studium der entsprechenden AUTOSAR-Spezifikationen.

Implementer's Guide folgt (Komplexität 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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 4ef0e0487226 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Enumerationstyp CanTrcv_TrcvFlagStateType repräsentiert den Zustand eines einzelnen Flags in der Transceiver-Hardware [SWS_CanTrcv_00211]. Die Deklaration wird für anwendende Softwaremodule und Treiber über die Header-Datei CanTrcv.h bereitgestellt [SWS_CanTrcv_00211].

Der Wertebereich ist binär aufgebaut und unterscheidet zwei diskrete Zustände gemäß [SWS_CanTrcv_00211]:

  • CANTRCV_FLAG_SET: Zeigt an, dass das jeweilige Flag in der Transceiver-Hardware gesetzt ist [SWS_CanTrcv_00211].
  • CANTRCV_FLAG_CLEARED: Zeigt an, dass das Flag in der Transceiver-Hardware gelöscht oder nicht gesetzt ist [SWS_CanTrcv_00211].

Zur praktischen Verwendung lässt sich festhalten, dass der Typ primär der standardisierten Abbildung hardwarenaher Registerzustände dient [SWS_CanTrcv_00211]. Interpretation: Aufrufende Schichten wie der CAN-Interface-Treiber oder Diagnosemodule dürften diesen Typ typischerweise über Abfragefunktionen via Zeigerparameter oder Rückgabewert auslesen, um etwaige Fehler- oder Weckflags zu bewerten. Frage Q-1b75b4baf2f4c6e3 (offen) Da der Typ selbst keine Funktionslogik, Reentranz-Restriktionen oder DET-Meldungen beinhaltet, obliegt die Prüfung auf gültige Wertebereiche den verarbeitenden Schnittstellen.

Dieser Text wurde von einer KI generiert und dient als Orientierungshilfe. Verbindlich ist die AUTOSAR-Spezifikation.

Implementer's Guide folgt (Komplexität I1)

type CanTrcv_TrcvModeType [SWS_CanTrcv_00163] 📄 PDF

Operating modes of the CAN Transceiver Driver.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: b8ef2e8c5d35 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Enumerationstyp CanTrcv_TrcvModeType definiert gemäß [SWS_CanTrcv_00163] die standardisierten Betriebsmodi für den CAN-Transceiver-Treiber (CanTrcv). Die Deklaration wird über die Header-Datei Can_GeneralTypes.h für softwareübergreifende Schnittstellen im AUTOSAR-Kommunikationsstapel bereitgestellt.

Wertebereich und Bedeutungen

Gemäß [SWS_CanTrcv_00163] stehen drei Aufzählungswerte zur Verfügung:

  • CANTRCV_TRCVMODE_NORMAL (Wert 0x00): Kennzeichnet den regulären Transceiver-Betriebsmodus für das Senden und Empfangen von CAN-Nachrichten.
  • CANTRCV_TRCVMODE_STANDBY: Repräsentiert den Standby-Modus des Transceivers, in dem die Kommunikation ruht und ein reduzierter Stromverbrauch vorliegt.
  • CANTRCV_TRCVMODE_SLEEP: Repräsentiert den Schlafmodus des Transceivers zur maximalen Energieeinsparung.

Verwendung und Einschränkungen

Die Enumeration dient als gemeinsame Datentyprepräsentation für den Hardwarezustand des CAN-Transceivers [SWS_CanTrcv_00163]. Interpretation: Der Typ dürfte vor allem zur Parameterübergabe in Steuerungs- und Abfrageschnittstellen des Transceiver-Treibers dienen, über die höhere Schichten wie das CAN-Interface Moduswechsel veranlassen oder den aktuellen Status einlesen. Frage Q-95fceb6988818621 (offen) Da der vorliegende Spezifikationsauszug keine Laufzeitfehler (DET/DEM), Reentranzangaben oder konkreten Funktionssignaturen enthält, sind Aufrufkontexte und Nebenläufigkeitsregeln den jeweils nutzenden Treiberfunktionen zu entnehmen.

Dieser Nutzungshinweis basiert ausschließlich auf den Spezifikationsdaten aus AUTOSAR R20-11 zu [SWS_CanTrcv_00163].

Implementer's Guide folgt (Komplexität 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.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: ceecd083c1cd Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Enumerationstyp CanTrcv_TrcvWakeupModeType dient der Steuerung eines CAN-Transceivers im Hinblick auf Weckereignisse und Weckbenachrichtigungen [SWS_CanTrcv_00164]. Die Typdefinition wird über die Header-Datei Can_GeneralTypes.h bereitgestellt und steht damit stackweit zur Verfügung [SWS_CanTrcv_00164].

Der Wertebereich umfasst drei Steuerungsmodi für den jeweils adressierten Transceiver [SWS_CanTrcv_00164]:

  • CANTRCV_WUMODE_ENABLE (Wert 0x00): Aktiviert die Benachrichtigung für Wakeup-Ereignisse auf dem adressierten Transceiver [SWS_CanTrcv_00164].
  • CANTRCV_WUMODE_DISABLE (Wert 0x01): Deaktiviert die Benachrichtigung für Wakeup-Ereignisse auf dem adressierten Transceiver [SWS_CanTrcv_00164].
  • CANTRCV_WUMODE_CLEAR (Wert 0x02): Löscht ein im adressierten Transceiver gespeichertes Wakeup-Ereignis [SWS_CanTrcv_00164].

Interpretation: Der Typ dürfte in der Praxis primär als Übergabeparameter in Steuerungsfunktionen des Transceiver-Treibers genutzt werden, um Weckbenachrichtigungen dynamisch ein- oder auszuschalten sowie erkannte Weckereignisse zurückzusetzen. Frage Q-c53d60cdad0442ca (offen) Da die Spezifikation als reiner Aufzählungstyp keine Funktionssignaturen, Ausführungssemantik, Fehlercodes oder Nebenläufigkeitsregeln vorgibt, werden diese Aspekte vollständig durch die aufrufenden und verarbeitenden Treiberschnittstellen bestimmt [SWS_CanTrcv_00164].

Dieser Text wurde von einer KI erstellt; die Richtigkeit kann nicht garantiert werden.

Implementer's Guide folgt (Komplexität 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#bea18c62
Content hash
bea18c62
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CANTransceiverDriver.pdf#nameddest=SWS_CanTrcv_00001

Initialisierung und 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 function

Initializes the Can Trcv module.

void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);

Dienste · 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);

Dienste · 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);

Dienste · Weitere

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);

Zyklisch

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