General Purpose Input/Output
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 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 ú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.[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, 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.[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]Referències
[modifica]- ↑ http://www.series80.org/PDFs/HP82940A-GPIO.pdf[Enllaç no actiu]
- ↑ http://www.intel.fr/content/www/fr/fr/nuc/nuc-board-de3815tybe.html
- ↑ http://www.ti.com/product/tms320c6474
- ↑ http://tronixstuff.com/2014/01/29/tutorial-pcduino-gpio-arduino-ide/ Arxivat 2014-11-09 a Wayback Machine.
- ↑ http://mchobby.be/wiki/index.php?title=Rasp-Hack-GPIO_Connecteur[Enllaç no actiu]
- ↑ http://www.ti.com/tool/ek-lm4f120xl Arxivat 2014-12-13 a Wayback Machine.
- ↑ https://www.stlo.unicaen.fr/sc12-g2b/index.php/fr/la-librairie-wiring-pi Arxivat 2014-12-19 a Wayback Machine.
- ↑ https://pypi.python.org/pypi/RPi.
- ↑ http://pi4j.com/
- ↑ http://www.airspayce.com/mikem/bcm2835/
- ↑ http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf
- ↑ http://oversimple.fr/tag/bcm2835/
- ↑ https://www.kernel.org/doc/Documentation/gpio
- ↑ http://www.ctcom.com.tw/doc/324257.pdf Arxivat 2016-03-03 a Wayback Machine.
- ↑ http://msdn.microsoft.com/en-us/library/windows/hardware/hh439512%28v=vs.85%29.aspx
- ↑ https://learn.adafruit.com/downloads/pdf/reading-a-analog-in-and-controlling-audio-volume-with-the-raspberry-pi.pdf
- ↑ http://eduscol.education.fr/sti/sites/eduscol.education.fr.sti/files/ressources/pedagogiques/4346/4346-4-rpi-gpio.pdf
- ↑ https://mespotesgeek.fr/controle-dun-dispositif-basse-tension-via-raspberry-pi/ Arxivat 2014-11-11 a Wayback Machine.