맨위로가기

GPIO

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

GPIO(General Purpose Input/Output)는 집적 회로(IC)에서 사용되는 범용 입출력 핀으로, 다양한 전자 장치와 회로를 제어하고 모니터링하는 데 사용된다. GPIO는 IC의 주요 기능으로 제공되거나 다른 기능의 부속품으로 포함될 수 있으며, 마이크로컨트롤러와 같은 장치에서 일반적으로 사용된다. GPIO는 핀 그룹(GPIO 포트)으로 구성되며, 핀을 입력 또는 출력으로 설정하고, 값을 읽고 쓸 수 있으며, 인터럽트로 사용할 수도 있다. GPIO는 고전력 장치 제어, 회로 제어 및 모니터링, 통신 인터페이스, 아날로그 프로세스 제어 등 다양한 분야에 활용된다.

더 읽어볼만한 페이지

  • 집적 회로 - 실시간 시계
    실시간 시계(RTC)는 CPU 개입 없이 독립적으로 시간을 유지하며, 저전력 소비와 시간 민감 작업의 부담 감소, 절전 모드 유지를 위해 디지털 카운터 회로, 결정 진동자, 배터리 등으로 구성되어 PC 메인보드에 부착되거나 사우스브리지 칩 또는 마이크로컨트롤러에 내장된다.
  • 집적 회로 - NMOS 논리
    NMOS 논리는 n형 MOSFET만을 사용하여 논리 게이트를 구현하는 방식으로, 저항을 부하로 사용하여 NOR 게이트 등을 구현할 수 있지만, Low에서 High로의 전환 속도가 느리고 전력 소비가 높아 CMOS 논리에 밀려 현재는 제한적으로 사용된다.
  • 컴퓨터 버스 - NMEA 0183
    NMEA 0183은 선박용 GPS, 자동식별장치(AIS) 등 항해 장비에서 데이터를 송수신하는 데 사용되는 ASCII 기반의 직렬 통신 프로토콜로, RS-422 전기 표준을 사용하며, 문장 형태의 데이터를 통해 정보를 전달하고, 물리 계층, 데이터 링크 계층, 애플리케이션 계층의 3가지 레이어로 구성되어 다양한 소프트웨어에서 지원된다.
  • 컴퓨터 버스 - 인피니밴드
    인피니밴드는 고성능 컴퓨팅 환경에서 서버, 스토리지, 네트워크 장치 간 고속 데이터 전송을 위한 직렬 통신 기술로, 슈퍼컴퓨터나 데이터 센터에서 주로 사용되지만 이더넷 기반 기술과의 경쟁 및 새로운 컴퓨팅 환경에 대한 적응이라는 과제를 안고 있다.
GPIO
일반
유형디지털 신호 핀
기능입출력 제어
용도마이크로컨트롤러
단일 보드 컴퓨터
기타 디지털 회로
제어 방식소프트웨어
특징
입출력 겸용단일 핀으로 입력 및 출력 기능 수행 가능
프로그래밍 가능소프트웨어를 통해 동작 방식 설정 가능
다용도다양한 외부 장치와 연결 및 제어 가능
활용 예시
센서 인터페이스센서로부터 데이터 읽기
액추에이터 제어LED, 모터 등 제어
통신다른 장치와 데이터 송수신

2. 집적 회로 (IC) GPIO

집적 회로(IC) 형태의 GPIO는 다양한 방식으로 구현된다. 제조업체는 핀 수가 적은 장치 (SoC, 임베디드 및 맞춤형 하드웨어, 프로그래머블 로직 장치 (FPGA 등)), 다기능 칩 (전원 관리, 오디오 코덱, 비디오 카드 등), 아두이노, 비글본, PSoC 키트, 라즈베리 파이[6]와 같은 임베디드 애플리케이션 등에서 GPIO를 사용한다. 임베디드 애플리케이션은 다양한 환경 센서 (적외선 카메라, 비디오, 온도, 자이로스코프, 가속도계 등)에서 데이터를 읽고, 직류 모터, 음성, 액정 디스플레이, 상태 LED 등에 출력을 쓰는 데 GPIO를 활용한다.

상단에 헤더가 없는 GPIO 어레이가 있는 라즈베리 파이 제로

2. 1. GPIO 기능 구성

집적 회로(IC)에서 GPIO는 다양한 방식으로 구현된다. 일부 IC는 GPIO를 주요 기능으로 제공하지만, 다른 IC는 GPIO를 다른 주요 기능에 편리한 "부속품"으로 포함한다. 전자의 예로는 24개의 GPIO를 병렬 통신 버스에 인터페이스하는 인텔 8255와 I²C 및 SMBus와 같은 직렬 통신 버스에 GPIO를 인터페이스하는 다양한 GPIO ''확장기'' IC가 있다. 후자의 예로는 오디오 코덱의 주요 기능과 함께 8개의 GPIO를 제공하는 Realtek ALC260 IC가 있다.

마이크로컨트롤러 IC는 일반적으로 GPIO를 포함한다. 응용 분야에 따라 마이크로컨트롤러의 GPIO는 외부 회로에 대한 주요 인터페이스를 구성하거나, 아날로그 신호 I/O, 카운터/타이머 및 직렬 통신과 같은 여러 I/O 유형 중 하나일 수 있다.

일부 IC, 특히 마이크로컨트롤러에서 GPIO 핀은 GPIO 이외의 다른 기능을 수행할 수 있다. 종종 이러한 경우 GPIO의 동작을 구성하는 것 외에도, 다른 기능 대신 GPIO로 작동하도록 핀을 구성해야 한다. 일부 마이크로컨트롤러 장치(예: Microchip dsPIC33 제품군)는 GPIO를 장치 핀에 프로그래밍 방식으로 매핑할 수 있도록 하는 내부 신호 라우팅 회로를 통합한다. 필드 프로그래머블 게이트 어레이(FPGA)는 GPIO 핀 매핑, 인스턴스화 및 아키텍처를 프로그래밍 방식으로 제어할 수 있도록 하여 이러한 기능을 확장한다.

24개의 GPIO에 대한 병렬 버스 인터페이스 (인텔 8255)


29개의 재매핑 가능한 GPIO가 있는 PIC 마이크로컨트롤러 (Microchip Technology PIC24FJ256)

3. 기판 레벨 GPIO

회로 기판은 통합 전기 커넥터를 통해 보드 레벨 GPIO를 외부 회로에 노출시키며, 일반적으로 각 GPIO는 전용 커넥터 핀을 통해 접근할 수 있다.

일부 보드는 GPIO를 주요 기능의 보조 리소스로 포함하지만, 다른 보드에서는 GPIO가 중심 기능이 되기도 한다. 다기능 I/O 보드는 GPIO와 다른 유형의 범용 I/O를 함께 제공하며, 아두이노, 비글본, 라즈베리 파이와 같은 임베디드 컨트롤러 보드 및 싱글 보드 컴퓨터에서도 GPIO를 찾아볼 수 있다.[3]

3. 1. 추가 기능

보드 레벨 GPIO는 IC 기반 GPIO가 일반적으로 갖추지 못한 기능을 갖는다. 예를 들어, 슈미트 트리거 입력, 고전류 출력 드라이버, 광학 절연체 등이 GPIO 신호를 버퍼링하고 조절하며 보드 회로를 보호하는 데 사용될 수 있다.[3] 또한 입력 디바운스, 입력 신호 에지 감지 및 펄스 폭 변조(PWM) 출력과 같은 상위 수준 기능이 구현되기도 한다.

네트워크 라우터 (바나나 파이 R1)

4. GPIO의 활용

GPIO는 표준 논리 레벨을 사용하며, 출력 부하에 많은 전류를 공급할 수는 없지만, 여러 분야에서 활용된다.

GPIO는 다음과 같은 경우에 사용된다.


  • 핀 수가 적은 장치: 시스템 온 칩(SoC), 임베디드 및 맞춤형 하드웨어, 프로그래머블 로직 장치(FPGA 등)와 같은 집적 회로
  • 다기능 칩: 전원 관리, 오디오 코덱, 비디오 카드
  • 임베디드 애플리케이션: 아두이노, 비글본, PSoC 키트, 라즈베리 파이[6] 등에서 다양한 환경 센서(적외선 카메라, 비디오, 온도, 자이로스코프, 가속도계 등) 값을 읽고, 직류 모터, 음성, 액정 디스플레이, 상태 발광 다이오드(LED) 등에 출력

4. 1. 고전력 장치 제어

GPIO는 일반적으로 표준 논리 레벨을 사용하며 출력 부하에 상당한 전류를 공급할 수 없다. 적절한 고전류 출력 디지털 버퍼 (또는 기계식이나 솔리드 스테이트 릴레이)를 사용하면, GPIO는 조명, 솔레노이드, 히터, 모터 (예: 팬, 송풍기)와 같은 고전력 장치를 제어할 수 있다.[6] 마찬가지로, 입력 버퍼, 릴레이 또는 광 절연체를 사용하여 호환되지 않는 신호 (예: 고전압)를 GPIO에 필요한 논리 레벨로 변환할 수 있다.[6]

4. 2. 회로 제어 및 모니터링

집적 회로 GPIO는 일반적으로 보드의 다른 회로(다른 IC 포함)를 제어하거나 모니터링하는 데 사용된다. 여기에는 다른 회로의 작동 (또는 전원)을 활성화 및 비활성화하고, 온보드 스위치 및 구성 션트의 상태를 읽고, 발광 다이오드(LED) 상태 표시기를 구동하는 것이 포함된다. 후자의 경우, GPIO는 많은 경우 중간 버퍼를 사용하지 않고 LED에 직접 전원을 공급할 수 있을 만큼 충분한 출력 전류를 공급할 수 있다.[6]

4. 3. 통신 인터페이스

여러 GPIO는 비트 뱅잉 통신 인터페이스로 사용될 수 있다. 예를 들어, 두 개의 GPIO를 사용하여 I²C와 같은 직렬 통신 버스를 구현할 수 있으며, 4개의 GPIO를 사용하여 직렬 주변 장치 인터페이스 (SPI) 버스를 구현할 수 있다.[6] 이는 일반적으로 온도 센서, 압력 센서, 가속도계 및 모터 컨트롤러와 같이 호환되는 직렬 인터페이스를 가진 IC 및 기타 장치와의 직렬 통신을 용이하게 하는 데 사용된다.[6] 극단적인 경우, 이 방법을 사용하여 전체 병렬 버스를 구현할 수 있으므로 버스 지향 IC 또는 회로 기판과의 통신이 가능하다.

4. 4. 아날로그 프로세스 제어

GPIO는 본질적으로 디지털 방식이지만, 아날로그 프로세스를 제어하는 데 자주 사용된다. 예를 들어, GPIO는 모터 속도, 빛의 강도 또는 온도를 제어하는 데 사용될 수 있다. 일반적으로 이는 펄스 폭 변조(PWM)를 통해 수행되며, 여기서 GPIO 출력 신호의 듀티 사이클은 프로세스 제어 신호의 유효 크기를 결정한다.[6] 예를 들어, 빛의 강도를 제어할 때 GPIO 듀티 사이클을 줄여 빛을 어둡게 할 수 있다. 일부 아날로그 프로세스는 아날로그 제어 전압이 필요한데, 이러한 경우 PWM 출력으로 작동하는 GPIO를 RC 필터에 연결하여 간단하고 저렴한 디지털-아날로그 변환기를 만들 수 있다.[6]

5. GPIO의 기능

GPIO 인터페이스는 매우 다양하다. GPIO는 핀 그룹(GPIO 포트)으로 구성되는데, 어떤 경우에는 단순하게 입력 또는 출력으로 그룹 단위로 전환할 수 있다. 또 다른 경우에는 각 핀을 구성하여 다양한 논리 전압을 수용하거나 공급할 수 있으며, 구성 가능한 드라이브 강도와 풀업/풀다운을 갖도록 설정할 수 있다. 입력 및 출력 전압은 일반적으로 GPIO가 있는 장치의 공급 전압으로 제한되지만, 항상 그런 것은 아니며 더 높은 전압은 장치를 손상시킬 수 있다.[2]

GPIO는 핀 그룹(일반적으로 8핀)인 '''GPIO 포트'''로 구성되며, 그룹 또는 개별 핀 단위로 제어할 수 있다.[7]

5. 1. 주요 기능

GPIO 핀은 입력 또는 출력으로 구성할 수 있다.[2]

GPIO 핀을 활성화하거나 비활성화할 수 있다.[2]

입력 값을 읽을 수 있다(일반적으로 높음 또는 낮음).[2]

출력 값을 쓰거나 읽을 수 있다.[2]

입력 값은 IRQ로 사용할 수 있다(일반적으로 절전 모드 해제 이벤트용).[2]

5. 2. 고급 기능

일부 GPIO는 5V 내성 입력을 가지고 있어, 장치가 낮은 공급 전압(예: 2V)을 사용하더라도 손상 없이 5V 신호를 수용할 수 있다.[2] GPIO 핀의 상태는 메모리 맵 I/O 주변 장치 또는 전용 IO 포트 명령과 같은 다양한 인터페이스 중 하나를 통해 소프트웨어에서 접근할 수 있다.[2]

6. 한국의 GPIO 활용 사례

GPIO는 한국의 다양한 산업 분야에서 활용되고 있다.

6. 1. 기타

제조업체는 다음과 같은 경우에 GPIO를 사용한다.

  • 핀 수가 적은 장치: SoC, 임베디드 및 맞춤형 하드웨어, 프로그래머블 로직 장치(FPGA 등)와 같은 집적 회로
  • 다기능 칩: 전원 관리, 오디오 코덱, 비디오 카드
  • 임베디드 애플리케이션(아두이노, 비글본, PSoC 키트, 라즈베리 파이[6] 등)은 적외선 카메라, 비디오, 온도, 자이로스코프, 가속도계 등 다양한 환경 센서에서 데이터를 읽고, 직류 모터, 음성, 액정 디스플레이, 상태 LED 등에 신호를 출력하기 위해 GPIO를 사용한다.

참조

[1] 서적 Raspberry Pi – The Complete Manual Imagine Publishing
[2] 서적 Oracle Java ME Embedded Developer's Guide https://docs.oracle.[...] Oracle Corporation
[3] 웹사이트 GPIO – Raspberry Pi Documentation https://www.raspberr[...] 2016-11-03
[4] 서적 Raspberry Pi - The Complete Manual Imagine Publishing
[5] 서적 Oracle® Java ME Embedded Developer's Guide https://docs.oracle.[...] Oracle Corporation
[6] 웹사이트 GPIO - Raspberry Pi Documentation https://www.raspberr[...] Raspberry Pi Foundation 2016-11-03
[7] 서적 General Purpose Input/Output (GPIO) http://www.egr.msu.e[...] Michigan State University College of Engineering
[8] 웹인용 다용도 입출력 포트 https://terms.naver.[...] IT용어사전 2019-01-29
[9] 서적 Raspberry Pi - The Complete Manual ":en:Imagine Publishing"
[10] 서적 Oracle® Java ME Embedded Developer's Guide https://docs.oracle.[...] 오라클 (기업)



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com