GPIO
Интерфейс ввода/вывода общего назначения (англ. general-purpose input/output, GPIO) — интерфейс для связи между компонентами компьютерной системы, к примеру, микропроцессором и различными периферийными устройствами. Контакты GPIO могут выступать как в роли входа, так и в роли выхода — это, как правило, конфигурируется. GPIO-контакты часто группируются в порты.
GPIO-контакты не имеют специального назначения и, как правило, остаются неиспользованными. Идея состоит в том, что иногда системному интегратору для построения полной системы, использующей тот либо иной чип, может оказаться полезным иметь несколько дополнительных линий цифрового управления.
Это даёт возможность организовать дополнительные схемы, не создавая их с нуля. Например, чипы Realtek ALC260 (аудиокодек) имеют 8 GPIO-пинов (контактов), которые остаются неиспользованными по умолчанию. Некоторые системные интеграторы (к примеру, Acer Inc. на своих ноутбуках), использующие ALC260, задействуют первый GPIO (GPIO0), чтобы включить усилитель, используемый для встроенных динамиков ноутбука и для разъема подключения наушников.
Использование
GPIO используются:
- в устройствах с нехваткой выводов (пинов, контактов): интегральных схемах, таких как однокристальные системы (SoC), встраиваемых и специальных системах (embedded и custom hardware) и программируемых логических устройствах (например FPGA);
- в многофункциональных чипах: управляющих питанием, аудиокодеках и видеокартах;
- во встраиваемых системах (например, Arduino, BeagleBone, различные PSoC-комплекты и Raspberry Pi) широко используют GPIO для чтения информации от различных внешних датчиков (ИК, видео, температура, ориентации по 3 осям, ускорения), а также для управления двигателями постоянного тока (используя ШИМ), аудио, ЖК-дисплеями или светодиодами для индикации состояния чего-либо.
Литература
- David Russell. Chapter 6. General-purpose input/output // Introduction to Embedded Systems: Using ANSI C and the Arduino Development Environment. — Morgan & Claypool Publishers, 2010. — P. 99–. — ISBN 978-1-60845-498-3.
- Manuel Jiménez, Rogelio Palomera, Isidoro Couvertier. Introduction to Embedded Systems: Using Microcontrollers and the MSP430. — Springer Science & Business Media, 2013. — P. 383–. — ISBN 978-1-4614-3143-5.