RS232

RS232 Protocol – Basics

기하 2022. 2. 21. 21:21

https://www.electronicshub.org/rs232-protocol-basics/

 

RS232 Protocol – Basics

RS232 is one of the most widely used techniques to interface external equipment with computers. RS232 is a Serial Communication Standard developed by the Electronic Industry Association (EIA) and Telecommunications Industry Association (TIA). RS232 defines

www.electronicshub.org

RS232는

외부 장비를 컴퓨터와 인터페이스하기 위해 가장 널리 사용되는 기술 중 하나입니다. 

RS232는 EIA(Electronic Industry Association) 및 TIA(Telecommunications Industry Association)에서

개발한 직렬 통신 표준입니다.

 

RS232는 DTE와 DCE를 연결하는 신호를 정의합니다. 

DTE는 Data Terminal Equipment의 약자이며 DTE의 예로는 컴퓨터가 있습니다. 

DCE는 데이터 통신 장비 또는 데이터 회로 종단 장비를 나타내며

DCE의 예로는 모뎀이 있습니다.

 

RS232는 1960년대에 도입되었으며 원래 EIA 권장 표준 232로 알려졌습니다.

RS232는 여러 제조업체 간에 간단한 연결과 호환성을 보장하는

가장 오래된 직렬 통신 표준 중 하나입니다. 

 

원래 RS32의 DTE는 전기 기계 타자기이고 DCE는 모뎀입니다.

 

RS232는 단일 데이터 라인을 따라

한 번에 한 비트의 데이터가 전송되는 직렬 통신을 사용합니다. 

이는 여러 데이터 라인을 사용하여 한 번에 여러 비트의 데이터가 전송되는 병렬 통신과 대조됩니다.

병렬 통신보다 직렬 통신을 사용하는 이점은

전이중 데이터 전송에 필요한 전선 수가 매우 적다는 것입니다

(전선을 고려하지 않고 2선이면 충분합니다).

 

RS232는 1962년 EIA에 의해 표준화된 이후

사실상 컴퓨터 및 계측 장치의 표준이 되었으며

그 결과 가장 널리 사용되는 통신 표준이 되었습니다.

 

그러나 RS232 표준의 주요 단점은

데이터 전송률과 케이블 길이입니다. 

RS232는 19200bps의 최대 전송 속도를 지원하며

케이블의 최대 길이는 20미터입니다.

 

RS232는 무엇입니까?

공식적으로 RS232 표준은

EIA/TIA – 232라고 하며 직렬 이진 데이터 교환을 사용하는

DTE와 DCE 장치 간의 인터페이스로 정의됩니다. 

RS232는 적절한 표준으로 간주됩니다. 

이는 RS232가 다음을 지정하여 DTE와 DCE 장치 간에 충돌이 없도록 하기 때문입니다.

  • 전기 사양       Electrical Specifications
  • 기계적 사양    Mechanical Specifications
  • 기능 사양 및   Functional Specifications
  • 절차 사양       Procedural Specifications

이러한 모든 사양은

공통 전압 레벨, 신호 레벨, 핀 배선 사양, 호스트 장치와 주변 장치 간의 제어 데이터 등과 같은

다양한 매개변수를 제공합니다.

다양한 사양에 대해 자세히 살펴보겠습니다.

전기적 특성

RS232의 전기적 특성은 전압 레벨, 라인 임피던스 및 신호 레벨의 변화율과 관련된 사양을 정의합니다.

 

전압 레벨

RS232는 TTL 로직 이전에 정의되었으므로

RS232가 TTL 특정 5V 및 GND 로직 레벨을 사용하지 않는 것은 예상 밖의 일이 아닙니다.

 

RS232의

논리 '1'은 -15V ~ -3V의 전압 범위에 있는 것으로 설명되고

논리 '0'은 +3V ~ +15V의 전압 범위로 설명됩니다.

즉, 로우 레벨 전압은 논리 '1'이고 하이 레벨입니다. 전압은 논리 '0'입니다.

 

일반적으로 RS232의 논리 '1'은 -12V이고 논리 '0'은 +12V입니다. 

위에서 언급한 모든 전압은 공통 접지 'GND' 핀에 대한 것입니다. 

-3V와 +3V 사이의 모든 전압은 정의되지 않은 논리 상태로 간주됩니다.

역사적으로 논리 '1'(-15V ~ -3V)을 마킹Marking이라고 하고 논리 '0'(+3V ~ +15V)을 간격Spacing이라고 합니다.

슬루율 Slew Rate

다른 중요한 전기적 특성은 신호 레벨의 변화율, 즉 슬루율입니다. 

