Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
fr:examples:can:wiper:intro [2010/03/11 06:12] sdeniaudfr:examples:can:wiper:intro [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 20: Line 20:
 Remarque :   Dans l'application "Commande d'essuie-glace", réf : CAN01B, on n'utilise pas de module 4 sorties de puissance TOR. Remarque :   Dans l'application "Commande d'essuie-glace", réf : CAN01B, on n'utilise pas de module 4 sorties de puissance TOR.
  
-  * Dans sa version "VMD(Véhicule Multiplexé Didactique) les organes reliés aux modules d'interface CAN peuvent être un commodo lumières, un bloc optique avant, un bloc optique arrière, un commodo essuie-glace un moteur d'essuie-glace ou de lève-vitre, plafonnier, etc.+  * Dans sa version VMD (Véhicule Multiplexé Didactique)les organes reliés aux modules d'interface CAN peuvent être un commodo lumières, un bloc optique avant, un bloc optique arrière, un commodo essuie-glace un moteur d'essuie-glace ou de lève-vitre, plafonnier, etc.
  
   * L'unité centrale programmable comprend un certain nombre de cartes électroniques reliées entre elle par BUS parallèles :   * L'unité centrale programmable comprend un certain nombre de cartes électroniques reliées entre elle par BUS parallèles :
     * cartes indispensables     * cartes indispensables
       * [[fr:hardware:wiper:cpu-eid210|carte processeur EID210]] conçue autour du microprocesseur 32 bits  Motorola 68332  (carte spécifique Didalab)       * [[fr:hardware:wiper:cpu-eid210|carte processeur EID210]] conçue autour du microprocesseur 32 bits  Motorola 68332  (carte spécifique Didalab)
-      * [[fr:hardware:wiper:aton-pc104|carte industrielle d'interface parallèle / CAN]] conçue autour du contrôleur CAN  "SJA1000", au format normalisé "PC104(carte commercialisée par la société Aton Systèmes),+      * [[fr:hardware:wiper:aton-pc104|carte industrielle d'interface parallèle / CAN]] conçue autour du contrôleur CAN  SJA1000, au format normalisé PC104 (carte commercialisée par la société Aton Systèmes),
     * cartes optionnelles  (non utilisée dans l'application Essuie-Glace, Réf : CAN01B     * cartes optionnelles  (non utilisée dans l'application Essuie-Glace, Réf : CAN01B
       * carte clavier 16 touches matricées et afficheur graphique (carte spécifique Didalab)       * carte clavier 16 touches matricées et afficheur graphique (carte spécifique Didalab)
-      * carte d'interface réseau "Ethernet(carte spécifique Didalab)+      * carte d'interface réseau Ethernet (carte spécifique Didalab)
       * toute carte au format PC1014       * toute carte au format PC1014
  
Line 38: Line 38:
   * ''CPU_Reg.h'' définissant les adresses d'accès aux différents registres internes au micro-contrôleur 68332 (processeur autour duquel est conçue la carte processeur EID210)   * ''CPU_Reg.h'' définissant les adresses d'accès aux différents registres internes au micro-contrôleur 68332 (processeur autour duquel est conçue la carte processeur EID210)
   * ''EID210_Reg.h'' définissant les adresses d'accès aux différents éléments matériels implantés sur la carte processeur EID210   * ''EID210_Reg.h'' définissant les adresses d'accès aux différents éléments matériels implantés sur la carte processeur EID210
-  * ''[[fr:examples:can:wiper:annex3|Aton_CAN.h]]'' définissant les adresses d'accès aux différents registres du contrôleur CAN SJA1000 implanté sur la carte industrielle "CAN-PC104 fournie par la société  "Aton Systèmes"+  * ''[[fr:examples:can:wiper:annex3|Aton_CAN.h]]'' définissant les adresses d'accès aux différents registres du contrôleur CAN SJA1000 implanté sur la carte industrielle CAN-PC104  fournie par la société  Aton Systèmes
   * ''Structures_Donnees.h'' définissant l'ensemble des structures de données utiles à une programmation structurée   * ''Structures_Donnees.h'' définissant l'ensemble des structures de données utiles à une programmation structurée
   * ''[[fr:examples:can:wiper:annex2|CAN_VMD.h]]'' définissant les éléments de l'application VMD   * ''[[fr:examples:can:wiper:annex2|CAN_VMD.h]]'' définissant les éléments de l'application VMD
  
-{{:fr:examples:can:wiper:warning_1.png?600|}}+**Attention Veiller à ce que tous ces fichiers soient présents, soit dans le répertoire de travail, soit dans le  répertoire "include" lui-même situé sous le répertoire contenant l'environnement de développement intégré ("Cross compilateur") EID210100.** 
  
 ==== Les structures de données spécifiques à l'application CAN ==== ==== Les structures de données spécifiques à l'application CAN ====
  
 **Définition des unions et structures particulières (Voir dans fichier ''[[fr:examples:can:wiper:annex2|CAN_VMD.h]]'')** **Définition des unions et structures particulières (Voir dans fichier ''[[fr:examples:can:wiper:annex2|CAN_VMD.h]]'')**
 +
  
 Les structures définies ci-après ont été définies en conformités aux différents registres du SJA1000  (se référer à la notice technique du SJA1000, pages 39, 40 et 41). Les structures définies ci-après ont été définies en conformités aux différents registres du SJA1000  (se référer à la notice technique du SJA1000, pages 39, 40 et 41).
Line 152: Line 154:
    
       *  Définition d'une variable structurée sous le modèle ''Trame'' :       *  Définition d'une variable structurée sous le modèle ''Trame'' :
-  ''Trame T_IM_Commodo_EG; //  IM -> Input Message'' +<code c>   
-        Trame destinée au module 8 entrées sur lequel est connecté le commodo Essuie-Glace+Trame T_IM_Commodo_EG; //IM -> Input Message 
 +//Trame destinée au module 8 entrées sur lequel est connecté le commodo Essuie-Glace 
 +</code>
  
-Remarque:  La variable structurée  ''T_IM_ Commodo_EG'' comportera 8 octets (1 pour ''trame_info'', 4 pour l’identificateur, 1 pour l’adresse registre, 1 pour le masque et 1 pour la valeur).+Remarque :  La variable structurée  ''T_IM_ Commodo_EG'' comportera 8 octets (1 pour ''trame_info'', 4 pour l’identificateur, 1 pour l’adresse registre, 1 pour le masque et 1 pour la valeur).
  
       *  Accès et définition des différents éléments de la variable structurée ''T_IM_Commodo_EG''        *  Accès et définition des différents éléments de la variable structurée ''T_IM_Commodo_EG'' 
Line 171: Line 175:
 ===== Les fonctions spécifiques ===== ===== Les fonctions spécifiques =====
  
-Des fonctions spécifiques à l'accès au réseau CAN via la carte CAN-PC104 de chez "ATON SYSTEMES"+Des fonctions spécifiques à l'accès au réseau CAN via la carte CAN-PC104 de chez Aton Systèmes
-Les prototypes de ces fonctions sont définis dans le fichier ''Aton_CAN.h'' et leurs définitions elle-mêmes dans le fichier ''Aton_CAN.C'' +Les prototypes de ces fonctions sont définis dans le fichier ''[[annex3|Aton_CAN.h]]'' et leurs définitions elle-mêmes dans le fichier ''Aton_CAN.C'' 
-S'il ne l'est déjà, ce fichier doit être compilé et son résultat de compilation ''Aton_CAN.o'' doit être inclus en tant que fichier à ''Linker'' avec le fichier application.+S'il ne l'est déjà, ce fichier doit être compilé et son résultat de compilation ''Aton_CAN.o'' doit être inclus en tant que fichier à Linker avec le fichier application.
  
-{{:fr:examples:can:wiper:warning_2.png?600|}}+**Attention :
  
-  * Fonction   **Init_Aton_CAN()**+Veiller à ce que le fichier ''Aton_CAN.o'' soit présent dans le  répertoire "lib" lui-même situé sous le répertoire contenant l'éditeur-assembleur EID210100.
  
-Cette fonction permet d'initialiser le circuit intégré SJA1000, cœur de la carte CAN-PC104 de chez ATON-SYSTEMES. Aucun paramètre n'est passé ni retourné.+Veiller également à ce que ce fichier ''Aton_CAN.o'' soit inclus au "linker".  
 + 
 +Pour ce faire : 
 + 
 +Dans logiciel EID210, sélectionner "Configuration" puis "GNU C/C++" puis "Linker" puis   "Ajouter" puis retrouver et sélectionner le fichier ''Aton_CAN.o'' qui viendra s'ajouter aux fichiers déjà présents c'est à dire ''CTR0.o'' et ''EID210.o''** 
 + 
 +  * Fonction   **''Init_Aton_CAN()''** 
 + 
 +Cette fonction permet d'initialiser le circuit intégré SJA1000, cœur de la carte CAN-PC104 de chez Aton Systèmes. Aucun paramètre n'est passé ni retourné.
 Cette fonction est à appeler dans la partie "Initialisation" du programme application Cette fonction est à appeler dans la partie "Initialisation" du programme application
  
-  * Fonction   **Ecrire_Trame(Nom_Trame)**+  * Fonction   **''Ecrire_Trame(Nom_Trame)''**
  
-Cette fonction permet d'envoyer une ''trame'' sur le réseau CAN. +Cette fonction permet d'envoyer une trame sur le réseau CAN. 
 La variable passée est une variable structurée sous le modèle ''Trame'' (modèle défini dans le chapitre précédent).  La variable passée est une variable structurée sous le modèle ''Trame'' (modèle défini dans le chapitre précédent). 
-Cette fonction ne renvoi pas de paramètre.+Cette fonction ne renvoie pas de paramètre.
  
-  * Fonction   **Lire_Trame(&Nom_Trame_recue) **+  * Fonction   **''Lire_Trame(&Nom_Trame_recue)'' **
  
 Cette fonction permet de savoir si une trame a été reçue du réseau CAN et si oui d'accéder à celle-ci. La variable passée est un pointeur sur variable structurée sous le modèle ''Trame''  (modèle défini dans le chapitre précédent).  Cette fonction permet de savoir si une trame a été reçue du réseau CAN et si oui d'accéder à celle-ci. La variable passée est un pointeur sur variable structurée sous le modèle ''Trame''  (modèle défini dans le chapitre précédent). 
 Le paramètre renvoyer vaut 1 si un message a été reçu et 0 si aucun message n'a été reçu. Le paramètre renvoyer vaut 1 si un message a été reçu et 0 si aucun message n'a été reçu.
  
-  * Fonction   **Affiche_Trame(Nom_Trame)**+  * Fonction   **''Affiche_Trame(Nom_Trame)''**
  
 Cette fonction permet d'afficher une trame sur l'écran de l'ordinateur connecté à l'unité centrale programmable. Cette fonction permet d'afficher une trame sur l'écran de l'ordinateur connecté à l'unité centrale programmable.
Line 201: Line 213:
 ===== Principe des échanges sur le bus ===== ===== Principe des échanges sur le bus =====
  
-L'utilisation du ''CAN Expander'' MCP25050 impose différents types de ''trames'' (d'après la page 2 dans la notice technique du ''CAN Expander''  MCP25050)+L'utilisation du CAN Expander MCP25050 impose différents types de trames (d'après la page 2 dans la {{:fr:hardware:didalab:mcp2502x_5x.pdf|doc. technique}} du CAN Expander  MCP25050)
  
   * **Trame ''IM'' (Input Message)**   * **Trame ''IM'' (Input Message)**
