본문 바로가기

Robotics : 로봇공학/Certificate : 자격증

1-1-1 마이크로컨트롤러의 통신 방식

RS232C는 PC와 마이크로컨트롤러(MCU(micro-controller unit)라고도 한다)가 데이터를 주고받기 위한 통신 방식이다. 또 RS232C 통신 방식을 이용하여 직렬 통신(serial communication)하기 위한 마이크로컨트롤러의 기능을 USART(universal synchronous and asynchronous serial receiver and transmitter)라 한다.

 

  • 직렬 통신

데이터를 전송하는 방식으로는 여러 개의 전송 매체를 이용하여 동시에 전송하는 병렬 통신(parallel communication)과 1개의 전송 매체를 이용하여 한 번에 한 비트씩 전송하는 직렬 통신(serial communication)으로 나눌 수 있다.

병렬 통신은 여러 개의 데이터 전송 라인을 이용하여 다수의 비트가 한 번에 전송하는 방식으로서, 전송 속도가 직렬 통신에 비해 빠르다. 주로 2개의 마이크로컨트롤러 간이나 마이크로컨트롤러와 IC 간의 데이터 전송에 사용된다.

직렬 통신은 1개의 데이터 전송용 라인을 이용하여 한 번에 한 비트씩 전송하는 방식으로서, 병렬 통신에 비하여 구현하기 쉽고 가격이 싸며 거리 제한이 적은 반면 병렬 통신에 비하여 전송 속도가 느리다는 단점이 있다. 직렬 통신은 주로 마이크로컨트롤러와 PC 간의 데이터 전송에 사용된다.

[그림 1-1](a)는 8개의 데이터 버스(data bus, 마이크로컨트롤러에서는 전송 매체를 데이터 버스라고 표현하기도 한다)를 이용하여 2개의 디바이스가 데이터를 교환하는 병렬 통신 방식이며, [그림 1-1](b)는 1개의 전송 매체를 이용하여 데이터를 교환하는 직렬 통신 방식이다.

 

[그림 1-12] 직렬 통신과 병렬 통신

  • 비동기 전송

마이크로컨트롤러와 PC가 직렬 통신을 할 때에는 주로 비동기 전송 방식을 사용한다.

비동기 전송은 하이 레벨과 로우 레벨을 가지고 0과 1을 구분하는 NRZ-L과 같은 클러킹(clocking) 기능이 내장되지 못한 신호를 이용하여 전송하는 경우에 주로 사용하는 전송 방식이다.

비동기 전송에는 비트 타이밍(bit timing) 문제를 해결하기 위하여 긴 비트열을 보내지 않고, 한 번에 한 문자(character) 단위로 전송하는 방식이다.

이때 각 문자의 길이는 7비트 또는 8비트를 많이 사용한다. [그림 1-2]는 전형적인 비동기 전송의 프레임을 나타내고 있다. 프레임에는 7비트의 데이터와 1비트의 패리티 비트(parity bit), 그리고 1비트의 시작 비트(start bit), 1 또는 2비트의 정지 비트(stop bit)가 포함되어 총 10~11비트의 문자 단위로 전송된다.

비동기 전송에서 전송 매체에는 항상 1의 신호, 즉 0V의 신호가 흐른다.

만약, 송신기가 프레임을 보내려고 할 때에는 시작 비트를 0으로 변화시키고 데이터를 보내게 된다. 반면, 수신기는 전송 매체를 관찰하다가 1에서 0으로 변화될 때 프레임의 전송이 시작되고 있음을 감지하고 데이터를 수신하게 된다.

이러한 방법에 의하여 송신기와 수신기의 동기는 시작 비트에 의하여 재동기화(resynchronization)가 이루어진다.

비동기 전송은 동기 전송에 비하여 매우 간단하고 가격이 저렴하다.

이러한 이유로 비동기 전송은 RS232C, RS485 등 여러 프로토콜에서 채택되고 있다. 그러나 8비트의 데이터 전송에 3비트의 오버헤드가 포함된다는 단점이 있다.

따라서 비동기 전송은 매우 낮은 전송 속도에서만 사용 가능하다.

출제 : 비동기 전송의  특징이 아닌것은?

[그림 1-2] 비동기 전송

  • RS232C 통신

RS232는 EIA(electronic Industries Association)에서 제정한 시리얼 통신(serial transmission) 을 위한 인터페이스 표준이다.

RS232에는 A, B, C 세 가지 버전이 있는데, 각 버전들은 1 과 0의 전압 차의 범위에 따라 달라진다.

그 중에서 가장 많이 사용되는 것이 C 버전, 즉 RS232C이다.

RS232C는 25핀 커넥터와 9핀 커넥터를 정의하고 있는데, 일반적으로는 [그림 1-3]과 같이 간략화된 9핀 커넥터를 더 많이 사용한다.

9핀 커넥터의 2번은 RxD, 3번은 TxD, 5번은 GND로 PC와 마이크로컨트롤러를 연결할 때 3핀만 연결하면 된다.

RS232C의 전기적 규격에는 전압 레벨이 정의되어 있다.

RS232C는 양극성 NRZ-L 인코딩 방식을 사용하고 있다.

또 공통 접지(0V)를 기준으로 -3V와 -12V 사이면 1로 인식하고, +3V와 +12V 사이면 0으로 인식한다.

RS232C의 데이터 전송률은 보통 20 Kbps보다 작고, 전송 거리는 15 m 이내이다.

출제 : RS232C 통신의 특징이 아닌것은?

[그림 1-14] RS232C의 케이블 연결