DEENESPTFRRUARHIKOZHNL

CAN Transceiver Driver (CanTrcv)

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

Guide du moduleGÉNÉRÉ PAR IA

Commande les émetteurs-récepteurs CAN externes : modes de fonctionnement, détection de réveil et réveil sélectif via des trames de réveil.
GÉNÉRÉ PAR IA non vérifié Modèle : claude-opus-5-5 · Effort : high · Température : non réglable · Prompt : 61900c5cf397 Provenance Questions ouvertes (4)
Ancre causale : R20-11 Valable à partir de R20-11 Synthétisé pour cette version de spécification.
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Commande les émetteurs-récepteurs CAN externes : modes de fonctionnement, détection de réveil et réveil sélectif via des trames de réveil.

CanTrcv commande des émetteurs-récepteurs CAN externes et les mappe sur un modèle de mode générique comprenant NORMAL, STANDBY et SLEEP. CanIf demande les changements de mode de manière asynchrone ; le pilote signale en retour les modes atteints via une indication [SWS_CanTrcv_00158]. De plus, il détecte les réveils, les signale à EcuM et prend en charge le réveil sélectif via des trames de réveil en présence d'un matériel approprié. Contrainte principale : SLEEP n'est accessible que depuis STANDBY [SWS_CanTrcv_00104], et aucun réveil ne doit être perdu pendant la désactivation des notifications.

Le CAN Transceiver Driver (CanTrcv) encapsule les émetteurs-récepteurs CAN externes derrière un modèle de mode générique. Ainsi, ComM et EcuM restent découplés du matériel concret (SWS CanTrcv p. 19). Il existe une instance de pilote pour chaque type de matériel d'émetteur-récepteur [SWS_CanTrcv_00016]. Le pilote est sollicité via CanIf et pilote le matériel via Dio et Spi, qui doivent être initialisés avant CanTrcv_Init [SWS_CanTrcv_00099]. Après l'initialisation, chaque émetteur-récepteur se trouve, selon la configuration de chaque canal, en STANDBY ou SLEEP [SWS_CanTrcv_00148]. CanTrcv_DeInit mène à NOT_ACTIVE [SWS_CanTrcv_91003].

CanTrcv_SetOpMode commute entre NORMAL, STANDBY et SLEEP [SWS_CanTrcv_00102]. SLEEP n'est autorisé que depuis STANDBY [SWS_CanTrcv_00104]. Un passage vers le mode actuel n'est pas une erreur [SWS_CanTrcv_00161]. La fonction opère de manière asynchrone : dès que le mode cible est atteint, CanTrcv le signale via CanIf_TrcvModeIndication [SWS_CanTrcv_00158].

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

Diagramme d'états : Init mène à STANDBY ou SLEEP, SLEEP n'est accessible que via STANDBY, DeInit mène à NOT_ACTIVE. Sources : SWS CanTrcv p. 19, [SWS_CanTrcv_00148]

CanIf vérifie les réveils via CanTrcv_CheckWakeup. Cette fonction signale les réveils détectés au moyen de EcuM_SetWakeupEvent [SWS_CanTrcv_00146]. CanTrcv_MainFunction scrute les bus en STANDBY et SLEEP [SWS_CanTrcv_00112]. CanTrcv_SetWakeupMode peut désactiver la notification, l'activer ou effacer les réveils mémorisés. Aucun réveil ne doit être perdu lors de cette opération [SWS_CanTrcv_00095].

Les émetteurs-récepteurs compatibles PN (CanTrcvHwPnSupport) réveillent en outre via des trames de réveil configurées [SWS_CanTrcv_00175]. Lors de l'arrêt, CanSM efface d'abord le drapeau WUF puis bascule vers STANDBY [SWS_CanTrcv_00194]. Ensuite, CanSM fait vérifier le drapeau de réveil de manière asynchrone [SWS_CanTrcv_00224].

En cas d'erreur :

  • Lorsque la DET est activée, les erreurs de développement sont signalées ; lorsque la DET est désactivée, les API renvoient E_NOT_OK [SWS_CanTrcv_00050].
  • Le pilote signale une communication matérielle perturbée en tant qu'erreur d'exécution CANTRCV_E_NO_TRCV_CONTROL [SWS_CanTrcv_91006].
  • CanTrcv_MainFunctionDiagnostics signale les erreurs de bus en tant que CANTRCV_E_BUS_ERROR au DEM [SWS_CanTrcv_00206].
Arrêt avec Partial Networking (SPI asynchrone)CanSMCanIfCanTrcvSpiAusgang: Anforderung NoCom,Transceiver NORMAL, Controller STARTEDUse Case: Partie I : effacer le drapeau WUF, 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: Partie II : veille du contrôleur, vérifier le drapeau de réveilCanIf_SetControllerMode(ControllerId, CAN_CS_SLEEP)CanIf_CheckTrcvWakeFlag(TransceiverId)CanTrcv_CheckWakeFlag(Transceiver)Spi_AsyncTransmit (Wake-Flag lesen)CanIf_CheckTrcvWakeFlagIndication(TransceiverId)<User_CheckTrcvWakeFlagIndication>

Diagramme de séquence : lors de l'arrêt PN, le drapeau WUF est effacé, l'émetteur-récepteur est commuté vers STANDBY et le drapeau de réveil est vérifié de manière asynchrone. Sources : SWS CanTrcv p. 55, [SWS_CanTrcv_00194]

Rôle : pilote pour émetteurs-récepteurs CAN externes sous CanIf

Le CAN Transceiver Driver (CanTrcv) pilote des composants d'émetteurs-récepteurs CAN externes. Il mappe leurs états matériels sur un modèle générique de modes de fonctionnement. Ce modèle vise à couvrir de manière homogène de nombreux émetteurs-récepteurs disponibles. D'après la spécification, il accepte pour cela de comporter un ou deux états en trop pour un composant donné, mais découple ainsi ComM et EcuM du matériel (SWS CanTrcv p. 19). Le matériel d'émetteur-récepteur doit pour cela offrir une interface pouvant être mappée sur ce modèle [SWS_CanTrcv_00098].

Vers le haut, CanIf est le partenaire direct :

Les retours passent par CanIf_TrcvModeIndication, qui fait partie des interfaces obligatoires [SWS_CanTrcv_00085]. D'autres callbacks CanIf sont répertoriés pour les indications PN [SWS_CanTrcv_00086]. Vers le bas, CanTrcv utilise Dio et Spi pour le pilotage matériel ainsi que des types Icu, DEM et EcuM, comme le montre la liste des imports [SWS_CanTrcv_00084]. Le pilote réalise les temps d'attente lors des transitions d'état avec Tm_BusyWait1us16bit [SWS_CanTrcv_00230]. Le planificateur BSW appelle CanTrcv_MainFunction et CanTrcv_MainFunctionDiagnostics (SWS CanTrcv p. 47).

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

Diagramme de contexte : CanTrcv est exploité par CanIf, EcuM et le planificateur, et accède au matériel via Dio, Spi et Icu. Il signale les erreurs à DET et DEM. Sources : [SWS_CanTrcv_00084], [SWS_CanTrcv_00085], [SWS_CanTrcv_00146], SWS EcuM p. 35

Initialisation, cycle de vie et désinitialisation

