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
fonction CanTrcv_Init [SWS_CanTrcv_00001] 📄 PDF
void CanTrcv_Init (const CanTrcv_ConfigType* ConfigPtr);
Initializes the Can Trcv module.
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.
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, seulCANTRCV_TRCVMODE_STANDBYouCANTRCV_TRCVMODE_NORMALpeut ê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'avecCANTRCV_TRCVMODE_SLEEPouCANTRCV_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_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.
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_GetVersionInfo [SWS_CanTrcv_00008] 📄 PDF
void CanTrcv_GetVersionInfo (Std_VersionInfoType* versioninfo);
Gets the version of the module and returns it in Version Info.
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.
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.
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’erreurCANTRCV_E_INVALID_TRANSCEIVER[SWS_CanTrcv_00198] si un paramètreTransceivern’est pas valide. Si DET est désactivé,E_NOT_OKest 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_CONTROLau Default Error Tracer et renvoieE_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.
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éCanTrcvPartialNetworkn'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_TRANSCEIVERlorsque le DET est activé ; lorsque le DET est désactivé,E_NOT_OKest renvoyé à la place [SWS_CanTrcv_00199]. -
Si un pointeur nul est transmis pour
FlagState(FlagState = NULL), le module signale l'erreurCANTRCV_E_PARAM_POINTERsi le DET est actif ; si le DET est désactivé, l'appel renvoieE_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.
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 :
Transceiverdéfinit, en tant que valeur d'entrée (uint8), le canal d'émetteur-récepteur à adresser [SWS_CanTrcv_00216]. - Valeur de retour : un
Std_ReturnTypesignale parE_OKl'effacement réussi de l'indicateur matériel ou parE_NOT_OKl'é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_TRANSCEIVERest 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.
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 versCanTrcv_TrcvFlagStateType, via lequel l'état lu de l'indicateur de silence est renvoyé [SWS_CanTrcv_00217].- Valeur de retour (
Std_ReturnType) : renvoieE_OKsi l'état matériel de l'indicateur de silence a pu être lu avec succès, sinonE_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.
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_UNINITest signalée ; si le DET est désactivé, l'appel renvoieE_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_OKest 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.
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 :
PN_ENABLED: active la fonctionnalité de réveil PN dans l'émetteur-récepteur CAN ([SWS_CanTrcv_00219]).PN_DIABLED: désactive la fonctionnalité de réveil PN ([SWS_CanTrcv_00219]).
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.
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]) :
E_OK: la demande de vérification de l'indicateur de réveil a été acceptée avec succès ([SWS_CanTrcv_00223]).E_NOT_OK: la demande a été rejetée ([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.
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_NORMALlors de l'appel,CanTrcv_DeInitsignale l'erreur de développementCANTRCV_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_NORMALavant 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.
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.
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
BUSERRsignalé par le BSW est positionné, la fonction appelle l'APIDem_SetEventStatusavec le paramètreEventIden tant queCANTRCV_E_BUS_ERRORetEventStatusen tant queDEM_EVENT_STATUS_FAILED[SWS_CanTrcv_00206]. - Si le drapeau
BUSERRest réinitialisé,CanTrcv_MainFunctionDiagnosticsappelle l'APIDem_SetEventStatusavec la mêmeEventId(CANTRCV_E_BUS_ERROR) et le statutDEM_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.
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.
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(valeur0x00) : 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.
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(valeur0x00) : active la notification des événements de réveil sur l'émetteur-récepteur adressé [SWS_CanTrcv_00164].CANTRCV_WUMODE_DISABLE(valeur0x01) : désactive la notification des événements de réveil sur l'émetteur-récepteur adressé [SWS_CanTrcv_00164].CANTRCV_WUMODE_CLEAR(valeur0x02) : 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
gemini-3.8-flash-low· 2026-10-13 · Original allemand