Bibliothèque technique gratuite ENCYCLOPÉDIE DE LA RADIOÉLECTRONIQUE ET DU GÉNIE ÉLECTRIQUE Module de débogage pour les microcontrôleurs de la série MCS51. Encyclopédie de l'électronique radio et de l'électrotechnique Encyclopédie de l'électronique radio et de l'électrotechnique / microcontrôleurs Le développement de dispositifs sur microcontrôleurs (MC), en règle générale, s'effectue selon un plan simple: le MC dans une inclusion typique est "pondéré" avec les périphériques nécessaires, puis le logiciel est écrit. Dans ce cas, vous devez utiliser divers outils qui prennent en charge le travail de routine, laissant le programmeur résoudre des problèmes créatifs. Le dispositif décrit ci-dessous est un "produit semi-fini" d'un système de microcontrôleur, un outil pour son débogage et un objet d'étude en même temps. Il est destiné à acquérir des compétences en programmation et à déboguer des programmes pour le MCS51, mais il peut également servir de modèle d'un système réel, permettant de déboguer un logiciel d'application avec l'objet de contrôle. Avec un tel module, le développeur sera soulagé de la nécessité d'utiliser souvent un programmeur ou un émulateur ROM, inaccessible à beaucoup en raison de son coût élevé. Le diagramme schématique du module de débogage pour la série MK MCS51 est illustré dans la figure. La plupart des nœuds sont fabriqués selon des schémas standard, et le dispositif d'interface avec le port série d'un ordinateur personnel (PC) est emprunté au dispositif décrit dans l'article de S. Kuleshov et Yu. Zaumenny "Programmeur ROM" ("Radio ", 1995, n° 10, p. 22 -25). Vous pouvez connecter divers périphériques aux broches libres des ports P1 et P3 du microcontrôleur DD1 (elles se terminent par des flèches sur le schéma). La prise XP1 est connectée avec un câble à la prise de l'un des ports série du PC, sous lequel le module fonctionnera. Après l'application de la tension d'alimentation, le condensateur C3 est chargé à travers la résistance R1. Selon le signal de réinitialisation RES généré par l'élément DD3.4, MK DD1 passe dans son état initial et effectue des opérations préparatoires, notamment la mise au niveau logique 1 sur toutes les broches du port P3. Le déclencheur sur les éléments DD3.1, DD3.2 est dans un état où son signal de sortie définit une telle distribution de mémoire que la zone d'adresse de mémoire de programme 0-7FFFH occupe la ROM (DD5) et 8000H-0FFFFH occupe la RAM (DD6). Le programme Monitor, situé dans la ROM, est en cours d'exécution. En tapant les commandes Monitor sur le clavier du PC, l'opérateur peut travailler avec la RAM et les périphériques du module. Pour transférer le déclencheur dans un autre état, il est nécessaire d'envoyer la commande RESET Monitor décrite ci-dessous depuis le PC de contrôle, qui positionne le signal MOD=0. Les adresses de la RAM et de la ROM de la mémoire programme sont interchangées et le programme, préalablement entré par l'opérateur dans la RAM du module, commence à fonctionner. Cela vous permet d'émuler le fonctionnement d'un appareil réel et de vérifier les programmes traduits vers des adresses mémoire inférieures, par exemple, préparés pour l'écriture sur ROM. Le bouton SB1 est utilisé pour réinitialiser le MK à son état d'origine sans modifier l'allocation de mémoire. Le moniteur ne peut être redémarré qu'en appuyant sur le bouton SB2 ou en éteignant et rallumant l'alimentation. Cela permet aux programmes débogués de fonctionner librement sur l'état du port P3 (par exemple, en travaillant avec des périphériques) sans craindre de changer accidentellement d'allocation de mémoire. La LED HL1 est le moyen le plus simple d'afficher des informations et est très utile, surtout s'il n'y a pas de connexion avec le PC pour une raison ou une autre. Après la mise sous tension, il clignote à une fréquence d'environ 1 Hz, ce qui indique que le moniteur fonctionne. La diode zener protège l'appareil contre l'inversion de polarité ou la surtension de l'alimentation +5 V. Le programme Monitor (tableau 1) permet de contrôler le module et son interaction via le port série RS-232C avec un PC, à partir duquel les commandes et les données nécessaires pour travailler sur une tâche spécifique sont transmises. Par le même port, le PC reçoit et affiche les résultats de l'opération du module sur son écran. Le programme de communication "Telemax" du shell largement utilisé Norton Commander 5.0, "Hyper Terminal" de Windows 95 OSR2 ou similaire doit être exécuté sur le PC. Dans les cas extrêmes, vous pouvez vous passer d'un programme spécial, simplement en envoyant les fichiers de commande MS DOS avec les données préparées au port série du PC. Lors de la configuration du programme de communication, vous devez supprimer les lignes d'initialisation du modem, paramétrer les modes "Echo local" et "Diffusion CR/LF", si nécessaire, sélectionner le terminal ANSI et la table des codes ASCII. Le mode de fonctionnement du port série doit être le suivant : vitesse - 4800 bauds, nombre de bits par caractère - 8, contrôle de parité désactivé, nombre de bits d'arrêt - 1. Si tout est correct, le texte tapé sur le clavier du PC ira au module de débogage et ses réponses - affichées à l'écran. Les commandes de moniteur peuvent être saisies à la fois dans les claviers majuscules et minuscules. Tous les caractères doivent être en codage ASCII. La touche [BackSpace] supprime le dernier caractère saisi du tampon du module de débogage. Chaque instruction se compose d'un nom et d'un opérande. Le nom se termine par un caractère séparateur : espace, tabulation, saut de ligne ou retour chariot. De plus, nous l'indiquerons conditionnellement avec un trait de soulignement (_), mais vous pouvez entrer n'importe lequel des nommés. Ayant reçu le délimiteur, le Moniteur compare les quatre premiers caractères précédemment reçus et situés dans le tampon avec le contenu de la table d'instructions dans la ROM. Après avoir trouvé une correspondance, il se souvient de l'adresse du gestionnaire de commandes de la même table et commence à accepter un opérande - un ou plusieurs nombres hexadécimaux. Nous convenons que les adresses à un et deux octets de la mémoire interne et externe du MK seront respectivement désignées XX et XXXX, la longueur du bloc est YYYY, les autres données sont ZZ ou ZZZZ. Par exemple, XXXX,YYYY est un bloc de mémoire de données externe commençant à l'adresse XXXX, avec une longueur de YYYY octets. Tous les zéros non significatifs doivent être spécifiés. L'opérande doit également se terminer par un délimiteur, à la réception duquel le gestionnaire de commandes est lancé. Un délimiteur entré dans un tampon vide est ignoré. RESET_ ZZZZ_ - le deuxième mode d'allocation de mémoire est activé, le MC est réinitialisé, le contrôle est transféré à l'adresse ZZZZ. La commande nécessite une bonne RAM pour un fonctionnement normal. DATA_ XXXX:_ ZZ_ [ZZ_][XXXX:_ZZ_ [ZZ_]._- les informations sont inscrites dans des cellules successives de la mémoire de données externe, à partir de l'adresse XXXX . Vous n'avez pas besoin d'entrer des crochets, ils indiquent seulement que le nombre d'opérandes ZZ_ peut être arbitraire. La saisie des données se termine par un point. En tableau. La figure 2 montre un exemple d'utilisation des commandes DATA et RESET pour entrer un programme simple dans la RAM et l'exécuter. READ_XX_ ou READ_XXXX_ - lit un mot (deux octets consécutifs) à partir des cellules de mémoire de la RAM de données interne ou externe. Le résultat sous forme de nombre hexadécimal (octet à l'adresse haute en premier) est envoyé au port série. WRITE_XX,ZZ_, WRITE_XX,ZZZZ_, WRITE_XXXX,ZZ_ ou WRITE_XXXX,ZZZZ_ - écrit l'octet ZZ ou le mot ZZZZ à l'adresse XX ou XXXX. Notez que les commandes READ et WRITE sont implémentées à l'aide d'un adressage indirect, elles ne peuvent donc pas fonctionner avec des registres de fonction spéciaux. Pour accéder aux registres, il convient d'écrire des procédures d'échange avec adressage direct spécifiques à chacun d'eux. Un exemple est le gestionnaire de commande SPEED. Si un MCU avec une RAM interne de 256 octets est installé dans le module, les commandes READ et WRITE pourront fonctionner avec ses 128 octets supplémentaires aux adresses 80H-0FFH. LOAD_XXXX,YYYY_ - rempli d'informations provenant du port série, bloc de mémoire de données externe. SAVE_XXXX,YYYY_ - le contenu du bloc de mémoire de données externe est transféré sur le port série. CALL_ZZZZ_ - un sous-programme est appelé à partir de l'adresse ZZZZ. Pour revenir au moniteur, il doit se terminer par la commande RET. Les interruptions sont désactivées pendant la durée du sous-programme. CHECK_XXXX,YYYY_ - la somme de contrôle est calculée - l'octet de poids faible de la somme de tous les octets du bloc de mémoire de données externe. FILL_XXXX,YYYY,ZZ_ - remplit la zone de mémoire de données externe avec l'octet ZZ et calcule sa somme de contrôle. COPY_XXXX,YYYY,ZZZZ_ ou COPY_PXXXX,YYYY,ZZZZ_ - le bloc de mémoire de données externe est copié à l'adresse ZZZZ. Le symbole P indique que la zone à copier se trouve dans la mémoire programme. En même temps, la somme de contrôle est calculée. TEST_XXXX,YYYY_ - la santé du bloc de RAM externe est vérifiée. S'il n'y a pas d'erreur, le message "OK" s'affiche, sinon - "XXXX : YY<>ZZ", où XXXX est l'adresse de la cellule en échec, YY est la valeur qui y est écrite et ZZ est la valeur lue. La commande ne détruit pas le contenu de la RAM. SPEED_ZZ_ ou SPEED_ZZ+_ - modifie la vitesse d'échange de données via le port série. Il est par défaut à 4800 bauds (déterminé par l'octet de programme Monitor à l'adresse 2DH). La valeur égale à l'opérande ZZ est placée dans le registre TH1 du microcontrôleur et détermine la vitesse de son émetteur-récepteur. Un signe plus dans l'opérande double la vitesse en définissant le bit PCON.7. Le port série du PC peut fonctionner à 110, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600 bauds et plus. La capacité de régler avec précision le port série du microcontrôleur de la série MSC51 aux vitesses indiquées dépend de la fréquence du résonateur à quartz utilisé. Par exemple, s'il est de 12 MHz, le port peut être défini sur 300, 600, 1200, 2400 et 4800 bauds avec la commande SPEED avec les opérandes 98, CC, E6, F3 et F3+ respectivement. Avec un résonateur de 11 MHz, 9600 bauds pourraient être atteints. Cependant, lors du transfert de fichiers, le MK ne sera probablement pas en mesure de suivre les données arrivant à une vitesse trop élevée. L'ensemble de commandes décrit peut être étendu et complété sans retransmission du moniteur et même sans effacer la ROM. Le nouveau gestionnaire de commandes est placé dans sa zone libre. Le nom de la commande (les quatre premiers caractères en majuscules) est écrit à partir de l'adresse 5ABH, suivi d'une adresse de gestionnaire à deux octets et de l'octet 0FFH. Le gestionnaire doit se terminer par un saut à l'adresse 23FH. Toutes les adresses de cellule à un octet mentionnées ci-dessous font référence à la RAM interne du MCU. Le moniteur utilise les banques de registres 0 et 2, ainsi que les emplacements 20H-3FH. La pile grandit à partir de l'adresse 50H. Lorsqu'il est libre de recevoir et de traiter des commandes, le microcontrôleur exécute en permanence le sous-programme situé dans la ROM à l'adresse spécifiée dans les cellules 35H et 36H. Par défaut, c'est 063H. Ce sous-programme, modifiant périodiquement l'état du bit P3.4, allume et éteint la LED HL1. La fréquence de clignotement dépend du contenu de la cellule 3DH. Si ce bit doit être utilisé à d'autres fins, la commande WRITE_35,006A_ doit être émise. Dans les cellules 37H et 38H se trouve l'adresse du gestionnaire d'interruptions du port série, qui sert en fait de colonne vertébrale du moniteur et détermine sa réponse aux commandes de l'opérateur. Par défaut, on écrit ici 0, ce qui correspond à l'appel du gestionnaire standard situé en ROM à l'adresse 081H. En écrivant un code autre que 3 à l'adresse 0BH, vous pouvez activer la fonction "Echo". Toutes les données reçues via le port série seront renvoyées au moniteur. Cela désactivera "l'écho local" dans le programme de communication et, si nécessaire, enregistrera dans un fichier texte toutes les commandes envoyées au module de débogage et ses réponses. Le numéro à l'adresse 3AH fixe la pause entre la réception d'une commande par le Moniteur et la réponse à celle-ci, nécessaire pour faire passer certains programmes de communication de l'émission à la réception (ce n'est pas nécessaire pour "Telemax"). Elle est égale à la durée de la pause en secondes multipliée par 50. L'un des résultats des commandes qui opèrent sur des blocs de mémoire (LOAD, SAVE, CHECK, FILL, COPY) est la somme de contrôle du bloc, qui est placée dans la cellule 39H. Il peut être utilisé pour contrôler la bonne exécution des commandes listées. Le moniteur peut accepter directement les fichiers au format Intel HEX générés par de nombreux assembleurs. Il suffit d'envoyer un tel fichier sur le port série du PC à l'aide d'un programme de communication ou simplement avec la commande MSDOS COPY <nom du fichier> COM2. Le port pré-utilisé (dans ce cas COM2) doit être configuré avec la commande MODE COM2:4800,N,8,1. Les informations seront écrites dans la mémoire de données externe du module de débogage, et si les sommes de contrôle ne correspondent pas, un message correspondant sera affiché. Chaque ligne d'un fichier Intel HEX commence par deux-points suivis d'octets représentés par des nombres hexadécimaux à deux chiffres sans espaces :
Un fichier HEX se termine toujours par une ligne contenant deux points et zéro octet de données et une adresse, suivi du dernier caractère de ligne (01) et d'une somme de contrôle égale à FF. Le tableau 3 montre un exemple d'un tel fichier contenant les mêmes données que celles saisies par la commande DATA Monitor conformément au tableau 2. Auteur : V.Ogleznev, Izhevsk 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 : ▪ Défense aérienne laser Skyranger 30 HEL ▪ détecteur de mines végétales ▪ Les mensonges changent le cerveau ▪ Nouveau contrôleur d'échange à chaud Fil d'actualité de la science et de la technologie, nouvelle électronique
Matériaux intéressants de la bibliothèque technique gratuite : ▪ section radio du site Web. Sélection d'articles ▪ article Cas dans le chapeau. Expression populaire ▪ article Pour quels mérites A. V. Suvorov a-t-il été promu maréchal général? Réponse détaillée ▪ article déclencheur JK. Radio - pour les débutants ▪ article Micro HPP. 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 |