- NRZ, RZ, AMI, Pseudo-Ternary와 같은 라인코딩 기법들은 스스로 Synchronization이 되지 않아서 자동
- Clocking이 되지 않는다. 그러나 그런 코딩기법들은 여러 기법을 사용해서Clocking 가능하게 만들 수 있고,
- 실제로 BiPolar + Scrambling 기법인 8BSZ, HDB3는 현업에서 장거리 통신시 메인으로 쓰이고있다.
- Clocking을 유용하게 만들 두가지 기법 (블록코딩, 스크램블링)에 대해서 알아보자.
1. 블록 코딩 (NRZ 등에 사용 가능)
1) 4B/5B , 8B/10B
- 블록코딩은 Clocking을 위해 m비트를 n비트로 변환시키게 된다. (위 그림 : 4Bit => 5Bit)
- 블록코딩의 예로는 4B/5B나 8B/10B이 있는데, 이는 4비트를 5비트로, 혹은 8비트를 10비트로 바꾼다
- 어떻게 쓰이냐면, 0000과 같이 Clocking이 힘든 코드들을 00100과 같이 인코딩한다 (테이블이 있다)
- 그런데 기본적으로 4bit가 5bit로 변해서 쓸모없는 데이터가 들어가기 때문에 전송 효율은 떨어진다
- 필요한 Bandwidth가 증가하고, 전체 신호를 보면 평균 0이 보장되지 않아서 DC가 발생할 수 있다.
- 4B/5B 기준으로 보면 16개의 신호만 필요한데 만들어지는 신호의 종류는 25개가 만들어진다.
- 이 때, Clocking에 유용한 비트패턴들은 데이터로 사용하고, 00000, 11111, 00001과 같이
- Clocking이 어려운 비트패턴은 오류검출과 같은 특수 목적으로 사용하게 된다.
1-2) Multi-level Coding as Block Coding
- 앞서 배웠던 2B1Q나 8B6T도 어떻게 보면 8개의 신호를 6개로 바꾸는 등 n개 비트가 m개로 변하고,
- Clocking을 위해 0이나 1이 반복되는 비트패턴은 오류검출로 쓰는 것과 같이 블록코딩과 매우 비슷하다.
- 교수님 말로는 2B1Q나 8B6T같은 Multi-Level Coding기법들도 블록코딩의 일종으로 봐도 무방하다고 한다.
2. Scrambling
- Scrambling은 추가비트 없이 기존 데이터를 섞어서(Scramble) 자동으로 Clocking하는 방식으로
- 현재 장거리 통신의 표준인 B8SZ(미국)와 HDB3(유럽)이 있다. (즉, 현재 현역으로 쓰이는 방식이다)
- Bi-Polar는 1이 나올때는 신호가 계속 위아래로 변하므로 0이 지속될때만 처리해주면 된다.
- 나중에 배우겠지만 스크램블 된 데이터를 다시 원래대로 돌려야 제대로 신호를 복구 할 수 있기
- 때문에 디 스크램블링 (Descrambling 알고리즘도 존재한다)
1) B8SZ (Bipolar with 8-Zero Substitution)
- B8SZ는 미국의 표준화 방법으로, 8개의 0을 만나면 의도적으로 Violation을 2번 일으키면서 신호를 섞는다.
- 그래서 수신측에서는 의도적인 2번의 Violation이 관측되면 그 것을 0이 Scramble되었음을 파악할 수 있다.
- 만약 가장 최근에 찍힌 0이 아닌 신호가 +였다면 (+ - 0 - +)로 의도적으로 2번의 Violation을 일으키고,
- 가장 최근에 찍힌 0이 아닌 신호가 -였다면 (- + 0 + -)로 의도적으로 2번의 Violation을 일으켜서 섞는다.
- 이렇게 해서 가장 긴 0의 시퀀스가 최대 7개까지만 허용된다. 8개부터는 Scramble해버린다.
2) HDB3 (High Density Bi-Polar 3-Zero)
- HDB는 4개의 0이 지속되면 의도적으로 Violation을 일으키는데 신호에 따라서 000V혹은 B00V로 변환한다.
- 이렇게 하는 이유는 0이 아닌 준위 (+ 혹은 -)의 개수를 일정하게 짝수개로 유지하여 DC성분을 잡기 위함이다.
- 1) 직전 Scrambling (Substitution) 이후에 0이 아닌 펄스의 개수가 짝수이면 H00V로 대체한다.
- - 위 그림처럼 첫 Subsitution 전에 1의 개수가 2개이다. 이 때, 0이 4번 지속되면 신호를 B00V로 바꿔서
- - 0이 아닌 성분이 짝수개가 되었다. (11B00V로 11BV : 4개)
- 2) 직전 Scrabling (Substitution) 이후에 0이 아닌 펄스의 개수가 짝수이면 000V로 대체한다.
- - 위 그림처럼 두번 째 Substition이 일어나기 전 0이 아닌 펄스의 개수가 5개이다. 이 때, 0이 4번 지속되면
- - 신호를 000V로 맞춰서 0이 아닌 성분이 짝수개가 되었다 (11B00V10000이 11B00V1000V로 11BV1V : 6개)
- HDB3는 조금 더 복잡하지만, 4개의 연속된 0비트가 나올 때 바로 섞어버리기 때문에 Clocking에 더욱 강력하다
- 위 그림을 보면 앞선 8개의 0신호 시퀀스에선 둘다 스크램블링 했지만, 뒤쪽 5개의 연속된 0시퀀스에서는
- B8SZ는 그대로 놔뒀지만, HDB3는 스크램블해주었다. 따라서 HDB3는 최대로 허용되는 연속 0신호가 3개이다.
3. Reference
데이타통신
정보통신 분야를 이해하기 위하여 본 강좌는 데이타통신과 컴퓨터네트워크의 기본원리와 기술에 초점이 맞추어져 있다. 데이타전송기술, 데이타링크 제어, 패킷교, LAN 등을 포함하여 프로토콜과 최신 통신기술을 강의한다.
www.kocw.net
'네트워크' 카테고리의 다른 글
아날로그 to 디지털 전송 (2) - PCM 변조 (펄스 코딩 변조) (0) | 2020.05.12 |
---|---|
아날로그 to 디지털 전송 (1) - ADC (아날로그 to 디지털 변환) (0) | 2020.05.12 |
디지털 to 디지털 전송 (5) - 보율의 개념 & 보율-데이터율 변환법 (0) | 2020.05.12 |
디지털 to 디지털 전송 (3) - 라인 코딩 스키마 (2) (0) | 2020.05.08 |
디지털 to 디지털 전송 (2) - 라인 코딩 스키마 (1) (1) | 2020.05.07 |
디지털 to 디지털 전송 (1) - 라인 코딩 개요 (0) | 2020.05.07 |
물리층 (6) - 성능 (0) | 2020.04.13 |