Avant l'appel de CanTrcv_Init [SWS_CanTrcv_00001], l'environnement doit avoir initialisé tous les pilotes utilisés, en particulier Spi et Dio [SWS_CanTrcv_00099]. La référence documentaire ajoute deux contraintes temporelles : l'initialisation doit intervenir rapidement après la mise sous tension, et les services sous-jacents doivent être courts et synchrones (SWS CanTrcv p. 26).

CanTrcv_Init initialise tous les émetteurs-récepteurs connectés conformément à leurs séquences d'initialisation et à la configuration issue de ConfigPtr [SWS_CanTrcv_00180]. Le contenu de CanTrcv_ConfigType est spécifique au matériel [SWS_CanTrcv_00209]. Ensuite, chaque émetteur-récepteur se trouve en CANTRCV_TRCVMODE_SLEEP ou CANTRCV_TRCVMODE_STANDBY ; cela est configurable par émetteur-récepteur [SWS_CanTrcv_00148].

L'initialisation vérifie en même temps la présence de réveils :

  • Si le matériel le permet, CanTrcv_Init vérifie si une activité de l'émetteur-récepteur a déclenché le réveil. Elle signale le résultat au moyen de EcuM_SetWakeupEvent avec la source issue de CanTrcvWakeupSourceRef [SWS_CanTrcv_00167].
  • Pour les émetteurs-récepteurs compatibles PN, la séquence de configuration est en outre réexécutée si le drapeau POR ou SYSERR est positionné. Dans le cas contraire, la configuration stockée dans l'émetteur-récepteur reste valide [SWS_CanTrcv_00182].
  • Un drapeau POR positionné est par ailleurs signalé comme réveil via CanTrcvPorWakeupSourceRef [SWS_CanTrcv_00183].

La notification POR est adaptée aux émetteurs-récepteurs dotés d'une alimentation intégrée. Chez ces derniers, un réveil passif ressemble pour l'ECU à une réinitialisation à la mise sous tension (SWS EcuM p. 70).

init start vor l'environnement a initialisé Spi et Dio start->vor init CanTrcv_Init(ConfigPtr) vor->init komm communication avec le transceiver correcte ? init->komm noctrl Laufzeitfehler CANTRCV_E_NO_TRCV_CONTROL komm->noctrl Non baud débit binaire supporté ? komm->baud Oui baudErr DET: CANTRCV_E_BAUDRATE_NOT_SUPPORTED baud->baudErr Non seq exécuter les séquences d'initialisation selon la configuration baud->seq Oui porsys matériel PN : POR ou SYSERR défini ? seq->porsys rekonf réexécuter la séquence de configuration porsys->rekonf Oui wu réveil par l'activité du transceiver ? porsys->wu non / aucun matériel PN por POR-Flag gesetzt? rekonf->por porWu EcuM_SetWakeupEvent (CanTrcvPorWakeupSourceRef) por->porWu Oui por->wu Non porWu->wu wuMeld EcuM_SetWakeupEvent (CanTrcvWakeupSourceRef) wu->wuMeld Oui ziel état configuré par canal : CANTRCV_TRCVMODE_STANDBY ou CANTRCV_TRCVMODE_SLEEP wu->ziel Non wuMeld->ziel ende ziel->ende

Diagramme d'activité : l'initialisation vérifie l'accessibilité matérielle, traite POR/SYSERR, signale les réveils à EcuM et se termine pour chaque canal en STANDBY ou SLEEP. L'ordre des vérifications est une interprétation. Sources : [SWS_CanTrcv_00180], [SWS_CanTrcv_00182], [SWS_CanTrcv_00183], [SWS_CanTrcv_00167], [SWS_CanTrcv_00148]

CanTrcv_DeInit [SWS_CanTrcv_91001] place le matériel d'émetteur-récepteur dans l'état NOT_ACTIVE [SWS_CanTrcv_91003]. Dans cet état, il peut être configuré avec une nouvelle séquence de configuration (SWS CanTrcv p. 49). L'état initial attendu est CANTRCV_TRCVMODE_NORMAL ; sinon, la vérification des erreurs de développement signale CANTRCV_E_TRCV_NOT_NORMAL [SWS_CanTrcv_91005].

Modes de fonctionnement NORMAL, STANDBY et SLEEP

CanTrcv_TrcvModeType définit les trois modes [SWS_CanTrcv_00163]. CanTrcv_SetOpMode [SWS_CanTrcv_00002] commute l'état interne de l'émetteur-récepteur adressé sur l'un de ces modes [SWS_CanTrcv_00102]. Pour les transitions, les règles suivantes s'appliquent :

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)

Diagramme d'états : après Init, l'émetteur-récepteur se trouve en STANDBY ou SLEEP. SLEEP n'est accessible que via STANDBY, NORMAL depuis tous les modes. DeInit mène à NOT_ACTIVE. Sources : SWS CanTrcv p. 19, [SWS_CanTrcv_00148], [SWS_CanTrcv_00103], [SWS_CanTrcv_00104], [SWS_CanTrcv_91003]

CanTrcv_SetOpMode opère de manière asynchrone : E_OK signifie seulement que la demande a été acceptée (SWS CanTrcv p. 33). Ce n'est qu'une fois le mode cible atteint que CanTrcv appelle CanIf_TrcvModeIndication avec le TransceiverId abstrait de CanIf [SWS_CanTrcv_00158]. CanSM ignore une telle notification pour SLEEP, car SLEEP n'est demandé que par le code d'intégration (SWS CanSM p. 94).

Sur le matériel compatible PN, CanTrcv_SetOpMode vérifie en plus les drapeaux POR et SYSERR [SWS_CanTrcv_00186]. Après un POR, il réinitialise l'émetteur-récepteur [SWS_CanTrcv_00187]. CanTrcv_GetOpMode [SWS_CanTrcv_00005] renvoie de manière synchrone l'état actuel [SWS_CanTrcv_00106].

Changement de mode du transceiverCanSMCanIfCanTrcvDio / SpiCanIf_SetTrcvMode(TransceiverId, TransceiverMode)CanTrcv_SetOpMode(Transceiver, OpMode)optPN-Hardware (CanTrcvHwPnSupport = TRUE)vérifier les drapeaux POR/SYSERR,réinitialiser après PORDio_WriteChannel ou séquence SPIE_OK (Anforderung angenommen)E_OKasynchrone : le mode cible estatteint ultérieurementCanIf_TrcvModeIndication(TransceiverId, TransceiverMode)CanSM_TransceiverModeIndication(TransceiverId, TransceiverMode)CanSM ignore la notification pour SLEEP

Diagramme de séquence : un changement de mode est accepté de manière synchrone et confirmé plus tard par une indication via CanIf à CanSM. Sources : SWS CanTrcv p. 52, [SWS_CanTrcv_00158], [SWS_CanTrcv_00186]

Réveil : détection, cause et commande des notifications

Un réveil est détecté par interruption ou par scrutation (SWS EcuM p. 179). CanIf interroge pour cela la fonction CanTrcv_CheckWakeup [SWS_CanTrcv_00143] via CanIf_CheckWakeup (SWS CanIf p. 56). Si le matériel le permet, cette fonction valide un réveil par une activité de l'émetteur-récepteur et le signale au moyen de EcuM_SetWakeupEvent [SWS_CanTrcv_00146].

CanTrcv_MainFunction [SWS_CanTrcv_00013] scrute tous les bus en STANDBY et SLEEP à la recherche de réveils et positionne un drapeau de réveil [SWS_CanTrcv_00112]. Elle est vraisemblablement pertinente avant tout dans le cas d'une configuration par scrutation ; le schéma de configuration prévoit à cet effet la valeur CanTrcvWakeUpByPolling (ECUC-Parameter p. 185). Question Q-6144fdedb98cea44 (ouverte)

