General Purpose Input/Output

De Viquipèdia
Salta a la navegació Salta a la cerca
Placa GPIO del HP 82940HA Series 80

Els ports GPIO (General Purpose Input/Output, en anglès Entrada/Sortida per a un Ús General) són un tipus de ports d'entrada/sortida molt utilitzats en el món dels microcontroladors, en particular en l'entorn de l'electronica de sistemes incrustats, des de llur aparició cap al començament dels anys 1980.[1]

Ús[modifica]

Un connector GPIO ofereix a una placa electrònica la possibilitat de comunicar-se amb altres circuits.

El connector GPIO se situa al costat esquerre de la sortida de vídeo RCA (groga) en el Raspberry Pi Model A

El GPIO és un element molt present en la informàtica. Certes plaques mare com la Intel® NUC DE3815TYBE, o bé plaques de prova com la DSP, integren connectors o instruccions específiques del GPIO.[2][3] La Raspberry Pi disposa d'un connector GPIO des de la seva primera versió, això fa que a més del seu us com a ordinador personal, també es pugui utilitzar com a controlador d'aplicacions purament electròniques, seguint el model de Stellaris Launchpad o d'Arduino.[4][5][6] Altres models de plaques, com ara la BeagleBoard, també integren ports GPIO.

Programació[modifica]

Diferents biblioteques faciliten la programació dels connectors GPIO. La RaspberryPi, per exemple, disposa de wiringPi[7] per al llenguatge C, RPi.GPIO[8] per al llenguatge Python o Pi4J[9] per al llenguatge Java. En algunes arquitectures també s'hi pot accedir directament des del processador. Per exemple, es pot tenir accés al GPIO del RaspberryPi incloent simplement el fitxer bcm2835.h,[10] mòdul específic del processador Broadcom BCM 2835 (es troba ja instal·lat a cada RaspberryPi, en un codi font en llenguatge C, això estalvia la necessitat d'utilitzar altres biblioteques).[11][12]

Linux reconeix de forma nativa els ports GPIO. La documentació completa es troba en el lloc oficial del kernel,[13] on s'explica com programar els controladors de dispositius.

Microsoft Windows integra també una API de desenvolupament específica per a la creació de controladors GPIO.[14][15]

Capacitats[modifica]

Un connector GPIO pot estar configurat per actuar com a entrada (recepció d'un senyal) o com a sortida (emissió d'un senyal). Quan es configura com a sortida, la senyal que es vol emetre s'ha escriure en un registre intern. Quan es configura com a entrada, es pot conèixer el seu estat actuant també amb un registre intern, en aquest cas llegint-lo.

Un connector GPIO només pot tractar senyals binaris del tipus 1 o 0. En altre cas, caldrà una connexió de suport analògica del tipus CAN/CNA com passa amb el MCP3008.[16]

Els perifèrics GPIO poden generar interrupcions,[17] amb les quals s'informa d'un canvi d'estat en una entrada.

Un connector GPIO té una alimentació generalment de 3.3Vcc i només pot emetre corrents d'intensitat dèbil, de 3mA a 50mA, per la qual cosa no actuen normalment de forma directa sobre els perifèrics sinó que envien senyals que cal amplificar.[18]

Vegeu també[modifica]

Notes i referències[modifica]