-C'est en fait une ''trame'' de commande (ou missive) envoyée par le contrôleur à un nœud destinataire (ex: écriture d'une valeur dans un registre du ''CAN Expander'' MCP25050 destinataire)+C'est en fait une trame de commande (ou missive) envoyée par le contrôleur à un nœud destinataire (ex: écriture d'une valeur dans un registre du CAN Expander MCP25050 destinataire)
  
 {{  :fr:examples:can:wiper:trame_im.png  |''Trame IM''}} {{  :fr:examples:can:wiper:trame_im.png  |''Trame IM''}}
  
   * **Trame ''Ack'' (Acknowledge Message)**   * **Trame ''Ack'' (Acknowledge Message)**
-C'est une ''trame'' de réponse à une IM informant que le nœud destinataire s'est reconnu et a bien pris en compte la missive IM qui vient de circuler sur le bus.+C'est une trame de réponse à une IM informant que le nœud destinataire s'est reconnu et a bien pris en compte la missive IM qui vient de circuler sur le bus.
  
 {{  :fr:examples:can:wiper:trame_ack.png  |''Trame ACK''}} {{  :fr:examples:can:wiper:trame_ack.png  |''Trame ACK''}}
  
   * **Trame ''IRM'' (Information Request Message)**   * **Trame ''IRM'' (Information Request Message)**
-C'est en fait une ''trame'' de type requête (interrogation) envoyée par le contrôleur à un nœud destinataire lui demandant des informations (ex: Lecture d'un ou de plusieurs registre(s) du ''CAN Expander'' MCP25050 destinataire)+C'est en fait une trame de type requête (interrogation) envoyée par le contrôleur à un nœud destinataire lui demandant des informations (ex: Lecture d'un ou de plusieurs registre(s) du CAN Expander MCP25050 destinataire)
  
 {{  :fr:examples:can:wiper:trame_irm.png  |''Trame IRM''}} {{  :fr:examples:can:wiper:trame_irm.png  |''Trame IRM''}}
  
   * **Trame ''OM'' (Output Message)**   * **Trame ''OM'' (Output Message)**
-C'est une ''trame'' de réponse à une IRM, envoyée par le nœud destinataire de l'IRM précédemment envoyée et contenant dans sa zone ''Data'' les informations demandées.+C'est une trame de réponse à une IRM, envoyée par le nœud destinataire de l'IRM précédemment envoyée et contenant dans sa zone Data les informations demandées.
  
 {{  :fr:examples:can:wiper:trame_om.png  |''Trame OM''}} {{  :fr:examples:can:wiper:trame_om.png  |''Trame OM''}}
  
 **Conséquences :** **Conséquences :**
-  * Dans un programme, suite à l'envoi d'une ''IM'' ou d'une ''IRM''  (utilisation de la fonction ''Ecrire_Trame( )''), il est impératif d'attendre la réponse (utilisation de la fonction ''Lire_Trame( )''), avant d'envoyer une nouvelle trame:+  * Dans un programme, suite à l'envoi d'une ''IM'' ou d'une ''IRM''  (utilisation de la fonction ''Ecrire_Trame( )''), il est impératif d'attendre la réponse (utilisation de la fonction ''Lire_Trame( )''), avant d'envoyer une nouvelle trame :
      * cette réponse sera une ''Ack'' suite à une ''IM''      * cette réponse sera une ''Ack'' suite à une ''IM''
      * cette réponse sera une ''OM''  suite à une ''IRM''      * cette réponse sera une ''OM''  suite à une ''IRM''
-Lors du premier échange, il conseillé de prévoir un ''Time out'' et l'affichage d'un message d'alerte dans le cas où il n'y a pas de réponse, afin d'éviter une situation bloquante.  +Lors du premier échange, il conseillé de prévoir un Time out et l'affichage d'un message d'alerte dans le cas où il n'y a pas de réponse, afin d'éviter une situation bloquante.  
  
 **Remarques :** **Remarques :**
-  * L'identificateur d'une ''OM'' est le même que celui de l'IRM qui est à l'origine. +  * L'identificateur d'une ''OM'' est le même que celui de l'''IRM'' qui est à l'origine. 
-  * L'identificateur d'une ''Ack'' est différent que celui de l'IM qui est à l'origine.+  * L'identificateur d'une ''Ack'' est différent que celui de l'''IM'' qui est à l'origine.
  
 **Trames particulières :** **Trames particulières :**
-  * A la mise sous tension un ''CAN Expander MCP25050'' signale sa présence par l'envoi automatique (sans interrogation) d'une trame de type ''OB'' (On Bus Massage). +  * A la mise sous tension un CAN Expander MCP25050 signale sa présence par l'envoi automatique (sans interrogation) d'une trame de type ''OB'' (On Bus Massage). 
-  * Il est possible de configurer un ''CAN Expander MCP25050'' pour qu'il envoi automatiquement une trame +  * Il est possible de configurer un CAN Expander MCP25050 pour qu'il envoie automatiquement une trame 
-        * lorsqu'une de ses entrées subi un changement d'état prédéfini (Pages 23 et 26  doc MCP25050) +        * lorsqu'une de ses entrées subi un changement d'état prédéfini (pages 23 et 26  {{:fr:hardware:didalab:mcp2502x_5x.pdf|doc. technique}} MCP25050) 
-        * lorsqu'une entrée alalogique prédéfinie croise un seuil de tension ''Threshold detection'' (Pages 23 et 35 doc MCP25050) +        * lorsqu'une entrée analogique prédéfinie croise un seuil de tension ''Threshold detection'' (pages 23 et 35 {{:fr:hardware:didalab:mcp2502x_5x.pdf|doc. technique}} MCP25050) 
-        * à intervalle de temps régulier ''Scheduled transmissions'' (Pages 24 doc MCP25050)+        * à intervalle de temps régulier ''Scheduled transmissions'' (page 24 {{:fr:hardware:didalab:mcp2502x_5x.pdf|doc. technique}} MCP25050)
fr/examples/can/wiper/intro.1268287929.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0