25년차가 아직도 보드에 RS232 회로 넣는 이유, MAX232 그리고 TX RX 실수담
RX선을 상대방 RX에, TX선을 상대방 TX에 연결했습니다. 그리고 아무리 시리얼 터미널을 열어봐도 화면에는 아무것도 뜨지 않았습니다. 이 어이없는 실수 하나 때문에 신입 시절 밤을 꼬박 새운 기억이 아직도 생생합니다. 스마트폰 때문에 USB나 블루투스, 와이파이가 익숙하시겠지만 공장 현장의 컨트롤 보드 뒤편을 열어보면 지금도 D-SUB 9핀 커넥터가 떡하니 박혀 있는 경우가 정말 많습니다.
산업현장에 아직도 RS232가 살아있는 이유
저는 AVR 계열 8비트 MCU로 단순한 컨트롤 보드를 설계할 때, 별다른 고민 없이 RS232 회로부터 기본으로 깔고 갑니다. 디버그용으로도 쓰고, 외부 PC와의 통신용으로도 씁니다.
RS232는 EIA(전자산업협회, Electronic Industries Association)가 1960년대에 제정한 직렬 통신 표준입니다.
여기서 직렬 통신이란 데이터를 한 비트씩 순서대로 하나의 선을 통해 주고받는 방식을 말합니다.
병렬로 여러 선에 동시에 데이터를 실어 보내는 방식보다 느리지만, 배선이 단순하고 노이즈에 상대적으로 강한 편이라 산업 현장에서는 지금도 골칫거리 없이 잘 씁니다.
실제로 RS-232 표준은 2000년대 초반 컴퓨터 주변기기 시장에서는 USB에 자리를 많이 내줬지만, 설계가 단순하고 저속 통신이면 충분한 산업용 시스템에서는 여전히 광범위하게 쓰이고 있다고 합니다(출처: 뉴헤이븐 디스플레이).
8비트 MCU들은 이더넷이나 USB 컨트롤러를 따로 붙이려면 부품값도 오르고 펌웨어도 복잡해집니다. 그런데 RS232는 UART(Universal Asynchronous Receiver/Transmitter)라는, MCU 내부에 기본으로 들어있는 하드웨어 모듈만 있으면 됩니다. UART란 데이터를 직렬 형태로 바꿔서 순서대로 보내고 받는 통신 전용 회로를 말합니다. 별도의 클럭선 없이도 정해진 통신속도(Baud Rate)에 맞춰 알아서 송수신을 처리해줍니다.
MAX232로 만드는 RS232 회로 구성법
회로 자체는 그렇게 어렵지 않습니다. MCU는 0V~5V(또는 3.3V) 로직 레벨로 동작하는데, RS232 규격은 신호 레벨이 훨씬 높습니다. 그래서 레벨 컨버터가 필요한데, 이 레벨 컨버터란 서로 다른 전압 체계를 가진 두 장치 사이에서 신호 전압을 변환해주는 부품을 말합니다.
저는 MAX232나 MAX3232 IC를 주로 씁니다.
MAX232는 5V 단일 전원만으로 내부 차지펌프를 이용해 필요한 ±전압을 자체적으로 만들어주기 때문에 외부에 별도의 전원부를 안 만들어도 되는 게 가장 큰 장점입니다.
MAX3232는 3.3V 계열 MCU를 쓸 때 선택하는데, 요즘 저전력 설계가 많아지면서 오히려 이쪽을 더 자주 씁니다.
여기에 D-SUB 9핀 암 커넥터를 보드에 고정으로 박아주고, 캐패시터 4~5개(보통 1uF 또는 0.1uF 세라믹) 붙여주면 하드웨어는 끝입니다. 회로도만 놓고 보면 초보자도 어렵지 않게 그릴 수 있는 수준입니다.
![]() |
| [RS232 기본 회로 : SP3232는 3V~5.5V까지 지원된다] |
| 부품 | 특징 | 적용 MCU 전압 |
| MAX232 | 차지펌프 내장, 외부 커패시터 필요 | 5V |
| MAX3232 | 저전압 대응, MAX232보다 소비전류 낮음 | 3.0V ~ 5.5V |
TX RX 핀맵, 신입 때 저를 울린 실수
회로 자체는 쉬운데, 초보자들이 정말 많이 걸려 넘어지는 부분이 바로 TX와 RX의 결선입니다.
저도 신입 시절에 똑같은 실수를 했습니다. 당연하다는 듯이 TX는 TX끼리, RX는 RX끼리 연결하고 전원을 올렸습니다. 그런데 터미널 프로그램 화면에는 아무 글자도 뜨지 않았습니다.
멀티미터로 전압도 재보고, 보드레이트도 다시 확인하고, 심지어 IC 불량인가 싶어서 MAX232를 새 걸로 갈아 끼우기까지 했습니다. 결국 선배가 옆에서 딱 한마디 했습니다. "TX는 상대방 RX에 꽂아야지." 그 말을 듣는 순간 얼굴이 화끈거렸던 게 아직도 기억납니다.
원리를 생각해보면 당연합니다. 내가 보내는 선(TX, Transmit)은 상대방이 받는 선(RX, Receive)에 꽂혀야 신호가 전달됩니다. 사람으로 치면 내가 말하는 입을 상대방 귀에 대야지, 내 입을 내 귀에 대고 있으면 아무리 떠들어도 상대는 못 알아듣는 것과 똑같은 이치입니다.
이 사건 이후로 저는 지금도 보드 설계할 때 실크스크린에 TX/RX 표시를 크게, 그리고 헷갈리지 않게 색깔로 구분해서 넣는 습관이 생겼습니다. 작은 습관 하나가 나중에 현장에서 컴플레인 받는 걸 막아줍니다.
RS232 vs RS422 RS485 무엇이 다른가
RS232만 계속 쓰다 보면 한계에 부딪히는 순간이 옵니다. 바로 통신 거리와 다자간 통신입니다.
RS232는 언밸런스(Unbalanced) 방식이라 통신 유효 거리가 15m 안팎으로 짧고, 1:1 통신만 가능합니다. 여기서 언밸런스 방식이란 신호선 하나와 접지(GND)를 기준으로 전압 차이를 읽는 방식을 말하는데, 구조는 단순하지만 노이즈에 취약하다는 단점이 있습니다. 공장 현장처럼 인버터나 모터 노이즈가 많은 환경에서는 이 부분이 실제로 발목을 잡습니다.
이럴 때 제가 실무에서 넘어가는 대안이 RS485입니다. RS485는 밸런스(차동) 방식이라 노이즈 내성이 훨씬 좋고, 한 라인에 여러 장치를 물려서 다자간 통신도 가능합니다. 물류 설비나 비전 검사 설비처럼 여러 축의 컨트롤러가 한 라인에 붙어야 하는 시스템에서는 RS485가 사실상 필수입니다.
| 구분 | RS232 | RS485 |
| 방식 | 언밸런스(단선) | 밸런스(차동) |
| 통신 거리 | 약 15m | 최대 1.2km |
| 연결 대수 | 1:1 | 1:N (다자간) |
| 노이즈 내성 | 약함 | 강함 |
실제로 RS422, RS485는 RS232의 문제점을 개선하기 위해 뒤이어 나온 확장 규격이라고 정리되어 있습니다(출처: 위키백과 RS-232).
RS232 통신, 접지(GND) 안 잡으면 생기는 일
TX/RX 실수만큼이나 자주 겪는 문제가 접지 문제입니다.
RS232는 BP_NRZ(Bipolar Non-Return-to-Zero) 방식으로 전압 레벨을 가지고 0과 1을 구분합니다. 그런데 두 장치의 GND가 제대로 연결되지 않으면 기준 전압 자체가 흔들려서 신호를 제대로 못 읽습니다.
예전에 외주 업체에서 만든 케이블을 받아서 그대로 연결했다가, TX/RX는 멀쩡히 결선했는데도 데이터가 자꾸 깨져서 나오는 상황을 겪은 적이 있습니다. 오실로스코프로 파형을 찍어보니 신호가 지저분하게 흔들리고 있었고, 원인은 커넥터 안에서 GND선 하나가 아예 빠져 있었던 겁니다.
외주 업체 잘못이긴 했지만, 결국 검수는 제 책임이었기 때문에 그 뒤로는 케이블 받으면 멀티미터로 핀맵부터 하나하나 다 찍어보는 버릇이 생겼습니다.
RS232 관련 자주 묻는 질문
Q1. RS232 통신이 갑자기 안 될 때 가장 먼저 뭘 확인하나요?
저는 TX/RX 교차 연결, 통신속도(Baud Rate) 일치, GND 연결 이 세 가지를 순서대로 체크합니다. 실무에서 발생하는 문제의 8~9할은 이 안에서 잡힙니다.
Q2. MAX232와 MAX3232 중에 뭘 골라야 하나요?
MCU 동작 전압이 5V면 MAX232, 3.3V 계열이면 MAX3232를 씁니다. 요즘은 저전력 설계가 많아서 개인적으로 MAX3232를 쓰는 빈도가 더 늘었습니다.
Q3. RS232는 완전히 사라지는 통신 방식인가요?
그렇지는 않습니다. 산업 현장의 노후 장비, 계측기, 레거시 컨트롤러들이 워낙 많아서 앞으로도 상당 기간은 계속 쓰일 것으로 보고 있습니다.
Q4. RS232 통신 거리가 짧아서 고민인데 어떻게 하나요?
거리가 15m를 넘어가면 저는 RS485로 프로토콜 자체를 바꾸거나, RS232-RS485 컨버터 모듈을 중간에 넣어서 우회하는 방법을 씁니다.
Q5. 통신은 되는데 데이터가 깨져서 나올 땐 뭘 의심해야 하나요?
저는 GND 결선 불량과 통신속도 미스매치를 가장 먼저 의심합니다. 실제로 케이블 내부 GND선 단선 때문에 고생한 경험이 있어서 이 부분은 항상 제일 먼저 확인합니다.
정리하며
RS232는 60년도 더 된 통신 방식이지만, 저는 지금도 새로운 컨트롤 보드를 설계할 때마다 습관처럼 이 회로를 넣습니다. 단순하고, 검증되어 있고, 무엇보다 문제가 생겼을 때 원인을 빠르게 찾을 수 있다는 점이 오래된 기술이 주는 안정감이라고 생각합니다.
1. 내 보드의 TX가 상대 장비의 RX에 물려 있는지 다시 한번 확인하기
2. 통신속도(Baud Rate) 설정값이 양쪽 장비에서 완전히 일치하는지 체크하기
3. 케이블 안 GND선이 실제로 연결되어 있는지 멀티미터로 직접 찍어보기
본 글은 필자의 실무 경험과 공개된 기술 자료를 바탕으로 작성한 개인적인 정리 글이며, 특정 제품이나 회로의 동작을 보증하지 않습니다. 실제 설계 및 적용 시에는 해당 부품의 데이터시트와 표준 문서를 반드시 함께 확인하시기 바랍니다.
