Schritt für Schritt Anleitung zur Mikrocontroller-Programmierung

Dies ist eine Schritt-für-Schritt-Anleitung für diejenigen, die mit der Mikrocontroller-Programmierung beginnen möchten. Der Artikel beginnt mit der Einführung einiger grundlegender Begriffe, die im Handbuch verwendet werden, einer Liste von Tools, Programmiersprachen und am Ende einem Beispiel für einen herunterladbaren Code mit einer Schritt-für-Schritt-Anleitung, mit der Sie die Mikrocontroller-Programmierung üben können.

Aber bevor Sie in die Mikrocontroller-Programmierung eintauchen. Definieren wir die ersten beiden Grundbegriffe: Hardware und Software.

Hardware besteht aus den physischen Komponenten des Systems wie Chips, Tastatur, Maus, Monitor, Speicher und E / A-Geräten. Hardware ist im Vergleich zu Software schwieriger zu entwickeln, muss für sehr spezifische Anwendungen entwickelt werden und ist eine sehr effiziente und perfekte Lösung in Hochgeschwindigkeitssystemen.

Software sind die nicht-physischen Komponenten oder Anwendungen, die auf der Hardware ausgeführt werden, z. B. Betriebssysteme, Computerspiele und Netzwerkanwendungen. Software ist in hohem Maße konfigurierbar, einfach und schneller zu entwickeln und im Vergleich zur Hardware auch sehr günstig.

Was ist ein Mikrocontroller

Um zu verstehen, was ein Mikrocontroller ist, müssen wir zuerst verstehen, was ein Mikroprozessor oder eine CPU ist (Zentraleinheit). Eine CPU ist das Herz eines jeden Computersystems, es ist wie das menschliche Gehirn, wenn es eine Aufgabe ausführt. Wir können es grundsätzlich in zwei wesentliche Teile unterteilen:

Steuereinheit: Diese Einheit wird verwendet, um die Daten aus dem Speicher abzurufen.

Ausführungseinheit: Diese Einheit wird zum Ausführen oder Ausführen der Daten verwendet.

Prozessortypen

Es gibt viele Kategorien von Prozessoren, z. B. Allzweckprozessoren, anwendungsspezifische Systemprozessoren und Multiprozessorsysteme. Allzweckprozessor hat viele Arten:

▪ Mikroprozessor

▪ Mikrocontroller

▪ Eingebetteter Prozessor

▪ Digitaler Signalprozessor

Mikroprozessor ist ein Halbleiterbauelement oder ein Computer auf einem Chip, aber kein voll funktionsfähiger Computer. Seine zentrale Prozessoreinheit enthält

▪ ALU

▪ Programmzähler

▪ Register

▪ Andere Schaltungen (Taktzeit, Interrupt)

Ein Mikrocontroller ist ein IC, der einen Mikroprozessor und einige Peripheriegeräte enthält, um ein vollständiger funktionaler Computer zu sein, Peripheriegeräte, z. B. ADC, RAM, ROM, DAC.

Geschichte des Mikrocontrollers

Ursprünglich war die Intel Corporation der erste Hersteller von Mikrocontrollern. Der erste Mikrocontroller wurde 1971 in den USA produziert. Es war ein 4-Bit-Mikrocontroller mit dem Namen i4004. Zuletzt produzierte Intel in dieser Zeit anspruchsvollere Modelle mit einem 8-Bit-Mikrocontroller und danach wurde ein 12-Bit-Mikrocontroller von Toshiba entwickelt.

Anwendungen von Mikrocontrollern

Mikrocontroller haben viele Anwendungen in vielen Branchen, z. B. Automobil, Medizin, Industrieautomation, Luft- und Raumfahrt, Robotik.

In der Automobilindustrie zum Beispiel verfügen moderne Autos heutzutage über mehr als 100 Mikroprozessoren für Systeme wie Klimaanlage, ABS, EBD und auch ADAS oder fortschrittliche Fahrassistenzsysteme wie adaptive Curies Controller und Lane Assist.

Im medizinischen Bereich gibt es medizinische Geräte, die Mikrocontroller wie ein MRT, ein Glukosetestset und ein tragbares EKG enthalten. Das folgende Bild ist ein Glukosetestgerät.

In der Luft- und Raumfahrt wurden die meisten Flugzeuge mit neuen Avioniksystemen unter Verwendung von Mikrocontrollern entwickelt. Darüber hinaus gibt es Flugsteuerungssysteme, Flugverkehrskontrollsysteme, Navigations- und Wettersysteme, die alle auf Mikrocontrollern basieren.

