핵심 인사이트

  1. 차분 부호화(Differential Encoding)는 절대값이 아닌 연속 비트 간의 변화(차이)로 데이터를 표현하는 라인 코딩 기법으로, 수신기가 절대 전압 기준 없이도 전이(Transition) 유무만으로 데이터를 복원할 수 있어 극성 반전(Polarity Reversal)에 강인하다.
  2. 차분 맨체스터(Differential Manchester) 코딩은 클럭 동기화와 차분 부호화를 결합한 방식으로, 비트 시작의 전이 유무로 0/1을 구분하고 중간 전이로 클럭을 복원하여 Token Ring 네트워크의 표준 라인 코딩으로 채택됐다.
  3. NRZI(Non-Return-to-Zero Inverted)는 가장 간단한 차분 부호화 형태로, USB 1.0/2.0 풀스피드/하이스피드의 물리 계층 인코딩에 사용되며, 연속 0의 동기화 문제를 비트 스터핑(Bit Stuffing)으로 해결한다.

Ⅰ. 차분 부호화 원리

절대 vs 차분 부호화:

절대 부호화 (NRZ-L):
  0 = 0V, 1 = 5V
  문제: 수신기의 극성 반전 시 0과 1이 뒤바뀜
  
  극성 반전 예시:
    송신: 1 0 1 0 -> +5 0 +5 0
    케이블 반전: -5 0 -5 0
    수신: 0 1 0 1 -> 완전히 반대 해석!

차분 부호화 원리:
  데이터 = 이전 신호 대비 변화 여부
  
  규칙 (NRZI):
    1: 전이 발생 (Transition)
    0: 전이 없음 (No Transition)
  
  극성 반전 후에도:
    전이 유무는 변하지 않음 -> 올바른 복원

예시:
  데이터: 1 0 1 1 0
  NRZI:  전이→ 유지→ 전이→ 전이→ 유지→
  극성 반전해도 전이 패턴 동일 -> 복원 성공

📢 섹션 요약 비유: 차분 부호화는 모스 신호의 "짧다/길다"처럼 변화로 정보 전달 — 케이블을 뒤집어도 변화 패턴은 그대로.


Ⅱ. NRZI (Non-Return-to-Zero Inverted)

NRZI 인코딩:

규칙:
  비트 1: 현재 신호 레벨에서 전이
  비트 0: 전이 없음 (현재 레벨 유지)

예시:
  데이터:  1   0   0   1   1   0   1
  NRZI:  +V  +V  +V  -V  +V  +V  -V
          ↑       전이없  ↑   ↑   전이없  ↑

장점:
  극성 반전에 강인
  간단한 구현

단점:
  연속 0 -> 긴 시간 전이 없음
  -> 동기 손실 (클럭 복원 어려움)

USB에서 NRZI + 비트 스터핑:
  USB 1.0/2.0 물리 계층
  6개 연속 1 이후 0 삽입 (비트 스터핑)
  -> 강제 전이 생성 -> 동기 유지
  
  수신측: 6개 연속 1 다음 0을 제거 (디스터핑)

📢 섹션 요약 비유: NRZI 비트 스터핑은 지루한 회의 중 주기적으로 "여기까지 이해하셨나요?" 확인 — 오래 침묵하면 강제로 신호 삽입.


Ⅲ. 차분 맨체스터 코딩

Differential Manchester:

특성:
  각 비트 중간에 반드시 전이 (클럭 동기화)
  비트 시작에서:
    전이 없음: 비트 1
    전이 있음: 비트 0

예시:
  데이터: 0   1   0   1   1
  시작:  전이 유지 전이 유지 유지
  중간:  전이 전이 전이 전이 전이 (항상)

파형:
  0: [전이|전이] (시작에 전이 + 중간 전이)
  1: [유지|전이] (시작에 유지 + 중간 전이)

장점:
  클럭 내장 (중간 전이 항상 존재)
  차분 특성으로 극성 오류 내성

사용:
  Token Ring (IEEE 802.5): 4Mbps, 16Mbps
  IEEE 802.4 Token Bus
  현재는 Ethernet이 대체했지만 유산 시스템에 존재

📢 섹션 요약 비유: 차분 맨체스터는 시계 초침처럼 항상 중간에 딸깍 소리 — 소리 전에 방향 바뀌면 0, 안 바뀌면 1이에요.