RS232의 최대 슬루율은 30V/µs로 제한됩니다. 

또한 최대 20Kbps의 비트 전송률도 정의됩니다.

표준의 이러한 제한은 인접 신호와의 혼선을 줄이는 데 도움이 됩니다.

 

라인 임피던스

라인 임피던스,

즉 DTE와 DCE 장치 사이의 와이어 임피던스는 약 3Ω에서 7Ω으로 지정됩니다.

또한 기존 RS232 규격에서는 케이블의 최대 길이를 15m로 규정하고 있으나

개정 규격에서는 단위 길이당 정전 용량으로 최대 길이를 규정하고 있다.

기계적 사양

RS232의 기계적 사양은 표준의 기계적 인터페이스를 다룹니다.

 RS232 표준은 RS232의 전체 기능을 지원하기 위해 25핀 D형 커넥터를 지정합니다.

다음 이미지는 DB25 커넥터를 보여줍니다. 

DTE 장치는 수 핀이 있는 암 외부 케이싱을 사용하고

DCE 장치는 암 핀이 있는 수 외부 케이싱을 사용합니다.

 

 

RS232에는 세 가지 유형의 신호가 있습니다. 

데이터, 제어 및 접지입니다. data, control and ground

다음 표는 핀 목록, 신호 유형과 함께 통신 방향을 보여줍니다.

전자 장비 와 장치가 작아짐에 따라 

DB25와 같은 더 큰 커넥터를 위한 공간이 없으며

대부분의 일반적인 응용 프로그램에서는 커넥터에 25개의 핀이 모두 필요하지 않습니다. 

따라서 기능이 축소된 9핀 커넥터가 일반적으로 사용됩니다.

 

9핀 커넥터는

DE-9(종종 DB-9로 잘못 불림)라고 하며

D형 초소형(D-Sub) 커넥터입니다. 

다음 이미지는 DE-9 수 커넥터와 암 커넥터를 보여줍니다.

DE-9 커넥터의 핀, 이름 및 설명은 다음 표에 나와 있습니다.

기능 사양

RS232는 완전한 표준으로 간주되기 때문에

전기적 및 기계적 특성 이상을 정의합니다. 

RS232 표준은 또한 인터페이스에서 사용되는 다양한 신호의 기능을 정의합니다.

신호는 공통, 데이터, 타이밍 및 제어 신호로 분류됩니다.

절차 사양

RS232의 절차 사양은 DTE와 DCE가 연결될 때 수행되어야 하는 작업 순서를 지정합니다.

컴퓨터(DTE)가 RS232 인터페이스를 통해 모뎀(DCE)에 연결되어 있다고 가정합니다. 

컴퓨터에서 모뎀으로 데이터를 전송하려면 다음 절차를 따라야 합니다.

  • 모뎀(DCE)이 수신 준비가 되면 DCE 준비 신호를 보냅니다.
  • 컴퓨터(DTE)가 데이터를 보낼 준비가 되면 RTS(Ready to Send) 신호를 보냅니다.
  • 그런 다음 모뎀(DCE)은 CTS(Clear to Send) 신호를 보내 컴퓨터(DTE)에서 데이터를 보낼 수 있음을 나타냅니다.
  • 마지막으로 컴퓨터(DTE)는 데이터 전송(TD) 라인의 데이터를 모뎀(DCE)으로 보냅니다.

참고: 이것은 정확한 절차는 아니지만 실제 절차와 유사합니다.

 

RS232의 실제 구현

RS232의 전압 레벨은 오늘날 설계된 대부분의 시스템과 매우 다릅니다.

 따라서 RS232 인터페이스를 구현하려면 일종의 레벨 변환기가 필요합니다. 

 

이 작업은 예를 들어 Maxim Integrated의 MAX232와 같은 전용 레벨 컨버터 IC에 의해 수행됩니다.

이 IC는 RS232 신호를 받아 TTL 레벨 전압을 생성합니다. 

이 IC는 또한 RS232의 저전압 레벨이 로직 '1'이고 RS232의 고전압 레벨이 로직 '0'이기 때문에 신호를 반전시킵니다. 

다음 이미지는 실시간 애플리케이션에서 RS232 드라이버의 구현을 보여줍니다.

 

여기서 UART(Universal Asynchronous Receiver Transmitter) 는

직렬 통신에 필요한 신호를 생성 및 수신하며

RS232 드라이버는 TTL과 RS232 인터페이스 간의 신호 변환을 담당합니다.

 

이 예에서 언급된 통신 시스템은 비동기식이며

시작 및 중지와 같은 동기화 비트와 오류 검사 비트(패리티)가 필요합니다. 

