Serial 통신

Godssi·2025년 4월 1일

Communication

목록 보기
6/8

데이터 통신 방식 중 하나로, 데이터를 bit 단위로 순차적으로 전송하는 방식으로 긴 거리 데이터 전송에 유리하며 전송 속도가 늦은 대신 신뢰성이 높음
병렬 통신과 대조되는 개념으로, 병렬 통신에서는 여러 개의 데이터 비트를 동시에 전송


물리적 연결

RS-232CRS-422RS-485
신호 방식Single EndedDifferentialDifferential
Dirver:Receiver1:11:N(32)N(32):N(32)
통신 방식Full DuplexFull DuplexHalf Duplex
통신 거리Max. 15mMax. 1.2kmMax. 1.2km
통신 속도Max. 20KbpsMax. 10MbpsMax. 10Mbps
수신 감도+/- 3V+/- 0.2V+/- 0.2V
신호선3선 (TXD, RXD, GND)4선 (TX+, RX+, TX-, RX-)2선 TX+/RX+, TX-/RX-
장단점Noise 취약Noise 강함Noise 강함
CableShielded, 3 LineShielded, 2 twisted pair cableShielded, 1 twisted pair cable

Single Ended

하나의 신호선과 하나의 공통 그라운드를 사용하는 신호 방식, 신호는 신호선과 그라운드 사이의 전압 차이로 전달

Differential

두 개의 신호선(Data+, Data-) 사이의 전압차를 이용해 신호를 전송, 이런 방식은 노이즈에 강한 특성을 가짐

Noise 제거 방식

  • Noise 없는 신호
    • 송신
      • Data + : +12V
      • Data - : -12V
    • 수신
      • Data + : +12V
      • Data - : -12V
      • Data : +12V -(-12V) = 24V
  • Noise 있는 신호
    • 송신
      • Data + : +12V + N
      • Data - : -12V + N
    • 수신
      • Data + : +12V + N
      • Data - : -12V + N
      • Data : +12V+N -(-12V+N) = 24V <- 능동적으로 Noise 제거

주요 Protocol

UART(Universal Asynchronous Receiver/Transmitter)

비동기식 통신 방식으로, 데이터 전송 시 별도의 Clock 신호 없이 시작 비트와 정지 비트를 통해 데이터 프레임 구분

MODBUS

마스터-슬레이브 아키텍처를 사용하는 통신 프로토콜로, 산업 자동화 시스템에 자주 사용

SPI(Serial Peripheral Interface)

동기식 통신 프로토콜로, 마스터-슬레이브 아키텍처를 사용, Clock 신호(SCLK)를 통해 데이터 전송을 동기화

I2C(Inter-Integrated Circuit)

동기식 통신 프로토콜로, 두 개의 와이어(SDA, SCL)로 다중 마스터-다중 슬레이브 네트워크를 구성 가능

CAN(Controller Area Network)

차량 및 산업 자동화 시스템에서 많이 사용되며, 여러 마스터와 슬레이가 있는 네트워크에서 충돌을 제어하고 신뢰성 있는 통신을 제공


오류 검출

Parity Bit

데이터 전송 과정에서 발생할 수 있는 단일 비트 오류를 검출하기 위해 데이터 프레임에 추가되는 비트
Parity Bit는 데이터 비트의 수를 체크하여 짝수 또는 홀수 숫자가 되는지 확인하는 역할

종류

  • Even Parity Bit : 데이터 비트의 1의 개수짝수로 만드는 비트, 더 직관적이고 흔하게 사용
    • 예시

      • Data Bit : 1101
      • 1의 개수 : 3(홀수)
      • Parity Bit : 1(추가하면 1의 개수가 짝수)
      
      | Data Bits | Parity Bit |
      | --------- | ---------- |
      |    1101   |      1     |
      
  • Odd Parity Bit : 데이터 비트의 1의 개수홀수로 만드는 비트
    • 예시

      • Data Bit : 1100
      • 1의 개수 : 2(짝수)
      • Parity Bit : 1(추가하면 1의 개수가 홀수)
      
      | Data Bits | Parity Bit |
      | --------- | ---------- |
      |    1100   |      1     |
      

CRC(Cyclic Redundancy Check)

데이터 통신에서 데이터 오류를 검출하기 위한 더 정교한 방법
다항식 나눗셈을 이용하여 데이터 블록에서 “Checksum”과 같은 값을 생성하고, 이를 데이터의 끝에 추가하여 전송
수신 측에서는 동일한 나눗셈 과정을 수행하여 오류를 검출

동작 방식

  1. 송신 : 데이터 비트를 다항식으로 간주하여 미리 정의된 생성 다항식과 나눅셈을 수행, 나머지는 CRC CheckSum으로 계산되고 Data의 끝에 추가
    a. 예시
    • 데이터 비트 : 110101

    • 생성 다항식 : 101
      데이터 비트 반환 : (생성 다항식의 Bit 수 - 1) 개수 만큼 데이터 비트에 0 추가

    • 나눗셈 계산(XOR) 후 나머지 계산(CRC)

      
      Data Bit     : 110101
      Polynomial   : 101 (3)
      New Data Bit : 11010100
      (Operation - XOR)
      11010100
      101
      --------
       1110100
       101
      --------
        100100
        101
      --------
          1100
          101
      --------
           110
           101
      --------
            11 <-나머지(Remainder) - CRC Checksum
      
      Data Bit with CRC = 11010111
  2. 수신 : 수신된 데이터에 대해 동일한 다항식 나눗셈을 수행하여 나머지 계산, 나머지가 0이 아닐 경우 데이터 오류로 간주
    a. 예시
    • 수신된 데이터 : 11010111

    • 동일한 생성 다항식 : 101

    • 나눗셈 계산(XOR) 후 나머지 계산 : 에러 검출 단계

      
      Data wit CRC : 11010111
      			Polynomial   : 101
      (Opearation - XOR)
      11010111
      101
      --------
       1110111
       101
      --------
        100111
        101
      --------
          1111
          101
      --------
           101
           101
      --------
             0 <- 나머지(Remainder), CheckSum is zero therefore no transmission error

장점

  1. 단일 비트 오류 외에도 다중 비트 오류 및 연속적인 비트 오류를 검출 가능
  2. 통계적으로 강력한 오류 검출 기능 제공
  3. 네트워크 및 데이터 저장 장치에서 데이터 무결성을 유지하는데 자주 사용

참고 자료

시리얼 통신 - RS422, RS485
CRC(Cyclic Redundancy Check) 간단 소개와 동작 이론

profile
세상을 도울 로봇 개발자

0개의 댓글