A Study of GPIO Expansion Through Multiplexers and Shift Registers
Deze studie toont aan dat het gebruik van 74HC4051-multiplexers en gekoppelde 74HC595-shiftregisters met microcontrollers zoals de Arduino Uno en ESP32 een kosteneffectieve oplossing biedt voor het aanzienlijk uitbreiden van de GPIO-capaciteit voor IoT-toepassingen, terwijl de resulterende afwegingen in executiesnelheid, energieverbruik en schaalbaarheid worden gekwantificeerd.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
In de wereld van kleine computers die alles van slimme thermostaten tot industriële sensoren aansturen, bestaat er een hardnekkige flessenhals: een tekort aan aansluitpunten. Deze apparaten, bekend als microcontrollers, zijn de hersenen van moderne elektronica, maar ze komen met een vast aantal fysieke poorten, of pinnen, waarmee ze met de buitenwereld kunnen communiceren. Wanneer een ingenieur een dozijn lampjes, een handvol temperatuursensoren en een paar knoppen aan een enkele chip wil aansluiten, loopt hij vaak tegen een tekort aan plekken aan om ze in te pluggen. De standaardoplossing is simpelweg een duurdere chip met meer poorten kopen, maar dat voegt kosten en complexiteit toe. Een elegantere aanpak houdt in dat men eenvoudige, goedkope hulpplantjes gebruikt die fungeren als verkeersregelaars, waardoor veel apparaten een enkele verbinding kunnen delen. Twee van dergelijke helpers zijn de analoge multiplexer, die werkt als een telefooncentrale die verschillende ingangslijnen naar één ontvanger routeert, en de verschuivingsregister (shift register), die functioneert als een lopende band die gegevens één voor één oppakt en ze vervolgens allemaal tegelijk vrijgeeft om vele uitgangen aan te sturen. De uitdaging is altijd geweest om precies te begrijpen hoeveel deze helpers besparen, hoe snel ze werken en of ze te veel stroom verbruiken wanneer het systeem groter wordt.
Een recente studie door onafhankelijk onderzoeker Chandramouli Haldar had als doel om deze afwegingen met precisie te meten, waarbij hij verder ging dan de theorie om te zien hoe deze componenten presteren onder real-world omstandigheden. Het onderzoek richtte zich op twee specifieke hulpchips: de 74HC4051, die ingangssignalen beheert, en de 74HC595, die uitgangssignalen beheert. De onderzoeker testte deze componenten met behulp van twee veelvoorkomende typen microcontrollerboards, de Arduino Uno en de ESP32, die zowel door hobbyisten als professionals breed worden gebruikt. Het doel was om te bepalen of deze eenvoudige, goedkope onderdelen de capaciteiten van een kleine computer effectief konden uitbreiden zonder deze te vertragen of te veel energie te verbruiken. De studie vond geen nieuwe technologie uit, maar bood eerder een rigoureuze, zij-aan-zij vergelijking van hoe deze gevestigde instrumenten presteren wanneer ze tot hun uiterste worden gedreven, wat een duidelijke gids biedt voor iedereen die complexe systemen probeert te bouwen met beperkte middelen.
De experimenten toonden aan dat deze hulpchips opmerkelijk efficiënt zijn in het uitbreiden van de mogelijkheden van een microcontroller. Wanneer de onderzoeker acht analoge sensoren rechtstreeks op de computer aansloot, vereiste dit acht afzonderlijke pinnen. Door gebruik te maken van een enkele 74HC4051 multiplexer, konden dezelfde acht sensoren worden uitgelezen met slechts vier pinnen, wat de hardwarevereiste effectief met de helft verminderde. De resultaten waren nog indrukwekkender voor digitale uitgangen, zoals het aansturen van lampjes of schakelaars. Een enkele 74HC595 verschuivingsregister kon acht apparaten aansturen met slechts drie pinnen. Wanneer de onderzoeker vier van deze chips in een keten verbond, konden ze tweeendertig apparaten aansturen terwijl ze nog steeds diezelfde drie pinnen gebruikten. Door acht chips in een keten te verbinden, kon het systeem zestienvenders uitgangen beheren zonder extra aansluitpunten op de hoofdcomputer nodig te hebben. Dit toonde aan dat een klein, vast aantal pinnen een groot aantal apparaten kan aansturen, mits het systeem bereid is de gegevens sequentieel in plaats van allemaal tegelijk te verwerken.
Deze uitbreiding gaat echter gepaard met een prijs in snelheid, en de studie kwantificeerde precies hoe veel langzamer het systeem wordt. De onderzoeker vond dat het gebruik van standaard softwarecommando's om deze chips aan te sturen aanzienlijk langzamer was dan het gebruik van directe, laag-niveau commando's die rechtstreeks met de interne hardware van de computer praten. Op de Arduino Uno duurde een standaardcommando om een enkele pin om te schakelen ongeveer 7,28 microseconden, maar een directe hardwarecommando verkortte die tijd tot slechts 0,125 microseconden, waardoor de operatie bijna zestig keer sneller was. Dit verschil werd nog kritischer bij het bijwerken van grote groepen lampjes. Het bijwerken van tweeendertig uitgangen met standaard software duurde meer dan 1,7 milliseconden, terwijl de directe methode dezelfde taak voltooide in slechts 30 microseconden. Het ESP32-board, dat van nature sneller is, vertoonde vergelijkbare verbeteringen, hoewel de kloof tussen standaard en directe besturing kleiner was dan bij de tragere Arduino. De studie concludeerde dat hoewel de hardware-uitbreiding goed werkt, de snelheid van de software die de chips aanstuurt net zo belangrijk is als de chips zelf.
Het stroomverbruik was een andere belangrijke factor, en de resultaten hiervoor waren geruststellend. De onderzoeker mat de elektriciteit die door het systeem wordt gebruikt met en zonder de uitbreidingschips. Het toevoegen van een enkele multiplexer verhoogde het stroomverbruik met minder dan één procent. Zelfs toen acht verschuivingsregisters werden verbonden om zestienvenders apparaten aan te sturen, was de totale stroomtoename minder dan acht procent. Dit suggereert dat de hulpchips zelf zeer efficiënt zijn en de batterij van het systeem niet significant leegtrekken. De studie merkte echter op dat het werkelijke stroomverbruik sterk afhangt van wat de apparaten doen; als alle zestienvenders lampjes op volle helderheid branden, zal de stroom die de lampen zelf vereisen de kleine overhead van de besturingschips ver overstijgen. Het onderzoek bevestigde dat de uitbreidingsmethode levensvatbaar is voor batterijgestuurde apparaten, mits de belasting correct wordt beheerd.
De studie keek ook naar hoe ver deze keten van chips uitgebreid kon worden voordat deze onbetrouwbaar werd. De onderzoeker testte een keten van acht chips en stelde vast dat deze perfect werkte, maar berekende ook wat er zou gebeuren met nog langere ketens. Zij bepaalden dat hoewel het aantal aanstuurbare apparaten lineair groeit met elke toegevoegde chip, de tijd die nodig is om een signaal naar het einde van de keten te sturen ook toeneemt. Voor een keten van tweeendertig chips zou het signaal langer nodig hebben om door de hele lijn te reizen, wat kan leiden tot een vertraging in hoe snel de lampen of schakelaars reageren. Het onderzoek toonde aan dat voor de meeste praktische toepassingen, zoals het aansturen van een rij lampen of het uitlezen van een bank aan sensoren, deze vertragingen verwaarloosbaar zijn. Maar voor systemen die instantane, gelijktijdige veranderingen aan honderden apparaten vereisen, wordt de sequentiële aard van de verschuivingsregisters een beperkende factor.
Uiteindelijk biedt dit werk een duidelijke, op data gebaseerde roadmap voor ingenieurs en makers die veel apparaten aan een kleine computer willen koppelen. Het bevestigt dat het gebruik van multiplexers en verschuivingsregisters een zeer effectieve manier is om de fysieke limieten van microcontroller-pinnen te overwinnen, waarbij een enorme toename in capaciteit wordt geboden voor een zeer kleine kostenpost in stroom en een beheersbare afruil in snelheid. De studie benadrukt dat de beste resultaten worden behaald door deze eenvoudige hardwaretools te combineren met geoptimaliseerde software die direct met de hardware van de computer communiceert. Door deze specifieke grenzen en voordelen te begrijpen, kunnen bouwers systemen ontwerpen die zowel expansief als efficiënt zijn, waardoor een kleine chip met slechts enkele pinnen wordt getransformeerd in een krachtige controller die in staat is een complex netwerk van sensoren en apparaten te beheren.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.