MENÜ English Ukrainian Russisch Startseite

Kostenlose technische Bibliothek für Bastler und Profis Kostenlose technische Bibliothek


ENZYKLOPÄDIE DER FUNKELEKTRONIK UND ELEKTROTECHNIK
Kostenlose Bibliothek / Schemata von radioelektronischen und elektrischen Geräten

Wir entwerfen Geräte auf Mikrocontrollern. Enzyklopädie der Funkelektronik und Elektrotechnik

Kostenlose technische Bibliothek

Lexikon der Funkelektronik und Elektrotechnik / Mikrocontroller

Kommentare zum Artikel Kommentare zum Artikel

Zwischen der ersten Idee, ein Gerät auf Basis eines Mikrocontrollers (MC) zu erstellen, und der Entwicklung seines Programms gibt es einen wichtigen Schritt – die Erstellung eines Blockdiagramms des Algorithmus. Es wird oft vergessen oder, schlimmer noch, vernachlässigt. Die Programmierung erfolgt im Wesentlichen „heuristisch“ – durch Versuch und Irrtum. Das Ergebnis ist ein umständliches Programm, das irgendwie funktioniert, selbst von seinem Ersteller nicht vollständig verstanden wird und schwer zu modernisieren ist. Allerdings sind seit langem recht einfache Methoden bekannt und werden von Programmierern verwendet, die es ermöglichen, ausgehend von der verbalen Formulierung des Algorithmus sein Blockdiagramm korrekt zu entwerfen. Die beruflichen Interessen des Autors des Artikels liegen im Bereich der Entwicklungen am MK der Z8-Serie, das von ihm präsentierte Material gilt jedoch gleichermaßen für MKs anderer Typen.

Die Interaktion eines beliebigen MC-Systems mit dem Bediener und dem Steuerobjekt kann wie in Abb. dargestellt dargestellt werden. 1 Schema [1]. Im allgemeinen Fall ist das Steuerobjekt mit Aktoren und Sensoren ausgestattet. Der menschliche Bediener agiert mit Hilfe von Master-Geräten auf dem MC und erhält aus den Messwerten der Anzeigegeräte Informationen über den Zustand des Objekts. Erstere sind Schalter, Knöpfe, variable Widerstände, letztere sind Lichtanzeigen (einschließlich grafischer und alphanumerischer Anzeigen), Tonsignale und andere Signalgeräte.

Wir entwerfen Geräte auf Mikrocontrollern

Alle im Diagramm dargestellten Funktionsknoten und Verbindungen werden nur in komplexen interaktiven Steuerungs- und Managementsystemen benötigt. Bei den sogenannten Open-Loop-Steuerungssystemen arbeitet der MC „blind“, ohne Informationen über den Zustand des Objekts zu erhalten. Manchmal gibt er dem Bediener nicht einmal Auskunft über die Arbeit (sowohl seine eigene als auch das Objekt), insbesondere wenn es möglich ist, die Ergebnisse der Kontrolle durch Beobachtung des Objekts selbst zu bewerten. In geschlossenen Steuerungssystemen korrigiert der MC die Steuereingriffe am Objekt in Abhängigkeit von den Messwerten der Sensoren, Anzeigegeräte sind jedoch auch hier nicht erforderlich. Steuerungssysteme enthalten keine Aktoren und mit Hilfe von Einstellgeräten wählt der Bediener lediglich gesteuerte Parameter aus oder schaltet die Betriebsarten von Indikatoren um.

Die Methodik zum Entwerfen von Systemen auf MC [2, 3] umfasst die Formulierung und Analyse des Problems, seine technische Interpretation, die Entwicklung eines Flussdiagramms des Algorithmus und den Text des Anwendungsprogramms. In solchen Systemen neigen sie dazu, Softwaretools die maximale Anzahl an Funktionen zuzuweisen. Die erforderliche Speichermenge, Geschwindigkeit und Zuverlässigkeit des Systems in der Schaltung hängen letztendlich von der Effektivität ihrer Implementierung ab. Natürlich steht die Entwicklung des Konzepts und des Designs des Produkts selbst noch aus, aber wir werden darauf nur in dem Umfang eingehen, der für die Entwicklung des MK-Programms erforderlich ist.

Die Problemstellung ist eine verbale Formulierung der Anforderungen an das zu entwerfende System. Sie beschreiben zunächst den Zweck, die Eigenschaften des Steuerobjekts, Sensoren, Anzeigen, Betätigungs- und Einstellgeräte. Als nächstes sollten Sie ausführlich über das gewünschte Verhalten des Systems in allen möglichen Situationen sprechen, auch in „abnormalen“. In keinem Fall können Sie sich auf das fehlerfreie Handeln des Betreibers verlassen. Wenn er beispielsweise ein Notsignal gehört hat, kann es durchaus sein, dass er anstelle der vorgeschriebenen „STOP“-Taste die START-Taste drückt oder wahllos alle Tasten hintereinander drückt. Natürlich ist es unmöglich, alle derartigen Situationen vorherzusehen, aber dies muss angestrebt werden. Geben Sie unbedingt die numerischen Werte der Parameter des zu entwerfenden Systems an.