Ⅳ. 다양한 차분 부호화 비교

차분 부호화 비교:

방식          사용처        전이 규칙
NRZI         USB           1=전이, 0=유지
NRZ-M        테이프        1=전이, 0=유지 (NRZI와 동일)
NRZ-S        일부 직렬     0=전이, 1=유지 (NRZI 반대)
차분 맨체스터  Token Ring    0=시작 전이, 1=시작 유지
                           (중간 전이는 항상)

일반 맨체스터 (비교용):
  절대 부호화 (차분 아님)
  0=하강, 1=상승 (비트 중간)
  이더넷(10BASE-T) 사용

4B/5B + NRZI:
  4비트 -> 5비트 변환 (연속 0 방지)
  NRZI 결합
  Fast Ethernet (100BASE-FX) 사용

📢 섹션 요약 비유: 다양한 차분 부호화는 같은 "변화로 신호" 원칙을 가진 방언들 — USB, Token Ring, Ethernet이 각자 조금씩 다른 규칙을 쓴다.


Ⅴ. 실무 시나리오 — USB 물리 계층

USB 2.0 NRZI 실제 동작:

USB 전선:
  D+ (데이터 양극)
  D- (데이터 음극)
  
차분 신호:
  J 상태: D+ = High, D- = Low
  K 상태: D+ = Low, D- = High
  SE0: D+ = D- = Low (리셋)

NRZI 매핑:
  J → K 또는 K → J 전이 = 0
  전이 없음 = 1

예: 바이트 0x53 = 01010011b 전송
  0: K 전이
  1: 유지
  0: K 전이
  1: 유지
  0: K 전이
  0: K 전이
  1: 유지
  1: 유지
  비트 스터핑: 1이 6개 연속 시 0 삽입

USB 3.0 이후:
  8b/10b 인코딩 또는 128b/132b 인코딩
  NRZI 벗어나 더 복잡한 라인 코딩 사용

📢 섹션 요약 비유: USB 신호는 두 선의 "같은 방향/다른 방향"으로 데이터를 전달 — 잡음이 두 선 모두에 동일하게 영향을 주므로 차분 신호로 잡음 제거.


📌 관련 개념 맵

차분 부호화 (Differential Encoding)
+-- 원리
|   +-- 절대 레벨 → 상대적 변화로 인코딩
|   +-- 극성 반전 내성
+-- 유형
|   +-- NRZI (USB, Fast Ethernet 보조)
|   +-- 차분 맨체스터 (Token Ring)
+-- 단점 보완
|   +-- 비트 스터핑 (USB)
|   +-- 4B/5B 변환 (연속 0 방지)
+-- 관련 코딩
    +-- 일반 맨체스터 (이더넷)
    +-- AMI (전화망)
    +-- B8ZS, HDB3

📈 관련 키워드 및 발전 흐름도

[NRZ 라인 코딩 (1950s)]
절대 레벨 기반 인코딩
      |
      v
[NRZI 개발 (1960s)]
자기 테이프 기록 극성 문제 해결
      |
      v
[차분 맨체스터 (Token Ring, 1985)]
IEEE 802.5 LAN 표준
      |
      v
[USB NRZI + 비트 스터핑 (1996)]
USB 1.0 물리 계층 표준
      |
      v
[USB 2.0 (2000)]
480Mbps, NRZI 유지
      |
      v
[USB 3.0+ (2008~)]
8b/10b, LFPS 등 더 복잡한 코딩
차분 부호화 계열 확장

👶 어린이를 위한 3줄 비유 설명

  1. 차분 부호화는 "변했냐, 안 변했냐"로 0과 1을 표현해요 — 케이블을 뒤집어도 변화 자체는 같으니 오류 없이 읽을 수 있어요.
  2. USB가 이 방식을 사용해서 케이블을 어느 방향으로 연결해도 데이터가 잘 전달돼요 (단, USB-A는 뒤집으면 안 되지만 신호 자체는 강인해요).
  3. 오랫동안 변화가 없으면 시계가 멈춰버리는 문제가 있어서, USB는 1이 6개 연속되면 강제로 0을 끼워 넣어 리듬을 유지해요!