CAN Transceiver Driver (CanTrcv)
Controls physical bus transceiver states and wakeup detection on CAN lines.
Funktionen — Übersicht
void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);Initializes the Can Trcv module.Std_ReturnType CanTrcv_SetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType OpMode);Sets the mode of the Transceiver to the value Op Mode.Std_ReturnType CanTrcv_GetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType* OpMode);Gets the mode of the Transceiver and returns it in Op Mode.Std_ReturnType CanTrcv_GetBusWuReason (uint8 Transceiver, CanTrcv_TrcvWakeupReasonType* reason);Gets the wakeup reason for the Transceiver and returns it in parameter Reason.void CanTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);Gets the version of the module and returns it in Version Info.Std_ReturnType CanTrcv_SetWakeupMode (uint8 Transceiver, CanTrcv_TrcvWakeupModeType TrcvWakeupMode);En ables, disables or clears wake - up events of the Transceiver according to Trcv Wakeup Mode.Std_ReturnType CanTrcv_GetTrcvSystemData (uint8 Transceiver, uint32* TrcvSysData);Reads the transceiver configuration/ status data and returns it through parameter Trcv Sys Data.Std_ReturnType CanTrcv_ClearTrcvWufFlag (uint8 Transceiver);Clears the WUF flag in the transceiver hardware.Std_ReturnType CanTrcv_ReadTrcvTimeoutFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);Reads the status of the tim eout flag from the transceiver hardware.Std_ReturnType CanTrcv_ClearTrcvTimeoutFlag (uint8 Transceiver);Clears the status of the timeout flag in the transceiver hardware.Std_ReturnType CanTrcv_ReadTrcvSilenceFlag (uint8 Transceiver, CanTrcv_TrcvFlagStateType* FlagState);Reads the status of the silence flag from the transceiver hardware.Std_ReturnType CanTrcv_CheckWakeup (uint8 Transceiver);Service is called by underlying CANIF in case a wake up interrupt is detected.Std_ReturnType CanTrcv_SetPNActivationState (CanTrcv_PNActivationType ActivationState);The API configures the wake - up of the transceiver for Standby and Sleep Mode: Either the CAN transceiver is woken up by a...Std_ReturnType CanTrcv_CheckWakeFlag (uint8 Transceiver);Requests to check the status of the wakeup flag from the transceiver hardware.void CanTrcv_DeInit (void);De - initializes the Can Trcv module.void CanTrcv_MainFunction (void);Service to scan all busses for wake up events and perform these event.void CanTrcv_MainFunctionDiagnostics (void);Reads the transceiver diagnostic status periodically and sets product/ development accordingly.
Typen — Übersicht
struct CanTrcv_ConfigTypeThis is the type of the external data structure containing the overall initialization data for the CAN transceiver driver and...CanTrcv_PNActivationTypeDatatype used for describing whether PN wakeup functionality in Can Trcv is enabled or disabled.enum CanTrcv_TrcvFlagStateTypeProvides the state of a flag in the transceiver hardware.enum CanTrcv_TrcvModeTypeOperating modes of the CAN Transceiver Driver.enum CanTrcv_TrcvWakeupModeTypeThis type shall be used to control the CAN transceiver concerning wake up events and wake up notifications.enum CanTrcv_TrcvWakeupReasonTypeThis type denotes the wake up reason detected by the CAN transceiver in detail.
Funktionen & Typen — Detailansicht
function CanTrcv_Init [SWS_CanTrcv_00001] 📄 PDF
void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);
Initializes the Can Trcv module.
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.
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 nurCANTRCV_TRCVMODE_STANDBYoderCANTRCV_TRCVMODE_NORMALübergeben werden [SWS_CanTrcv_00103]. - Befindet sich der Transceiver in
CANTRCV_TRCVMODE_STANDBY, darf die Funktion nur mitCANTRCV_TRCVMODE_SLEEPoderCANTRCV_TRCVMODE_STANDBYaufgerufen 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_GetOpMode [SWS_CanTrcv_00005] 📄 PDF
Std_ReturnType CanTrcv_GetOpMode (uint8 Transceiver, CanTrcv_TrcvModeType* OpMode);
Gets the mode of the Transceiver and returns it in Op Mode.
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_GetVersionInfo [SWS_CanTrcv_00008] 📄 PDF
void CanTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);
Gets the version of the module and returns it in Version Info.
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.
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.
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 ParameterTransceiverden FehlerCANTRCV_E_INVALID_TRANSCEIVER[SWS_CanTrcv_00198]. Ist DET deaktiviert, wird in diesen Fällen direktE_NOT_OKretourniert [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_CONTROLan den Default Error Tracer und gibtE_NOT_OKzurü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.
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 KonfigurationscontainerCanTrcvPartialNetworkexistiert 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 stattdessenE_NOT_OKzurückgegeben [SWS_CanTrcv_00199]. -
Wird ein Nullzeiger für
FlagStateübergeben (FlagState = NULL), meldet das Modul bei aktivem DET den FehlerCANTRCV_E_PARAM_POINTER; ist DET abgeschaltet, liefert der AufrufE_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.
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:
Transceiverbestimmt als Eingabewert (uint8) den anzusprechenden Transceiver-Kanal [SWS_CanTrcv_00216]. - Rückgabewert: Ein
Std_ReturnTypesignalisiert mitE_OKdas erfolgreiche Löschen des Hardware-Flags oder mitE_NOT_OKein 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_TRANSCEIVERan das DET gemeldet [SWS_CanTrcv_00201]. - Ist die Entwicklungserkennung deaktiviert, bricht der Aufruf ab und liefert
E_NOT_OKan 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.
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 aufCanTrcv_TrcvFlagStateType, über den der ausgelesene Status des Silence-Flags zurückgeliefert wird [SWS_CanTrcv_00217].- Rückgabewert (
Std_ReturnType): GibtE_OKzurück, falls der Hardware-Zustand des Silence-Flags erfolgreich gelesen werden konnte, andernfallsE_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.
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_UNINITgemeldet; bei deaktiviertem DET liefert der Aufruf stattdessenE_NOT_OKzurück [SWS_CanTrcv_00144]. - Bei Übergabe einer ungültigen Transceiver-Nummer meldet die Funktion
CANTRCV_E_INVALID_TRANSCEIVER; ist DET deaktiviert, wirdE_NOT_OKzurü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.
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:
PN_ENABLED: Aktiviert die PN-Wakeup-Funktionalität im CAN-Transceiver ([SWS_CanTrcv_00219]).PN_DIABLED: Deaktiviert die PN-Wakeup-Funktionalität ([SWS_CanTrcv_00219]).
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.
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]):
E_OK: Die Anforderung zur Prüfung des Wakeup-Flags wurde erfolgreich angenommen ([SWS_CanTrcv_00223]).E_NOT_OK: Die Anforderung wurde abgewiesen ([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.
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, meldetCanTrcv_DeInitden EntwicklungsfehlerCANTRCV_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_NORMALzu 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.
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.
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 APIDem_SetEventStatusmit dem ParameterEventIdalsCANTRCV_E_BUS_ERRORundEventStatusalsDEM_EVENT_STATUS_FAILEDauf [SWS_CanTrcv_00206]. - Ist das
BUSERR-Flag zurückgesetzt, ruftCanTrcv_MainFunctionDiagnosticsdie APIDem_SetEventStatusmit derselbenEventId(CANTRCV_E_BUS_ERROR) und dem StatusDEM_EVENT_STATUS_PASSEDauf [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.
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.
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(Wert0x00): 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.
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(Wert0x00): Aktiviert die Benachrichtigung für Wakeup-Ereignisse auf dem adressierten Transceiver [SWS_CanTrcv_00164].CANTRCV_WUMODE_DISABLE(Wert0x01): Deaktiviert die Benachrichtigung für Wakeup-Ereignisse auf dem adressierten Transceiver [SWS_CanTrcv_00164].CANTRCV_WUMODE_CLEAR(Wert0x02): 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
claude-opus-5-5· 2026-10-13