전공/데이터 통신

[데이터 통신 5-1강] Line Coding Schemes

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

시작하면서

  • 5계층에서 2계층에 해당하는 Data Link layer에서 0과 1에 해당하는 값들이 1계층인 physical Layer로 내려옵니다.
  • 0과 1을 어떤 형태 즉 어떤 전자기파의 형태로 보내질지를 결정하는데 그 모양을 ditial signal이라고 부릅니다.
  • 디지털 시그널이란 : 레벨 즉 값이 정해진 곳에 매핑되는 것을 의미합니다.
  • 무선 통신의 경우는 주로 아날로그로 보내집니다.
  • Digital transmission(디지털 전송)의 의미는 0과 1에 해당하는 디지털데이터를 이미 정해진 레벨에 매핑해서 디지털 시그널 형태로 바꾸는 것 입니다.
    • 즉 physical Layer에서 일어나는 일이다.
  • Analog-to-digital conversion 이건 application에서 일어나는 것 입니다.
    • 아날로그 데이터를 컴퓨터에 저장하기 위해서는 반드시 디지털 화 해야만 합니다. (ADC)

Digital Transmission: Digital-to-Digital Conversion

  • 데이터는 Digital 또는 아날로그 일 수 있다.
  • 데이터를 나타내는 signal은 디지털 또는 아날로그 일 수 있다.

변환 방법 3가지

1. Line coding

  • 0과 1이 나오면 실시간으로 매핑되는 것을 Line coding이라고 부른다.
    • 즉 line coding은 bit by bit로 계속해서 시그널이 생성된다고 보면 됩니다.
    • 라인 코딩은 비트 시퀀스를 디지털 신호로 변환합니다.
    • 즉 디지털 데이터를 디지털 신호로 변경하는 것입니다.
    • (Line coding converts a sequence of bits to a digital signal.)
  • 하나의 signal elemnet데이터 elements보내는 역할을 하게 됩니다.

단 여기서 반드시 1대1로 매핑되는 건 아니고 다른 형태로도 매핑이 가능하다.

(강의 중 ratio는 굳이 알 필요 없다고 언급 다만 굳이 이해하자면 효율이라고 이해)

  • Ratio : 하나의 신호 요소가 전달하는 데이터 요소의 수
  • Data element
    • the smallest entity that can represent a piece of information; this is the bit
    • 정보를 나타낼 수 있는 가장 작은 개체로, 비트가 여기에 해당
  • Signal element
    • the shortest unit (timewise) of a digital signal
    • 디지털 신호의 최단 단위(시간 기준)
예시
  1. 1개의 signal elemnet가 하나의 Data element에 매핑되는 경우 (Ratio =1)
  1. 2개의 signal을 이용해서 1개의 data element를 나타내는 경우(Ratio = 1/2)
  1. 두개의 data element를 이용해서 하나의 signal element를 나타낸다. (Ratio =2)
  1. 4개의 데이터 elements를 이용해서 3개의 signal 표현 (Ratio = 4/3)

Data Rate Versus Signal Rate

라인 코딩은 1초에 몇 개의 data elements를 보내는가를 말합니다.

우리가 이야기 하는 data rate는 일반적으로 몇 비트를 보내는가를 말합니다.

여기서 알 수 있는 것 : bandwidth는 data elements가 아니라 signal elements를 통해서 구할 수 있다.

🧑🏻‍💻
따라서 물리적인 한계를 이야기 할 때는 결국 signal rate가 중요한데 그것의 다른 이름이 baud rate입니다.
  • Data rate
    • 1초 단위로 전송되는 데이터 요소(비트)의 수입니다.
    • 단위는 초당 비트(bps)입니다.
  • Signal rate (or baud rate)
    • 1초동안 전송된 signal elements 의 수
    • 단위는 baud입니다.
  • 여담 : Main Board의 스펙을 볼 때 baud rate를 볼 수 있습니다.
  • Bandwidth
    • 디지털 시그널이 차지하는 bandwidth는 0~infinite 입니다.
    • 다만 실제 bandwidth는 무한해도 effective bandwidth(유효 대역폭) 는 유한하다.
    • 따라서 baud rate, not the bit rate, 로 digital signal에 대한 required bandwidth 를 결정합니다.

통신 간 문제점