위의 예에서 UART는 데이터를 전송할 때 Start, Stop 및 Parity 비트를 생성하고

데이터를 수신하는 동안 오류를 감지하는 역할을 합니다.

 

다음 이미지는

컴퓨터와 모뎀 간의 일반적인 RS232 응용 프로그램을 보여줍니다. 

여기서 PC 또는 컴퓨터는 DTE이고 모뎀은 DCE입니다.

컴퓨터와 모뎀은 RS232 인터페이스를 사용하여 통신하며

모뎀 간의 통신은 통신 링크를 사용하여 설정됩니다.

 

RS232는 어떻게 작동합니까?

RS232에서 데이터는 단일 데이터 라인을 통해 한 방향으로 직렬로 전송됩니다. 

양방향 통신을 하기 위해서는 제어 신호와 별도로 최소 3개의 배선(RX, TX, GND)이 필요합니다. 

이전 바이트가 이미 전송된 경우 데이터 바이트는 언제든지 전송할 수 있습니다.

 

RS232는 비동기식 통신 프로토콜을 따릅니다.

즉 송신기와 수신기를 동기화하기 위한 클럭 신호가 없습니다. 

따라서 시작 및 정지 비트를 사용하여 데이터를 확인할 시기를 수신기에 알립니다.

 

각 비트의 전송 사이에는 특정 시간의 지연이 있습니다. 

이 지연은 비활성 상태일 뿐입니다. 즉 신호가

논리 '1' 즉 -12V로 설정됩니다(기억하는 경우 RS232의 논리 '1'은 -12V이고 논리 '0'은 +12V).

 

첫째, 송신기, 즉 DTE는 시작 비트를 수신기, 즉 DCE로 보내

데이터 전송이 다음 비트에서 시작됨을 알립니다. 

시작 비트는 항상 '0', 즉 +12V입니다. 다음 5~9자는 데이터 비트입니다.

 

패리티 비트를 사용하면 최대 8비트까지 전송할 수 있다. 

패리티를 사용하지 않으면 9개의 데이터 비트를 전송할 수 있습니다. 

데이터가 전송된 후 송신기는 정지 비트를 보냅니다. 

1비트 또는 1.5비트 또는 2비트 길이일 수 있습니다. 

다음 이미지는 RS232 프로토콜의 프레임 형식을 보여줍니다.

RS232는 완전한 표준으로 간주되지만 많은 제조업체에서 표준을 준수하지 않을 수 있습니다. 

일부 제조업체는 전체 사양을 구현하고 일부는 일부 사양만 구현합니다.

 

RS232 표준 구현의 이러한 변형 뒤에 있는 이유는

모든 장치와 응용 프로그램이 RS232 프로토콜의 전체 사양과 기능을 필요로 하는 것은 아니기 때문입니다. 

 

예를 들어, RS232를 사용하는 직렬 모뎀은

직렬 포트를 사용하는 직렬 마우스보다 더 많은 제어 라인이 필요할 수 있습니다.

 

그렇다면 서로 다른 사양을 사용할 수 있는

송신기와 수신기는 어떻게 데이터를 성공적으로 전송하거나 수신합니까? 

이를 위해 Handshaking이라는 프로세스가 사용됩니다.

 

Handshaking

핸드셰이킹은 통신이 시작되기 전에

송신기와 수신기 간의 통신 매개변수를 동적으로 설정하는 프로세스입니다.

 

핸드셰이킹의 필요성은

송신기(DTE)가 데이터를 전송하는 속도, 수신기(DCE)가 데이터를 수신하는 속도 및 데이터가

전송되는 속도에 의해 결정됩니다.

비동기식 데이터 전송 시스템에서는

핸드셰이킹, 하드웨어 핸드셰이킹 및 소프트웨어 핸드셰이킹이 있을 수 없습니다.

No Handshaking

핸드셰이킹이 사용되지 않는 경우

수신기(DCE)는 송신기(DTE)가 다음 데이터를 보내기 전에

이미 수신한 데이터를 읽어야 합니다. 

이를 위해 수신기는 Buffer라는 특별한 메모리 위치를 사용하며

수신기 측에서 사용하므로 Receiver Buffer라고 합니다.

 

수신된 데이터는

수신기가 읽기 전에 버퍼에 저장됩니다. 

수신기 버퍼는 일반적으로 단일 비트의 데이터를 저장할 수 있으며

다음 데이터가 도착하기 전에 이 데이터를 지워야(읽기)해야 하며 지워지지 않으면

기존 데이터를 새 데이터로 덮어씁니다.

