시리얼 통신(Serial Communication)

Today Jeeho Learned·2022년 11월 4일
0

임베디드

목록 보기
1/3

INTRO

임베디드 시스템은 각종 프로세서와 회로들간의 통신하며 동작하는 것이 핵심이다. 웹에서는 프로토콜과 같은 개념으로 기기끼리 통신하기 위해서는 이런 표준 규격이 필요한데, 가장 많이 쓰이는 시리얼 통신에 대해서 알아보자.

시리얼 통신이란 ?

시리얼 통신은 Serial 직렬이란 뜻이고, 반의어는 parallel로 병렬이다. 그러니까 serial은 직렬통신이라고 불러도 무방하다. 서로 다른 컨트롤러를 직렬로 연결하여 통신하는 방법 중의 하나이다.

  • 직렬 통신
    데이터를 한번에 1bit씩 보내는 방식이다. 국도라고 생각하면 된다. 그렇기에 비용이나 자원이 크게 들지는 않는다. 또한 하나의 선만을 사용하기 때문에 하드웨어적으로 매우 간편해서 만들기가 쉽다. 하지만 데이터를 모으고 취합하는 과정을 구현해주어야 한다.

  • 병렬 통신
    한번에 8~16에 해당하는 bit를 보내는 방식이다. 고속도로라고 생각하면 된다. 비용이나 지원이 크게 든다. 선이 많기 때문에 가격이나 하드웨어적 구현면에서 시리얼보다 불편하다.

직렬, 병렬은 대충 이해한 것 같은데, 어떻게 통신(Communication)을 한다는 것일까?

시리얼 통신에서 데이터를 이진 펄스의 형태로 전송하고, 이진 1을 논리 HIGH로 이진 0을 논리 LOW로 나타낸다. Transmitter라는 보내는 녀석이 이진 펄스 형태로 데이터를 보내면 Receiver라는 받는 녀석이 높고 낮음을 구분하여 의미있는 데이터로 읽는다. (단, 실제로 단순하게 하나의 Transmitter와 하나의 Receiver로 구성되지만은 않는다.)

시리얼 통신의 구성

이런 방식으로 통신하기 위해서는 Transmitter와 Receiver는 Clock이 동기화 되어 있어야 한다. Clock이란 어떠한 시점에서 이진 펄스를 논리정보로 읽을 것인지에 대한 시점을 정하는 기준이 된다.

Transmitter가 보낸 어떤 이진 펄스가 있고, 8bit(8번 논리정보를 뽑아낸다고 생각)데이터를 clock을 고려해서 Receiver가 읽는다고 하자. Clock이 상대적으로 느리다면 10111011로 빠르다면 10111101로 읽게 된다. 똑같은 이진 펄스를 입력 받았는데도 말이다. 때문에 Transmitter와 Receiver의 Clock을 맞춰주는 것을 Clock Synchronization이라고 부르며 시리얼 통신에 꼭 필요한 구성요소다. 이러한 Clock Synchronization은 인터페이스 종류에 따라 동기와 비동기로 구분된다.

시리얼 통신의 방식

1. 동기식 시리얼 통신

동기 시리얼 통신은 각각의 PC가 이러한 신호 주기로 보내겠다는 Clock을 하고 데이터를 전송하는 방법이다. 그렇기 때문에 데이터를 보내는 데이터 선 말고도 클럭 주기를 맞추는 클럭선이 하나 더 필요하다. 미리 보내는 Clock를 맞추고 데이터를 주고 받기 때문에 오류가 적고, 빠른 데이터를 통신할 수 있다.

2. 비동기식 시리얼 통신

비동기식 시리얼 통신은 따로 주기를 정하지 않고, 시작과 끝을 알려주고 전송하는 방법이다.
데이터 선만 있으면 되기 때문에 단순하고 빠르게 통신 회선을 구성할 수 있다. 하지만 동기 시리얼 통신에 비해 안정성이나 속도가 느리다.

통신 규격: RS-232

현재까지 1대1 송,수신에 가장 많이 사용되는 규격이다.

초기에는 25핀이었지만 현재는 9핀만을 사용하고 있는 것이 대다수이다. 그리고 9핀에서 3핀만 연결하면 통신하는데 전혀 문제가 없다. (2번, 3번, 5번핀)

2번: Receive data line(또는 rx). 즉 DCE를 기준으로 물리적으로 실제 데이터를 받는 선
3번: Transmit(send 또는 tx) data line. DCE를 기준으로 물리적으로 실제 데이터를 보내는 선
5번: 데이터의 기준(ground)이 되는 선

profile
기록해야 (살아)남는다 !

0개의 댓글