CanTrcv_GetBusWuReason [SWS_CanTrcv_00007] renvoie la cause de réveil détectée par l'émetteur-récepteur [SWS_CanTrcv_00107]. Les valeurs possibles sont par exemple CANTRCV_WU_BY_BUS, CANTRCV_WU_INTERNALLY ou CANTRCV_WU_RESET [SWS_CanTrcv_00165]. La précision avec laquelle les causes peuvent être distinguées dépend fortement du matériel (SWS CanTrcv p. 35).

Pour les interruptions de réveil, le pilote utilise des canaux ICU. Il n'appelle Icu_EnableNotification et Icu_DisableNotification que si CanTrcvIcuChannelRef est configuré [SWS_CanTrcv_00171]. Lors du passage à STANDBY, il active les canaux [SWS_CanTrcv_00172]. La référence documentaire issue de R24-11 mentionne en outre la désactivation lors du passage à NORMAL (SWS CanTrcv p. 23).

Détection de réveil via le transceiverTransceiver-HardwareEcuM / IntegrationscodeCanIfCanTrcvaltWake-up per InterruptWake-up-Interrupt (ICU-Kanal)CanIf_CheckWakeup(WakeupSource)CanTrcv_CheckWakeup(Transceiver)Wake-up durch Transceiver-valider l'activitéEcuM_SetWakeupEvent(CanTrcvWakeupSourceRef)Wake-up per PollingCanTrcv_MainFunction: Busse invérifier STANDBY/SLEEP, lever le drapeauCanIf_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

Diagramme de séquence : un réveil est vérifié auprès de l'émetteur-récepteur par interruption ou scrutation via CanIf, signalé à EcuM et interrogé ultérieurement quant à sa cause. Sources : SWS EcuM p. 179, SWS EcuM p. 138, SWS EcuM p. 140, [SWS_CanTrcv_00146], [SWS_CanTrcv_00112]

CanTrcv_SetWakeupMode [SWS_CanTrcv_00009] commande la notification de réveil via CanTrcv_TrcvWakeupModeType [SWS_CanTrcv_00164] :

  • CANTRCV_WUMODE_DISABLE : les réveils ne sont pas signalés, mais sont enregistrés en interne [SWS_CanTrcv_00093].
  • CANTRCV_WUMODE_ENABLE : un réveil enregistré est signalé comme « present » [SWS_CanTrcv_00111].
  • CANTRCV_WUMODE_CLEAR : un réveil enregistré est effacé [SWS_CanTrcv_00094].

Aucun réveil ne doit être perdu pendant la phase de désactivation [SWS_CanTrcv_00095]. L'effacement sert à rejeter les réveils mémorisés lorsque la notification est désactivée, sous le contrôle de la couche supérieure [SWS_CanTrcv_00150]. CanIf transmet la demande à CanTrcv via CanIf_SetTrcvWakeupMode (SWS CanIf p. 100).

Réveil sélectif (Partial Networking)

Avec le Partial Networking, les nœuds restent en mode basse consommation jusqu'à ce que des trames de réveil prédéfinies (WUF) les réveillent. Les émetteurs-récepteurs compatibles PN ne réagissent donc pas seulement au motif de réveil (WUP), mais aussi à ces trames (SWS CanTrcv p. 27). CanTrcvHwPnSupport indique si le matériel en est capable [SWS_CanTrcv_00174]. C'est uniquement lorsque ce paramètre est TRUE qu'existent le conteneur CanTrcvPartialNetwork et cinq API : CanTrcv_GetTrcvSystemData, CanTrcv_ClearTrcvWufFlag, CanTrcv_ReadTrcvTimeoutFlag, CanTrcv_ClearTrcvTimeoutFlag et CanTrcv_ReadTrcvSilenceFlag [SWS_CanTrcv_00175].

CanTrcvPnFrameCanId, CanTrcvPnFrameCanIdMask et CanTrcvPnFrameDataMask définissent les trames auxquelles l'émetteur-récepteur réagit [SWS_CanTrcv_00177]. CanTrcv_SetPNActivationState [SWS_CanTrcv_00219] active la fonction de réveil PN avec PN_ENABLED [SWS_CanTrcv_00221] et la désactive avec PN_DISABLED [SWS_CanTrcv_00222].

Le déroulement de l'arrêt est central :

  1. CanSM efface le drapeau WUF via CanTrcv_ClearTrcvWufFlag afin qu'aucun réveil par trame ne soit perdu lors de l'entrée en mode basse consommation. Ensuite, l'émetteur-récepteur passe en STANDBY [SWS_CanTrcv_00194].
  2. CanTrcv confirme l'effacement par CanIf_ClearTrcvWufFlagIndication [SWS_CanTrcv_00195].
  3. Enfin, CanSM demande la vérification asynchrone CanTrcv_CheckWakeFlag [SWS_CanTrcv_00223]. CanTrcv signale le résultat au moyen de CanIf_CheckTrcvWakeFlagIndication [SWS_CanTrcv_00224].

Pour le raccordement SPI, la spécification décrit une variante asynchrone (SWS CanTrcv p. 55) et une variante synchrone (SWS CanTrcv p. 57).

Arrêt avec Partial Networking (SPI asynchrone)CanSMCanIfCanTrcvSpiAusgang: Anforderung NoCom,Transceiver NORMAL, Controller STARTEDUse Case: Partie I : effacer le drapeau WUF, 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: Partie II : veille du contrôleur, vérifier le drapeau de réveilCanIf_SetControllerMode(ControllerId, CAN_CS_SLEEP)CanIf_CheckTrcvWakeFlag(TransceiverId)CanTrcv_CheckWakeFlag(Transceiver)Spi_AsyncTransmit (Wake-Flag lesen)CanIf_CheckTrcvWakeFlagIndication(TransceiverId)<User_CheckTrcvWakeFlagIndication>

Diagramme de séquence : lors de l'arrêt PN, le drapeau WUF est effacé, l'émetteur-récepteur est commuté vers STANDBY et le drapeau de réveil est vérifié de manière asynchrone après la mise en veille du contrôleur. Sources : SWS CanTrcv p. 55, SWS CanTrcv p. 56, SWS CanSM p. 36, [SWS_CanTrcv_00194], [SWS_CanTrcv_00224]

Pour le diagnostic, CanTrcv_GetTrcvSystemData [SWS_CanTrcv_00213] lit la configuration et l'état de l'émetteur-récepteur en tant que uint32 [SWS_CanTrcv_00189]. Les drapeaux de timeout et de silence sont lus ou effacés via CanTrcv_ReadTrcvTimeoutFlag [SWS_CanTrcv_00215], CanTrcv_ClearTrcvTimeoutFlag [SWS_CanTrcv_00216] et CanTrcv_ReadTrcvSilenceFlag [SWS_CanTrcv_00217]. CanTrcv_TrcvFlagStateType indique leur état [SWS_CanTrcv_00211].

Configuration et référence d'instance

Il existe pour chaque type de matériel d'émetteur-récepteur une instance de pilote qui dessert tous les composants de ce type [SWS_CanTrcv_00016]. Le schéma CanIf montre le cas de contrôleurs identiques dotés de types d'émetteurs-récepteurs différents, ce qui nécessite alors deux pilotes d'émetteur-récepteur (SWS CanIf p. 34). Un conteneur CanTrcvChannel (multiplicité 1..*) décrit chaque canal. Il contient entre autres CanTrcvHwPnSupport, CanTrcvInitState, CanTrcvWakeupByBusUsed ainsi que les références de source de réveil (SWS CanTrcv p. 70).

