Wie Firmwares kommuniziert mit den elektronischen Geräten in seine Operationen durchführen?

StackOverflow https://stackoverflow.com/questions/1761334

  •  21-09-2019
  •  | 
  •  

Frage

Fast alle elektronischen Geräte kommen mit Firmwares. Ich weiß, dass es in ROM gespeichert (Read Only Memory), so wird es nicht-flüchtig (keine Stromquelle, den Inhalt von immer gelöscht wie RAM halten erforderlich)

Was ich wissen will, ist: „Wie Firmwares zu den elektronischen Geräten kommunizieren ihre Operationen durchführen?“ Lassen Sie sagen, es gibt eine kleine Rolle .. Auf Knopfdruck, wie sie macht es sich zu bewegen? Kann jemand bitte erklären, was hinter, aufhält, um sie geschehen .. Ich denke, es kann ein wenig kurze Erklärung erfordern es zu entspannen ..

Auch was ist die beliebteste Sprache für Firmwares Codierung?

War es hilfreich?

Lösung

Moderne Hardware wie Sie beschreiben, hat ein Programm im ROM gespeichert und einen Universal-Mikrocomputer (CPU) ausgeführt wird, das Programm.

Die CPU liest Informationen aus dem ROM durch Adressen auf seinem Adressbus Einrichten und dann fragen das ROM ihm zu sagen, das an dieser Stelle gespeicherten Wert. Es gibt so etwas wie ein Leseimpuls (auf einer separaten Zeile) angehoben wird, um den ROM zu sagen, der Wert zugänglich auf den Leitungen des Datenbusses zu machen. Das, auf den Punkt gebracht, ist das Lesen.

die Hardware zu bekommen, etwas zu tun, führt die CPU im Grunde eine Art von Schreiboperation. Es setzt einen Wert, der nur ein Haufen von Bits ist, wenn man es auf diese Art und Weise, auf dem Adreßbus suchen möge ein bestimmtes Gerät auswählen und vielleicht Funktion auf diesem Gerät, dann wirft sie eine andere Signalleitung sagen: „Schreib!“ Das Gerät, das seine Adresse auf dem Adreßbus reagiert auf dieses Signal erkennt, indem er die Daten von dem Datenbus zu akzeptieren und dann Durchführen, was auch immer seine Funktion ist. Typischerweise wird eines der Datenbus-Bits innerhalb der Ausgabevorrichtung mit einer Leistungsausgangsstufe, dh ein Transistor stärker ist als die, die nur für die Berechnung verwendet, angeschlossen werden, und daß der Transistor wird einige elektrische Gerät Strom ausreicht, um es zu bewegen / glow verbinden / was auch immer.

Tiny, billige Geräte sind in Assembler codiert Kosten für ROM zu speichern; in industriellen Mengen, auch geringe Mengen an Speicher kann Preis beeinflussen. Die Assembler-Sprache ist spezifisch für die CPU; einige Chips „8051“, „6502“ und „Atmel (etwas oder andere)“ sind beliebte genannt. Größere Geräte mit komplexeren Anforderungen können ihre Firmware in C geschrieben haben oder eine C-ähnliche Dialekt, der ein wenig einfacher als Assembler macht die Programmierung. Die bigges ganz nah, sogar C ++ Code ausführen. Zusammengestellt, natürlich.

Andere Tipps

In den meisten Systemen gibt es spezielle Speicheradressen, die für I / O verwendet werden. Das Lesen und Schreiben auf solche Adressen führt eine Funktion statt nur Daten um zu bewegen. In x86-Systemen gibt es auch spezielle E / A-Befehle IN und OUT für die.

Der einfachste Fall ist allgemein parallel I / O (GPIO) genannt, wo Sie direkt Datenschreib von / zu externen elektrischen Pins auf dem Gerät gelesen oder kann. Es gibt mehrere Speicheradressen, die so genannte Register, wo man Daten aus dem Port (Spannung nahe 0 = 0 ist, in der Nähe von Versorgungsspannung = 1) lesen, wo die Daten zum Port schreiben kann, und wo man definiert werden, ob ein bestimmter Stift Eingang (das entsprechende Bit typischerweise 0) oder Ausgang (das Bit ist 1). Jeder Mikrocontroller hat GPIO.

Also in Ihrem Beispiel könnten Sie die Taste mit einem Stift-Set-Eingang angeschlossen werden, die die Software spüren kann. Es wäre dies alle 10 ms typischerweise tun und nur reagieren, wenn es einen stabilen Wert hat für mehrere liest, diese Entprellung genannt wird. Dann wäre es ein 1 bis zu einem gewissen Ausgang schreiben, die über eine gewissen Transistor zur Verstärkung eines Motor fahren könnten. Wenn er spürt, dass Sie den Schalter loslassen, den Motor wieder aus durch ein 0 zu schreiben und so weiter drehen könnte, würde dieses Programm laufen, bis Sie das Gerät ausschalten.

Es gibt viele andere I / O-Geräte für andere Zwecke mit in der Regel Hunderte von Registern für sie zu steuern. Wenn Sie mehr sehen wollen, können Sie das Datenblatt einiger Mikrocontroller suchen. Zum Beispiel, hier ist das Datenblatt ATtiny4 / 09.05 / 10 , ein sehr kleiner Controller aus der Atmel AVR-Familie.

Heute sind die meisten Firmware ist in C geschrieben, mit Ausnahme der kleinsten Geräte und für einen kleinen speziellen Code für Resets und Interrupts Handhabung, die in Assembler geschrieben wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top