A Study of GPIO Expansion Through Multiplexers and Shift Registers
Diese Studie zeigt auf, dass die Verwendung von 74HC4051-Multiplexern und kaskadierten 74HC595-Schieberegistern mit Mikrocontrollern wie dem Arduino Uno und dem ESP32 eine kosteneffiziente Lösung bietet, um die GPIO-Kapazität für IoT-Anwendungen erheblich zu erweitern, während gleichzeitig die daraus resultierenden Kompromisse in Bezug auf Ausführungsgeschwindigkeit, Stromverbrauch und Skalierbarkeit quantifiziert werden.
Originalarbeit lizenziert unter CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
In der Welt der kleinen Computer, die alles von intelligenten Thermostaten bis hin zu industriellen Sensoren antreiben, gibt es einen hartnäckigen Engpass: einen Mangel an Anschlusspunkten. Diese Geräte, bekannt als Mikrocontroller, sind die Gehirne moderner Elektronik, aber sie verfügen über eine feste Anzahl physischer Ports oder Pins, die es ihnen ermöglichen, mit der Außenwelt zu kommunizieren. Wenn ein Ingenieur möchte, eine Dutzend Lichter, eine Handvoll Temperatursensoren und einige Knöpfe an einen einzigen Chip anschließen, gehen ihm oft die Plätze zum Einstecken aus. Die Standardlösung besteht darin, einfach einen teureren Chip mit mehr Ports zu kaufen, aber das erhöht Kosten und Komplexität. Ein eleganterer Ansatz besteht darin, einfache, kostengünstige Hilfschips zu verwenden, die als Verkehrsleiter fungieren und es ermöglichen, dass viele Geräte eine einzige Verbindung teilen. Zwei solche Helfer sind der analoge Multiplexer, der wie eine Vermittlungsstelle fungiert, die verschiedene Eingangslinien zu einem einzelnen Empfänger leitet, und das Schieberegister, das wie ein Förderband funktioniert, indem es Daten Stück für Stück aufnimmt und sie alle auf einmal freigibt, um viele Ausgänge zu steuern. Die Herausforderung bestand schon immer darin, genau zu verstehen, wie viel diese Helfer einsparen, wie schnell sie arbeiten und ob sie zu viel Strom verbrauchen, wenn das System groß wird.
Eine aktuelle Studie des unabhängigen Forschers Chandramouli Haldar setzte sich zum Ziel, diese Abwägungen mit Präzision zu messen und dabei über die Theorie hinauszugehen, um zu sehen, wie diese Komponenten unter realen Bedingungen abschneiden. Die Forschung konzentrierte sich auf zwei spezifische Hilfschips: den 74HC4051, der Eingangssignale verwaltet, und den 74HC595, der Ausgangssignale verwaltet. Der Forscher testete diese Komponenten mit zwei gängigen Arten von Mikrocontroller-Boards, dem Arduino Uno und dem ESP32, die sowohl von Hobbyisten als als auch von Profis gleichermaßen verwendet werden. Das Ziel war festzustellen, ob diese einfachen, kostengünstigen Teile die Fähigkeiten eines kleinen Computers effektiv erweitern können, ohne ihn zu verlangsamen oder zu viel Energie zu verbrauchen. Die Studie erfand keine neue Technologie, sondern bot vielmehr einen fundierten, direkten Vergleich darüber, wie diese etablierten Werkzeuge abschneiden, wenn sie an ihre Grenzen gebracht werden, und lieferte damit einen klaren Leitfaden für jeden, der versucht, komplexe Systeme mit begrenzten Ressourcen zu bauen.
Die Experimente zeigten, dass diese Hilfschips bemerkenswert effizient darin sind, die Fähigkeiten eines Mikrocontrollers auszureizen. Als der Forscher acht analoge Sensoren direkt an den Computer anschloss, war dies acht separate Pins erforderlich. Durch die Verwendung eines einzigen 74HC4051-Multiplexers konnten dieselben acht Sensoren mit nur vier Pins ausgelesen werden, was den Hardwarebedarf effektiv halbierte. Die Ergebnisse waren noch beeindruckender für digitale Ausgänge, wie etwa die Steuerung von Lichtern oder Schaltern. Ein einziger 74HC595-Schieberegister konnte acht Geräte mit nur drei Pins steuern. Als der Forscher vier dieser Chips in einer Kette verband, konnte er zweiunddreißig Geräte steuern, während er immer noch dieselben drei Pins verwendete. Durch das Verbinden von acht Chips in einer Kette konnte das System zweiundsechzig Ausgänge verwalten, ohne zusätzliche Verbindungspunkte am Hauptcomputer zu benötigen. Dies demonstrierte, dass eine kleine, feste Anzahl von Pins eine große Anzahl von Geräten steuern kann, vorausgesetzt, das System ist bereit, die Daten sequenziell statt alle gleichzeitig zu verarbeiten.
Diese Erweiterung geht jedoch mit einem Preis in der Geschwindigkeit einher, und die Studie hat quantifiziert, wie viel langsamer das System dadurch wird. Der Forscher fand heraus, dass die Verwendung von Standard-Softwarebefehlen zur Steuerung dieser Chips signifikant langsamer war als die Verwendung von direkten, Low-Level-Befehlen, die direkt mit der internen Hardware des Computers sprechen. Auf dem Arduino Uno dauerte ein Standardbefehl zum Umschalten eines einzelnen Pins etwa 7,28 Mikrosekunden, während ein direkter Hardwarebefehl diese Zeit auf nur 0,125 Mikrosekunden reduzierte, was die Operation fast sechzigmal schneller machte. Dieser Unterschied wurde besonders kritisch beim Aktualisieren großer Gruppen von Lichtern. Das Aktualisieren von zweiunddreißig Ausgängen mittels Standardsoftware dauerte über 1,7 Millisekunden, während die direkte Methode dieselbe Aufgabe in nur 30 Mikrosekunden abschloss. Das ESP32-Board, das von Natur aus schneller ist, zeigte ähnliche Verbesserungen, obwohl die Lücke zwischen Standard- und Direktsteuerung kleiner war als beim langsameren Arduino. Die Studie kam zu dem Schluss, dass zwar die Hardware-Erweiterung gut funktioniert, die Geschwindigkeit der Steuerungssoftware jedoch genauso wichtig ist wie die Chips selbst.
Der Stromverbrauch war ein weiterer Schlüsselfaktor, und die Ergebnisse hier waren beruhigend. Der Forscher maß den Stromverbrauch des Systems mit und ohne die Erweiterungschips. Das Hinzufügen eines einzelnen Multiplexers erhöhte den Stromverbrauch um weniger als ein Prozent. Selbst als acht Schieberegister angeschlossen wurden, um zweiundsechzig Geräte zu steuern, betrug der gesamte Stromanstieg weniger als acht Prozent. Dies deutet darauf hin, dass die Hilfschips selbst sehr effizient sind und die Batterie des Systems nicht signifikant entladen. Die Studie merkte jedoch an, dass der tatsächliche Stromverbrauch stark davon abhängt, was die Geräte tun; wenn alle zweiundsechzig Lichter mit voller Helligkeit leuchten würden, wäre der Strombedarf der Lichter selbst weitaus höher als der winzige Overhead der Steuerchips. Die Forschung bestätigte, dass die Erweiterungsmethode für batteriebetriebene Geräte praktikabel ist, sofern die Last korrekt verwaltet wird.
Die Studie untersuchte auch, wie weit diese Kette von Chips erweitert werden kann, bevor sie unzuverlässig wird. Der Forscher testete eine Kette von acht Chips und stellte fest, dass sie perfekt funktionierte, berechnete aber auch, was bei noch längeren Ketten passieren würde. Er ermittelte, dass während die Anzahl der steuerbaren Geräte mit jedem hinzugefügten Chip linear wächst, auch die Zeit, die benötigt wird, um ein Signal an das Ende der Kette zu senden, zunimmt. Für eine Kette von zweiunddreißig Chips würde das Signal länger brauchen, um durch die gesamte Linie zu reisen, was verzögern könnte, wie schnell die Lichter oder Schalter reagieren. Die Forschung zeigte, dass diese Verzögerungen für die meisten praktischen Anwendungen, wie die Steuerung einer Reihe von Lichtern oder das Auslesen einer Bank von Sensoren, vernachlässigbar sind. Aber für Systeme, die sofortige, gleichzeitige Änderungen an hunderten von Geräten erfordern, wird die sequentielle Natur der Schieberegister zu einem limitierenden Faktor.
Letztendlich bietet diese Arbeit eine klare, datengestützte Roadmap für Ingenieure und Maker, die viele Geräte an einen kleinen Computer anschließen müssen. Sie bestätigt, dass die Verwendung von Multiplexern und Schieberegistern eine hocheffektive Methode ist, um die physischen Grenzen der Mikrocontroller-Pins zu überwinden, wobei eine massive Kapazitätssteigerung zu einem sehr geringen Preis in der Leistung und einem handhabbaren Kompromiss in der Geschwindigkeit geboten wird. Die Studie betont, dass die besten Ergebnisse durch die Kombination dieser einfachen Hardwarewerkzeuge mit optimierter Software erzielt werden, die direkt mit der Hardware des Computers spricht. Durch das Verständnis dieser spezifischen Grenzen und Vorteile können Entwickler Systeme entwerfen, die sowohl expansiv als auch effizient sind, und so einen kleinen Chip mit wenigen Pins in einen leistungsstarken Controller verwandeln, der in der Lage ist, ein komplexes Netzwerk von Sensoren und Geräten zu verwalten.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.