Bibliothèque technique gratuite ENCYCLOPÉDIE DE LA RADIOÉLECTRONIQUE ET DU GÉNIE ÉLECTRIQUE Interface du contrôleur PIC avec un ordinateur. Encyclopédie de l'électronique radio et de l'électrotechnique Encyclopédie de l'électronique radio et de l'électrotechnique / microcontrôleurs Lors du développement d'un dispositif sur microcontrôleur (MC), se pose souvent le problème de sa connexion avec un ordinateur pour l'échange d'informations. Dans la plupart des cas, le mode bidirectionnel est requis à un taux de change relativement faible. Dans le meilleur des cas, le MK peut avoir une interface série, mais le plus souvent il faut le choisir parmi ceux bon marché qui n'en sont pas équipés. Par exemple, le PIC16F84A MK de Microchip, qui est très populaire ces derniers temps, n'a pas une telle interface. L'article considère une variante de l'implémentation logicielle de l'interface série à la fois du côté du MC et du côté de l'ordinateur. Pour communiquer avec l'appareil sur le MK, vous pouvez utiliser le port parallèle (LPT) ou série (COM) de l'ordinateur. Le premier est plus facile à utiliser - il peut utiliser un nombre relativement plus important de signaux d'entrée et de sortie, dont les niveaux sont compatibles avec TTL. L'inconvénient de ce port est que si sous DOS ou Linux de simples opérations d'E / S suffisent à l'utiliser, alors pour un fonctionnement correct sous Windows, un strict respect du protocole de transfert de données est requis, ce qui n'est pas efficace lorsque vous travaillez avec MK. Il est également possible de contrôler directement des lignes individuelles du port LPT, mais cela nécessite l'installation d'un pilote spécial. Le "désavantage" du port LPT peut être considéré que dans la plupart des ordinateurs, il n'y en a qu'un et, en règle générale, il est occupé par l'imprimante. Les principaux avantages du port COM sont que l'interface de programmation (API) standard de Windows vous permet de contrôler directement certaines lignes de sortie et de contrôler les lignes d'entrée, et a également la fonction d'attendre certains événements associés au port COM. Son avantage est que la norme RS-232, selon laquelle les ports COM sont fabriqués, permet de connecter et de déconnecter des câbles pendant le fonctionnement de l'appareil (hot plug). De plus, presque toujours un ordinateur dispose d'un port COM libre. L'inconvénient du port est que le niveau du signal est différent de TTL, dans lequel le niveau logique bas correspond à une tension de -12, et le niveau logique haut correspond à +12 V. La mise en œuvre de l'interface RS-232 standard nécessiterait que le MC respecte strictement les intervalles de temps entre les signaux de sortie. Dans une situation réelle, le résonateur à quartz du microcontrôleur peut ne pas correspondre à la fréquence de transmission des données, et le MC lui-même est généralement occupé par quelque chose de plus important que la formation d'intervalles de temps précis. De ce fait, il s'avère plus simple de mettre en oeuvre par programmation une option d'échange synchrone série, lorsque chaque bit de donnée est confirmé par une impulsion de synchronisation. Le schéma de principe de l'interface proposée est illustré à la fig. une. Les diviseurs résistifs R232R1 et R4R2 sont utilisés pour convertir les niveaux RS-5 en TTL. Les diodes VD1 et VD2 sont nécessaires pour ne pas laisser passer une tension négative correspondant à un zéro logique. Le signal de sortie TTL du MK n'a pas besoin d'être converti et peut être envoyé directement aux lignes d'entrée du port COM. La résistance R3 limite le courant de sortie du MK en cas d'éventuel court-circuit accidentel. Comme vous pouvez le voir sur le schéma, quatre fils sont nécessaires pour communiquer avec l'ordinateur. L'ordinateur lance l'échange de données en émettant des impulsions d'horloge sur la ligne DTR, en définissant les données transmises sur la ligne RTS et en recevant les données reçues sur la ligne CTS. L'ordinateur et le MK ne peuvent modifier les données que lorsque le niveau logique du signal de synchronisation est bas. Cette implémentation de l'interface vous permet d'implémenter un mode duplex de transmission de données. Les numéros de broches XS1 dans le schéma correspondent à une prise DB-25F utilisant un câble de modem standard. Reportez-vous au Tableau 1 pour connaître les numéros de broches des autres connecteurs et lors de l'utilisation d'un câble simulateur de modem. XNUMX. La fréquence des impulsions de synchronisation doit être choisie de manière à ce que le MC ait le temps de traiter les données de l'ordinateur en répondant à chaque impulsion de synchronisation. Les bits d'information sont transmis séquentiellement. A la fin de la transmission des bits d'un octet, la transmission des bits de l'octet suivant suit, le bit d'information le plus significatif étant transmis en premier. Pour ramener l'interface à son état d'origine (mise à 0 du nombre d'octets transmis), l'ordinateur doit se connecter. 1 sur la ligne d'horloge pour changer l'état de la ligne de données. Le MCU émet un nouveau bit de données sur la ligne CTS à la chute des impulsions de polarité positive à l'entrée d'horloge DTR et lit les données de la ligne RTS sur le front montant des impulsions de polarité positive. L'échange peut être interrompu à tout moment en arrêtant la fourniture des impulsions de synchronisation. Le chronogramme de l'échange de données est illustré à la fig. 2. Lors de la mise en œuvre de l'interface, il est recommandé de passer des valeurs de contrôle dans certains octets pour vérifier l'exactitude des données transmises. Le code source de la procédure pour MK PIC16F84A [1] en langage C, qui implémente l'interface proposée, est donné dans le tableau. 2. L'appel de procédure link() est situé dans la boucle principale du programme et est constamment appelé pendant le fonctionnement du MK afin de contrôler l'état de l'interface. Toutes les variables utilisées par la procédure sont déclarées comme globales. A chaque appel, il lit les états des lignes d'entrée de l'interface (RB6 et RB7) et les compare avec leurs états lors de l'appel précédent. Sous certaines conditions (chute de synchronisation, front de synchronisation, réinitialisation de l'interface), les actions sont effectuées selon la logique de l'interface. Le code source de la procédure pour un ordinateur en Pascal (Delphi) est donné dans le tableau. 3. Ici, la procédure de liaison est appelée une fois pour effectuer l'acte d'échange d'informations avec le MK. Avant de l'appeler, il est nécessaire de remplir le tampon passé obuf. A la fin de la procédure, les données reçues seront dans le tableau ibuf. La procédure ouvre le port COM spécifié de l'ordinateur et, à l'aide des fonctions de l'API Windows [2], contrôle l'état des lignes de sortie et interroge les lignes d'entrée. Une fois l'échange d'informations terminé, le port est fermé. Dans la procédure de liaison, les temporisations sont implémentées à l'aide de la fonction sleep(). Leurs valeurs sont calculées ou sélectionnées expérimentalement par l'absence de perte de bit lors de l'échange de données entre le MC et l'ordinateur. L'exemple montre les délais d'échange avec un contrôleur PIC avec un résonateur à quartz à une fréquence de 4 MHz, qui, en outre, effectue d'autres travaux utiles. Si la procédure d'échange prend trop de temps, elle peut être déplacée vers un thread séparé de l'exécution du système d'exploitation afin qu'elle s'exécute en parallèle avec le programme principal [2]. Si l'échange d'informations nécessite une lecture et une écriture séparées, il est possible de répartir les tableaux de données transmises et reçues à différentes adresses, comme illustré à la Fig. 2. Dans MK, il est pratique de construire la formation des données transmises et l'utilisation des données reçues sous la forme de procédures upload() et download(), appelées respectivement avant la transmission et lors de la réception de l'octet suivant. Le premier d'entre eux doit retourner la valeur de l'octet transmis par son numéro dans le paquet d'information transmis, le second reçoit la valeur de l'octet reçu et son numéro dans le paquet et doit utiliser ces valeurs pour changer les registres MK, écrire dans l'EEPROM, etc. La mise en oeuvre de ces procédures de traitement d'un paquet d'informations de taille 4 octets (tableau 4) est illustrée dans le tableau. 5. Un exemple de programme pour MK est donné pour le compilateur C2C [3]. La procédure pour un ordinateur peut être utilisée dans un programme écrit en Borland Delphi 3 et supérieur. littérature
Auteur: S.Kuleshov, Kurgan Voir d'autres articles section microcontrôleurs. Lire et écrire utile commentaires sur cet article. Dernières nouvelles de la science et de la technologie, nouvelle électronique : Machine pour éclaircir les fleurs dans les jardins
02.05.2024 Microscope infrarouge avancé
02.05.2024 Piège à air pour insectes
01.05.2024
Autres nouvelles intéressantes : ▪ Fers à repasser verticalement ▪ Modules de puissance intelligents haute tension avec une capacité de transport de courant accrue ▪ Cro-Magnon était plus malin que nous ▪ Téléphone portable sans batterie Fil d'actualité de la science et de la technologie, nouvelle électronique
Matériaux intéressants de la bibliothèque technique gratuite : ▪ section du site Moteurs électriques. Sélection d'articles ▪ article Cadeaux des Danois. Expression populaire ▪ article Qu'appelait-on subbotnik avant l'avènement du pouvoir soviétique ? Réponse détaillée ▪ article Sortie du PC vers le casque. Encyclopédie de l'électronique radio et de l'électrotechnique
Laissez votre commentaire sur cet article : Toutes les langues de cette page Page principale | bibliothèque | Articles | Plan du site | Avis sur le site www.diagramme.com.ua |