전공/데이터 통신

[데이터 통신 5-2강] block coding, Scrambling, Transmission Mode

뜨거운 개발자 2023. 10. 27. 00:53

2. Block coding

블록으로 디지털 데이터를 묶어서 또 다른 형태의 비트로 바꾸는 것 입니다.

이건 디지털 시그널이 아니라 bit가 bit형태로 바뀌는 건데 하나의 블록이 모여서 또 다른 블록은 만든다고 이해하면 됩니다.

라인코딩은 디지털 데이터를 디지털 시그널로 바꾼것! (bit by bit 또는 group by group) ⇒ 쉽게 말하면 들어오는 족족 바뀌는 것을 말함.

  • 블록 코딩은 일반적으로 4비트가 들어오면 5비트가 되는 등 일반적으로 더 길어집니다.
  • 멀티레벨 방식보다는 효율이 더 좋다!!
  • m비트가 들어왔을 때 n비트로 바꿔주는데 n이 m보다 크다.
  • 이러한 방식을 mB/nB 코딩이라고 부릅니다.

    이런식으로 매핑시키는것

    (이건 컴팩트 디스크에서 사용하는 기법 → 칼로 긁혀도 데이터가 원래 훼손 되지만 디코딩으로 원래 데이터를 쉽게 얻을 수 있습니다.)

예시 4B/5B

  • 블록 코딩은 독자적으로 사용할 수 없습니다. (그에 비해 라인코딩은 독자적으로 사용가능)

이걸 보면 block coding이후 degital transmition이 붙은 걸 볼 수 있습니다.

블록코딩으로 0이 연속으로 나오는 문제를 해결 할 수 있다.

이걸 보면 0이 연속적으로 4개가 나오는 경우도 없고, 시작할 떄 0이 두개가 나오는 경우도 없다는 것을 볼 수가 있습니다.

그래서 실제로 2^4개 만큼을 표현하기 위해서 2^5개를 표현할 수 있는 5비트를 사용하기 때문에 남은 비트들에 대해서, control Sequence의 목적으로 사용하거나 사용하지 않을 수 있다. (명령을 사용할 수 있는것)

  • 4B/5B 블록 코딩의 효율
    • 중복비트는 비트를 25%를 더 추가해서 20%의 bandwidth 비효율 문제가 발생합니다.
    • 교수님이 25퍼센트라고 정정하심 ( 4비트에서 1비트 추가시 25%)
      • 1비트에서 1비트 추가시 100%로 설명함.
    • 이 방식은 더 효율적이지만 설계가 어렵다는 단점이 존재합니다.

8B/10B

  • 8진수/10진수(8B/10B) 인코딩
  • 4B/5B 보다 에러 감지는 상당히 뛰어납니다.
  • 8비트를 10비트로 만드는 건 복잡해서 쪼개서 계산을 합니다.
  • 대신 성능은 조금 떨어지게 됩니다.

3. Scrambling

라인 코딩과 block coding은 길어지기도 하는데, Scrambling은 비트가 더 길어지지는 않습니다.

패턴을 그대로 바꾸는 것입니다.

이걸 보면 스크램블링을 통해서 1과 -1이 교차하게 보내는데 이렇게 되면 baseline wandaring 문제가 발생합니다.

B8ZS

예시 0이 연속으로 4번 나오는 경우 4번째 0에 v신호를 보내는 것 입니다.

이것의 의미는 1을 보내고 다음 1은 -1을 보내야 하는데 0이 4번 나와서 1을 보내줌으로써 정해진 약속이 깨졌다.

그리고 다시 그것의 반대인 -1을 보냄으로써 base line Wandering문제를 해결했다.

  • 8개의 연속된 0 레벨 전압은 000VB0VB 시퀀스로 대체됩니다.

Transmission Mode

설계 철학이라고 보면 됩니다.

신호를 병렬로 할지 직렬로 할지에 대한 이야기 입니다.

비싼 통신은 병렬로 싼 건 직렬로 한다고 보면 됩니다.

Parallel Transmission

병렬로 보냅니다.

최근에 기술들은 키보드를 제외한다면 거의 모든게 parallel Transmission을 사용해서 보냅니다.

시리얼은 순차적임

Asynchronous Transmission

비동기 전송

  • 신호가 맞을 필요가 없는 전송
  • 다만 비동기라고 해서 bit by bit이 싱크가 안 맡는다는 의미가 아닙니다.
  • 비트스트림이 쭉 갈때, 끊어주는 순서를 맞추면 동기 안 맞추면 비동기 입니다.
  • 반드시 비동기 동기가 직렬 병렬에 구분되는 게 아닙니다.

비동기는 언제 시작하고 언제 끝나는지가 정해놓느냐 그떄그때 정하느냐의 차이점 입니다.

즉 한바이트가 들어오고 1을 누르면 꺼집니다.

즉 언제 들어올 지 모르는 입력의 경우 적절합니다. (비동기가) 대표적인 예시가 키보드

데이터 스트림을 계속해서 보내야하면 Frame단위로 보내서 동기의 대표적인 예시입니다.

동기 비동기와 직렬 병렬은 아에 상관없습니다!!!


Uploaded by N2T

728x90