Zunächst wird die Aufgabenstellung in der Regel „auf Benutzerebene“ formuliert. Die erste Aufgabe für die Entwicklung einer Lüftersteuerung könnte beispielsweise so lauten: „Lüfter ein- und ausschalten, Intensität des Luftstroms einstellen und Richtung ändern (Auslass / Auslass)“. Durch technische Analysen wird diese Aufgabe auf die Steuerung der Geschwindigkeit und Drehrichtung des Lüfterantriebs – eines Gleichstrommotors – reduziert. Da die Leistung der Ausgangssignale des MK offensichtlich nicht ausreicht, um den Motor direkt anzusteuern, muss zwischen ihnen ein spezielles Treibergerät installiert werden, das Signale der erforderlichen Leistung erzeugt, und die Aufgabe wird vom MK gelöst. auf die Bereitstellung von Steueraktionen für den Fahrer beschränkt.

Wir werden uns nicht mit der Auswahl der Leistungssteuerungen, Sensoren und Geräte für deren Schnittstelle zum MC befassen. Für diese Zwecke werden heute spezielle Mikroschaltungen hergestellt, deren Einsatz wesentlich effizienter ist als der Aufbau eines Systems aus diskreten Komponenten.

Gehen Sie davon aus, dass der integrierte DC-Motortreiber LMD18200 von National Semiconductor verwendet wird. Eine typische Schaltung für seine Einbindung ist in Abb. dargestellt. 2. Es enthält eine Brücke aus Hochleistungs-MOSFETs, in deren Diagonale der Motor angeschlossen ist.

Wir entwerfen Geräte auf Mikrocontrollern

Der Treiber wird durch drei logische Signale gesteuert. Dem PWM-Eingang (Pulsweitenmodulation) werden Rechteckimpulse zugeführt, deren Verhältnis zur Wiederholperiode (Tastverhältnis) die Motordrehzahl bestimmt. Der logische Pegel des Signals am Eingang DIR (Richtung – Richtung) legt die Polarität der dem Motor zugeführten Spannung und damit die Drehrichtung fest. Durch Festlegen der Protokollebene. 1 am BR-Eingang (Bremse) an, wird der Motor gestoppt, und wenn zu diesem Zeitpunkt der PWM-Eingang ein Protokoll hat. 0 ist der Stromkreis des Motors einfach geöffnet, andernfalls werden auch die Motorausgänge miteinander verbunden, was eine Notbremsung ermöglicht.

Im Treiber sind zwei Sensoren eingebaut. Einer von ihnen erzeugt einen Strom, der vom CUR-Pin (Strom – Strom) fließt und proportional zum Motorstrom mit einem Faktor von 377 µA/A ist. Temperatursensorausgang TF (Thermal Flag – Temperaturflag) – diskreter offener Kollektor. Es geht in den Protokollstatus über. 0. wenn der Treiberkristall über 145 °C erhitzt wird.

Lassen Sie uns die Anforderungen an das Lüftermotor-Steuergerät und im Wesentlichen an den Motortreiber formulieren.

Das Steuergerät muss mit Tasten ausgestattet sein, durch deren Betätigung der Bediener (Benutzer) den Motor ein- und ausschalten, die Richtung ändern sowie seine Geschwindigkeit erhöhen und verringern kann. Es sollte eine Anzeige der Drehrichtung des Motors durch Lichtsignale in verschiedenen Farben und einen akustischen Alarm bei einem Unfall (Überhitzung oder Überlastung) erfolgen.

Nach dem Anlegen der Versorgungsspannung muss das Gerät, ohne den Motor einzuschalten, auf einen Befehl warten, der die Drehrichtung vorgibt. Der Empfang sollte durch ein Lichtsignal bestätigt werden. Beim „START“-Befehl muss der Motor eingeschaltet werden und mit einer Durchschnittsfrequenz (Tastverhältnis des PWM-Signals = 0.5) in die vorgegebene Richtung zu rotieren beginnen. Gemäß den Befehlen „LANGSAM“ und „SCHNELLER“ muss die Einschaltdauer entsprechend verringert oder erhöht werden, ohne über 0.2 ... 1 hinauszugehen. Der Befehl „STOP“ muss den Motor sofort stoppen, danach kann er durch Erteilen von wieder gestartet werden „START“-Befehl.

Wird der zulässige Wert des aufgenommenen Stroms überschritten, was beispielsweise auf eine mechanische Blockierung der Motorwelle zurückzuführen sein kann, muss diese abgeschaltet werden und ein intermittierender Tonton mit einer Frequenz von 1000 Hz in Form von kurze Ausbrüche (Dauer und Pausen dazwischen betragen 1 s). Wenn der Mikroschaltkreis überhitzt, muss der Motor abgestellt und ein Tonsignal mit langen Stößen ausgegeben werden (die Dauer der Stöße und Pausen beträgt 2 s). Bis dahin muss der akustische Alarm eingeschaltet bleiben. bis der Bediener einen „STOP“-Befehl ausgibt, der das Gerät in seinen ursprünglichen Zustand zurückversetzt. Bis ein solcher Befehl gegeben wird, darf er auf keine anderen Befehle reagieren.

Bereits in dieser Phase sollte von den Details abstrahiert werden, die für die Entwicklung des MC-Programms nicht wesentlich sind. In diesem Fall spielt es beispielsweise keine Rolle. dass das Steuerobjekt (Motor) als Lüfterantrieb dient, die Art der Belüftung (Abluft oder Zuluft) von der Drehrichtung und die Intensität des Luftstroms von der Frequenz abhängt. Darüber hinaus können Sie bei der Entwicklung eines Algorithmus den Motor und seinen Treiber im Allgemeinen vergessen und sich auf die Bildung von PWM-Steuersignalen konzentrieren. DIR, BR und Signalverarbeitung von CUR- und TE-Sensoren.