Une différence entre les sources concerne l'état après Init. Le schéma de configuration mentionne CanTrcvOpModeNormal comme valeur par défaut de CanTrcvInitState (ECUC-Parameter p. 187). La référence normative pour R20-11 est toutefois [SWS_CanTrcv_00148], qui ne prévoit après Init que SLEEP ou STANDBY. Le pilote doit rejeter les configurations présentant des assignations de partition non prises en charge [SWS_CanTrcv_00231].

Comportement en cas d'erreur

Les erreurs de développement issues de [SWS_CanTrcv_00050] suivent un modèle uniforme. Lorsque la DET est activée, les API signalent :

Si la DET est désactivée, les API renvoient E_NOT_OK dans ces cas.

Si la communication avec le transceiver est perturbée, le pilote signale l'erreur d'exécution CANTRCV_E_NO_TRCV_CONTROL [SWS_CanTrcv_91006] via Det_ReportRuntimeError [SWS_CanTrcv_00085]. Cela s'applique par exemple dans Init [SWS_CanTrcv_00113], SetOpMode [SWS_CanTrcv_00114], GetOpMode [SWS_CanTrcv_00115], SetWakeupMode [SWS_CanTrcv_00117], GetTrcvSystemData [SWS_CanTrcv_00190] et ClearTrcvWufFlag [SWS_CanTrcv_00196]. CanTrcv_GetBusWuReason constitue une exception : dans ce cas, selon [SWS_CanTrcv_00116], elle retourne E_OK. Init signale un débit binaire non pris en charge sous la forme 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 Non id ID du transceiver valide ? init->id Oui eId DET: CANTRCV_E_INVALID_TRANSCEIVER (DET aus: E_NOT_OK) id->eId Non ptr Zeigerparameter != NULL? id->ptr Oui ePtr DET: CANTRCV_E_PARAM_POINTER (DET aus: E_NOT_OK) ptr->ePtr Non modus mode / transition autorisé(e) ? ptr->modus ja / kein Zeiger eModus DET : CANTRCV_E_PARAM_TRCV_OPMODE, CANTRCV_E_TRCV_NOT_NORMAL ou CANTRCV_E_TRCV_NOT_STANDBY (DET désactivé : E_NOT_OK) modus->eModus Non hw accès matériel via Dio / Spi modus->hw Oui komm Kommunikation korrekt? hw->komm eKomm Det_ReportRuntimeError : CANTRCV_E_NO_TRCV_CONTROL retour E_NOT_OK (GetBusWuReason : E_OK) komm->eKomm Non ok E_OK komm->ok Oui

Diagramme d'activité : les appels d'API traversent des contrôles d'erreurs de développement, puis l'accès matériel avec traitement des erreurs d'exécution. L'ordre de contrôle est une interprétation. Sources : [SWS_CanTrcv_00050], [SWS_CanTrcv_00122], [SWS_CanTrcv_00123], [SWS_CanTrcv_00132], [SWS_CanTrcv_00114], [SWS_CanTrcv_00116]

Les erreurs de bus sont traitées comme des erreurs de production. La condition préalable est que le matériel puisse distinguer les erreurs de bus d'autres erreurs [SWS_CanTrcv_00178] et que CanTrcvBusErrFlag = TRUE [SWS_CanTrcv_00205]. Ensuite, CanTrcv_MainFunctionDiagnostics [SWS_CanTrcv_00218] lit cycliquement le drapeau BUSERR. Elle signale CANTRCV_E_BUS_ERROR en tant que DEM_EVENT_STATUS_FAILED [SWS_CanTrcv_00206] ou DEM_EVENT_STATUS_PASSED [SWS_CanTrcv_00227] à DEM [SWS_CanTrcv_00228] [SWS_CanTrcv_00229]. L'événement DEM est référencé via CanTrcvDemEventParameterRefs (SWS CanTrcv p. 78).

Preuves détaillées supplémentaires

Guide généré par IA sur la base des exigences et des références documentaires contenues dans le payload pour CanTrcv (Classic, R20-11). Les références documentaires d'autres versions sont utilisées à titre complémentaire ; lorsqu'elles diffèrent, cela est indiqué. Les déclarations signalées comme interprétation ne sont pas normatives.

CAN Transceiver Driver (CanTrcv)

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

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

fonction CanTrcv_Init [SWS_CanTrcv_00001] 📄 PDF

void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);

Initializes the Can Trcv module.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 69eb894dc0d7 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation et sémantique

La fonction CanTrcv_Init sert à l'initialisation de base du module CanTrcv ainsi que de tous les émetteurs-récepteurs CAN raccordés [SWS_CanTrcv_00001] [SWS_CanTrcv_00180]. L'exécution est synchrone et spécifiée comme non réentrante [SWS_CanTrcv_00001]. Comme paramètre d'entrée, elle attend via ConfigPtr un pointeur vers la configuration du pilote et ne possède pas de valeur de retour [SWS_CanTrcv_00001].

Interaction et vérification matérielle

Durant son exécution, la fonction exécute les séquences d'initialisation matérielles de tous les émetteurs-récepteurs raccordés conformément à la configuration et prend en charge la séquence d'initialisation de la pile AUTOSAR [SWS_CanTrcv_00180]. Par cet appel, chaque émetteur-récepteur passe séparément, selon sa configuration respective, soit en mode CANTRCV_TRCVMODE_SLEEP, soit en CANTRCV_TRCVMODE_STANDBY [SWS_CanTrcv_00148]. Pour autant que le matériel le prenne en charge, CanTrcv_Init vérifie en outre si un événement de réveil était préalablement présent en raison de l'activité de l'émetteur-récepteur et le signale à l'EcuM via EcuM_SetWakeupEvent avec la source définie par CanTrcvWakeupSourceRef [SWS_CanTrcv_00167].

Gestion des erreurs

En cas de communication défaillante ou absente avec le matériel (par exemple via des broches de port ou le SPI), la fonction signale l'erreur d'exécution CANTRCV_E_NO_TRCV_CONTROL au Default Error Tracer [SWS_CanTrcv_00113]. Si la détection des erreurs de développement est active, CANTRCV_E_BAUDRATE_NOT_SUPPORTED est en outre signalé si un débit binaire configuré n'est pas pris en charge par l'émetteur-récepteur respectif [SWS_CanTrcv_00168].

Ce texte a été généré par une IA sur la base de la spécification AUTOSAR R20-11.

Guide de l'implémenteur à venir (complexité I1)

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 62862d69beb4 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction CanTrcv_SetOpMode sert à commuter de manière asynchrone le mode de fonctionnement d'un transceiver CAN [SWS_CanTrcv_00002]. Elle prend en charge le numéro d'appareil du transceiver (Transceiver) ainsi que le mode cible souhaité (OpMode), qui peut prendre les valeurs CANTRCV_TRCVMODE_NORMAL, CANTRCV_TRCVMODE_STANDBY ou CANTRCV_TRCVMODE_SLEEP [SWS_CanTrcv_00102]. La fonction est réentrante pour différents transceivers [SWS_CanTrcv_00002]. La valeur de retour E_OK confirme l'acceptation de l'ordre de commutation ; E_NOT_OK signale le rejet de la demande, des erreurs de paramètre ou l'absence de prise en charge du mode par le matériel [SWS_CanTrcv_00002], [SWS_CanTrcv_00105].

