Bibliothèque technique gratuite ENCYCLOPÉDIE DE LA RADIOÉLECTRONIQUE ET DU GÉNIE ÉLECTRIQUE Nous concevons des appareils sur microcontrôleurs. Encyclopédie de la radioélectronique et de l'électrotechnique Encyclopédie de l'électronique radio et de l'électrotechnique / microcontrôleurs Entre l'idée initiale de créer un dispositif basé sur un microcontrôleur (MCU) et le développement de son programme, il y a une étape importante : l'élaboration d'un schéma fonctionnel de l'algorithme. Elle est souvent oubliée ou, pire, négligée. La programmation s'effectue de manière « heuristique », essentiellement par essais et erreurs. Le résultat est un programme peu fonctionnel et encombrant, qui n'est pas entièrement compréhensible, même pour son créateur, et qui est difficile à moderniser. Cependant, des méthodes assez simples sont connues depuis longtemps et sont utilisées par les programmeurs, permettant, à commencer par la formulation verbale de l'algorithme, de concevoir avec compétence son schéma fonctionnel. Les intérêts professionnels de l'auteur de l'article résident dans le domaine des développements sur les MK de la série Z8, mais le matériel qu'il présente s'applique également à d'autres types de MK. L'interaction de tout système MK avec l'opérateur et l'objet de contrôle peut être représentée comme le montre la Fig. 1 schéma [1]. Dans le cas général, l'objet de contrôle est équipé d'actionneurs et de capteurs. L'opérateur humain agit sur le microcontrôleur à l'aide de dispositifs maîtres et reçoit des informations sur l'état de l'objet à partir des lectures des dispositifs d'affichage. Les premiers sont des interrupteurs, des boutons, des résistances variables, les seconds sont des indicateurs lumineux (y compris graphiques et alphanumériques), des dispositifs émetteurs de son et autres dispositifs de signalisation. Toutes les unités fonctionnelles et connexions illustrées dans le schéma sont requises uniquement dans les systèmes de surveillance et de contrôle interactifs complexes. Dans les systèmes de contrôle dits en boucle ouverte, le microcontrôleur travaille « à l’aveugle », sans recevoir aucune information sur l’état de l’objet. Parfois, il ne fournit même à l'opérateur aucune information sur le travail (le sien et celui de l'objet), surtout s'il est possible d'évaluer les résultats du contrôle en observant l'objet lui-même. Dans les systèmes de contrôle fermés, le MC ajuste les actions de contrôle sur l'objet en fonction des lectures du capteur, mais les dispositifs d'affichage ne sont pas non plus nécessaires ici. Les systèmes de contrôle ne contiennent pas d'actionneurs et, à l'aide d'appareils maîtres, l'opérateur sélectionne uniquement les paramètres contrôlés ou change les modes de fonctionnement des indicateurs. La méthodologie de conception de systèmes sur MK [2, 3] comprend la formulation et l'analyse du problème, son interprétation technique, le développement d'un schéma fonctionnel de l'algorithme et le texte du programme d'application. Dans de tels systèmes, ils ont tendance à attribuer le maximum de fonctions aux logiciels. L'efficacité de leur mise en œuvre détermine en fin de compte la quantité de mémoire requise, la vitesse et la fiabilité du système dans son ensemble. Bien entendu, nous devons encore développer le schéma conceptuel et la conception du produit lui-même, mais nous n'y reviendrons que dans la mesure nécessaire au développement du programme MK. Un énoncé de problème est une formulation verbale des exigences du système en cours de conception. Tout d'abord, ils décrivent sa fonction, les caractéristiques de l'objet de contrôle, des capteurs, des indicateurs, des actionneurs et des dispositifs maîtres. Ensuite, vous devez parler en détail du comportement souhaité du système dans toutes les situations possibles, y compris les situations « anormales ». Vous ne devez en aucun cas vous fier aux actions de l'opérateur sans erreur. Par exemple, après avoir entendu un signal d'urgence, il peut très bien appuyer sur le bouton « START » au lieu du bouton « STOP » prescrit ou appuyer au hasard sur tous les boutons d'affilée. Bien entendu, il est impossible de prévoir toutes ces situations, mais nous devons nous y efforcer. Il est impératif de préciser les valeurs numériques des paramètres du système à concevoir. Premièrement, la tâche est généralement formulée « au niveau de l’utilisateur ». Par exemple, la tâche initiale pour développer un système de contrôle de ventilateur peut ressembler à ceci : « Allumez et éteignez le ventilateur, réglez l'intensité du flux d'air et changez sa direction (échappement/refoulement). » L'analyse technique réduira ce problème au contrôle de la vitesse et du sens de rotation de l'entraînement du ventilateur - un moteur électrique à courant continu. Étant donné que la puissance des signaux de sortie du MC est évidemment insuffisante pour le contrôle direct du moteur, un dispositif pilote spécial devra être installé entre eux, générant des signaux de la puissance requise, et la tâche sera résolue par le MC. se limitera à la fourniture d'actions de contrôle au conducteur. Nous ne nous attarderons pas en détail sur le choix des éléments de contrôle de puissance, des capteurs et des dispositifs pour leur interface avec le MK. Aujourd'hui, des microcircuits spécialisés sont produits à ces fins, dont l'utilisation est beaucoup plus efficace que la construction d'un système à partir de composants discrets. Supposons qu'un pilote de moteur à courant continu intégré LMD18200 de National Semiconductor soit utilisé. Un schéma typique de sa connexion est présenté sur la Fig. 2. Il contient un pont de puissants transistors MOS dont la diagonale comprend un moteur. Le pilote est contrôlé à l'aide de trois signaux logiques. Des impulsions rectangulaires sont fournies à l'entrée PWM (Pulse width Modulation), dont le rapport entre la durée et la période de répétition (facteur de service) détermine le régime du moteur. Le niveau logique du signal à l'entrée DIR (sens) fixe la polarité de la tension fournie au moteur, et donc le sens de sa rotation. En définissant le journal de niveau. 1 à l'entrée BR (frein), le moteur est arrêté, et si à ce moment il y a un log à l'entrée PWM. 0, le circuit d'alimentation du moteur sera simplement ouvert, sinon les fils du moteur seront également connectés entre eux, ce qui assurera un freinage d'urgence. Le conducteur est doté de deux capteurs intégrés. L'un d'eux génère un courant circulant depuis la broche CUR (courant) et est proportionnel au courant du moteur avec un facteur de 377 μA/A. La sortie du capteur de température TF (Thermal Flag) est discrète avec un collecteur ouvert. Il passe à l'état de journal. 0. Si le cristal du pilote est chauffé au-dessus de 145 °C. Formulons les exigences relatives au dispositif de commande du moteur du ventilateur et, essentiellement, au pilote du moteur. Le dispositif de commande doit être équipé de boutons, en appuyant sur lesquels l'opérateur (utilisateur) peut allumer et éteindre le moteur, changer de direction, augmenter et diminuer sa vitesse. Il doit y avoir une indication du sens de rotation du moteur avec des signaux lumineux de différentes couleurs et une alarme sonore en cas d'accident (surchauffe ou surcharge). Après application de la tension d'alimentation, l'appareil doit, sans démarrer le moteur, attendre une commande précisant le sens de rotation. Sa réception doit être confirmée par un signal lumineux. Lors de la commande « START », le moteur doit être allumé et commencer à tourner dans le sens spécifié à une fréquence moyenne (cycle de service du signal PWM = 0.5). Pour les commandes " PLUS LENT " et " PLUS RAPIDE ", le rapport cyclique doit diminuer ou augmenter en conséquence, sans dépasser 0.2... 1. La commande " STOP " doit arrêter immédiatement le moteur, après quoi il peut être redémarré en émettant le Commande "START". Si la valeur admissible de la consommation de courant est dépassée, ce qui peut être la conséquence, par exemple, d'un blocage mécanique de l'arbre du moteur, celui-ci doit être éteint et un signal sonore intermittent d'une fréquence de 1000 Hz doit être émis. sous forme de rafales courtes (leur durée et les pauses entre elles sont de 1 s). Si le microcircuit surchauffe, il est nécessaire d'arrêter le moteur et de faire retentir un signal sonore par rafales longues (la durée des rafales et des pauses est de 2 s). L'alarme sonore doit rester allumée jusque-là. jusqu'à ce que l'opérateur émette la commande STOP, ramenant l'appareil à son état d'origine. Avant qu’une telle commande ne soit donnée, elle ne doit répondre à aucune autre. Déjà à ce stade, il faut faire abstraction des détails qui ne sont pas essentiels au développement du programme MK. Par exemple, dans ce cas, cela n'a pas d'importance. que l'objet de contrôle (moteur) sert d'entraînement de ventilateur, le type de ventilation (évacuation ou soufflage) dépend du sens de sa rotation, et l'intensité du flux d'air dépend de la fréquence. De plus, lors du développement d'un algorithme, vous pouvez complètement oublier le moteur et son pilote, en vous concentrant sur la génération de signaux de commande PWM. DIR, BR et traitement du signal des capteurs CUR et TE. Lors de l'analyse du problème formulé, il est conseillé d'identifier immédiatement certains problèmes qui se manifesteront inévitablement dans les étapes suivantes. Par exemple, le système doit-il répondre à une commande RUN si le sens de rotation n'est pas prédéfini ? Si oui. alors dans quel sens le moteur doit-il tourner dans un tel cas ? La vitesse et le sens de rotation spécifiés doivent-ils être maintenus après l'arrêt et le redémarrage du moteur ? Et une fois la situation d’urgence résolue ? Toutes ces questions doivent recevoir une réponse le plus tôt possible. Sur la base de la description verbale, des listes de signaux d'entrée et de sortie du MK sont compilées. Le premier d'entre eux comprend les commandes données par l'opérateur et les signaux des capteurs : « EXTRACTION ». "POMPAGE". "COMMENCER". "PLUS RAPIDE". "RALENTISSEZ." "ARRÊT". " SURCHARGE " (CUR). " SURCHAUFFE " (TF). Le second contient des signaux de commande pour le pilote du moteur et des indicateurs : PWM - vitesse de rotation. DIR - sens de rotation, BR - éteindre le moteur. G - allumez la LED verte. Y - allumez la LED jaune. S - son. Compte tenu de ce qui précède, nous pouvons tirer une conclusion préliminaire. ce que MK exige. ayant au moins 14 broches pour connecter des circuits externes (huit entrées et six sorties). Étant donné que le signal CUR est analogique, un comparateur sera nécessaire pour comparer les lectures du capteur avec une valeur acceptable et générer un signal logique « SURCHARGE ». Par conséquent, MK est préférable. équipé d'un comparateur intégré. La modification minimale à 18 broches de la série Z86 MK convient, par exemple. L'option la moins chère est un microcircuit. Z86E02. C'est tout pour le moment. quant au matériel de l'appareil. La distribution des signaux d'entrée et de sortie sur les broches MC n'est pas significative à ce stade. Ensuite, il est recommandé de représenter l'algorithme spécifié verbalement sous la forme d'un graphe de machine à états finis. Un dispositif discret est considéré comme une machine à états finis s'il est possible de lister tous les états dans lesquels il peut se trouver, tous les événements (influences externes) conduisant à des changements d'état et tous les signaux de sortie générés. Ce sont précisément les appareils basés sur MK. Un exemple de graphe d'automate est montré dans la fig. 3. Les états sont représentés par des nœuds (sommets) du graphe. Dans ce cas, il y en a quatre : A. B. C et D. Les sommets sont reliés par des arcs équipés de flèches indiquant la direction de la transition, l'événement Xi qui provoque cette transition est indiqué au dessus de l'arc, et en dessous se trouve un ensemble des signaux de sortie Yi générés par la machine à ce moment et inchangés jusqu'à la prochaine transition. Théoriquement, exactement autant d’arcs devraient sortir de chaque sommet du graphique. combien d'influences externes différentes sont possibles sur la machine. Si un événement ne change pas l’état de l’automate, l’arc correspondant est affiché entrant dans le même sommet d’où il est sorti. Toutefois, afin de ne pas encombrer le dessin, on ne laisse en pratique que celles de ces arcs. avec lesquels les changements dans les signaux de sortie sont associés. Par exemple, à partir du graphique présenté sur la Fig. 3. Vous pouvez supprimer les arcs A-A et B-B. En langage courant, cela signifie que la machine dans les états A et B ne répond pas à l'événement X3. Événements affectant la machine, implémentés sous la forme d'un programme MK. ne sont pas seulement « directs », provoqués par des changements dans les niveaux logiques des signaux fournis aux broches externes du MC, mais aussi « indirects ». Ces derniers incluent, par exemple, un certain résultat de la comparaison des valeurs calculées et spécifiées d'un certain paramètre ou l'achèvement d'une opération à long terme. La frontière entre les événements directs et indirects est parfois difficile à tracer. Par exemple, un événement aussi courant que le déclenchement d'une minuterie intégrée à un MK peut être considéré comme indirect s'il est enregistré. en analysant le numéro situé dans le registre correspondant, ou directement, en répondant au signal généré par le temporisateur à la fin du décompte. Les signaux de sortie peuvent également être indirects, sans modifier directement les niveaux logiques aux sorties MK. Souvent, lors de la transition entre les états d'un automate, ils n'attribuent que certaines valeurs aux variables du programme. Revenant au problème en question, construisons un graphique de la machine de contrôle du moteur. En analysant la tâche, nous pouvons distinguer les états suivants :
Le graphique construit est représenté sur la fig. quatre. Il est facile de voir qu'il est impossible de modifier un sens de rotation incorrect réglé accidentellement sans allumer puis arrêter le moteur. De plus, pour le démarrer, vous devez toujours donner deux commandes : direction et démarrage. En refusant la commande "START", vous pouvez éliminer la condition STOP2. et diriger les arcs des commandes « PUSH » et « EXTRACTION » directement vers l'état OPERATION. En conséquence, il y aura un bouton de moins sur le panneau de commande et une entrée MK sera libérée. et le moteur s'allumera immédiatement après avoir appuyé sur l'un des boutons qui définissent la direction. À proprement parler, toute modification d’un algorithme de contrôle donné doit recueillir l’accord du client ou du futur utilisateur de l’appareil. Mais dans la pratique amateur, le client, l'interprète et l'utilisateur sont souvent une seule personne et il suffit de « se consulter ». Il est frappant que le graphique ne reflète pas la méthode de génération d'un signal PWM avec un rapport cyclique variable. En général, cela peut être fait par un dispositif spécial contrôlé depuis le MK. Mais nous nous efforçons de tout implémenter de manière purement programmatique, nous devrons donc diviser l'état WORK en deux. Dans le premier d'entre eux (WORK) PWM = 0, dans le second (WORK 1) - PWM = 1. Nous allons maintenant prévoir les événements qui provoquent des transitions entre eux - le déclenchement alterné de deux minuteries, dont l'une définit la durée des impulsions PWM, et la seconde - les pauses entre elles, et chaque minuterie, lorsqu'elle est déclenchée, démarre l'autre. Étant donné que dans ce cas, les minuteries « logiques » ne fonctionnent jamais simultanément, elles peuvent être mises en œuvre à l'aide d'une minuterie « physique », en modifiant par programme son délai après chaque opération. Les commandes « PLUS RAPIDE » et « PLUS LENTE » ajustent les temporisations des minuteries, laissant leur somme inchangée et égale à la période de répétition spécifiée des impulsions PWM. La machine peut répondre à ces commandes dans les deux états considérés. Cependant, pour simplifier l’algorithme, il est permis de limiter la réaction à un seul d’entre eux. Du fait de la courte durée de ces états, le délai d’exécution restera invisible pour l’opérateur. Une autre précision nécessaire concerne la vérification de l'admissibilité des valeurs de temporisation. Selon la tâche, le rapport cyclique du signal PWM. égal à T1/(T1+T0). où T1 et T0 sont les temporisations des temporisateurs, doivent toujours rester dans l'intervalle 0,2... 1. Par conséquent, après chaque commande de changement de vitesse, la machine doit passer à l'état CHECK et seulement de là revenir à l'OPERATION état le long de l’un des deux arcs. Le premier correspond à un résultat de test positif ; en cliquant dessus, de nouvelles valeurs de vitesse d'obturation sont définies. La seconde - le résultat est négatif, les extraits précédemment valables restent inchangés. En continuant à analyser le graphique, nous constatons que les états SURCHAUFFE et SURCHARGE ne diffèrent que par la période de répétition du signal sonore. C’est une bonne idée de les combiner en un seul, en l’appelant ACCIDENT. Le signal audio S peut être généré à l'aide de deux minuteries, similaires au signal PWM discuté ci-dessus. De plus, il est conseillé d'utiliser le même timer « physique », qui reste inactif dans cet état. Pour rendre le son intermittent, vous pouvez utiliser une autre minuterie, mais il est plus facile de s'en passer en comptant les périodes du signal généré à l'aide d'un compteur implémenté dans le logiciel, en allumant et éteignant le signal de sortie après un certain nombre d'entre elles. Tout cela nécessitera la fourniture d'états supplémentaires de la machine et de transitions entre eux. Le graphique développé du contrôle automatique du moteur est illustré à la fig. 5. Notez que les déclarations verbales des actions effectuées sont remplacées par l'attribution de valeurs spécifiques aux variables. Par exemple, au lieu de la phrase « allumer la LED jaune », Y = 1 est indiqué et il est spécifié que la LED verte doit être éteinte, G = 0. En plus des signaux de sortie et des temporisations mentionnés précédemment, le la constante T est la période de répétition des impulsions PWM et la variable N est le nombre d'impulsions S restantes jusqu'à la fin de l'intervalle du signal audio généré. L'étape suivante consiste à convertir le graphique en un schéma fonctionnel de l'algorithme de fonctionnement MK. Tout d’abord, tous les sommets du graphe (états de la machine) doivent être numérotés. L'ordre de numérotation est très important dans la mise en œuvre matérielle de la machine. En le choisissant correctement, vous pouvez simplifier considérablement l'appareil. Pour l’implémentation logicielle, cela n’est pas si important et, dans la plupart des cas, la numérotation peut être arbitraire. Le programme doit fournir ce qu'on appelle une « variable d'état » à laquelle, pendant le fonctionnement, se voient attribuer des valeurs égales aux numéros des états actuels. Dans les programmes complexes, il peut y avoir plusieurs de ces variables. De nombreux langages de programmation vous permettent de donner des noms symboliques à des valeurs numériques. Ceci peut être largement utilisé, car une ligne de programme dans laquelle une variable reçoit la valeur RABOTA est beaucoup plus claire qu'une ligne affectant, par exemple, la valeur 6. En figue. 6, un schéma fonctionnel typique de l'algorithme de contrôle est présenté sous sa forme la plus générale. Après initialisation, le programme s'exécute de manière cyclique. Après avoir analysé la variable d'état, il exécute la procédure appropriée à chaque cycle. Un changement dans l'état de la machine se traduit par l'attribution d'une nouvelle valeur à la variable d'état, à la suite de quoi une procédure différente sera effectuée au cours du cycle suivant. Les procédures qui implémentent chaque état de la machine sont construites selon des schémas fonctionnels similaires à ceux présentés sur la Fig. 7. Tout d'abord, les influences externes (événements) sont analysées. Ensuite, le processus est divisé en autant de branches qu'il y a d'arcs partant du sommet correspondant du graphe de l'automate, chacune d'elles prévoit l'exécution des fonctions nécessaires à la mise en œuvre de cette transition, et enfin, une valeur égale au numéro du sommet vers laquelle l'arc est dirigé est affecté à la variable d'état. Une autre approche est également possible : ils mettent d'abord en œuvre les arcs entrant dans le sommet, puis réagissent aux influences. Son principal inconvénient est que le programme doit « savoir » à partir de quel état la machine est passée à celui-ci, ce qui n'était pas nécessaire dans le cas précédent. Veuillez noter que sur la fig. La figure 7 montre deux options possibles pour quitter la procédure d'état. Dans le premier, les événements sont analysés cycliquement jusqu'à ce que l'un d'entre eux soit détecté, provoquant une sortie de cet état. Dans le second cas, s'il n'y a aucune de ces influences. la procédure est terminée comme indiqué par la ligne pointillée. S'il y a peu d'influences externes et que la réaction à celles-ci dans chaque état est spécifique, les procédures de détection d'événements sont incluses dans les blocs de traitement des états. Par exemple, vous pouvez vérifier si le bouton "START" est enfoncé uniquement dans l'état dans lequel la machine doit y réagir. Souvent, la procédure de filtrage des événements est placée dans la boucle principale (sur la figure 6, elle est représentée par une ligne pointillée) et une variable est fournie, à laquelle est attribuée une valeur associée de manière unique à l'événement qui s'est produit. Par exemple, le résultat d'une interrogation du clavier est le code de la touche enfoncée. Dans le bloc de traitement d'état, exécuté selon la deuxième des options évoquées ci-dessus, la valeur de cette variable est uniquement analysée. Contrairement au modèle théorique, les événements réels se produisent souvent simultanément. Dans une telle situation, la machine doit réagir en premier à l’événement ayant la plus haute priorité. Le moyen le plus simple de définir des priorités consiste à choisir la séquence correcte d’analyse des événements. Par exemple, selon le schéma fonctionnel présenté sur la Fig. 7, l'événement X1 a la priorité la plus élevée. le plus bas est pour HZ. Si les événements de haute priorité se produisent beaucoup plus souvent que les événements de faible priorité, la file d'attente risque de ne jamais atteindre les derniers. Pour éviter cela, les événements rares doivent bénéficier de la plus haute priorité. Parfois, la répartition de ces derniers doit être modifiée pendant l'exécution du programme, par exemple en plaçant chaque événement nouvellement traité en fin de file d'attente. Le comportement imprévisible du système sur le MK s'explique souvent par des interférences ou des rebonds des contacts de commande. De tels faux événements doivent être « éliminés » à l’aide de filtres logiciels. Le plus souvent, pour reconnaître qu'un événement s'est produit, il suffit de s'assurer que le niveau du signal logique à l'entrée correspondante du MK est resté inchangé pendant un certain temps. Dans les cas critiques, des procédures plus complexes sont utilisées. Parmi les nombreux événements, on peut souvent distinguer les événements « d’urgence », auxquels la réponse doit être immédiate. Un exemple typique. Afin de ne pas rater le moment où le timer se déclenche, le programme doit vérifier en permanence l'état de son registre, sans pouvoir faire autre chose jusqu'à l'expiration du timer. Un signal de demande d'interruption généré par le temporisateur à la fin du décompte résout le problème. L'ayant accepté. Le MK procède immédiatement (en tout cas beaucoup plus rapidement que lors du traitement normal du même événement par un programme) à l'exécution du sous-programme destiné à gérer cette interruption, dont l'adresse (vecteur) doit être spécifiée dans des cellules de mémoire de programme spécialement désignées. Le dispositif d'interruptions vectorielles prioritaires du programme en cours d'exécution est prévu dans la grande majorité des microcontrôleurs. Les interruptions peuvent être externes ou internes. Dans ce dernier cas, l'entrée de requête d'interruption ne possède pas de sortie externe, mais est connectée à une source de requête située directement sur la puce MK. En règle générale, les interruptions internes sont fournies non seulement par la minuterie, mais également par d'autres appareils intégrés à ce MK : contrôleurs de port série, comparateurs de signaux analogiques, convertisseurs analogique-numérique. Souvent, l'une des interruptions internes des MK modernes est associée au soi-disant chien de garde, qui sert à se protéger contre les pannes aléatoires. Cette minuterie nécessite une constante initialisation en écrivant un code spécifique dans un emplacement spécifique de l'espace d'adressage. Le programme MK est construit de telle manière qu'au cours de son déroulement normal, une telle procédure est effectuée assez souvent. Si le MK est gelé, l'initialisation du temporisateur de surveillance s'arrête et après un certain temps, il soumet sa demande d'interruption dont le traitement est destiné à rétablir le fonctionnement normal du système. En règle générale, la réponse à une interruption de surveillance est la même. comme signal externe qui remet le MK à son état initial. Les interruptions sont contrôlées en les activant ou en les désactivant en fonction de l'état de la machine mise en œuvre. Si la même interruption dans différents états doit être traitée différemment, la procédure de traitement est construite de manière similaire à la boucle du programme principal, permettant une analyse d'état. La différence est la suivante. qu'une telle procédure n'est pas fermée en boucle. Une fois terminé, le MK continuera à exécuter le programme à partir de l'endroit où il a été interrompu. Ceci est semé d'échecs, car dans un état qui a changé à la suite du traitement des interruptions, la poursuite des actions interrompues peut donner un résultat incorrect. Ils sont protégés contre de telles erreurs en interdisant les interruptions lors de l'exécution des sections critiques du flux du programme, qui. ralentit sans aucun doute la réponse du système. S'il y a plus de sources de demandes d'interruption dans le système que les entrées MK fournies pour elles, une demande de groupe est implémentée dans le matériel, combinant les sorties de plusieurs sources à l'aide d'un circuit OU. Ayant accepté une telle demande. MK est obligé de découvrir qui l'a envoyé et de le traiter en conséquence. L'ensemble de l'algorithme de fonctionnement du dispositif est parfois implémenté par un ensemble de routines de gestion des interruptions. Dans ce cas, la boucle principale dégénère en plusieurs instructions machine, jusqu'à une seule commande pour sauter inconditionnellement vers elle-même. De nombreux MK fournissent spécifiquement des commandes HALT ou IDLE, qu'ils utilisent. Essentiellement, ils cessent de fonctionner (parfois même le générateur d'horloge s'éteint). Seule une demande d'interruption entrante peut faire sortir le MC de cet état. Ayant fini de traiter la demande. Le microcontrôleur effectue la transition inconditionnelle vers la commande d'arrêt fournie dans la boucle principale et « s'endort » à nouveau. Ce mode est très économique, car la puissance consommée par un MK arrêté est réduite plusieurs fois, n'augmentant que lors d'une réaction à des influences extérieures. Le schéma fonctionnel de l'algorithme de contrôle du moteur du ventilateur, développé en tenant compte de ce qui précède, se compose de deux parties, illustrées à la Fig. 8 (cycle principal) et Fig. 9 (traitement des interruptions de minuterie). Les deux correspondent fondamentalement aux schémas fonctionnels typiques discutés ci-dessus, à l'exception du fait que les mêmes opérations effectuées lors du traitement de différents événements sont combinées. Le gestionnaire d'interruption de minuterie génère des signaux PWM et S. Lors du passage de l'état STOP à l'état RUN, l'interruption est activée et lors du retour à l'état STOP, elle est désactivée. Le programme dispose désormais d'une variable d'état ST, à laquelle, pour plus de clarté, se voient attribuer des valeurs de chaîne - les noms des états correspondants. Comme mentionné ci-dessus, dans le programme, ce seront des nombres - des numéros d'état ou leurs noms symboliques. Les valeurs attribuées à la variable N0 sont sélectionnées en partant de l'hypothèse que les périodes de répétition des impulsions générées PWR et S sont les mêmes et égales à 1 ms. Si ce n'est pas le cas. Le schéma fonctionnel devra être un peu modifié. Vous pouvez maintenant passer à la sélection d'un MK, à la distribution des signaux d'entrée et de sortie sur ses broches et à l'élaboration d'un schéma de circuit complet de l'appareil. Après avoir déterminé à quels circuits externes les bits d'un port d'entrée/sortie particulier du MK seront connectés et les niveaux logiques des signaux dans ces circuits, le programmeur peut commencer à développer le programme. littérature
Auteur : M. Gladshtein, Rybinsk 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 : ▪ Les fourmis peuvent prédire les tremblements de terre ▪ Les images sont projetées sur de l'air pur ▪ NXP améliorera la sécurité des passeports électroniques ▪ Spécifications du format Blu-ray terminées ▪ Mémoire 3D dense peu coûteuse 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 Sécurité électrique, sécurité incendie. Sélection d'articles ▪ article Traitement de la pierre. Histoire de l'invention et de la production ▪ article Quelle ville s'appelle la Venise de l'Orient ? Réponse détaillée
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 |