data를 송신기에서 보냈는데 수신측에서 문제가 발생한다. 크게 3가지의 문제점을 볼 수 있다. 이것들을 극복할 수 있도록 잘 설계를 해야만 합니다.

  1. Baseline Wandering (기준선 방황)
    1. baseline이란 수신된 신호의 평균 값 입니다.
    1. 계속해서 0을 보내는지 아니면 노이즈 때문에 같은 값이 나오는지를 수신기가 구분하기가 어렵습니다.
    1. 따라서 해결하려면 변화를 주는 방법을 사용합니다.
  1. DC Components
    1. 계속해서 0 주변 주파수가 발생하는 경우 실제로 0 근처의 주파수는 저주파를 통과할 수 없는 시스템 문제가 발생합니다.
    1. 예를 들어, 전화선은 200Hz 이하의 주파수를 통과할 수 없습니다.
  1. Self-synchronization (자체 동기화)
    1. 송신기와 수신기 사이의 clock이 따로 존재하는데 원래 송신기와 수신기의 clock은 동일해야 하는데 다르다는 예시

      이렇게 되면 수신측에서 비트 숫자를 오해하는 문제가 발생할 수 있다.

      이 세상에 완벽하게 일치하는 Clock은 존재할 수 없다.

      실제로 현실에서는 GPS를 이용해서 맞춥니다.

    1. self-synchronizing digital signal 은 데이터에 타이밍 정보가 포함됩니다.
    • 동기화 문제 예시

원하는 해결책

  1. Built-in Error Detection : 생성된 코드에 오류 감지 기능이 내장되어 전송 중에 발생한 오류의 일부 또는 전부를 감지
  1. Immunity to Noise and Interference(잡음 및 간섭에 대한 내성) : 소음 및 기타 간섭(interferences)에 영향을 받지 않습니다
  1. Complexity (복잡성) : complex scheme은 단순한 것보다 구현하는 데 더 많은 비용이 듭니다. 즉 이왕이면 복잡도를 낮추면 좋겠다는 것

시험문제 예시 : 다음중 lineCoing 에 고려해야하는 것은?

Line Coding Schemes

라인 코딩 체계(Schemes)는 크게 5가지 범주로 나뉩니다.

1. Unipolor :

  • 신호를 표현할 때 +,- 에 관계없이 한쪽 영역만 사용해서 표현
  • 단순하고 값이 싸다.
  • 극이 하나밖에 없는 것 (+와 - 를 극이라고 부름)
  • NRZ(Non- Return-to-Zero) 기법입니다.
    • 신호가 비트 중간에서 0으로 가지 않습니다.
    • Return to Zero기법 : self 동기화 및 DC 컴포넌트 문제 해결을 위해 사용 , 다만 변화하기 때문에 bandwidth를 더 많이 차지하고 더 복잡하다
  • 유니폴라의 단점 : self synchrtronization 과 DC문제를 해결할 수 없다.

2. Polar

  • + volt와 - volt 양쪽을 다 사용합니다.
  1. Non Return to Zero
    • NRZ-L : 0은 plus 1은 minus를 의미
    • NRZ-I : 1이 나올 때만 level을 변화시키는 방식
  • NRZ-I, NRZ-L의 단점 : 여전히 DC컴포넌트 문제와 셀프 싱크로나이즈 문제를 해결하지 못하였다.
    • 각각의 0의 분포에 따라서 효율은 다릅니다.
  1. Return to Zero
    • NRZ 인코딩의 주요 문제는 발신자와 수신자의 시계가 동기화되지 않을 때 발생합니다.
    • 따라서 Bit사이가 아니라 비트 도중에 시그널을 변화시키는 방식을 사용합니다.
    • 다만 개념적으로는 있지만 bandwidth가 증가하는 단점이 있어서 현재 사용하고 있지는 않다.

3. Biphase: Manchester and Differential Manchester

  • 현재에도 사용하고 있는 방식(가장 중요!!)
  • 개념적으로 return to zero와 비슷하지만 0으로 이동하는 게 아니라, high to low로 이동합니다.
  • 따라서 0은 high to low 1은 low to high로 표현이 되는 식으로 보면 된다.
  • Differential Manchester : 위에서 봤듯 0이 나오니 유지 1이 나오니 변화하는 모습이 유사하다.
  • 이 방식은 셀프 싱크로나이즈를 해결했고, DC 문제역시 해결됐다.
    • 다만 bandwidth가 넓어진다.

