[데이터통신] 라인코딩, 블록코딩, 데이터 전송 모드
서론
1비트를 어떤 신호로 바꿀까요? 이러한 방법들을 라인코딩이라 합니다.
라인코딩에 대해 알아봅시다.
라인코딩
목표
우선 전기적 신호로 바꿀 때, 가장 문제가 되는 것은 DC(Direct Current)성분입니다.
전이가 없으면, 수신기 입장에서는 0과 1의 연속된 데이터를 받습니다.
0일때는 큰 문제가 없지만 1이 연속될 때 큰 문제를 가지는데, 4가지 정도의 문제점이 있습니다.
- 클럭 복구 어려움
- 동기화 실패
- DC 성분 증가(전압 평균값이 0이 아님..)
- 신호 왜곡(내부 커퍼시티 전하 누적 오차)
종류
라인 코딩의 종류에 대해 알아봅시다. 5가지로 나눌 수 있습니다.
- Unipolar(단극)
- Polar(양극)
- Bipolar(양극인데 1일때 + -를 번갈아가면서 씀)
- Multilevel(여러 개의 전압 레벨)
- Multitransition(심볼 하나에 2번 이상의 전이)
NRZ (Non-Return-to-Zero)
단순히 1과 0의 높고 낮은 신호를 이용합니다.
클럭 정보가 없어서, 동기 문제가 생길 수 있습니다.
NRZ-L: 1/0일때 신호 있음/없음을 판단합니다.
NRZ-R: 1일때 신호를 반전시킵니다.
Manchester
각 비트마다 중간에 전이가 있어, 클럭 정보가 포함된다.
대역폭이 N이여서,
2B1Q (2 Binary 1 Quaternary)
2비트를 1심볼로 표현 (4개 레벨 전압 사용)
“00” → -3V, “01” → -1V, “10” → +1V, “11” → +3V 등
고속 전송 가능하지만, 전압 레벨 구분이 필요함
비교
윗 내용을 다음과 같은 표로 정리할 수 있습니다.
항목 | NRZ (Polar) | Polar RZ | Manchester | Bipolar (AMI) | 2B1Q |
---|---|---|---|---|---|
전압 수준 | +V / -V | +V / 0 / -V | +V ↔ -V (중앙 전이) | 0, +V, -V | -3V, -1V, +1V, +3V |
전이(Transition) | 없음 가능 | 매 비트 전이 발생 | 매 비트 중간 전이 발생 | 1마다 전이, 0은 없음 | 전이 없음 가능, 심볼만 전송 |
DC 성분 | 있음 | 거의 없음 | 없음 | 없음 | 설계에 따라 감소 가능 |
클럭 복구 | 어려움 | 쉬움 | 매우 쉬움 | 중간 | 어렵거나 별도 동기 필요 |
대역폭 | N/2 | N | N | N/2 이하 가능 | N/2 이하 가능 (2비트/심볼) |
r값 (비트/심볼) | 1 | 1/2 | 1 | 1 | 2 |
전송 효율 | 좋음 | 중간 | 낮음 | 좋음 | 매우 좋음 |
노이즈 내성 | 낮음 | 중간 | 높음 | 높음 | 낮음 (전압 구분 어려움) |
사용 예제 | UART, RS-232 | 일부 클럭 신호 | Ethernet (10BASE-T 등) | T1 회선, 전화 시스템 | ISDN, DSL 등 고속 전화 회선 |
블록 코딩
정의
클럭 복구와 DC 성분 문제를 해결하기 위해, 송신 데이터의 비트 패턴을 변환하는 방식
4B5B
4비트 데이터를 5비트 코드로 전이가 일어나게 설계된 것 입니다.
16개는 데이터용, 16개는 명령용 제어 코드로 사용하며
라인 코딩(NRZ-I)과 조합하면, 전이, DC 성분 최소화 되서 이상적인 신호를 전송 가능합니다.
과정
위 과정을 다음과 같이 보일 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
송신자
↓
m비트 데이터 그룹
↓ (블록 코딩: m → n)
n비트 블록 코드 그룹
↓ (라인코딩: NRZ-I 등)
전기적 신호로 전송
↓ (라인 디코딩)
n비트 블록 코드 그룹
↓ (블록 디코딩: n → m)
m비트 데이터 그룹
↓
수신자
데이터 전송 모드
크게 병렬과 직렬로 나뉩니다.
직렬에서도 크게 3가지로 나뉩니다.
- 비동기(asynchronous): 데이터 + 클럭
- 동기(synchronous): 데이터 + 별도 클럭 신호 (맨체스터 인코딩)
- 등시(isochronous): 일정시간간격 전송
표로 정리해봅시다.
항목 | 비동기 (Asynchronous) | 동기 (Synchronous) | 등시 (Isochronous) |
---|---|---|---|
전송 단위 | 문자 (byte) 단위 | 블록 단위 | 고정 시간 간격의 스트림 |
클럭 방식 | 클럭 포함 (start/stop 비트로 동기화) | 별도 클럭 신호 사용 | 시간 기준 동기화 + 예약된 대역폭 |
오버헤드 | 큼 (start/stop bit 필요) | 작음 (블록만 전송) | 작음 (start/stop 없음) |
실시간성 | 낮음 | 중간 | 매우 높음 |
신뢰성 | 중간 | 높음 | 낮음 (오류 정정 없음) |
장점 | 구조 간단, 클럭선 불필요 | 전송 효율 좋음, 고속 전송 가능 | 지연 적음, 실시간 오디오/영상 전송에 적합 |
단점 | 오버헤드 큼, 느림 | 회로 복잡, 초기 동기화 필요 | 오류 정정 어려움, 일정 대역폭 필요 |
주요 예시 | RS-232, UART, PS/2 키보드/마우스 | Ethernet, 광통신, HDLC, 전화망 | USB 오디오/비디오, VoIP, IEEE 1394 (FireWire) |
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.