RS232

직렬 통신이란 무엇이며 어떻게 작동합니까?

기하 2022. 2. 24. 10:40

 

https://www.codrey.com/embedded-systems/serial-communication-basics/

소개

직렬 통신Serial communication

데이터 처리 장비와 주변 장치 간에 정보를 전송하는 데 가장 널리 사용되는 접근 방식입니다. 

일반적으로 통신은 서면 문서, 구두 단어, 오디오 및 비디오 강의등을

통해 개인 간의 정보 교환을 의미합니다.

 

통신에 사용되는 장치는

개인용 컴퓨터이거나 직렬 프로토콜에서 실행되는 모바일일 수 있습니다. 

프로토콜은 소스 호스트( 발신자 )와 대상 호스트( 수신자 )가 지정하는

일련의 규칙을 갖는 안전하고 신뢰할 수 있는 통신 형식입니다. 

더 나은 통찰력을 얻기 위해 직렬 통신의 개념을 설명했습니다.

임베디드 시스템 에서 직렬 통신은

직렬 디지털 바이너리의 형태로 다양한 방법을 사용하여 데이터를 교환하는 방식입니다. 

데이터 교환에 사용되는 잘 알려진 인터페이스 중 일부는 RS-232 , RS-485, I2C, SPI 등 입니다.

직렬 통신이란 무엇입니까?

직렬 통신에서 데이터는 이진 펄스binary pulse 형태입니다. 

즉, 바이너리 1은 논리 HIGH 또는 5볼트를 나타내고

0은 논리 LOW 또는 0볼트를 나타냅니다. 

 

직렬 통신은 전송 모드데이터 전송 유형에 따라 다양한 형태를 취할 수 있습니다. 

전송 모드

전송 모드 Simplex, Half Duplex 및 Full Duplex로 분류됩니다. 

각 전송 모드에는 소스( 발신자 sender라고도 함) 와 대상( 수신자receiver 라고도 함)이 있습니다.

Transmission Modes – Serial Communication

Simplex 방식은 단방향 통신 기술입니다. 
단 하나의 클라이언트(발신자 또는 수신자가 한 번에 활성 상태임). 
발신자가 전송하면 수신자는 수락만 할 수 있습니다. 
라디오 및 텔레비전 전송은 심플렉스 모드의 예입니다.

Half Duplex 모드에서는 발신자와 수신자가 모두 활성 상태이지만 한 번에 활성화되지 않습니다.
즉, 발신자가 전송하는 경우 수신자는 수락할 수 있지만 보낼 수 없으며 그 반대의 경우도 마찬가지입니다. 
좋은 예가 인터넷입니다. 
클라이언트(노트북)가 웹 페이지에 대한 요청을 보내면

웹 서버는 응용 프로그램을 처리하고 정보를 다시 보냅니다.

 

Full Duplex mode 전이중 모드 세계에서 널리 사용되는 통신입니다. 
여기서 발신자와 수신자는 동시에 송수신할 수 있습니다. 예를 들면 스마트폰이 있습니다.

 

전송 모드 외에도
호스트 컴퓨터(발신자 또는 수신자)의 엔디안과 프로토콜 설계를 고려해야 합니다. 
엔디안Endianness은 특정 메모리 주소에 데이터를 저장하는 방식입니다. 
데이터 정렬에 따라 엔디안은 다음과 같이 분류됩니다.

  • 리틀 엔디안 
  • 빅엔디안

엔디안의 개념을 이해하려면 이 예를 사용하십시오. 
32비트 16진수 데이터 ABCD87E2 가 있다고 가정 합니다. 
이 데이터는 어떻게 메모리에 저장됩니까? 
명확한 아이디어를 얻기 위해 Little Endian과 Big Endian의 차이점 을 설명했습니다 .

Little Endian Vs Big Endian

데이터 전송 유형

데이터 전송은 두 가지 방법으로 발생할 수 있습니다. 
직렬 통신과 병렬 통신이 있습니다. 


직렬 통신은 전송기(송신기)와 수신기의 2선식을 사용하여
비트 단위로 데이터를 전송하는 데 사용되는 기술입니다.

예를 들어, 송신기에서 수신기로 8비트 바이너리 데이터 11001110 을 보내고 싶습니다. 
그러나 어떤 비트가 먼저 나옵니까? 
최상위 비트 – MSB(7 번째 비트) 또는 최하위 비트-LSB(0 번째 비트). 
우리는 말할 수 없습니다. 

여기서 나는 LSB가 먼저 움직이는 것을 고려하고 있습니다(little Endian의 경우).

Serial Communication

위의 다이어그램에서 모든 클록 펄스에 대해 
송신기는 단일 비트의 데이터를 수신기로 보냅니다.