Beliebte Mikrocontroller

Es gibt viele Arten und Plattformen von Mikrocontrollern, aber die Auswahl eines Mikrocontrollers hängt von vielen Faktoren ab:

▪ Anwendung

▪ Budget

▪ Leistung

▪ Anzahl der GPIO—Pins

▪ Speichergröße

▪ Temperatur der Betriebsumgebung

▪ Stromverbrauch

AVR-Mikrocontroller

Das folgende Bild enthält ein Blockschaltbild von AVE12DA, einer der beliebtesten Mikrocontroller-Familien – dem AVR-Mikrocontroller:

AVR-Mikrocontroller werden von der Atmel Corporation (heute: Microchip), Atmel hat 6 familien von AVR mikrocontroller, 4 familien als allgemeine-zweck mikrocontroller und 2 als spezifische zweck mikrocontroller. Allzweck-Mikrocontroller sind:

▪ 8 Bit – Mega AVR

▪ 8 Bit – AT Tiny

▪ 8 & 16 bit-AVR Xmega

▪ 32 bit-AVR

Spezifische zweck mikrocontroller sind:

▪ Automotive AVR

▪ Batterie Management

Automotive AVR, von seinem namen, es wurde entwickelt für automotive anwendungen. Es kann unter sehr hohen Temperaturen bis zu 150 Celsius arbeiten und enthält Schutzsysteme für Kurzschlussprobleme.

Batterie management mikrocontroller ist entwickelt für batterie management systeme zu sichern laden und entladen operationen.

Beispiele von AVR Plattformen

▪ Arduino UNO

▪ Adafruit Blau obst Micro

▪ Raspduino

▪ Digispark Pro

ARM Mikroprozessor/Mikrocontroller

ARM mikroprozessor ist die beliebteste prozessor in die welt, vor allem in den Consumer-Anwendungen. Sie haben vielleicht ein ARM-Prozessor-basiertes Gerät, aber Sie wissen es nicht! ARM ist meist eine Schlüsselkomponente eines erfolgreichen 32-Bit-Embedded-Systems. Der erste ARM wurde 1985 entwickelt.

RISC Technologie

ARM ist verwendet RISC technologie, RISC steht für reduced instruction set computer, es ist eine design philosophie zu liefern einfache anweisungen innerhalb eines einzigen zyklus. Es hängt mehr von der Software ab. Auf der anderen Seite setzt die CISC-Technologie mehr auf die Hardware.

Die RISC-Technologie konzentriert sich auf die Reduzierung des Befehlssatzes des Prozessors. Auf der anderen Seite hat der CISC-Prozessor eine nicht feste Nummer des Befehlssatzes.

ARM-Funktionen

Arm bietet viele Funktionen für jeden Embedded-System-Designer, z. B. geringer Stromverbrauch aufgrund seiner kompakten Größe, auch hohe Codedichte ist ein weiteres Merkmal Da wir Embedded-Systeme entwickeln, werden wir in den meisten Fällen nur begrenzte Ressourcen haben.

Interne Struktur des ARM-basierten Mikrocontrollers

Diese Abbildung zeigt die interne Struktur der meisten ARM-basierten Geräte:

Die Kästchen repräsentieren Funktionen, die Linien Busse. Lassen Sie uns mehr über jede Komponente im Detail sprechen:

▪ Der ARM-Prozessor ist die Kernkomponente, die für die Verarbeitungsvorgänge verantwortlich ist

▪ Controller werden verwendet, um die Systemfunktionen als Speicher- und Interrupt-Controller zu koordinieren

▪ Peripheriegeräte werden verwendet, um die Systemein- und -ausgänge bereitzustellen

▪ Ein Bus dient zum Datenaustausch zwischen den verschiedenen Komponenten im System

Beispiele für ARM-Plattformen

Es gibt viele Geräte und Embedded-Plattformen, die ARM-Mikroprozessor z.

▪ Arduino Due

▪ Raspberry Pi

▪ STM32F103C8T6

▪ NXP LPC1768

Andere Mikrocontroller und Plattformen

Wie bereits erwähnt, hängt die Auswahl eines Mikrocontrollers oder einer Plattform von vielen Faktoren ab (Budget, Anzahl von Stiften usw.…). Es gibt auch andere Mikrocontroller und Plattformen, z.

▪ PIC-Mikrocontroller

▪ 8051