Bei der Analyse der formulierten Aufgabe ist es wünschenswert, einige Probleme sofort zu erkennen, die sich in den nächsten Phasen unweigerlich manifestieren werden. Soll das System beispielsweise auf einen „Run“-Befehl reagieren, wenn die Drehrichtung nicht vordefiniert ist? Falls ja. In welche Richtung soll sich der Motor in so einem Fall drehen? Soll die eingestellte Frequenz und Drehrichtung nach dem Stoppen und Neustarten des Motors beibehalten werden? Was ist nach dem Notfall? Alle diese Fragen müssen so schnell wie möglich beantwortet werden.

Basierend auf der verbalen Beschreibung werden Listen von Ein- und Ausgangssignalen des MC erstellt. Der erste davon umfasst vom Bediener gegebene Befehle und Sensorsignale: „EXHAUST“. „DRÜCKEN“. "START". "SCHNELLER". "LANGSAMER". "STOPPEN". „ÜBERLAST“ (CUR). „ÜBERHITZUNG“ (TF). Im zweiten Steuersignale für den Motortreiber und Anzeigen: PWM – Drehzahl. DIR – Drehrichtung, BR – Motor abstellen. G – schalten Sie die grüne LED ein. Y – schalten Sie die gelbe LED ein. S – Ton.

In Anbetracht der vorstehenden Ausführungen kann der Schluss gezogen werden, dass was von MC gefordert wird. mit mindestens 14 Pins zum Anschluss externer Schaltkreise (acht Eingänge und sechs Ausgänge). Da das CUR-Signal analog ist, benötigen Sie einen Komparator, um die Sensorwerte mit einem akzeptablen Wert zu vergleichen und das logische Signal „OVERLOAD“ zu erzeugen. Daher wird MK bevorzugt. Ausgestattet mit einem eingebauten Komparator. Geeignet ist beispielsweise die minimale 18-Pin-Variante der Z86-Serie MK. Die günstigste Variante ist ein Mikrochip. Z86E02. Das ist alles für den Moment. bezüglich der Hardware des Geräts. Die Verteilung der Ein- und Ausgangssignale auf die Ausgänge des MK ist in dieser Phase nicht von Bedeutung.

Darüber hinaus empfiehlt es sich, den verbal vorgegebenen Algorithmus in Form eines sogenannten endlichen Automatengraphen darzustellen. Ein diskretes Gerät wird als endliche Zustandsmaschine betrachtet, wenn es möglich ist, alle Zustände, in denen es sich befinden kann, alle Ereignisse (äußere Einflüsse), die zu Zustandsänderungen führen, und alle erzeugten Ausgangssignale aufzuzählen. Dies sind die Geräte, die auf dem MK basieren.

Ein Beispiel für einen Automatengraphen ist in Abb. 3 dargestellt. XNUMX.

Wir entwerfen Geräte auf Mikrocontrollern

Die Zustände werden durch die Knoten (Eckpunkte) des Diagramms dargestellt. In diesem Fall gibt es vier davon: A. B. C und D. Die Eckpunkte sind durch Bögen verbunden, die mit Pfeilen versehen sind, die die Richtung des Übergangs anzeigen. Das Ereignis Xi, das diesen Übergang verursacht, ist über dem Bogen angegeben, und darunter ist die Menge angegeben Yi der vom Automaten in diesem Moment erzeugten und bis zum nächsten Übergang unveränderten Ausgangssignale. Theoretisch sollten aus jedem Scheitelpunkt des Diagramms genau so viele Bögen entstehen. möglichst viele unterschiedliche äußere Einflüsse auf den Automaten. Wenn ein Ereignis den Zustand des Automaten nicht ändert, wird gezeigt, dass der entsprechende Bogen denselben Scheitelpunkt erreicht, von dem er ihn verlassen hat. Um die Zeichnung jedoch nicht zu überladen, bleiben in der Praxis nur solche Bögen übrig. die mit Änderungen der Ausgangssignale verbunden sind. Zum Beispiel aus der Grafik in Abb. 3. Sie können die Bögen A-A und B-B löschen. In der Alltagssprache bedeutet dies, dass der Automat in den Zuständen A und B nicht auf das X3-Ereignis reagiert.

Ereignisse, die den Automaten betreffen, implementiert als MK-Programm. sind nicht nur „direkt“, verursacht durch Änderungen der Logikpegel der an den externen Ausgängen des MK anliegenden Signale, sondern auch „indirekt“. Zu letzteren zählen beispielsweise ein bestimmtes Ergebnis des Vergleichs der berechneten und gegebenen Werte eines bestimmten Parameters oder der Abschluss einer längeren Operation. Die Grenze zwischen direkten und indirekten Ereignissen ist manchmal schwer zu ziehen. Beispielsweise kann ein so häufiges Ereignis wie der Betrieb des im MK integrierten Timers als indirekt angesehen werden, wenn es behoben wird. Analyse der Zahl im entsprechenden Register oder direkte Reaktion auf das vom Timer am Ende der Zählung erzeugte Signal. Die Ausgangssignale können auch indirekt sein und die Logikpegel an den Ausgängen des MK nicht direkt verändern. Oftmals werden bei Übergängen zwischen Zuständen eines Automaten bestimmte Werte nur Programmvariablen zugewiesen.