Lors de l'appel, des transitions d'état prédéfinies doivent être respectées :

  • Si le transceiver se trouve dans le mode CANTRCV_TRCVMODE_NORMAL, seul CANTRCV_TRCVMODE_STANDBY ou CANTRCV_TRCVMODE_NORMAL peut être transmis comme mode cible [SWS_CanTrcv_00103].
  • Si le transceiver se trouve en CANTRCV_TRCVMODE_STANDBY, la fonction ne peut être appelée qu'avec CANTRCV_TRCVMODE_SLEEP ou CANTRCV_TRCVMODE_STANDBY [SWS_CanTrcv_00104].

Lorsque la détection des erreurs de développement (DET) est activée, la fonction signale les appels avant l'initialisation comme CANTRCV_E_UNINIT [SWS_CanTrcv_00122], les numéros de transceiver non valides comme CANTRCV_E_INVALID_TRANSCEIVER [SWS_CanTrcv_00123] et les modes de fonctionnement non autorisés comme CANTRCV_E_PARAM_TRCV_OPMODE [SWS_CanTrcv_00087]. Si Standby est demandé alors que le transceiver n'est ni en Normal ni en Standby, CANTRCV_E_TRCV_NOT_NORMAL est déclenché [SWS_CanTrcv_00120] ; en cas de demande de Sleep en dehors de Standby ou Sleep, la notification CANTRCV_E_TRCV_NOT_STANDBY a lieu [SWS_CanTrcv_00121]. Si le DET est désactivé, E_NOT_OK est renvoyé dans ces cas. En cas de communication inexistante ou défaillante avec le transceiver, l'erreur d'exécution CANTRCV_E_NO_TRCV_CONTROL est signalée au DET et E_NOT_OK est retourné [SWS_CanTrcv_00114].

Si le Selective Wakeup est pris en charge par le matériel, l'API vérifie les drapeaux d'état POR et SYSERR [SWS_CanTrcv_00186]. Dès que le transceiver a atteint le mode demandé, le module informe la couche supérieure via le rappel CanIf_TrcvModeIndication [SWS_CanTrcv_00158].

Ce texte a été généré par une IA sur la base des exigences de spécification.

Guide de l'implémenteur à venir (complexité I2)

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

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 7ddf69d5a7ae Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Utilisation et sémantique

La fonction synchrone CanTrcv_SetWakeupMode sert à activer, désactiver ou effacer des événements de réveil pour un transceiver donné [SWS_CanTrcv_00009]. Le transceiver cible lui est transmis via le paramètre Transceiver et le mode souhaité via TrcvWakeupMode. En cas de changement d'état réussi, la fonction renvoie E_OK. Si l'état ne peut pas être modifié ou si un paramètre est non valide, E_NOT_OK est renvoyé et l'état antérieur demeure conservé de façon inchangée [SWS_CanTrcv_00009].

Modes de fonctionnement et interaction

Si TrcvWakeupMode est appelée avec la valeur CANTRCV_WUMODE_CLEAR, la fonction efface un événement de réveil mémorisé du transceiver adressé [SWS_CanTrcv_00094]. Lors d'un appel avec CANTRCV_WUMODE_ENABLE, le module met à jour l'événement de réveil vers l'état « present », pour autant qu'un événement de réveil mémorisé soit déjà en attente pour le bus concerné [SWS_CanTrcv_00111]. Interprétation : pour la désactivation d'événements de réveil, une valeur de mode correspondante devrait exister de manière analogue, même si celle-ci n'est pas détaillée à part dans le présent extrait d'exigences. Question Q-e0f15d1d0855db81 (ouverte)

Gestion des erreurs et concurrence

La fonction est réentrante pour différentes instances de transceivers [SWS_CanTrcv_00009]. Avant l'appel, le pilote de transceiver doit être entièrement initialisé : un appel à l'état non initialisé déclenche l'erreur CANTRCV_E_UNINIT lorsque la détection des erreurs de développement (DET) est active, sinon E_NOT_OK est renvoyé [SWS_CanTrcv_00127]. Un indice non valide pour Transceiver conduit à CANTRCV_E_INVALID_TRANSCEIVER (ou E_NOT_OK) [SWS_CanTrcv_00131], et une valeur de mode non autorisée dans TrcvWakeupMode signale CANTRCV_E_PARAM_TRCV_WAKEUP_MODE ou fournit E_NOT_OK [SWS_CanTrcv_00089]. En cas de communication inexistante ou défaillante avec le transceiver, l'erreur d'exécution CANTRCV_E_NO_TRCV_CONTROL est signalée au Default Error Tracer et E_NOT_OK est renvoyé [SWS_CanTrcv_00117].

Cette note d'utilisation a été générée automatiquement sur la base de la spécification d'AUTOSAR Classic R20-11.

Guide de l'implémenteur à venir (complexité I2)

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

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 10eca0b578cb Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone CanTrcv_ClearTrcvWufFlag efface l’indicateur de trame de réveil (WUF) dans le matériel du transceiver CAN adressé et n’est disponible que si la prise en charge du Selective Wakeup est configurée (CanTrcvHwPnSupport = TRUE) [SWS_CanTrcv_00214], [SWS_CanTrcv_00175]. En cas d’effacement réussi, E_OK est renvoyé, sinon E_NOT_OK [SWS_CanTrcv_00214], [SWS_CanTrcv_00194].

Interaction et déroulement

L’API est utilisée par le module CanSM lors de l’entrée dans un mode basse consommation afin de s’assurer qu’aucun événement de réveil par trame n’est perdu pendant la transition d’état [SWS_CanTrcv_00194]. Après la réinitialisation de l’indicateur WUF, le transceiver CAN doit être basculé en mode veille (CANTRCV_STANDBY) [SWS_CanTrcv_00194].

Concurrence et contexte d'appel

Les appels de CanTrcv_ClearTrcvWufFlag sont réentrants pour des instances de transceiver différentes (Transceiver) [SWS_CanTrcv_00214].

Gestion des erreurs

  • Erreur de développement (DET) : Si la détection d’erreurs est active, la fonction signale l’erreur CANTRCV_E_UNINIT [SWS_CanTrcv_00197] si le pilote n’est pas initialisé, et l’erreur CANTRCV_E_INVALID_TRANSCEIVER [SWS_CanTrcv_00198] si un paramètre Transceiver n’est pas valide. Si DET est désactivé, E_NOT_OK est directement renvoyé dans ces cas [SWS_CanTrcv_00197], [SWS_CanTrcv_00198].
  • Erreur d’exécution : Si la communication avec le transceiver échoue ou est erronée, la fonction signale l’erreur d’exécution CANTRCV_E_NO_TRCV_CONTROL au Default Error Tracer et renvoie E_NOT_OK [SWS_CanTrcv_00196].

Cette note d'utilisation a été générée de manière automatisée sur la base de la spécification AUTOSAR R20-11.

Guide de l'implémenteur à venir (complexité I1)

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : a58e25cc2696 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone CanTrcv_ReadTrcvTimeoutFlag lit l'état de l'indicateur de temporisation directement à partir du matériel de l'émetteur-récepteur CAN [SWS_CanTrcv_00215]. Transceiver sert de paramètre d'entrée pour identifier l'émetteur-récepteur à adresser, tandis que l'état de l'indicateur est renvoyé via le paramètre de sortie FlagState de type CanTrcv_TrcvFlagStateType* [SWS_CanTrcv_00215]. La valeur de retour signale par E_OK une lecture réussie et par E_NOT_OK que l'état de l'indicateur de temporisation n'a pas pu être déterminé [SWS_CanTrcv_00215].

