miniatura|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. http://www.series80.org/PDFs/HP82940A-GPIO.pdf
Ús Un connector GPIO ofereix a una placa electrònica la possibilitat de comunicar-se amb altres circuits. miniatura|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. http://www.intel.fr/content/www/fr/fr/nuc/nuc-board-de3815tybe.html http://www.ti.com/product/tms320c6474 La Raspberry Pi disposa d'un connector GPIO des de la seva primera versió, això fa que a més del seu ús 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. http://tronixstuff.com/2014/01/29/tutorial-pcduino-gpio-arduino-ide/ http://mchobby.be/wiki/index.php?title=Rasp-Hack-GPIO_Connecteur http://www.ti.com/tool/ek-lm4f120xl Altres models de plaques, com ara la BeagleBoard, també integren ports GPIO.
Programació Diferents biblioteques faciliten la programació dels connectors GPIO. La RaspberryPi, per exemple, disposa de wiringPi https://www.stlo.unicaen.fr/sc12-g2b/index.php/fr/la-librairie-wiring-pi per al llenguatge C, RPi.GPIOhttps://pypi.python.org/pypi/RPi. per al llenguatge Python o Pi4J http://pi4j.com/ 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, http://www.airspayce.com/mikem/bcm2835/ 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). http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf http://oversimple.fr/tag/bcm2835/
Linux reconeix de forma nativa els ports GPIO. La documentació completa es troba en el lloc oficial del kernel, https://www.kernel.org/doc/Documentation/gpio 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. http://www.ctcom.com.tw/doc/324257.pdf http://msdn.microsoft.com/en-us/library/windows/hardware/hh439512%28v=vs.85%29.aspx
Capacitats 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, el senyal que es vol emetre s'ha d'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. https://learn.adafruit.com/downloads/pdf/reading-a-analog-in-and-controlling-audio-volume-with-the-raspberry-pi.pdf
Els perifèrics GPIO poden generar interrupcions, http://eduscol.education.fr/sti/sites/eduscol.education.fr.sti/files/ressources/pedagogiques/4346/4346-4-rpi-gpio.pdf 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. https://mespotesgeek.fr/controle-dun-dispositif-basse-tension-via-raspberry-pi/
Vegeu també Entrades-Sortides Bus informàtic Microcontrolador Microprocessador I2C
Referències
Categoria:Maquinari Categoria:Microprocessadors