Kehren wir zum zu lösenden Problem zurück und erstellen wir ein Diagramm des Motorsteuerungsautomaten. Bei der Analyse der Aufgabenstellung lassen sich folgende Zustände unterscheiden:

  • START – Wird sofort nach dem Einschalten eingestellt. Die notwendigen ersten Aktionen werden durchgeführt – Anfangswerte von Programmvariablen und Ausgangssignalen werden gesetzt, Peripheriegeräte werden konfiguriert. Danach geht der Automat in den Zustand STOP1 (ein gutes Beispiel für einen Übergang bei einem indirekten Ereignis – der Abschluss der Initialisierung);
  • STOP 1 – Die Maschine gelangt nach Abschluss der Initialisierung oder nach Verlassen einer Notsituation in diesen Zustand. Dies erfolgt durch Befehle, die die Drehrichtung des Motors festlegen:
  • STOP2 - die Maschine wartet auf den "START"-Befehl;
  • WORK – der Hauptzustand, das Gerät erzeugt ein PWM-Signal. Ausstieg durch Befehl „STOP“ oder durch Signale von Notfallsensoren;
  • ÜBERHITZEN. ÜBERLAST – Zustände, in die die Maschine aufgrund der Betätigung der entsprechenden Sensoren aus dem Betriebszustand übergeht. Der Motor ist ausgeschaltet, das Gerät erzeugt Pieptöne. Beenden – nur auf Befehl „STOP“.

Der konstruierte Graph ist in Abb. 4 dargestellt. vier.

Wir entwerfen Geräte auf Mikrocontrollern

Es ist leicht zu erkennen, dass es unmöglich ist, eine zufällig eingestellte falsche Drehrichtung zu ändern, ohne den Motor ein- und wieder auszuschalten. Darüber hinaus müssen Sie zum Starten immer zwei Befehle geben – Richtung und Start. Durch die Ablehnung des START-Befehls kann der STOP2-Zustand ausgeschlossen werden. und leiten Sie die Bögen der Befehle „DRUCK“ und „ENTLASSEN“ direkt in den Zustand „ARBEIT“. Dadurch entfällt eine Taste auf dem Bedienfeld, ein MK-Eingang wird freigegeben. und der Motor schaltet sich sofort ein, nachdem Sie eine der Tasten gedrückt haben, die die Richtung festlegen. Streng genommen muss für jede Änderung des vorgegebenen Regelalgorithmus die Zustimmung des Kunden bzw. des künftigen Nutzers des Gerätes eingeholt werden. Aber in der Amateurpraxis sind Kunde, Darsteller und Benutzer oft eine Person und es reicht aus, sich „mit sich selbst zu beraten“.

Es fällt auf, dass die Grafik nicht die Art und Weise widerspiegelt, wie das PWM-Signal mit variablem Tastverhältnis erzeugt wird. Im Allgemeinen kann dies durch ein spezielles Gerät erfolgen, das vom MC aus gesteuert wird. Da wir jedoch bestrebt sind, alles rein programmatisch umzusetzen, müssen wir den WORK-Status in zwei Teile aufteilen. Im ersten (WORK) PWM=0, im zweiten (WORK 1) - PWM = 1.

Lassen Sie uns nun Ereignisse bereitstellen, die Übergänge zwischen ihnen verursachen – abwechselndes Auslösen von zwei Timern, von denen einer die Dauer der PWM-Impulse festlegt und der zweite die Pausen zwischen ihnen festlegt, und jeder Timer startet, nachdem er funktioniert hat, den anderen. Da in diesem Fall die „logischen“ Timer nie gleichzeitig arbeiten, können sie mit einem „physischen“ Timer implementiert werden, der seine Zeitverzögerung nach jedem Vorgang programmgesteuert ändert.

Die Befehle „FASTER“ und „SLOWER“ passen die Zeitverzögerungen der Timer an, sodass ihre Summe unverändert bleibt und der angegebenen PWM-Impulswiederholungsperiode entspricht. Der Automat kann in beiden betrachteten Zuständen auf diese Befehle reagieren. Um den Algorithmus zu vereinfachen, ist es jedoch zulässig, die Reaktion auf nur einen davon zu beschränken. Aufgrund der kurzen Dauer dieser Zustände bleibt die Ausführungsverzögerung für den Bediener unmerklich.

Eine weitere notwendige Klarstellung ist die Prüfung der Zulässigkeit von Zeitverzögerungswerten. Je nach Aufgabe das Tastverhältnis des PWM-Signals. gleich T1/(T1+T0). wobei T1 und T0 die Zeitverzögerungen der Timer sind, muss diese immer im Intervall 0,2 ... 1 bleiben. Daher muss die Maschine nach jedem Befehl zum Ändern der Geschwindigkeit in den Zustand CHECK gehen und erst von dort in den Zustand zurückkehren WORK-Zustand entlang eines der beiden Bögen. Die erste entspricht einem positiven Ergebnis der Prüfung; beim Durchlaufen werden neue Verschlusszeiten eingestellt. Zweitens ist das Ergebnis negativ, die zuvor gültigen Auszüge bleiben unverändert.