Les conditions cadres suivantes s'appliquent à l'utilisation et à l'intégration dans le pilote d'émetteur-récepteur :

  • Configuration : l'API est exclusivement disponible si la prise en charge matérielle de la mise en réseau partielle est activée (CanTrcvHwPnSupport = TRUE) [SWS_CanTrcv_00215]. Le conteneur de configuration associé CanTrcvPartialNetwork n'existe également que sous cette condition [SWS_CanTrcv_00175].
  • Concurrence : la fonction est spécifiée comme non réentrante (Non Reentrant) [SWS_CanTrcv_00215].

Le traitement des erreurs effectue une distinction selon l'état de la détection des erreurs de développement (Development Error Detection, DET) :

  • Si un identifiant d'émetteur-récepteur non valide est transmis, le module génère l'erreur CANTRCV_E_INVALID_TRANSCEIVER lorsque le DET est activé ; lorsque le DET est désactivé, E_NOT_OK est renvoyé à la place [SWS_CanTrcv_00199].
  • Si un pointeur nul est transmis pour FlagState (FlagState = NULL), le module signale l'erreur CANTRCV_E_PARAM_POINTER si le DET est actif ; si le DET est désactivé, l'appel renvoie E_NOT_OK [SWS_CanTrcv_00200].

Cette note d'utilisation a été générée automatiquement sur la base de la spécification AUTOSAR CP R20-11.

Guide de l'implémenteur à venir (complexité I2)

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 58509e1d0c7c Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone CanTrcv_ClearTrcvTimeoutFlag sert à réinitialiser l'indicateur de temporisation dans le matériel de l'émetteur-récepteur [SWS_CanTrcv_00216]. Elle n'est disponible que si la prise en charge matérielle du Partial Networking est activée via le paramètre de configuration CanTrcvHwPnSupport = TRUE [SWS_CanTrcv_00175], [SWS_CanTrcv_00216].

Utilisation et interface

L'appel s'effectue de manière synchrone via l'interface dans CanTrcv.h en spécifiant l'émetteur-récepteur cible :

  • Paramètre : Transceiver définit, en tant que valeur d'entrée (uint8), le canal d'émetteur-récepteur à adresser [SWS_CanTrcv_00216].
  • Valeur de retour : un Std_ReturnType signale par E_OK l'effacement réussi de l'indicateur matériel ou par E_NOT_OK l'échec de l'opération [SWS_CanTrcv_00216].

Gestion des erreurs

Si un identifiant non valide est transmis à la fonction pour le paramètre Transceiver, un traitement différencié des erreurs s'applique :

  • Lorsque la détection des erreurs de développement (Development Error Detection) est active, l'erreur CANTRCV_E_INVALID_TRANSCEIVER est signalée au DET [SWS_CanTrcv_00201].
  • Si la détection des erreurs de développement est désactivée, l'appel s'interrompt et renvoie E_NOT_OK à l'appelant [SWS_CanTrcv_00201].

Concurrence et intégration système

La fonction est classée comme non réentrante (Non Reentrant) [SWS_CanTrcv_00216]. Les appels parallèles pour la même unité matérielle doivent donc être évités ou synchronisés par la couche appelante. De plus, la fonction fait partie du périmètre fonctionnel des fonctions de réveil sélectif (Partial Networking) ; les structures de configuration associées dans le conteneur CanTrcvPartialNetwork n'existent également que si CanTrcvHwPnSupport est défini [SWS_CanTrcv_00175].

Cette note d'utilisation est basée sur la spécification AUTOSAR CP R20-11.

Guide de l'implémenteur à venir (complexité I1)

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : be15c667bc30 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone et non réentrante CanTrcv_ReadTrcvSilenceFlag (Service-ID 0x0d) sert à lire l'état de l'indicateur de silence directement à partir du matériel de l'émetteur-récepteur CAN [SWS_CanTrcv_00217]. Elle est mise à disposition via l'en-tête CanTrcv.h et ne doit pas être exécutée de manière concurrente en raison de l'absence de réentrance [SWS_CanTrcv_00217].

Paramètres et valeurs de retour

  • Transceiver : paramètre d'entrée (uint8) pour adresser l'instance d'émetteur-récepteur respective via son identifiant [SWS_CanTrcv_00217].
  • FlagState : paramètre de sortie sous forme de pointeur vers CanTrcv_TrcvFlagStateType, via lequel l'état lu de l'indicateur de silence est renvoyé [SWS_CanTrcv_00217].
  • Valeur de retour (Std_ReturnType) : renvoie E_OK si l'état matériel de l'indicateur de silence a pu être lu avec succès, sinon E_NOT_OK [SWS_CanTrcv_00217].

Gestion des erreurs

Si un pointeur nul est transmis à la fonction pour le paramètre de sortie (FlagState == NULL), le traitement d'erreur dépend du contrôle de développement : lorsque le DET est activé, le pilote d'émetteur-récepteur CAN signale l'erreur de développement CANTRCV_E_PARAM_POINTER ; si le DET est désactivé, l'appel est immédiatement interrompu avec E_NOT_OK [SWS_CanTrcv_00203].

Configuration et interaction

La fonction s'inscrit dans le contexte du réveil sélectif (Selective Wakeup). Le conteneur de configuration associé CanTrcvPartialNetwork ainsi que l'interface CanTrcv_ReadTrcvSilenceFlag ne sont disponibles dans le pilote que si la prise en charge matérielle du Partial Networking est configurée via CanTrcvHwPnSupport = TRUE [SWS_CanTrcv_00175], [SWS_CanTrcv_00217].

Cette note d'utilisation a été générée de manière automatisée sur la base de la spécification AUTOSAR R20-11.

Guide de l'implémenteur à venir (complexité I1)

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 3bcebb868332 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone et réentrante CanTrcv_CheckWakeup est appelée par l'interface sous-jacente CanIf dès qu'une interruption de réveil a été détectée [SWS_CanTrcv_00143]. L'émetteur-récepteur CAN à vérifier est adressé via le paramètre Transceiver [SWS_CanTrcv_00143]. La valeur de retour E_OK signale l'acceptation de l'appel, tandis que E_NOT_OK indique le rejet [SWS_CanTrcv_00143].

Pour autant que le matériel le prenne en charge, la fonction vérifie si un événement de réveil est effectivement présent en raison d'une activité sur l'émetteur-récepteur [SWS_CanTrcv_00146]. Si tel est le cas, la notification de réveil est envoyée à l'EcuM via l'API EcuM_SetWakeupEvent avec la source de réveil référencée dans CanTrcvWakeupSourceRef [SWS_CanTrcv_00146].

Pour le traitement des erreurs, les exigences suivantes s'appliquent lorsque la détection des erreurs de développement (DET) est activée :

  • Si la fonction est appelée avant l'initialisation du module CanTrcv, l'erreur de développement CANTRCV_E_UNINIT est signalée ; si le DET est désactivé, l'appel renvoie E_NOT_OK à la place [SWS_CanTrcv_00144].
  • En cas de transmission d'un numéro d'émetteur-récepteur non valide, la fonction signale CANTRCV_E_INVALID_TRANSCEIVER ; si le DET est désactivé, E_NOT_OK est renvoyé [SWS_CanTrcv_00145].