병렬 통신은 한 번에 8, 16 또는 32비트의 데이터를 이동합니다. 
프린터와 Xerox 기계는 더 빠른 데이터 전송을 위해 병렬 통신을 사용합니다.

RS232 Parallel Communication

 

직렬 및 병렬 통신의 차이점

직렬 통신은 한 번에 한 비트만 보냅니다. 
따라서 더 적은 수의 I/O(입력-출력) 라인이 필요합니다. 
따라서 공간을 덜 차지하고 누화에 더 강합니다. 
직렬 통신의 주요 장점은
전체 임베디드 시스템의 비용 이 저렴해지고 정보를 장거리로 전송한다는 것입니다. 
직렬 전송은 모뎀과 같은 DCE(데이터 통신 장비) 장치에서 사용됩니다.

 

병렬 통신에서는 데이터 청크(8,16 또는 32비트)가 한 번에 전송됩니다. 
따라서 데이터의 각 비트에는 별도의 물리적 I/O 라인이 필요합니다. 
병렬 통신의 장점은 빠르지만 I/O(입력-출력) 라인을 더 많이 사용한다는 단점이 있습니다. 
병렬 전송은 CPU(중앙 처리 장치), RAM(랜덤 액세스 메모리), 모뎀, 오디오,
비디오 및 네트워크 하드웨어를 상호 연결하기 위해 PC(개인용 컴퓨터)에서 사용됩니다.

참고: 집적 회로 또는 프로세서가 더 적은 양의 입력/출력 핀을 지원하는 경우 직렬 통신을 선택하는 것이 좋습니다.

이해를 돕기 위해 직렬 통신과 병렬 통신을 비교합니다.

                    직렬 통신                                                                     병렬 통신

하나의 클럭 펄스에서 비트 단위로 데이터를 보냅니다. 한 번에 데이터 청크 전송
데이터를 전송하기 위해 하나의 와이어 필요 'n'비트를 전송하려면 'n'개의 라인이 필요합니다.
통신 속도가 느림 통신속도가 빠름
설치비가 저렴하다 설치비가 비싸다
장거리 통신에 선호 근거리 통신에 사용
예: 컴퓨터 대 컴퓨터 컴퓨터에서 다기능 프린터로

 

클럭 동기화 Clock Synchronization

직렬 장치의 효율적인 작업을 위해 클럭이 기본 소스입니다. 
클럭의 오작동은 예상치 못한 결과를 초래할 수 있습니다. 
클럭 신호는 직렬 장치마다 다르며 동기 프로토콜과 비동기 프로토콜로 분류됩니다.

동기 직렬 인터페이스 Synchronous serial interface

동기 직렬 인터페이스의 모든 장치는 단일 CPU 버스를 사용하여 클록과 데이터를 모두 공유합니다. 
이 사실 때문에 데이터 전송이 더 빠릅니다. 
장점은 전송 속도의 불일치가 없다는 것입니다. 
또한 인터페이스 구성 요소에 더 적은 수의 I/O(입력-출력) 라인이 필요합니다. 
예를 들면 I2C, SPI 등이 있습니다.

비동기 직렬 인터페이스 Asynchronous serial interface

비동기식 인터페이스에는 외부 클록 신호가 없으며 다음 네 가지 매개변수에 의존합니다 .

  1. 전송 속도 제어
  2. 데이터 흐름 제어
  3. 송수신 제어
  4. 오류 제어.

비동기식 프로토콜은 안정적인 통신에 적합합니다. 
이들은 장거리 애플리케이션에 사용됩니다. 
비동기 프로토콜의 예로는 RS-232 , RS-422 및 RS-485가 있습니다.

직렬 통신은 어떻게 작동합니까?

마이크로 컨트롤러 및 마이크로 프로세서와 같은 고급 CPU는
직렬 통신을 사용하여 외부 세계 및 칩 주변 장치와 통신합니다. 
익숙해지기 위해 간단한 예를 들어보겠습니다. 
예를 들어 노트북에 있는 파일을 스마트폰으로 보내고 싶다고 가정해 보겠습니다. 
어떻게 보내시겠습니까? 아마도 Bluetooth 또는 WiFi 프로토콜을 사용하는 것 같습니다.

따라서 직렬 통신을 설정하는 단계는 다음과 같습니다.

  1. 연결을 추가합니다.

      첫 번째 단계에서 노트북은 100m 근처에 있는 장치를 검색하고 발견된 장치를 나열합니다. 
      이 프로세스를 종종 로밍이라고 합니다.

  1. 통신하려는 장치를 선택하십시오.

      모바일에 연결하려면 페어링이 완료되어야 합니다.   
      기본 구성은 이미 소프트웨어에 있습니다. 