Bei der weiteren Analyse des Diagramms achten wir darauf, dass sich die Zustände OVERHEAT und OVERLOAD nur in der Wiederholungsperiode des Tonsignals unterscheiden. Es ist eine gute Idee, sie zu einem Ganzen zusammenzufassen und es UNFALL zu nennen. Das Audiosignal S kann mit zwei Timern erzeugt werden, ähnlich dem oben diskutierten PWM-Signal. Darüber hinaus ist es wünschenswert, denselben „physischen“ Timer zu verwenden, der in diesem Zustand im Leerlauf bleibt.

Um den Ton intermittierend zu machen, können Sie einen anderen Timer verwenden, aber es ist einfacher, darauf zu verzichten, indem Sie die Perioden des erzeugten Signals mit einem in der Software implementierten Zähler zählen und das Ausgangssignal nach einer bestimmten Anzahl davon ein- und ausschalten. All dies erfordert die Bereitstellung zusätzlicher Zustände des Automaten und Übergänge zwischen ihnen.

Das entwickelte Diagramm der automatischen Steuerung des Motors ist in Abb. 5 gezeigt. XNUMX.

Wir entwerfen Geräte auf Mikrocontrollern

Bitte beachten Sie, dass die verbalen Formulierungen der auszuführenden Aktionen durch die Zuweisung bestimmter Werte an Variablen ersetzt werden. Anstelle der Formulierung „gelbe LED einschalten“ wird beispielsweise Y = 1 angegeben und angegeben, dass die grüne LED ausgeschaltet werden soll, G = 0. Zusätzlich zu den zuvor erwähnten Ausgangssignalen und Timerverzögerungen ist die Die Konstante T ist die Wiederholungsperiode des PWM-Impulses und die Variable N ist die Anzahl der Impulse S, die bis zum Ende des gebildeten Intervalls des Tonsignals verbleiben.

Der nächste Schritt besteht darin, den Graphen in ein Blockdiagramm des MC-Operationsalgorithmus umzuwandeln. Zunächst sollten alle Graphscheitelpunkte (Automatenzustände) nummeriert werden. Die Reihenfolge der Nummerierung ist bei der Hardware-Implementierung des Automaten sehr wichtig. Durch die richtige Auswahl können Sie das Gerät erheblich vereinfachen. Für die Softwareimplementierung ist dies nicht so wichtig und in den meisten Fällen kann die Nummerierung willkürlich sein. Das Programm sieht zwingend die sogenannte „Zustandsvariable“ vor, der im Laufe der Arbeit Werte zugewiesen werden, die den Nummern der aktuellen Zustände entsprechen. In komplexen Programmen kann es mehrere solcher Variablen geben. In vielen Programmiersprachen können Sie numerischen Werten symbolische Namen geben. Dies kann weit verbreitet sein, da eine Zeile in einem Programm, die einer Variablen den Wert RABOTA zuweist, viel visueller ist als eine Zeile, die beispielsweise den Wert 6 zuweist.

Auf Abb. In Abb. 6 ist ein typisches Blockdiagramm des Steueralgorithmus in seiner allgemeinsten Form dargestellt. Nach der Initialisierung läuft das Programm zyklisch. Nach dem Parsen der Zustandsvariablen führt es in jedem Zyklus die entsprechende Prozedur aus. Eine Zustandsänderung des Automaten wird dadurch angezeigt, dass der Zustandsvariablen ein neuer Wert zugewiesen wird, wodurch im nächsten Zyklus ein weiterer Vorgang durchgeführt wird.

Wir entwerfen Geräte auf Mikrocontrollern

Die Prozeduren, die jeden Zustand des Automaten implementieren, sind nach Blockdiagrammen aufgebaut, die denen in Abb. ähneln. 7. Zunächst werden äußere Einflüsse (Ereignisse) analysiert. Als nächstes wird der Prozess in so viele Zweige unterteilt, wie Bögen aus dem entsprechenden Scheitelpunkt des Automatengraphen ausgehen, jeder von ihnen sorgt für die Ausführung der für die Implementierung dieses Übergangs erforderlichen Funktionen, und schließlich wird der Zustandsvariablen a zugewiesen Wert gleich der Nummer des Scheitelpunkts, auf den der Bogen gerichtet ist. Auch ein anderer Ansatz ist möglich: Zuerst werden die in den Scheitelpunkt eintretenden Bögen umgesetzt und dann reagieren sie auf die Stöße. Sein Hauptnachteil besteht darin, dass das Programm „wissen“ muss, aus welchem ​​Zustand der Automat in den gegebenen Zustand übergegangen ist, was im vorherigen Fall nicht erforderlich war.

Wir entwerfen Geräte auf Mikrocontrollern

Bitte beachten Sie, dass in Abb. Abbildung 7 zeigt zwei mögliche Ausstiege aus dem Zustandsverfahren. Im ersten Fall werden Ereignisse zyklisch analysiert, bis eines davon gefunden wird, was zu einem Verlassen des gegebenen Zustands führt. Im zweiten Fall – wenn keiner dieser Einflüsse vorhanden ist. Der Vorgang endet wie durch die gestrichelte Linie dargestellt.

