Topic

GPIO(General Purpose Input/Output)

JackerLab 2025. 4. 2. 14:30
728x90
반응형

개요

GPIO(General Purpose Input/Output)는 마이크로컨트롤러(MCU), 라즈베리파이, 아두이노 등의 임베디드 시스템에서 디지털 신호를 주고받기 위해 사용되는 다용도 핀입니다. LED 제어, 버튼 입력 감지, 센서 통신, 외부 회로 제어 등 다양한 하드웨어와의 연결에서 핵심적인 역할을 수행하며, 제어 소프트웨어와 하드웨어를 연결하는 가장 기본적인 인터페이스입니다. 본 글에서는 GPIO의 개념, 동작 모드, 설정 방법, 실무 활용 사례까지 체계적으로 설명합니다.


1. 개념 및 정의

GPIO는 하나의 핀이 상황에 따라 입력 또는 출력으로 설정 가능한 범용 디지털 신호 핀입니다. 내부적으로는 MCU의 레지스터와 연결되어 있어 프로그램에서 제어할 수 있으며, 특정 하드웨어 인터페이스(SPI, UART 등)처럼 고정된 기능이 아닌 사용자 정의 기능을 할당할 수 있습니다.


2. GPIO의 동작 모드

동작 모드 설명 예시
입력(Input) 외부 장치의 상태를 감지 버튼 입력, 센서 출력 신호 수신
출력(Output) MCU에서 외부 회로로 신호 전송 LED ON/OFF, 릴레이 제어
풀업/풀다운(Pull-up/Down) 입력 모드에서 핀의 안정화 유지 Floating 상태 방지
인터럽트(Interrupt) 특정 이벤트 발생 시 자동 처리 버튼 누름 시 인터럽트 핸들러 호출

GPIO 핀의 동작 모드는 초기 설정 시 또는 동적으로 전환할 수 있습니다.


3. GPIO 제어 방식

방식 설명 적용 예시
디지털 출력 설정 HIGH/LOW 전압 출력 digitalWrite(LED, HIGH);
디지털 입력 판독 핀의 논리 상태 판별 digitalRead(BUTTON);
방향 설정 입력 또는 출력으로 설정 pinMode(PIN, INPUT/OUTPUT);
인터럽트 연결 핀 상태 변화 감지 시 콜백 실행 attachInterrupt(PIN, handler, RISING);

Arduino, STM32, Raspberry Pi 등 플랫폼별로 라이브러리 및 API는 상이하지만, 기본 동작은 유사합니다.


4. GPIO의 전기적 특성

항목 설명 일반 수치
전압 레벨 HIGH/LOW 기준 전압 3.3V/5V HIGH, 0V LOW
출력 전류 한 핀당 허용 전류량 보통 10~25mA
입력 임피던스 입력 저항값 (부하 최소화) 수십 kΩ 이상
보호 다이오드 과전압 보호 내장 여부 ESD 방지 역할

전류 초과 시 MCU 손상이 발생할 수 있으므로, 회로 설계 시 저항 및 보호 소자를 고려해야 합니다.


5. 실무 활용 사례

분야 활용 예시 설명
IoT 제품 개발 LED 제어, 릴레이 스위치 제어 스마트 조명, 콘센트 등
센서 연결 초음파, 온도센서 등과 디지털 신호 연동 센서값 로직 제어
사용자 인터페이스 버튼, 스위치 입력 감지 UI 이벤트 처리
통신 프로토콜 구현 소프트웨어 기반 I2C, SPI 구현 비표준 장치 연동 시 활용

GPIO는 회로 설계와 펌웨어 개발의 시작점으로, 기능 확장의 중심 인터페이스입니다.


6. 주의사항 및 설계 팁

항목 설명
핀당 전류 제한 최대 허용 전류 초과 시 MCU 손상 가능
인터럽트 디바운싱 버튼 노이즈로 인한 다중 이벤트 방지 필요 (소프트웨어 필터)
전원 레벨 호환 외부 장치 전압과 MCU 전압 일치 여부 확인 (레벨 시프터 필요 가능성)
핀 다중 기능 일부 GPIO는 ADC, UART 등 복합 기능 가능 — 충돌 방지 필요

보호 저항, 풀업/풀다운 설정, 전자 회로 시뮬레이션 등을 함께 고려해야 합니다.


7. 결론

GPIO는 임베디드 시스템에서 외부와의 상호작용을 가능하게 해주는 가장 기본적이고 중요한 인터페이스입니다. 디지털 제어, 센서 입력, 통신 등 거의 모든 분야에 활용되며, 하드웨어 설계와 소프트웨어 개발을 동시에 요구합니다. 정확한 이해와 안정적인 회로 설계를 통해 GPIO를 기반으로 한 스마트한 하드웨어 제어 시스템을 구현할 수 있습니다.

728x90
반응형

'Topic' 카테고리의 다른 글

NGFW(Next Generation Firewall)  (1) 2025.04.02
I/O 인터럽트 구조(Interrupt-driven I/O)  (0) 2025.04.02
SSD vs HDD  (2) 2025.04.02
DMA(Direct Memory Access)  (0) 2025.04.02
DRAM vs SRAM  (0) 2025.04.02