GPIO (mikroprocessor)

Från Wikipedia
Hoppa till navigering Hoppa till sök

General Purpose In/Out (GPIO) används i ett datorsystem för att styra och känna av logiska signaler.

Översikt[redigera | redigera wikitext]

I nästan alla datorsystem finns det logiskt binära signaler in och/eller ut. Exempel på användningsområden är att läsa av tangentbordstryckningar, styra lysdioder och implementera binära kommunikationsprotokoll som till exempel IEEE 1284 från Centronics för parallelporten på en PC. En GPIO port kan ofta programmeras att antingen vara en utgång eller ingång eller faktiskt även både och.

Ingång[redigera | redigera wikitext]

När GPIO-porten läses av datorprogrammet samplar den spänningsnivån på varje ansluten ingång. Varje ingång motsvaras av en bit och grupperas ofta i form av en eller flera bytes. Spänningsnivåerna jämförs med de logiska nivåerna som datorsystemet är konstruerat eller med standardiserade nivåer som exempelvis TTL och sätter biten till motsvarande logisk etta eller nolla. Det är vanligt att det sitter extern elektronik mellan omvärlden och GPIO kretsen för att anpassa nivåerna.

Det är vanligt att koppla ett avbrott till en ingång och på så sätt kunna väcka CPUn när signalerna har ändrat sig.

Utgång[redigera | redigera wikitext]

När ett datorprogram skriver till en GPIO port ändras som regel värdena på alla anslutna signaler med en enda skrivning. Det är därför viktigt att datorprogramet först läser av eller kommer ihåg värdena på de utsignaler man inte avser att förändra och bara manipulerar de avsedda bitarna och därmed motsvarande signaler. En sådan sekvens kallas läs-modifiera-skriv cykel och stöds direkt av vissa CPUer som en atomisk operation.