Wenn es nur wenige äußere Einflüsse gibt und die Reaktion darauf in jedem Zustand spezifisch ist, sind die Ereigniserkennungsverfahren in den Zustandsverarbeitungsblöcken enthalten. Beispielsweise kann überprüft werden, ob die „START“-Taste nur in dem Zustand gedrückt wird, in dem die Maschine darauf reagieren soll. Häufig wird das Ereignisfilterverfahren in der Hauptschleife platziert (in Abb. 6 durch eine gestrichelte Linie dargestellt) und eine Variable bereitgestellt, der ein Wert zugewiesen wird, der eindeutig mit dem aufgetretenen Ereignis verknüpft ist. Das Ergebnis der Abfrage der Tastatur ist beispielsweise der Code der gedrückten Taste. Analysieren Sie im Zustandsverarbeitungsblock, der gemäß der zweiten der oben genannten Optionen ausgeführt wird, nur den Wert dieser Variablen.

Im Gegensatz zum theoretischen Modell treten reale Ereignisse häufig gleichzeitig auf. In einer solchen Situation muss der Automat zunächst auf das Ereignis reagieren, das die höchste Priorität hat. Der einfachste Weg zur Priorisierung besteht darin, die richtige Reihenfolge für die Analyse von Ereignissen zu wählen. Beispielsweise gemäß dem Blockdiagramm in Abb. 7, Ereignis X1 hat die höchste Priorität. der niedrigste - bei HZ. Wenn Ereignisse mit hoher Priorität viel häufiger auftreten als Ereignisse mit niedriger Priorität, erreicht die Warteschlange möglicherweise nie die letzten Ereignisse. Um dies zu vermeiden, sollte seltenen Ereignissen höchste Priorität eingeräumt werden. Manchmal muss die Verteilung des letzteren geändert werden, während das Programm läuft, indem beispielsweise jedes neu verarbeitete Ereignis an das Ende der Warteschlange gestellt wird.

Das unvorhersehbare Verhalten des Systems beim MK ist oft auf Rauschen oder Prellen der Kontakte der Bedienelemente zurückzuführen. Solche falschen Ereignisse müssen mithilfe von Softwarefiltern „aussortiert“ werden. Um ein Ereignis als stattgefunden zu erkennen, reicht es in den meisten Fällen aus, sicherzustellen, dass der logische Pegel des Signals am entsprechenden Eingang des MK für eine bestimmte Zeit unverändert bleibt. In kritischen Fällen kommen komplexere Verfahren zum Einsatz.

Unter den vielen Ereignissen lässt sich oft ein „Notfall“ herausgreifen, auf den sofort reagiert werden sollte. Ein typisches Beispiel. Um den Moment, in dem der Timer abläuft, nicht zu verpassen, muss das Programm ständig den Zustand seines Registers überprüfen und darf bis zum Ablauf des Timers nichts anderes tun. Das vom Timer am Ende der Zählung erzeugte Interrupt-Anforderungssignal löst das Problem. Indem man es akzeptiert. Der MC fährt sofort (zumindest viel schneller als bei der normalen Softwareverarbeitung desselben Ereignisses) mit der Ausführung der Interrupt-Serviceroutine fort, deren Adresse (Vektor) in speziell zugewiesenen Programmspeicherzellen angegeben werden muss.

Die überwiegende Mehrheit der Mikrocontroller verfügt über eine Vorrichtung zur Prioritätsvektorunterbrechung des ausgeführten Programms. Interrupts können entweder extern oder intern sein. Im letzteren Fall verfügt der Interrupt-Request-Eingang über keinen externen Ausgang, sondern ist mit einer Request-Quelle direkt auf dem MK-Chip verbunden. Normalerweise werden interne Interrupts nicht nur vom Timer bereitgestellt, sondern auch von anderen in diesen MK integrierten Geräten: serielle Port-Controller, analoge Signalkomparatoren, Analog-Digital-Wandler.

Oftmals ist einer der internen Interrupts moderner MKs mit dem sogenannten Watchdog-Timer (Watch Dog) verbunden, der dem Schutz vor unbeabsichtigten Ausfällen dient. Dieser Timer erfordert eine Konstante

Initialisierung durch Schreiben eines bestimmten Codes an eine bestimmte Stelle im Adressraum. Das MC-Programm ist so aufgebaut, dass ein solcher Vorgang im normalen Ablauf häufig durchgeführt wird. Wenn der MK „hängt“, stoppt die Initialisierung des Watchdog-Timers und nach einer Weile sendet er seine Interrupt-Anfrage, deren Verarbeitung darauf abzielt, den normalen Betrieb des Systems wiederherzustellen. Normalerweise ist die Reaktion auf einen Watchdog-Interrupt dieselbe. als externes Signal, das den MK in seinen ursprünglichen Zustand versetzt.

Interrupts werden gesteuert, indem sie je nach Status des implementierten Automaten aktiviert oder deaktiviert werden. Wenn derselbe Interrupt in verschiedenen Zuständen unterschiedlich verarbeitet werden muss, ist die Verarbeitungsprozedur wie die Hauptprogrammschleife aufgebaut und ermöglicht darin eine Zustandsanalyse. Der Unterschied ist. dass ein solches Verfahren nicht in einem Ring geschlossen ist. Nach Abschluss führt der MK das Programm an der Stelle weiter aus, an der es unterbrochen wurde. Dies ist fehlerbehaftet, da in einem Zustand, der sich durch die Interrupt-Behandlung geändert hat, die Fortsetzung unterbrochener Aktionen zu einem falschen Ergebnis führen kann. Sie schützen sich vor solchen Fehlern, indem sie Interrupts während der Ausführung kritischer Programmabschnitte deaktivieren. verlangsamt zweifellos die Reaktion des Systems.