다음 이미지는 송신기 및 수신기 버퍼를 사용하는 일반적인 데이터 송수신을 보여줍니다. 이 설정에서 수신기는 데이터의 처음 세 비트를 성공적으로 읽었지만 네 번째 비트는 읽지 않았습니다. 따라서 다음 비트, 즉 다섯 번째 비트는 네 번째 비트를 덮어쓰고 네 번째 비트는 손실됩니다.

 

이와 같은 상황을 피하려면 일종의 핸드쉐이킹 메커니즘(소프트웨어 또는 하드웨어 핸드쉐이킹)이 필요합니다.

 

하드웨어 핸드셰이킹

하드웨어 핸드셰이킹에서 송신기는 먼저 수신기에 데이터를 수신할 준비가 되었는지 묻습니다. 그런 다음 수신기는 버퍼를 확인하고 버퍼가 비어 있으면 수신할 준비가 되었음을 송신기에 알립니다.

송신기는 데이터를 전송하고 수신기 버퍼에 로드됩니다. 이 시간 동안 수신기는 수신기가 버퍼의 데이터를 읽을 때까지 더 이상 데이터를 보내지 않도록 송신기에 지시합니다.

RS232 프로토콜은 핸드셰이킹을 위해 4가지 신호를 정의합니다.

  • 보낼 준비 완료(RTS)
  • 보내기 지우기(CTS)
  • 데이터 터미널 준비(DTR) 및
  • 데이터 세트 준비(DSR)

다음 이미지는 하드웨어 핸드셰이킹 모드에서 9핀 송신기(DTE)와 25핀 수신기(DCE)와 9핀 송신기와 9핀 수신기 사이의 연결을 보여줍니다.

하드웨어 핸드셰이킹의 도움으로 송신기의 데이터는 수신기 버퍼에서 손실되거나 덮어쓰여지지 않습니다. 송신기(DTE)가 데이터를 보내려고 할 때 RTS(Ready to Send) 라인을 하이로 끌어옵니다.

그런 다음 송신기는 CTS(Clear to Send)가 높을 때까지 기다리므로 계속 모니터링합니다. CTS 라인이 낮으면 수신기(DCE)가 사용 중이고 아직 데이터를 수신할 준비가 되지 않았음을 의미합니다.

수신기가 준비되면 CTS 라인을 하이로 당깁니다. 그런 다음 송신기는 데이터를 전송합니다. 이 방법을 RTS/CTS 핸드셰이킹이라고도 합니다.

또한 Handshaking에는 두 개의 다른 와이어가 사용됩니다. DTR(Data Terminal Ready)과 DSR(Data Set Ready)이 있습니다. 이 두 신호는 DTE와 DCE에서 개별 상태를 나타내는 데 사용됩니다. 종종 이 두 신호는 모뎀 통신에 사용됩니다.

RS232의 최신 표준은 8 신호 하드웨어 핸드셰이킹을 정의합니다.

소프트웨어 핸드셰이킹

RS232의 소프트웨어 핸드셰이킹에는

통신 시작 및 중지를 위한 두 개의 특수 문자가 포함됩니다. 

이러한 문자는 X-ON 및 X-OFF(송신기 켜짐 및 송신기 꺼짐)입니다.

 

수신기가 X-OFF 신호를 보내면 송신기는 데이터 전송을 중지합니다. 

송신기는 X-ON 신호를 수신한 후에만 데이터 전송을 시작합니다.

 

RS232의 한계

  • RS232 프로토콜은 송신기(DTE)와 수신기(DCE) 사이에 공통 접지가 필요합니다. 
    따라서 RS232 프로토콜에서 DTE와 DCE 사이의 케이블이 더 짧은 이유입니다.
  • 라인의 신호는 노이즈에 매우 취약합니다. 소음은 내부 또는 외부일 수 있습니다.
  • 전송 속도와 케이블 길이가 증가하면 케이블 사이의 커패시턴스로 인해 혼선이 발생할 가능성이 있습니다.
  • RS232의 전압 레벨은 최신 TTL 또는 CMOS 로직과 호환되지 않습니다. 외부 레벨 변환기가 필요합니다.

애플리케이션

  • RS232는 매우 유명한 직렬 통신 프로토콜이지만 이제는 USB와 같은 고급 프로토콜로 대체되었습니다.
  • 이전에는 마우스, 모뎀 등과 같은 직렬 터미널에 사용했습니다.
  • 그러나 RS232는 일부 서보 컨트롤러, CNC 기계, PLC 기계에서 여전히 사용되고 있으며 일부 마이크로 컨트롤러 보드는 RS232 프로토콜을 사용합니다.