따라서 전송 속도를 수동으로 구성할 필요가 없습니다. 
이 외에도 4가지 알려지지 않은 규칙이 있습니다. 
전송 속도, 데이터 비트 선택(프레이밍), 시작-정지 비트 및 패리티입니다.

Rules of Serial Communication

 

# 1 보드율이란 무엇입니까? Baud rate

전송 속도 는 초당 비트의 형태로 송신기에서 수신기로 데이터를 전송하는 속도입니다. 
표준 전송 속도 중 일부는 1200, 2400, 4800, 9600, 57600입니다.

양쪽(모바일 및 랩톱)에서 동일한 전송 속도를 설정해야 합니다.

참고: 전송 속도가 높을수록 더 적은 시간에 더 많은 데이터를 전송할 수 있습니다.

그러나 수신기 측에서 샘플링 주파수의 불일치로 인해 안전 한도로 최대 115200을 사용하는 것이 좋습니다.

# 2 프레이밍 Framing

프레이밍은 호스트 장치(노트북)에서 모바일(수신기)로 전송하려는 데이터 비트 수를 보여줍니다. 
5, 6, 7 또는 8비트입니까? 대부분의 장치는 8비트가 선호됩니다. 
8비트 데이터 청크를 선택한 후 엔디안은 발신자와 수신자가 동의해야 합니다.

# 3 동기화 Synchronization

송신기는 원본 데이터 프레임 에 동기화 비트 ( 1 시작 비트 및 1 또는 2 정지 비트)를 추가합니다. 
동기화 비트는 수신기가 데이터 전송의 시작과 끝을 식별하는 데 도움이 됩니다. 
이 프로세스를 비동기식 데이터 전송 이라고 합니다.

# 4 오류 제어 Error Control

수신기 측의 외부 노이즈로 인해 데이터 손상이 발생할 수 있습니다. 
안정적인 출력을 얻는 유일한 솔루션은 Parity 를 확인하는 것 입니다.

이진 데이터에 짝수 1이 포함되어 있으면 짝수 패리티 라고 하며 패리티 비트가 ' 1 '로 설정됩니다. 
이진 데이터에 홀수 1이 포함되어 있으면 홀수 패리티 라고 하며 이제 패리티 비트가 ' 0 '으로 설정됩니다.

 

비동기 직렬 프로토콜

임베디드 시스템 작업을 시작할 때 가장 많이 떠오르는 질문은 비동기식 프로토콜을 사용하는 이유입니다.

  • 더 먼 거리에서 정보를 이동하고
  • 보다 안정적인 데이터 전송을 위해.

비동기 통신 프로토콜 중 일부는 다음과 같습니다.

RS-232 프로토콜

  • RS232 는 전화 통신용 모뎀 연결에 사용되는 최초의 직렬 프로토콜입니다. 
    RS는 Recommended Standard 권장 표준의 약자로 
    현재는 EIA( 전자산업연합 )/TIA( 전기통신산업협회)로 변경되었습니다.
  • 모뎀, 마우스 및 CNC(계산된 수치 계산) 기계에도 사용됩니다. 
    단일 수신기에 단일 송신기만 연결할 수 있습니다.
  • 전이중 통신을 지원하며 최대 1Mbps의 전송 속도를 허용합니다.
  • 케이블 길이는 50피트로 제한됩니다.

아시다시피 메모리에 저장되는 데이터는 바이트 형식입니다. 
바이트 단위 데이터가 이진 비트로 어떻게 변환되는지 의심스러울 수 있습니다. 
정답은 직렬 포트입니다.

 

직렬 포트에는 UART 라는 내부 칩이 있습니다. 
UART는 Universal Asynchronous Receiver Transmitter의 약자로
병렬 데이터(바이트)를 비트 직렬 형식으로 변환합니다.

RS232 Serial Port

RS-232 배선 연결

RS232 직렬 포트에는 9개의 핀, 수 또는 암 유형 모델이 있습니다 . RS 232C 직렬 통신 인터페이스 는 RS232의 최신 버전입니다.

RS232에 있는 모든 기능은 25핀을 제외하고 RS232C 모델에 있습니다. 25개 또는 9개의 핀 중 단말 장치 연결에 3개의 핀만 사용합니다.

RS232 배선 연결

RS422 인터페이스

RS232 를 사용하여 최대 1Mpbs 제한까지 데이터를 전송할 수 있습니다 . 이 문제를 극복하기 위해 RS422가 등장했습니다. RS422는 멀티 드롭 직렬 인터페이스입니다. 단일 버스를 사용하여 한 번에 10개의 송신기를 10개의 수신기에 연결할 수 있습니다. 2개의 트위스트 페어 케이블( 차동 구성 )을 사용하여 데이터를 전송합니다. 케이블 길이는 4000피트이며 전송 속도는 10Mbps입니다.

