220 likes | 359 Views
La programmation de l’interface 30402 FischerTechnik. INF -1019 Programmation en temps réel. 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
E N D
La programmation de l’interface 30402FischerTechnik INF-1019Programmation en temps réel • 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) // COM1 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