▪ ESP32

▪ Motorola Mikrocontroller

Mikrocontroller Software und Hardware Werkzeuge

Seit der schaffung der mikrocontroller, es haben viele arten von software und hardware entwicklung werkzeuge. Natürlich können einige der Tools für verschiedene Mikrocontrollertypen verwendet werden, andere sind jedoch sehr spezifisch für jeden Mikrocontroller. Bevor Sie mit der Mikrocontroller-Programmierung beginnen, sollten Sie sich mit den Mikrocontroller-Programmierwerkzeugen und nicht zuletzt mit dem Entwicklungsprozess vertraut machen.

Bei Verwendung eingebetteter Entwicklungstools benötigen wir möglicherweise folgende Tools:

Assembler

Es ist ein Softwaretool, das Ihren Quellcode in Assembly beispielsweise in Maschinencode konvertiert (GNU Assembler).

Compiler

Es ist ein Softwareprogramm, das Ihren Quellcode in einer höheren Programmiersprache in Assemblersprache oder Maschinencode umwandelt. Zusammenstellung kann sein:

▪ Native: Dies bedeutet, dass Sie den Compiler und den generierten Code auf demselben Computer ausführen

▪ Cross: Dies bedeutet, dass Sie den Compiler auf einem Computer ausführen und der generierte Code auf einem anderen Computer ausgeführt wird (Prozessorarchitektur).

Linker und Locator

Ein Linker ist ein Programm, das die Kompilierungen und Assemblierungsvorgänge sammelt und verknüpft und eine einzelne Exe erzeugt.

Ein Locator ist ein Programmwerkzeug, mit dem die Speicherzuordnung der Linkerausgabe geändert werden kann.

Simulator

Es ist ein Programm, das reale Szenario imitiert, erzeugt es eine Annäherung der Echtzeitsysteme. Ein Simulator wird verwendet:

▪ wenn die reale Hardware nicht verfügbar ist

▪ in gefährlichen Testumgebungen und Szenarien

Debugger

Es ist ein Softwareprogramm und Hardwaregerät, das an meinen PC an mein eingebettetes Ziel angeschlossen werden kann. Ein Debugger wird verwendet:

▪ zu set breakpoints

▪ zu verfolgen ausführung

▪ zu dump speicher

Hardware debugger kann

▪ in-circuit-debugger

▪ debug-agent software auf board

Flash loader

Es ist ein Programm und Hardware-Gerät, das verwendet werden kann, um:

▪ Programm ROM/Flash

▪ Uhr variablen

▪ Löschen ROM/Flash

Profiler

Profiler ist ein werkzeug, um monitor leistung der software code

Integrierte Entwicklung Umwelt

Es ist eine software programm, dass hat die meisten die werkzeuge alle in eins. Es kann

▪ Texteditoren

▪ Compiler

▪ Debugger

▪ Profiler

▪ Simulatoren

▪ Linker

Mikrocontroller-Softwaresprachen

Wir können sie klassifizieren in zwei Arten:

High-Level

▪ C / C ++

▪ Java

▪ Ada

Die Verwendung dieses Typs bietet eine Abstraktion von der Hardwareebene

Low-Level

Maschinencode

Es ist 0 und 1s und schwer von Menschen geschrieben werden, aber leicht für Computer zu verstehen

Assembly

Es ist ein mnemonischer Code und Pseudoanweisungen zur Verbesserung der Lesbarkeit

Beispiele:

Eine Anweisung besteht aus Mnemonic (Opcode) + Operanden

Opcode ist eine Operation, die von einem Maschinenprozessor ausgeführt wird

Operanden ist das endgültige Ziel; Der Opcode muss eine Operation ausführen.

Assemblersprache ist besser lesbar und verständlich als Maschinencode, aber Sie müssen sie auf einem bestimmten Prozessor verwenden und über Kenntnisse ihrer Architektur verfügen.

C/C ++ Programmierung Sprachen

High-level-sprachen haben die folgenden eigenschaften

▪ Einfach zu schreiben

▪ Flexible

▪ Prozessor unabhängige

▪ Hohe produktivität

Mikrocontroller Programmierung Beispiel Mit AVR ATMEGA16

ATmega 16 hat die folgenden eigenschaften:

▪ 16 Kb In-system Selbst programmierbare flash speicher

▪ 512 Bytes EEPROM

▪ 1 Kbyte Interne SRAM

▪ Programmierung Schloss für sicherheit

Peripherie Eigenschaften

