La programmation de l’interface 30402 FischerTechnik INF-1019 Programmation en temps réel La programmation de l’interface 30402 FischerTechnik Sujets Communication série Concepts généraux Programmation des ports séries Interaction avec l’interface d’Entrées/Sortie Initialisation du port série Opérations, commandes et contrôle Voir le projet controlechaleur2 disponible sur le site ftp du cours
Communication série: Concepts généraux Format des données séries Les communications séries sont généralement asynchrones, donc chaque caractère échangé doit être encadré par des bits particuliers pour permettre à l’ordinateur récepteur de détecter le début et la fin de chaque caractère
Communication série: Concepts généraux Format des données séries
Communication série: Concepts généraux Format des données séries Start bit: Ce bit (à 0) permet au récepteur de localiser le début de l’octet de donnée transféré Stop bit(s): Ce(s) bit(s) (à 1) aide(nt) aussi le récepteur à trouver le début de l’octet transférer. Le début d’un octet est marqué par une transition de 1 à 0, quand aucune donnée n’est échangée la ligne est tenue à 1 Bits de données: Combinaison de bits Bit de parité: Permet au récepteur de déterminer si la transmission s’est effectuée sans erreur. Le bit de parité est initialisé de telle façon que le nombre de bits à 1 est paire (parité paire) ou impaire (parité impaire)
Communication série: Concepts généraux Protocole d’échange basé sur la configuration matérielle du connecteur DB9
Communication série: Concepts généraux Configuration d’un port série observée avec le DEVICE MANAGER
Communication série: Concepts généraux Configuration matérielle d’un UART (Universal Asynchronous Receive and Transmit)
Communication série: Programmation des ports séries (Win2000) Ouverture du port COM2 Initialisation du mode de fonctionnement du port COM2
Communication série: Programmation des ports séries Implémentation sous Win2000 La fonction initcomm() permet d’initialiser le mode de fonctionnement du port série COM2 Format du mot de configuration du UART
Communication série: Programmation des ports séries Implémentation sous Win2000 Fonction ReadFile() // Reception de caractere du COM2 // fSuccess = ReadFile( hCom, // fichier a lire (COM2) &item, // addresse du buffer input sizeof(item), // nombre d’octets a lire &ni, // nombre d’octets lus NULL); // inutile
Communication série: Programmation des ports séries Implémentation sous Win2000 Fonction WriteFile() // transférer des caracteres par le COM2 // fSuccess = WriteFile( hCom, // fichier ou ecrire (COM2) &item, // addresse du buffer output sizeof(item), // nombre d’octets a ecrire &ni, // nombre d’octets ecrits NULL); // inutile
Interaction avec l’interface d’Entrées/Sorties (30402) L’interface d’Entrées/Sorties 30402 de FischerTechnik peut être contrôlée directement par les ports séries d’un ordinateur (COM1, COM2 etc.) Cette interface peut être programmée en langage C sous l’environnement VC++ étant donné qu’il est possible sous cet environnement de programmé directement les ports d’I/O sériels Les paramètres de fonctionnement du lien série sont: Taux de transferts: 9600 Bauds Format des informations transmises: 8 bits Détection des erreurs: Aucune (no parity) Nombre de bits de fin: 1
Interaction avec l’interface d’Entrées/Sorties (30402) Pour contrôler l’interface (30402) l’ordinateur transmet une commande de deux octets Le premier octet indique à l’interface quelles sont les données en entrées à lire Le second octet permet d’activer les sorties analogiques (0-9V) permettant entres autres d’alimenter les moteurs L’interface 30402 retourne pour sa part, un ou trois octets Octet B1 (premier octet envoyé, commande) 193: Lecture des entrées digitales E1..E8 197: Lecture des entrées digitales E1..E8, et l’entrée analogique EX 201: Lecture des entrées digitales E1..E8, et l’entrée analogique EY
Interaction avec l’interface d’Entrées/Sorties (30402) Octet B2 (second octet envoyé, contrôle des moteurs) Bit 0: Moteur 1 ccw Bit 1: Moteur 1 cw Bit 2: Moteur 2 ccw Bit 3: Moteur 2 cw Bit 4: Moteur 3 ccw Bit 5: Moteur 3 cw Bit 6: Moteur 4 ccw Bit 7: Moteur 4 cw
Interaction avec l’interface d’Entrées/Sorties (30402) Octet B3 (premier octet retourné, entrées digitales) Bit 0: E1 état 0 ou 1 (on/off) Bit 1: E2 état 0 ou 1 (on/off) Bit 2: E3 état 0 ou 1 (on/off) Bit 3: E4 état 0 ou 1 (on/off) Bit 4: E5 état 0 ou 1 (on/off) Bit 5: E6 état 0 ou 1 (on/off) Bit 6: E7 état 0 ou 1 (on/off) Bit 7: E8 état 0 ou 1 (on/off) Octet B4/B5 (deuxième et troisième octets retournés, entrées analogiques sur 16 bits) Entrées analogiques de EX ou EY données sur 16 bits B4 partie haute B5 partie basse
Interaction avec l’interface d’Entrées/Sorties (30402) Exemple de branchement Connecteur DB9 Capteur thermique (Résistance variable) LED (source de chaleur)
Interaction avec l’interface d’Entrées/Sorties (30402) Exemple de programmation
Interaction avec l’interface d’Entrées/Sorties (30402) Exemple de programmation // Initialisation du port série
Interaction avec l’interface d’Entrées/Sorties (30402) Exemple de programmation (Suite du main) // Lecture des entrees E1..E8 // Sorties M1 et M2 alimentees CCW
Interaction avec l’interface d’Entrées/Sorties (30402) Exemple de programmation (Suite du main) // Lecture des entrees E1..E8 et EX
Interaction avec l’interface d’Entrées/Sorties (30402) Exemple de programmation (Suite du main) // Lecture des entrees E1..E8 et EY