디지털 to 디지털 전송 (4) - Clocking 기술 (블록코딩, 스크램블링)

네트워크

2020. 5. 8. 07:23

  • NRZ, RZ, AMI, Pseudo-Ternary와 같은 라인코딩 기법들은 스스로 Synchronization이 되지 않아서 자동
  • Clocking이 되지 않는다. 그러나 그런 코딩기법들은 여러 기법을 사용해서Clocking 가능하게 만들 수 있고,
  • 실제로 BiPolar + Scrambling 기법인 8BSZ, HDB3는 현업에서 장거리 통신시 메인으로 쓰이고있다.
  • Clocking을 유용하게 만들 두가지 기법 (블록코딩, 스크램블링)에 대해서 알아보자.

 

1. 블록 코딩 (NRZ 등에 사용 가능)

1) 4B/5B , 8B/10B

[그림] 블록코딩 기법인 4B/5B

  • 블록코딩은 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)

[그림] 8BZS

  • 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)

[그림] HDB3 기법

  • 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개)

[그림] 두 Scrambling 기법 비교

  • HDB3는 조금 더 복잡하지만, 4개의 연속된 0비트가 나올 때 바로 섞어버리기 때문에 Clocking에 더욱 강력하다
  • 위 그림을 보면 앞선 8개의 0신호 시퀀스에선 둘다 스크램블링 했지만, 뒤쪽 5개의 연속된 0시퀀스에서는
  • B8SZ는 그대로 놔뒀지만, HDB3는 스크램블해주었다. 따라서 HDB3는 최대로 허용되는 연속 0신호가 3개이다.

 

3. Reference

 

데이타통신

정보통신 분야를 이해하기 위하여 본 강좌는 데이타통신과 컴퓨터네트워크의 기본원리와 기술에 초점이 맞추어져 있다. 데이타전송기술, 데이타링크 제어, 패킷교, LAN 등을 포함하여 프로토콜과 최신 통신기술을 강의한다.

www.kocw.net