RS 422 배선 연결

RS485 인터페이스

RS485는 업계에서 선호하는 프로토콜입니다. RS422와 달리 32개의 라인 드라이버와 32개의 수신기를 차동 구성으로 연결할 수 있습니다. 트랜스미터는 라인 드라이버 라고도 합니다 . 그러나 한 번에 하나의 송신기만 활성화됩니다.

RS485 배선 연결

참고: RS232 및 RS485의 경우 연결을 수동으로 종료해야 합니다.

1-Wire 프로토콜

하나의 와이어는 I2c 프로토콜과 유사합니다. 그러나 차이점은 하나의 와이어 프로토콜 이 단일 데이터 라인과 접지를 사용한다는 것입니다. 클럭 신호가 필요하지 않으며 슬레이브는 내부 수정 발진기를 사용하여 클럭됩니다. 반이중 통신을 제공합니다.

하나의 와이어는 64비트 주소 지정 체계를 사용합니다. 원 와이어 인터페이스의 장점은 저렴한 비용으로 장거리 통신을 지원한다는 것입니다. 하지만 속도가 느리다는 단점이 있습니다.

비동기식 유선 프로토콜은 장거리 통신에 적합합니다. 그러나 동기 직렬 인터페이스에 범위를 제공하는 한 가지 단점이 있습니다.

단점은 더 많은 송신기와 수신기를 연결해야 하는 경우 설치 비용이 많이 든다는 것입니다.

동기 직렬 프로토콜

동기 통신 프로토콜은 온보드 주변 장치를 위한 최고의 리소스입니다. 이점은 동일한 버스에서 더 많은 장치를 인터페이스할 수 있다는 것입니다. 동기 프로토콜 중 일부는 I 2 C , SPI , CAN  LIN 입니다.

I2C 프로토콜

I2c(Inter-integrated circuit)는 동일한 버스에 있는 서로 다른 장치 간의 데이터 교환에 사용되는 2선식 양방향 프로토콜입니다. I2c는 7비트 또는 10비트 주소를 사용하여 최대 1024개의 장치를 연결할 수 있습니다. 그러나 시작 및 정지 조건을 생성하기 위해서는 클럭 신호가 필요합니다. 장점은 400kbps로 데이터 전송을 제공한다는 것입니다. 온보드 통신에 적합합니다.

SPI 프로토콜

SPI(Serial Peripheral Interface) 프로토콜은 중단 없이 연속 스트림으로 데이터를 보내고 받습니다. 이 프로토콜은 고속 데이터 통신이 필요한 경우에 권장됩니다. 제공할 수 있는 최대 속도는 10Mbps입니다.

i2c와 달리 SPI에는 4개의 와이어가 있습니다. MOSI(Master out slave in), MISO(Master in slave out), Clock 및 Slave 선택 신호입니다. 이론적으로 우리는 무제한의 슬레이브를 연결할 수 있으며 실제로는 버스의 부하 커패시턴스에 따라 다릅니다.

CAN 프로토콜

이 프로토콜은 차량 시스템 또는 자동차 전용입니다. 구리를 절약하기 위해 다중 전기 배선에 사용되는 메시지 지향 프로토콜입니다. 차량의 자동 시작/정지, 충돌 방지 시스템 등과 같은 애플리케이션에 사용되는 다중 마스터 다중 직렬 버스입니다.

USB

USB 인터페이스는 직렬 또는 병렬 포트에 대한 최상의 대안입니다. USB 포트와 관련된 데이터 전송은 직렬 및 병렬 인터페이스보다 훨씬 빠릅니다. USB는 1.5Mbps(USB 1.0) ~ 4.8Gbps(USB 3.0)의 속도를 지원합니다. 오늘날 대부분의 임베디드 장치는 16진수 파일을 마이크로컨트롤러 에 덤프하기 위해 USB OTG(On Go programming) 기술을 사용합니다 .

마이크로와이어

Microwire는 3선 직렬 통신 프로토콜입니다. 주변 장치 칩과 인터페이스하기 위해 마이크로 컨트롤러 에 직렬 I/O 포트가 있습니다. 최대 3Mbps의 속도를 지원합니다. i2c 및 SPI 프로토콜의 하위 집합보다 빠릅니다.

결론

직렬 통신은 전자  임베디드 시스템 영역에서 중요한 부분입니다 . 두 장치가 동일한 버스에서 정보를 교환하려는 경우 데이터 전송 속도가 중요합니다. 따라서 모든 애플리케이션에 유효한 직렬 프로토콜을 선택해야 합니다.