Wenn im System mehr Interrupt-Anforderungsquellen vorhanden sind, als MC-Eingänge dafür vorgesehen sind, wird eine Gruppenanforderung in Hardware implementiert, indem die Ausgänge mehrerer Quellen nach dem ODER-Schema kombiniert werden. Indem Sie eine solche Anfrage annehmen. Der MC ist verpflichtet, den Absender zu ermitteln und entsprechend zu bearbeiten.

Der gesamte Algorithmus des Geräts wird manchmal durch eine Reihe von Interrupt-Verarbeitungsroutinen implementiert. In diesem Fall zerfällt die Hauptschleife in mehrere Maschinenanweisungen, bis hin zu einer einzigen bedingungslosen Sprunganweisung für sich selbst. Viele MKs stellen speziell HALT- oder IDLE-Befehle bereit, für die sie. praktisch nicht mehr funktionieren (manchmal schaltet sich sogar der Taktgenerator aus). Nur die empfangene Interrupt-Anfrage kann den MK aus diesem Zustand bringen. Die Bearbeitung der Anfrage ist abgeschlossen. Der MC führt den unbedingten Übergang zum in der Hauptschleife bereitgestellten Stoppbefehl durch und „schläft“ wieder ein. Dieser Modus ist sehr sparsam, da der Stromverbrauch des gestoppten MK um ein Vielfaches abnimmt und erst bei der Reaktion auf äußere Einflüsse zunimmt.

Das unter Berücksichtigung des oben Gesagten entwickelte Blockdiagramm des Lüftermotor-Steuerungsalgorithmus besteht aus zwei Teilen, die in Abb. dargestellt sind. 8 (Hauptschleife) und Abb. 9 (Behandlung des Interrupts vom Timer). Beide entsprechen im Wesentlichen den oben besprochenen typischen Blockdiagrammen, mit der Ausnahme, dass dieselben Operationen kombiniert werden, die bei der Verarbeitung verschiedener Ereignisse ausgeführt werden. Der Timer-Interrupt-Handler generiert PWM- und S-Signale. Beim Übergang vom STOP-Zustand in den RUN-Zustand wird der Interrupt aktiviert und bei der Rückkehr in den STOP-Zustand deaktiviert.

Wir entwerfen Geräte auf Mikrocontrollern

Das Programm verfügt nun über eine Zustandsvariable ST, der der Übersichtlichkeit halber Stringwerte zugewiesen sind – die Namen der entsprechenden Zustände. Wie oben erwähnt, handelt es sich im Programm um Zahlen – Staatsnummern oder deren symbolische Namen. Die der Variablen N0 zugewiesenen Werte werden unter der Annahme ausgewählt, dass die Wiederholungsperioden der erzeugten Impulse PWR und S gleich sind und 1 ms betragen. Wenn nicht. Das Blockdiagramm muss leicht geändert werden.

Wir entwerfen Geräte auf Mikrocontrollern

Jetzt können Sie mit der Auswahl des MK, der Verteilung der Ein- und Ausgangssignale auf seine Ausgänge und der Entwicklung eines vollständigen Schaltplans des Geräts fortfahren. Nachdem der Programmierer festgelegt hat, mit welchen externen Schaltkreisen die Bits eines bestimmten I/O-Ports des MK verbunden werden und welche logischen Pegel die Signale in diesen Schaltkreisen haben, kann er mit der Entwicklung des Programms beginnen.

Literatur

  1. Franke K. Einführung in Mikrocomputer: Per. mit ihm. - M.: Energoatomiedat. 1998.
  2. Kagan BM, Stashin VV Grundlagen des Entwurfs von Mikroprozessor-Automatisierungsgeräten. - M.: Energoatomiedat. 1987.
  3. Stashin VV, Urusov AV, Mologoitseva OF Entwerfen digitaler Geräte auf Single-Chip-Mikrocontrollern. - M.: Energoatomiedat. 1990.

Autor: M. Gladshtein, Rybinsk

Siehe andere Artikel Abschnitt Mikrocontroller.

Lesen und Schreiben nützlich Kommentare zu diesem Artikel.

<< Zurück

Neueste Nachrichten aus Wissenschaft und Technik, neue Elektronik:

Eine neue Möglichkeit, optische Signale zu steuern und zu manipulieren 05.05.2024

Die moderne Welt der Wissenschaft und Technik entwickelt sich rasant und jeden Tag tauchen neue Methoden und Technologien auf, die uns in verschiedenen Bereichen neue Perspektiven eröffnen. Eine dieser Innovationen ist die Entwicklung einer neuen Methode zur Steuerung optischer Signale durch deutsche Wissenschaftler, die zu erheblichen Fortschritten auf dem Gebiet der Photonik führen könnte. Neuere Forschungen haben es deutschen Wissenschaftlern ermöglicht, eine abstimmbare Wellenplatte in einem Wellenleiter aus Quarzglas zu schaffen. Dieses auf der Verwendung einer Flüssigkristallschicht basierende Verfahren ermöglicht es, die Polarisation des durch einen Wellenleiter fließenden Lichts effektiv zu ändern. Dieser technologische Durchbruch eröffnet neue Perspektiven für die Entwicklung kompakter und effizienter photonischer Geräte, die große Datenmengen verarbeiten können. Die durch die neue Methode bereitgestellte elektrooptische Steuerung der Polarisation könnte die Grundlage für eine neue Klasse integrierter photonischer Geräte bilden. Dies eröffnet große Chancen für ... >>