▪ Echtzeit Zähler mit Separaten Oszillator

▪ Programmierbare Serielle USART

▪ Vier PWM Kanäle

▪ 8-kanal, 10-bit ADC

▪ Auf-chip Oszillator

▪ Power-auf Rest und Brown-out Erkennung

▪ Interne RC Oszillator und Unterbrechen Quellen

▪ Spannungen (von 2,7 v bis 5.5v)

LED-Blinkprogramm Beispiel mit ATmeg16 und Proteus

LED-Blinkprogramm in eingebetteten Systemen wie dem „hello World“ -Programm in der Anwendungsentwicklung. Im folgenden Beispiel lernen Sie den Proteus-Simulator kennen und verwenden ihn, um Ihr erstes Programm auszuführen. Um die Quelldateien herunterzuladen, gehen Sie bitte in diesen Ordner.

Schreiben Sie Ihr Programm mit Atmel studio

Nachdem Sie Ihre IDE heruntergeladen haben,

 mikrocontroller-Programmierung AVR

Öffnen Sie es und wählen Sie neues Projekt und wählen Sie den Speicherort der Hex-Datei wie im folgenden Bild

Mikrocontroller-Programmierung AVR

Der nächste Schritt ist die Auswahl der Mikrocontroller-Familie

Mikrocontroller-Programmierung AVR

Danach erhalten Sie das folgende Fenster mit Startercode

Mikrocontroller-Programmierung AVR

Und jetzt schreiben Sie bitte die folgenden code

 mikrocontroller programmierung AVR

Der nächste schritt ist gebäude ihre programm durch drücken von F7

mikrocontroller programmierung AVR

Nach, dass sie finden die hex datei auf die gewählte position

 mikrocontroller programmierung AVR

Der nächste Schritt ist die Verwendung des Proteus-Simulators

Erstellen Sie nun einen Schaltplan aus der ausgewählten a-Vorlage

Mikrocontroller-Programmierung AVR

Und wählen Sie Kein PCB-Layout erstellen

Mikrocontroller-Programmierung AVR

Schließlich sind wir fertig, aber wir müssen die Hex-Datei wie im folgenden Bild hinzufügen

Mikrocontroller-Programmierung AVR

Jetzt bearbeiten CKSEL Sicherungen

Mikrocontroller-Programmierung AVR

Speichern und klicken Sie auf play

Und Sie können sehen, dass die LED für 500ms (linke Seite) und für 500ms (rechte Seite) aus ist)

Programmerklärung Zeile für Zeile

Um die Quelldateien herunterzuladen, gehen Sie bitte in diesen Ordner.

#define f_CPU 100000UL // um eine Konstante zu erstellen und die Prozessorgeschwindigkeit zu wählen

#include <avr/io.h> // Abrufen einiger Dateien für Ein- und Ausgänge

#include <avr/delay.h> // Rufen Sie diese Datei auf, um Verzögerungsfunktionen zu verwenden

int main(void){ // die Startfunktion und das Hauptprogramm

DDRA = 0b0000001; // um den Pin a als Ausgang zu konfigurieren / /

While(1){ // um für immer zu schleifen

PORTA = 0b00000001 ; // zu machen die PA0 = 1 und ausgang 5 v (LED ist auf)

_delay_ms (500); // verzögerung für eine halbe sekunde

PA = 0b0000000; // zu machen die PA0 = 0 und ausgang 0 v (LED ist off)

_delay_ms (500); //verzögerung für eine halbe sekunde

}

rückkehr 0;

} // ende des Programms

Fazit

Heutzutage werden eingebettete Systeme in lebenswichtigen Produkten verwendet und können verwendet werden, um viele Menschen zu sichern und zu retten, wie im medizinischen Bereich und in anderen Anwendungen. Sie sollten weiter lernen, nachdem Sie einen Überblick und eine Einführung in die Mikrocontroller-Programmierung erhalten haben. Ihr nächster Schritt sollte das Erlernen von Embedded-Software-Design und echtzeitgesteuerten Systemen sein.

https://www.faa.gov/regulations_policies/handbooks_manuals/aviation/phak/

AVR-Mikrocontroller und eingebettete Systeme: Pearson New International Edition: Verwenden von Assembly und C, Muhammad Ali Mazidi, DeVry University

ARM System Developer’s Guide Entwerfen und Optimieren von Systemsoftware Ein Band in der Morgan Kaufmann-Reihe in Computer Architecture and Design Book • 2004

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht.