인텔 8255 PPI(Programmable Peripheral Interface) 핀아웃, 모드 및 응용 프로그램

10월 24 2025
근원: DiGi-Electronics
탐색: 1733

인텔 8255 PPI(Programmable Peripheral Interface)는 디지털 시스템 초기에 마이크로프로세서와 외부 장치를 연결하는 핵심 구성 요소였습니다. 다양한 I/O 포트, 다양한 작동 모드 및 프로그래밍 용이성을 갖춘 8255는 디스플레이, 센서 및 컨트롤러와의 안정적인 통신을 가능하게 하여 교육 및 산업 모두에서 유용합니다.

씨1. 8255 PPI(Programmable Peripheral Interface) 개요

씨2. 8255 PPI 칩의 특징

씨3. 8255 PPI 칩의 핀아웃

Figure 1. 8255 Microprocessor

8255 프로그래밍 가능 주변 장치 인터페이스(PPI) 개요

Intel 8255 PPI 칩은 마이크로프로세서를 외부 장치와 연결하도록 설계된 널리 사용되는 I/O 칩입니다. ADC, DAC, 키보드 및 디스플레이와 같은 주변 장치의 통신 브리지 역할을 합니다. 직접 및 인터럽트 구동 I/O를 모두 지원하여 시스템 설계에 유연성을 제공합니다. 3개의 8비트 양방향 포트(A, B, C)를 통해 24개의 구성 가능한 I/O 라인을 제공합니다. 비용 효율성과 Intel 8085/8086과 같은 프로세서와의 호환성으로 인해 초기 컴퓨터 시스템, 교육 키트 및 산업용 컨트롤러의 필수 요소가 되었습니다.

8255 PPI 칩의 특징

• 프로그래밍 가능한 인터페이스 – 디스플레이, 센서 및 입력 모듈과 같은 장치에 맞게 소프트웨어 지침을 통해 구성할 수 있습니다.

8비트 포트 3개 – 포트 A, B 및 C는 입력 또는 출력으로 작동할 수 있는 24개의 라인을 제공합니다.

• 다중 작동 모드 –

모드 0: 핸드셰이킹 없이 간단한 입력/출력.

모드 1: 동기화된 통신을 위한 핸드셰이크 신호가 있는 스트로브 I/O.

모드 2: 핸드셰이킹을 통한 양방향 데이터 전송(포트 A에만 해당).

• BSR(Bit Set/Reset) – 포트 C 비트는 제어/상태 애플리케이션을 위해 개별적으로 설정하거나 지울 수 있습니다.

유연한 그룹화 – 포트는 8비트 또는 4비트 그룹으로 분할될 수 있습니다.

• TTL 호환성 – 표준 디지털 IC와 쉽게 통합됩니다.

• 독립 제어 레지스터 – 각 포트는 서로 다른 모드 또는 방향으로 개별적으로 작동할 수 있습니다.

8255 PPI 칩의 핀아웃

Figure 2. Pinout of 8255 Microprocessor

핀 번호그룹신호설명
1–8포트 APA0–PA78비트 범용 I/O 포트
9–16포트 CPC0–PC7PC0–PC3(아래) 및 PC4–PC7(위)으로 분할됩니다. I/O 또는 핸드셰이크 라인으로 사용
17–24포트 BPB0–PB78비트 범용 I/O 포트
25제어CS'칩 선택(액티브 로우)
26전원VCC+5V 공급
27제어RD'읽기 활성화
28제어WR'쓰기 활성화
29제어재설정모든 포트를 입력 상태로 재설정
30–37데이터 버스D0–D7CPU와 8255 간에 데이터/명령 전송
38–39주소 핀A0, A1내부 레지스터/포트 선택: 00=포트 A, 01=포트 B, 10=포트 C, 11=제어
40접지접지접지 참조

8255 PPI 칩의 아키텍처

Figure 3. Architecture of 8255 Microprocessor

기능 블록설명
데이터 버스 버퍼CPU의 양방향 데이터 버스(D7–D0)와 8255의 내부 8비트 데이터 버스 사이의 인터페이스 역할을 합니다. CPU와 내부 레지스터 또는 포트 간에 데이터를 임시로 저장하고 전송합니다.
읽기/쓰기 제어 로직CPU와 8255 간의 모든 통신을 관리합니다. RD, WR, A0, A1, CS 및 RESET과 같은 제어 신호를 해석하여 작업 유형(읽기, 쓰기 또는 제어)을 결정하고 올바른 포트 또는 제어 레지스터를 선택합니다.
제어 로직(디코더)CPU에서 보낸 제어 단어를 디코딩하여 다양한 모드(모드 0, 1 또는 2) 또는 BSR(Bit Set/Reset) 모드에서 포트를 구성합니다. 각 포트가 입력, 출력 또는 핸드셰이크로 작동하는 방식을 결정합니다.
그룹 A 대조군포트 A(8비트: PA7–PA0) 및 상위 포트 C(4비트: PC7–PC4)를 제어합니다. 모드 0, 1 및 2를 지원하여 간단한 I/O, 핸드셰이크 I/O 및 양방향 데이터 전송
그룹 B 컨트롤포트 B(8비트: PB7–PB0) 및 하위 포트 C(4비트: PC3–PC0)를 제어합니다. 모드 0 및 1을 지원하여 기본 입력/출력 또는 핸드셰이크 제어 작업을 허용합니다.
포트 A모드 구성에 따라 입력 또는 출력으로 작동할 수 있는 8비트 I/O 포트입니다. 그룹 A 제어에서 모드 0-2를 지원합니다.
포트 B데이터 전송을 위한 또 다른 **8비트 I/O 포트**. 그룹 B 제어하에 작동하며 모드 0 및 1을 지원합니다.
포트 C두 개의 4비트 그룹(상단(PC7–PC4) 및 하단(PC3–PC0)으로 나누어진 분할된 8비트 포트입니다. 이는 독립적인 I/O 포트, 제어 라인 또는 핸드셰이크 신호로 작동할 수 있습니다. 개별 비트는 BSR(Bit Set/Reset) 모드를 사용하여 제어할 수도 있습니다.
내부 데이터 버스(8비트)8255의 모든 내부 블록을 연결하여 CPU, 제어 로직 및 포트 간에 데이터 및 제어 정보를 전송합니다.
전원 공급 장치이 칩은 +5V DC 공급 장치 및 GND 연결로 작동하여 전체 회로에 전원을 공급합니다.

8255 PPI 칩의 작동 모드 및 작동 원리

Intel 8255는 CPU와 주변 장치 사이의 프로그래밍 가능한 인터페이스 역할을 하여 버스 작업을 병렬 데이터 전송으로 변환합니다. 그 작동은 초기화 단계와 선택 가능한 모드에 의해 지배됩니다.

상태 재설정

전원을 켜거나 재설정할 때 모든 포트(A, B 및 C)는 의도하지 않은 출력으로 주변 장치가 손상되는 것을 방지하기 위해 기본적으로 입력 모드로 설정됩니다.

초기화

CPU는 각 포트를 입력/출력으로 구성하고 네 가지 작동 모드 중 하나를 선택하는 제어 단어를 보내야 합니다. 이 작업이 완료될 때까지 포트는 비활성 상태로 유지됩니다.

작동 모드

비트 설정/리셋(BSR) 모드

• 포트 C에만 적용됩니다.

• 제어/상태 작업을 위해 개별 비트를 설정하거나 지울 수 있습니다.

모드 0 – 단순 I/O

• 핸드셰이크가 없는 기본 입력/출력.

• LED, 스위치, 디스플레이 등 간단한 전송에 사용됩니다.

모드 1 – 스트로브 I/O

• 포트 C를 통해 핸드셰이크 신호(STB, ACK, IBF, OBF)를 추가합니다.

• 동기화된 CPU ↔ 주변 장치 데이터 전송을 보장합니다.

모드 2 – 양방향 I/O

• 포트 A에서만 사용할 수 있습니다.

• 핸드셰이크 제어로 양방향 전송을 지원하여 고속 또는 비동기 장치에 유용합니다.

읽기/쓰기 작업

• 쓰기: CPU는 시스템 버스에 데이터를 배치하고 8255는 주소 라인(A0, A1)을 디코딩하여 올바른 포트의 출력 래치로 보냅니다.

• 읽기: 외부 장치는 포트 라인에 데이터를 배치하며, 8255는 읽기 명령 중에 CPU에서 데이터를 래치하고 사용할 수 있도록 합니다.

동기화

• 모드 0에서는 핸드셰이크 없이 데이터 전송이 직접 발생합니다.

• 모드 1 및 2에서 포트 C의 핸드셰이크 신호는 준비 및 수락을 조정하여 고속 또는 비동기 전송 중 데이터 손실을 방지합니다.

8255 PPI 칩의 인터페이스 고려 사항

8255를 사용하여 시스템을 설계할 때 신중한 인터페이스를 통해 안정성을 보장하고 칩과 외부 장치 모두의 손상을 방지할 수 있습니다.

• 기본 입력 상태 - 재설정시 모든 포트는 기본적으로 입력으로 설정됩니다. 이렇게 하면 충돌을 방지할 수 있지만 구성될 때까지 출력이 비활성 상태임을 의미하기도 합니다. CPU는 통신을 시도하기 전에 방향과 모드를 올바르게 정의하기 위해 항상 제어 단어를 보내야 합니다.

• 출력 드라이브 제한 – 8255의 포트는 제한된 전류(몇 밀리암페어)만 소싱하거나 싱크할 수 있습니다. 램프, 솔레노이드 또는 릴레이와 같은 무거운 부하를 직접 구동하는 것은 안전하지 않습니다. 대신 ULN2803(Darlington 어레이) 또는 7406과 같은 오픈 컬렉터 게이트와 같은 버퍼 또는 드라이버 IC가 일반적으로 사용됩니다. 이는 더 높은 전류 용량을 제공하고 PPI를 보호합니다.

• 모터 제어 – DC 모터 또는 스테퍼 모터의 경우 8255 포트를 직접 연결해서는 안 됩니다. 대신 출력은 트랜지스터 스테이지 또는 H-브리지 드라이버 회로를 통해 라우팅되어야 합니다. 이 배열은 유도 전압 스파이크로부터 PPI를 분리하면서 양방향 전류 흐름을 허용합니다.

• AC 부하 스위칭 – AC 기기와의 인터페이스는 안전을 위해 절연이 필요합니다. 버퍼 스테이지를 통해 구동되는 기계식 계전기 또는 솔리드 스테이트 계전기(SSR)는 8255가 제어 신호만 처리하는 반면 실제 고전압 부하는 외부에서 안전하게 전환되도록 합니다.

포트 C 제한 사항 – 포트 C의 비트가 항상 일반 I/O로 자유롭게 사용할 수 있는 것은 아닙니다. 모드 1 및 2에서는 핸드셰이크 제어를 위해 여러 핀(예: STB, ACK, IBF, OBF)이 자동으로 예약됩니다. 일반 I/O와 핸드셰이크를 혼합할 때 충돌을 방지하기 위해 이러한 예약된 줄을 고려해야 합니다.

8255 PPI 칩의 장점

• CPU 호환성 – 8255는 Intel 8085, 8086 및 해당 호환 제품과 같은 프로세서와 원활하게 작동합니다. 디자인은 표준 버스 프로토콜과 일치하므로 추가 접착제 로직 없이 통합이 간단합니다.

• 유연한 포트 구성 – 3개의 8비트 포트(A, B, C)를 사용하여 사용자는 애플리케이션에 따라 입력, 출력 또는 믹스로 구성할 수 있습니다. 단순 I/O(모드 0)와 핸드셰이크 기반 통신(모드 1 및 2) 사이를 전환할 수 있는 기능을 통해 동일한 칩으로 다양한 작업을 처리할 수 있습니다.

• 단일 전원 작동 – 표준 +5V 전원으로 작동하는 8255는 TTL 기반 시스템에서 쉽게 전원을 공급할 수 있습니다. 특별한 레귤레이터나 여러 전압 레벨이 필요하지 않아 보드 설계가 단순화됩니다.

• 안정적인 병렬 데이터 전송 – 이 칩은 안정적이고 예측 가능한 8비트 병렬 통신을 제공하여 타이밍 불확실성을 줄입니다. 이러한 신뢰성으로 인해 실제 시스템에서 디스플레이 구동, 센서 판독 및 제어 신호 관리에 적합합니다.

• 교육적 가치 – 8255는 잘 문서화되어 있고 널리 사용 가능하기 때문에 마이크로프로세서 실험실 및 교육 키트의 핵심 교육 도구였습니다. 이 장치를 사용한 실제 실험을 통해 I/O 인터페이스 개념을 빠르게 이해할 수 있습니다.

8255 PPI 칩의 응용

• 교육 시스템 – 교육 키트 및 랩 보드에는 주변 장치 인터페이스 개념을 시연하기 위해 8255가 포함되는 경우가 많습니다. 다양한 모드 프로그래밍을 연습하고 외부 장치와의 실제 상호 작용을 관찰할 수 있습니다.

• 디스플레이 제어 – 칩은 7세그먼트 LED, LCD 모듈 및 영숫자 패널과 같은 시각적 출력 장치를 구동합니다. 여러 개의 I/O 라인을 통해 디스플레이를 새로 고치거나 드라이버 IC에 제어 명령을 보낼 수 있습니다.

• 키보드 인터페이스 – 초기 터미널 및 개인용 컴퓨터의 매트릭스 키보드는 종종 8255를 사용하여 스캔되었습니다. 일부 라인을 행 드라이버로 구성하고 다른 라인을 열 센서로 구성하여 키 누름을 효율적으로 감지했습니다.

• 모터 제어 – 스테퍼 모터 및 DC 모터는 8255가 트랜지스터 스테이지, 달링턴 어레이 또는 H-브리지와 쌍을 이룰 때 제어할 수 있습니다. 이는 로봇 공학, 포지셔닝 시스템 및 자동화 프로젝트에 유용했습니다.

• 데이터 수집 – ADC(아날로그-디지털 컨버터) 및 DAC(디지털-아날로그 컨버터)에 연결하면 8255는 측정 및 제어 작업을 위한 완벽한 인터페이스를 제공합니다. 이를 통해 마이크로프로세서는 과학 및 산업 장비의 신호를 처리할 수 있었습니다.

• 산업 자동화 – 8255는 교통 신호, 엘리베이터 로직 및 프로세스 모니터링 패널을 제어하는 데 사용되었습니다. 여러 입력 및 출력을 안정적으로 관리할 수 있는 능력은 임베디드 제어 시스템을 위한 저렴한 솔루션이 되었습니다.

• 레트로 컴퓨팅 – IBM PC/XT 및 MSX 컴퓨터와 같은 클래식 시스템은 주변 장치 인터페이스를 위해 8255를 사용했습니다. 또한 프린터와 확장 카드에도 사용되어 초기 개인용 컴퓨터 역사에서 그 위치를 확고히 했습니다.

8255 PPI 칩과 다른 PPI 비교

8255 대 8155

Figure 4. 8255 vs. 8155

인텔 8155는 하나의 패키지에 여러 기능을 결합합니다: 작은 정적 RAM 블록, 프로그래밍 가능한 타이머 및 범용 I/O 포트를 제공합니다. 따라서 메모리와 타이밍 제어가 필요한 소형 시스템에 적합했습니다. 대조적으로, 8255는 내장 메모리나 타이밍 없이 프로그래밍 가능한 I/O에만 중점을 둡니다. 더 단순한 디자인으로 인해 응용 프로그램에 통합 RAM이나 타이머가 필요하지 않을 때 프로그래밍이 더 저렴하고 쉬워졌습니다.

8255 대 8259

Figure 5. 8255 vs. 8259

8259 프로그래머블 인터럽트 컨트롤러는 CPU가 외부 이벤트에 신속하게 대응할 수 있도록 하드웨어 인터럽트를 관리하는 매우 다른 용도로 사용됩니다. 8255는 병렬 I/O 데이터 전송을 처리하는 반면, 8259는 인터럽트 신호를 조정합니다. 많은 마이크로프로세서 기반 시스템에서 두 칩이 함께 사용되었으며, 8255는 키보드 및 디스플레이와 같은 장치와의 인터페이스에 사용되었고 8259는 해당 장치에서 생성된 인터럽트 요청을 관리하기 위해 사용되었습니다.

8255 대 최신 GPIO 확장기

Figure 6. 8255 vs. Modern GPIO Expanders

오늘날의 시스템은 종종 I²C 또는 SPI 기반 GPIO 확장기(예: MCP23017 또는 PCF8574)를 사용합니다. 이 장치는 더 적은 수의 연결로 추가 I/O 핀을 제공하여 보드 공간을 절약하고 CPU의 핀 수를 줄입니다. 그러나 직렬로 작동하므로 8255의 직접 병렬 액세스에 비해 속도가 느려질 수 있습니다. 8255는 더 많은 버스 라인이 필요하지만 병렬 구조로 인해 더 빠른 전송이 가능하며 개별 핀을 직접 제어하고 버스 타이밍을 이해하는 것이 학습에 중요한 교육 환경에서 매우 유용합니다.

문제 해결 및 일반적인 문제

8255로 작업할 때 설계 규칙을 주의 깊게 따르지 않으면 때때로 시스템 오류가 발생할 수 있습니다. 일반적인 문제 및 해결 방법은 다음과 같습니다.

초기화되지 않은 포트 – 재설정 후 모든 포트는 기본적으로 입력 모드로 설정됩니다. CPU가 적절한 제어 단어를 보내지 않으면 출력이 비활성 상태로 유지되거나 예측할 수 없게 동작합니다. 데이터를 읽거나 쓰기 전에 항상 제어 레지스터를 프로그래밍하십시오.

• 잘못된 제어 단어 – 잘못 구성된 제어 단어는 포트에 잘못된 방향이나 모드를 할당하여 예상 신호를 잠글 수 있습니다. 적절한 비트 설정을 보장하기 위해 데이터시트 테이블과 비교하여 제어 단어 값을 교차 확인합니다.

핸드셰이크 실패 – 모드 1 및 2에서 포트 C는 필요한 핸드셰이크 신호(STB, ACK, IBF, OBF)를 제공합니다. 연결이 누락되거나 잘못 배선되거나 잘못 해석되면 전송이 중단되거나 손실됩니다. 연결된 장치의 배선과 논리 레벨 기대치를 모두 주의 깊게 확인하십시오.

• 출력 과부하 – 각 포트 핀은 작은 전류만 처리할 수 있습니다. 저항을 사용하면 LED를 직접 구동할 수 있지만 모터, 릴레이 및 램프에는 트랜지스터 어레이 또는 드라이버 IC와 같은 외부 버퍼 스테이지가 필요합니다. 이 제한을 무시하면 칩이 영구적으로 손상될 위험이 있습니다.

• 버스 충돌 – 여러 장치가 동시에 시스템 버스를 구동하려고 하면 데이터 손상 또는 하드웨어 손상이 발생할 수 있습니다. 적절한 버스 중재 및 활성화 신호(RD', WR', CS')를 사용하면 이 문제를 방지할 수 있습니다.

• 디버깅 도구 – 문제가 지속되면 테스트 장비가 결함을 격리하는 데 도움이 됩니다. 로직 분석기는 타이밍 및 제어 신호를 확인할 수 있으며, 오실로스코프는 시끄러운 하드웨어 배선이나 잘못된 소프트웨어 초기화로 인해 문제가 발생하는지 확인할 수 있습니다.

결론

인텔 8255 PPI는 마이크로프로세서 인터페이스의 초석으로 남아 있습니다. 최신 GPIO 확장기와 내장 마이크로컨트롤러 I/O로 대체되었지만 계속해서 적극적인 교육 도구 역할을 하고 있습니다. 병렬 데이터 전송, 포트 구성 및 핸드셰이킹을 명확하게 시연하는 것은 누구에게나 매우 중요합니다.

자주 묻는 질문 [FAQ]

8255의 제어 단어는 무엇이며 왜 중요한가요?

제어 단어는 8255의 포트와 모드를 구성하기 위해 CPU에서 보내는 8비트 명령입니다. 이 옵션이 없으면 모든 포트가 기본 입력 상태로 유지됩니다. 각 포트가 입력 또는 출력 역할을 하는지 여부를 정의하고 모드 0, 1, 2 또는 비트 설정/재설정 중에서 선택합니다.

8255는 모터나 릴레이를 직접 구동할 수 있습니까?

아니요. 8255 출력은 몇 밀리암페어만 소싱하거나 싱크할 수 있으며, 이는 모터나 릴레이에 충분하지 않습니다. 더 높은 전류를 안전하게 처리하려면 트랜지스터 어레이 또는 H-브리지와 같은 외부 드라이버 회로를 사용해야 합니다.

8255가 오늘날에도 여전히 교육에 사용되는 이유는 무엇입니까?

8255는 마이크로프로세서 I/O, 제어 단어 및 병렬 데이터 전송에 대해 학습할 수 있는 명확하고 실습적인 방법을 제공합니다. 간단한 아키텍처는 학생들이 최신 마이크로컨트롤러로 이동하기 전에 핵심 개념을 이해하는 데 도움이 됩니다.

핸드셰이크 모드에서 포트 C를 사용하면 어떻게 됩니까?

모드 1 및 2에서 일부 포트 C 라인은 핸드셰이크 신호(예: STB, ACK, IBF, OBF)용으로 예약되어 있습니다. 이러한 핑은 이러한 모드 중에 범용 I/O로 사용할 수 없으며, 충돌을 피하기 위해 이를 고려해야 합니다.

8255는 최신 GPIO 확장기와 어떻게 다릅니까?

직렬 통신을 사용하는 I²C/SPI 확장기와 달리 8255는 병렬 버스와 함께 작동하므로 더 빠른 전송이 가능하지만 더 많은 핀이 필요합니다. 이로 인해 8255는 공간 효율성이 떨어지지만 실제 제어 및 버스 타이밍 학습에는 유용합니다.