4. Bipolar

  • +와 - 와 0을 이용한다고 하는데 사실 polar와 bipolar를 굳이 구분할 필요는 없습니다.
  • 바이폴라 인코딩(다단계 바이너리라고도 함)에서는 양수, 0, 음수의 세 가지 레벨을 사용합니다

  1. AMI기법
    • 0일 때 아무것도 보내지 않고 1일 때 plus 또는 minus를 보냅니다.
    • 번갈아 가면서 + ,- 로 보냅니다. (DC 컴포넌트 문제를 해결)
      • 다만 셀프 싱크로나이즈는 해결하지 못했다.
  1. Pseudoternary
    • 그냥 AMI에서 0과 1의 차이만 있는 것 입니다.
    • 즉 1일 때 0으로 가고 0일 때 양과 음이 번갈아 가며 보내짐
  • 1일 때는 교대되서 DC 문제 없고, 0일 떄는 아에 아무것도 안 보내서 문제가 없다.
  • AMI는 일반적으로 장거리 통신에서 사용됩니다.
    • 이런 경우에 동기화 문제가 발생합니다.
    • 아무것도 안 보내고 있을 때는 올바르게 보내고 있는지 확인이 불가 하기 때문에

5. Multilevel

  • 하나의 시그널로 여러개의 디지털 신호를 표현할 수 있는 것.
  • 데이터 rate가 올라가지만 에러에 취약하다.
  • mBnL 방식!
  • 멀티레벨 같은 경우 리던던트(남는 비트?)가 있기 때문에 self싱크로나이즈 문제를 그걸 활용해서 해결하는 기법이 존재한다!
  • 4개의 레벨을 가지고 2개의 signal element를 적용해준다고 하면, 그렇게 되면 16개의 레벨을 16개의 siganl element 경우의 수로 매핑시켜준다.
    • 4개의 비트를 16가지 시그널 형식으로 매핑을 시켜주는 것 입니다.
    • 4B2 : 4개의 레벨을 구분할 수 있는 시그널 element를 2개를 사용한다는 의미
    • 4B2Q : 4개의 레벨을 가지고 있는 2개의 시그널 element에 매핑
    • 3비트 신호 매핑인 경우
    • 3B2T : 이 경우는 데이터는 2^3으로 8이고 시그널은 3^2으로 9까지가 가능합니다. 따라서 한가지가 남는다고 봐도 된다.
  • 2B1Q
    • 4개의 비트 패턴을 4개의 시그널에 매핑 시키는 경우

6. Multiransition : (몰라도 된다고 언급하심)

  • Multilevel Schemes: 8B6T 의 의미는
  • 8B: 데이터의 갯수가 2의 8승
  • 6T: 시그널의 갯수가 3의 6승이 됩니다.
  • 그래서 가능한 시그널 갯수에서 데이터의 갯수를 빼서, 3^6 - 2^8 으로 473개의 중복신호 요소(redundatant signal elemnets) 가 남습니다.
  • 즉 473개중에 몇개를 동기화를 위해서 사용합니다.
  • 통신측에서는 일정 시간마다 반복적으로 동기화를 위한 패턴을 보내고 수신측은 그 값을 받아서 데이터를 동기화 해줍니다.
  • 에러 감지도 가능한데 이건 구체적으로 중간고사 이후에 다룰 예정
    • DC balance 같은 경우 DC컴포넌트 문제를 해결해주는 것(이것 역시 간단한 설명)
  • 각각의 시그널 패턴에는 0또는 1 DC값의 가중치가 있을 수 있다.

  • 이 그림에서 의미하는 건 8비트의 정보를 6개의 비트로 표시했다는 것만 이해하고 가면 됩니다.

Multilevel Schemes: 4D-PAM5

4개의 시그널레벨을 가지는데, 시그널 elements를 4개를 사용한다. 여기서 4개를 사용하는 방법이 구리선 4개를 사용하는 것이다. 그래서 4^4이다.

4개의 구리선을 사용 사실상 보드 Rate는 125 MBd이지만 하나의 2개의 bit를 실어서 보내면 되기 때문에 250Mbps 가 됩니다.

그래서 8B4Q와 비슷합니다.

  • 이것은 한번에 4개의 시그널이 생기고 8비트가 실린다는 것을 의미합니다.
  • 4Q같은 경우 4^4 이고, 8B같은 경우 2^8입니다.
  • 4D는 데이터가 동시에 4개의 와이어를 통해 전송된다는 의미입니다.
  • -2, -1, 0, 1, 2 등 5가지 전압 레벨을 사용합니다.
  • 그 이유는 0은 에러 수정을 위해서 사용합니다.


Uploaded by N2T

728x90