Primium Seneca-Tastatur 05.05.2024

Tastaturen sind ein fester Bestandteil unserer täglichen Arbeit am Computer. Eines der Hauptprobleme für Nutzer ist jedoch der Lärm, insbesondere bei Premium-Modellen. Doch mit der neuen Seneca-Tastatur von Norbauer & Co könnte sich das ändern. Seneca ist nicht nur eine Tastatur, es ist das Ergebnis von fünf Jahren Entwicklungsarbeit, um das perfekte Gerät zu schaffen. Jeder Aspekt dieser Tastatur, von den akustischen Eigenschaften bis hin zu den mechanischen Eigenschaften, wurde sorgfältig durchdacht und ausbalanciert. Eines der Hauptmerkmale von Seneca sind seine leisen Stabilisatoren, die das bei vielen Tastaturen auftretende Geräuschproblem lösen. Darüber hinaus unterstützt die Tastatur verschiedene Tastenbreiten, sodass sie für jeden Benutzer bequem ist. Obwohl Seneca noch nicht käuflich zu erwerben ist, ist die Veröffentlichung für Spätsommer geplant. Seneca von Norbauer & Co setzt neue Maßstäbe im Tastaturdesign. Ihr ... >>

Das höchste astronomische Observatorium der Welt wurde eröffnet 04.05.2024

Die Erforschung des Weltraums und seiner Geheimnisse ist eine Aufgabe, die die Aufmerksamkeit von Astronomen aus aller Welt auf sich zieht. In der frischen Luft der hohen Berge, fernab der Lichtverschmutzung der Städte, enthüllen die Sterne und Planeten ihre Geheimnisse mit größerer Klarheit. Mit der Eröffnung des höchsten astronomischen Observatoriums der Welt – dem Atacama-Observatorium der Universität Tokio – wird eine neue Seite in der Geschichte der Astronomie aufgeschlagen. Das Atacama-Observatorium auf einer Höhe von 5640 Metern über dem Meeresspiegel eröffnet Astronomen neue Möglichkeiten bei der Erforschung des Weltraums. Dieser Standort ist zum höchstgelegenen Standort für ein bodengestütztes Teleskop geworden und bietet Forschern ein einzigartiges Werkzeug zur Untersuchung von Infrarotwellen im Universum. Obwohl der Standort in großer Höhe für einen klareren Himmel und weniger Störungen durch die Atmosphäre sorgt, stellt der Bau eines Observatoriums auf einem hohen Berg enorme Schwierigkeiten und Herausforderungen dar. Doch trotz der Schwierigkeiten eröffnet das neue Observatorium den Astronomen vielfältige Forschungsperspektiven. ... >>

Zufällige Neuigkeiten aus dem Archiv

Das Gedächtnis der Menschen funktioniert im Dunkeln besser. 16.05.2017

Amerikanische Wissenschaftler haben herausgefunden, dass das menschliche Gedächtnis mit geschlossenen Augen viel besser funktioniert.

Die Forscher wollten herausfinden, ob das menschliche Gedächtnis wirklich am besten mit geschlossenen Augen und im Dunkeln funktioniert. Einer Gruppe von Freiwilligen wurde ein Film gezeigt, den sie noch nie zuvor gesehen hatten. Nach Ende der Besichtigung erzählten alle Versuchsteilnehmer ausführlich von den im Film gezeigten Ereignissen.

Das Experiment bestand darin, Menschen in Gruppen einzuteilen. Eine von ihnen durfte die Augen schließen, während sie sich an die Momente des Films erinnerte, während die anderen dies nicht durften. Beim Vergleich der erzielten Ergebnisse stellte sich heraus, dass eine Person durch Schließen der Augen ihr Gedächtnis aktiviert. Alle, die dies taten, erinnerten sich viel mehr an das gerade angesehene Material als die anderen. So haben Wissenschaftler bewiesen, dass Menschen im Dunkeln oder mit geschlossenen Augen tatsächlich in der Lage sind, das Gedächtnis zu aktivieren und sich besser zu konzentrieren.

Weitere interessante Neuigkeiten:

▪ Wasserwerfer für U-Boote

▪ Elektrofahrrad ADO A20

▪ EVGA GeForce GTX 980 Hybrid-Grafikkarte

▪ 56-Gbit/s-In-System-Schnittstellenempfänger

▪ Kehre zu Edison zurück

News-Feed von Wissenschaft und Technologie, neue Elektronik

 

Interessante Materialien der Freien Technischen Bibliothek:

▪ Abschnitt der Website. Lustige Rätsel. Artikelauswahl

▪ Artikel Tonbandgerät. Geschichte der Erfindung und Produktion

▪ Artikel Was ist eine Molluske? Ausführliche Antwort

▪ Artikel Topinambur. Legenden, Kultivierung, Anwendungsmethoden

▪ Artikel Netzteil mit sanfter Spannungsumkehr. Enzyklopädie der Funkelektronik und Elektrotechnik

▪ Artikel Batterietester. Enzyklopädie der Funkelektronik und Elektrotechnik

Hinterlasse deinen Kommentar zu diesem Artikel:

Name:


E-Mail optional):


Kommentar:





Alle Sprachen dieser Seite

Startseite | Bibliothek | Artikel | Sitemap | Site-Überprüfungen

www.diagramm.com.ua

www.diagramm.com.ua
2000-2024