Cette note d'utilisation repose exclusivement sur les exigences de spécification d'AUTOSAR Classic R20-11.

Guide de l'implémenteur à venir (complexité I1)

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : ed5e02955479 Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone CanTrcv_SetPNActivationState configure le comportement de réveil de l'émetteur-récepteur CAN pour les modes Standby et Sleep ([SWS_CanTrcv_00219]). Elle détermine si l'émetteur-récepteur est réveillé via un schéma de réveil standard (standard wake-up pattern) ou de manière ciblée via une trame de réveil à distance configurée dans le cadre du Partial Networking ([SWS_CanTrcv_00219]).

Utilisation et paramètres

La fonction est mise à disposition via CanTrcv.h avec l'identifiant de service 0x0f et s'exécute de façon synchrone ([SWS_CanTrcv_00219]). Son paramètre d'entrée ActivationState de type CanTrcv_PNActivationType commande le mode de fonctionnement :

En tant que valeur de retour, la fonction renvoie E_OK si l'émetteur-récepteur a basculé avec succès vers la configuration PN demandée. Si le basculement échoue, E_NOT_OK est renvoyé ; dans ce cas, la configuration précédente reste inchangée ([SWS_CanTrcv_00219]).

Restrictions et traitement des erreurs

La fonction est non réentrante (Non Reentrant) ([SWS_CanTrcv_00219]). En tant que précondition obligatoire, le module CanTrcv doit avoir été entièrement initialisé avant l'appel : si l'appel a lieu avant l'initialisation, la fonction signale l'erreur CANTRCV_E_UNINIT au DET lorsque la détection des erreurs de développement est active ; si le DET est désactivé, l'appel est immédiatement rejeté avec la valeur de retour E_NOT_OK ([SWS_CanTrcv_00220]).

Cette note d'utilisation a été générée automatiquement sur la base de la spécification.

Guide de l'implémenteur à venir (complexité I1)

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 3347f44cb215 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction CanTrcv_CheckWakeFlag demande la vérification de l'état de l'indicateur de réveil directement au matériel de l'émetteur-récepteur ([SWS_CanTrcv_00223]). L'appel s'effectue de manière asynchrone et se rapporte, via le paramètre d'entrée Transceiver, à l'identifiant respectif de l'émetteur-récepteur CAN à solliciter ([SWS_CanTrcv_00223]).

Comme valeur de retour, la fonction fournit l'état Std_ReturnType ([SWS_CanTrcv_00223]) :

En ce qui concerne la concurrence, il est établi que la fonction est non réentrante (Non Reentrant) ([SWS_CanTrcv_00223]). Le service étant spécifié comme asynchrone, la valeur de retour reflète uniquement l'acceptation de la commande de vérification ; la lecture matérielle effective devrait avoir lieu en différé ([SWS_CanTrcv_00223]). Question Q-f09b7ff49c24cea8 (ouverte) Aucun code d'erreur concret ni message DET ou DEM n'est répertorié pour ce service.

Cette consigne d'utilisation a été générée par une IA sur la base de la spécification AUTOSAR.

Guide de l'implémenteur à venir (complexité I1)

fonction CanTrcv_DeInit [SWS_CanTrcv_91001] 📄 PDF

void CanTrcv_DeInit (void);

De - initializes the Can Trcv module.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : f6b7395c6c6d Provenance
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction synchrone CanTrcv_DeInit sert à la désinitialisation du pilote d'émetteur-récepteur CAN [SWS_CanTrcv_91001]. Elle ne prend aucun paramètre, ne renvoie aucune valeur et est spécifiée comme non réentrante (Non Reentrant) [SWS_CanTrcv_91001]. L'interface est mise à disposition via l'en-tête CanTrcv.h avec le Service-ID 0x10 [SWS_CanTrcv_91001].

Lors de l'exécution, la fonction place le matériel émetteur-récepteur CAN dans l'état NOT_ACTIVE [SWS_CanTrcv_91003]. Comme CanTrcv_DeInit n'est pas réentrante, les appels ne doivent pas être interrompus ni exécutés de façon concurrente entre eux [SWS_CanTrcv_91001].

En ce qui concerne le traitement des erreurs et les conditions d'ordonnancement :

  • Si la détection des erreurs de développement (Development Error Detection) est activée pour le module, la fonction vérifie le mode de fonctionnement de l'émetteur-récepteur. Si l'émetteur-récepteur ne se trouve pas dans le mode CANTRCV_TRCVMODE_NORMAL lors de l'appel, CanTrcv_DeInit signale l'erreur de développement CANTRCV_E_TRCV_NOT_NORMAL [SWS_CanTrcv_91005].
  • Il en résulte pour l'appelant la précondition fonctionnelle d'exploiter l'émetteur-récepteur dans l'état CANTRCV_TRCVMODE_NORMAL avant la désinitialisation, afin d'éviter un rapport d'erreur en mode développement [SWS_CanTrcv_91005].

Cette note d'utilisation a été générée de manière automatisée sur la base de la spécification AUTOSAR CP R20-11.

fonction CanTrcv_MainFunction [SWS_CanTrcv_00013] 📄 PDF

void CanTrcv_MainFunction (void);

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 8f993661c2b3 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction CanTrcv_MainFunction sert de service de pilote central du pilote d'émetteur-récepteur CAN pour surveiller tous les canaux de bus raccordés quant à la survenue d'événements de réveil ainsi que pour procéder à l'exécution de ces événements [SWS_CanTrcv_00013]. Elle possède la signature C void CanTrcv_MainFunction(void), est définie sous le Service-ID hexadécimal 0x06 et fonctionne de manière synchrone sans paramètre de transmission ni valeur de retour [SWS_CanTrcv_00013].

Pour la surveillance cyclique, la fonction balaye de manière ciblée tous les bus qui se trouvent dans les états de repos STANDBY ou SLEEP [SWS_CanTrcv_00112]. Si le pilote détecte un événement de réveil sur l'un des bus surveillés, CanTrcv_MainFunction positionne un drapeau interne d'événement de réveil afin de déclencher l'exécution et le traitement ultérieurs de ces événements dans le système [SWS_CanTrcv_00112].

En ce qui concerne le contexte d'appel, l'interface est mise à disposition via le fichier d'en-tête SchM_CanTrcv.h [SWS_CanTrcv_00013]. Interprétation : la mise à disposition via cet en-tête SchM suggère que la fonction devrait probablement être appelée périodiquement par le planificateur BSW dans le contexte d'une tâche cyclique afin d'échantillonner régulièrement les canaux de bus dans les états inactifs. Question Q-588109b1111a0f43 (ouverte) Aucun code d'erreur spécifique, aucun message vers le DET ou le DEM ni aucune exigence de réentrance ne sont mentionnés dans le présent extrait de spécification.

Ce texte a été généré par une IA sur la base de la spécification AUTOSAR R20-11.

Guide de l'implémenteur à venir (complexité I1)

fonction CanTrcv_MainFunctionDiagnostics [SWS_CanTrcv_00218] 📄 PDF

void CanTrcv_MainFunctionDiagnostics (void);

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

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 958c670ba046 Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

La fonction CanTrcv_MainFunctionDiagnostics (Service-ID 0x08) lit périodiquement l'état de diagnostic de l'émetteur-récepteur et positionne les erreurs de production et de développement correspondantes [SWS_CanTrcv_00218]. La fonction est sans paramètre, ne possède aucune valeur de retour (void CanTrcv_MainFunctionDiagnostics(void)) et est mise à disposition via l'en-tête SchM_CanTrcv.h [SWS_CanTrcv_00218].

Contexte d'appel et concurrence

En raison de sa mise à disposition via SchM_CanTrcv.h, la fonction principale est probablement appelée cycliquement par le planificateur BSW (SchM) dans un contexte de tâche (interprétation). Question Q-ab1f6c55abcb8d4b (ouverte) Comme la spécification n'indique aucune réentrance, il convient de supposer une exécution non réentrante.

Traitement des erreurs et interaction avec le DEM

L'évaluation du diagnostic s'effectue en fonction de la configuration et de la prise en charge matérielle :

  • Si le drapeau BUSERR signalé par le BSW est positionné, la fonction appelle l'API Dem_SetEventStatus avec le paramètre EventId en tant que CANTRCV_E_BUS_ERROR et EventStatus en tant que DEM_EVENT_STATUS_FAILED [SWS_CanTrcv_00206].
  • Si le drapeau BUSERR est réinitialisé, CanTrcv_MainFunctionDiagnostics appelle l'API Dem_SetEventStatus avec la même EventId (CANTRCV_E_BUS_ERROR) et le statut DEM_EVENT_STATUS_PASSED [SWS_CanTrcv_00227].

Ce texte a été généré par une IA. Il ne remplace pas l'étude des spécifications AUTOSAR correspondantes.

Guide de l'implémenteur à venir (complexité 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 4ef0e0487226 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Le type énuméré CanTrcv_TrcvFlagStateType représente l'état d'un indicateur individuel dans le matériel de l'émetteur-récepteur [SWS_CanTrcv_00211]. La déclaration est mise à disposition des modules logiciels applicatifs et des pilotes via le fichier d'en-tête CanTrcv.h [SWS_CanTrcv_00211].

La plage de valeurs est de structure binaire et distingue deux états discrets selon [SWS_CanTrcv_00211] :

  • CANTRCV_FLAG_SET : indique que l'indicateur respectif est positionné dans le matériel de l'émetteur-récepteur [SWS_CanTrcv_00211].
  • CANTRCV_FLAG_CLEARED : indique que l'indicateur dans le matériel de l'émetteur-récepteur est effacé ou non positionné [SWS_CanTrcv_00211].

En ce qui concerne l'utilisation pratique, on peut retenir que le type sert principalement à la représentation standardisée d'états de registres proches du matériel [SWS_CanTrcv_00211]. Interprétation : les couches appelantes telles que le pilote d'interface CAN ou les modules de diagnostic devraient généralement lire ce type via des fonctions d'interrogation par paramètre de pointeur ou valeur de retour afin d'évaluer d'éventuels indicateurs d'erreur ou de réveil. Question Q-1b75b4baf2f4c6e3 (ouverte) Le type lui-même ne contenant aucune logique fonctionnelle, restriction de réentrance ou message DET, la vérification de la validité des plages de valeurs incombe aux interfaces de traitement.

Ce texte a été généré par une IA et sert de guide d’orientation. La spécification AUTOSAR fait foi.

Guide de l'implémenteur à venir (complexité I1)

type CanTrcv_TrcvModeType [SWS_CanTrcv_00163] 📄 PDF

Operating modes of the CAN Transceiver Driver.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : b8ef2e8c5d35 Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Le type énumération CanTrcv_TrcvModeType définit conformément à [SWS_CanTrcv_00163] les modes de fonctionnement standardisés pour le pilote de transceiver CAN (CanTrcv). La déclaration est fournie via le fichier d'en-tête Can_GeneralTypes.h pour des interfaces interlogicielles au sein de la pile de communication AUTOSAR.

Plage de valeurs et significations

Conformément à [SWS_CanTrcv_00163], trois valeurs d'énumération sont disponibles :

  • CANTRCV_TRCVMODE_NORMAL (valeur 0x00) : caractérise le mode de fonctionnement régulier du transceiver pour l'émission et la réception de messages CAN.
  • CANTRCV_TRCVMODE_STANDBY : représente le mode veille (Standby) du transceiver, dans lequel la communication est au repos avec une consommation de courant réduite.
  • CANTRCV_TRCVMODE_SLEEP : représente le mode sommeil (Sleep) du transceiver pour une économie d'énergie maximale.

Utilisation et restrictions

L'énumération sert de représentation de type de données commune pour l'état matériel du transceiver CAN [SWS_CanTrcv_00163]. Interprétation : le type devrait principalement servir à la transmission de paramètres dans des interfaces de commande et d'interrogation du pilote de transceiver, par l'intermédiaire desquelles des couches supérieures telles que CAN Interface provoquent des changements de mode ou lisent l'état actuel. Question Q-95fceb6988818621 (ouverte) Étant donné que le présent extrait de spécification ne contient pas d'erreurs d'exécution (DET/DEM), d'indications de réentrance ni de signatures de fonction concrètes, les contextes d'appel et les règles de concurrence doivent être tirés des fonctions de pilote respectives qui l'utilisent.

Cette consigne d'utilisation se base exclusivement sur les données de spécification issues d'AUTOSAR R20-11 concernant [SWS_CanTrcv_00163].

Guide de l'implémenteur à venir (complexité 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.

GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : ceecd083c1cd Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Le type d'énumération CanTrcv_TrcvWakeupModeType sert à commander un émetteur-récepteur CAN en ce qui concerne les événements et les notifications de réveil [SWS_CanTrcv_00164]. La définition du type est fournie via le fichier d'en-tête Can_GeneralTypes.h et est ainsi disponible à l'échelle de la pile [SWS_CanTrcv_00164].

La plage de valeurs comprend trois modes de commande pour l'émetteur-récepteur respectivement adressé [SWS_CanTrcv_00164] :

  • CANTRCV_WUMODE_ENABLE (valeur 0x00) : active la notification des événements de réveil sur l'émetteur-récepteur adressé [SWS_CanTrcv_00164].
  • CANTRCV_WUMODE_DISABLE (valeur 0x01) : désactive la notification des événements de réveil sur l'émetteur-récepteur adressé [SWS_CanTrcv_00164].
  • CANTRCV_WUMODE_CLEAR (valeur 0x02) : efface un événement de réveil enregistré dans l'émetteur-récepteur adressé [SWS_CanTrcv_00164].

Interprétation : dans la pratique, ce type devrait être principalement utilisé comme paramètre de transmission dans les fonctions de commande du pilote d'émetteur-récepteur, afin d'activer ou de désactiver dynamiquement les notifications de réveil ainsi que de réinitialiser les événements de réveil détectés. La spécification étant un simple type d'énumération, elle ne définit aucune signature de fonction, sémantique d'exécution, code d'erreur ou règle de concurrence ; ces aspects sont donc entièrement déterminés par les interfaces de pilote appelantes et traitantes [SWS_CanTrcv_00164]. Question Q-c53d60cdad0442ca (ouverte)

Ce texte a été généré par une IA ; son exactitude ne peut être garantie.

Guide de l'implémenteur à venir (complexité 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#cc6124b6
Content hash
cc6124b6
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CANTransceiverDriver.pdf#nameddest=SWS_CanTrcv_00001

Initialisation et état

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 fonction

Initializes the Can Trcv module.

void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);

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

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

Services · Autres

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

Cyclique

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

Types

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