본문 바로가기

_대회_Eureka_comp.

[로봇] UART/ RS-232 차이



UART와 RS-232는 동일한게 아닙니다. | 통신 관련 Q&A
2007.01.09 16:53

문득 잠을 자다가 UART와 RS-232C의 차이가 궁금해 졌습니다.

저는 잠을 안자고 책을 읽다가 궁금했었더랬습니다.

 

저 같은 경우는 이 두 용어를 별로 구분 안해서 썼거든요.

저도 별로 구분해서 사용하지는 않았지만, 몬가 다를거라고 예감은 했습니다. 

 

일단 AVR 관련 서적에는 UART는 없고 USART라는 놈이 있더군요.

제가 책을 잘 안읽어봐서 그런지 몰라도 USART가 아닌, UART 밖에 없는거 같은데요? (잘못 읽었나..흠..)

어쨌거나 대다수의 책이 "비동기 직렬통신" 을 다루고 있음은 확실합니다.

 

책을 읽어 보다가 대충 감 잡은게 XCK를 이용해서 클럭을 공유하면 USART가 되고

클럭을 공유하지 않으면 UART가 된다고 판단 했는데 이게 맞는 것인가요?

클럭을 공유하면 "동기"가 되고, 클럭을 공유하지 않으면 "비동기"가 됩니다.

제 실력이 일천해서 그런지 몰라도 RS-232C를 동기로 사용하는 경우는 아직 접해보지 못했습니다.

 

(왠지 의미상으로는 USRT가 클럭 공유용으로 맞는 것 같은데...

저도 "동기", "비동기"의 차이는 알겠는데, USART와 UART는 아리까리 합니다. 

 

WinAVR의 헤더 파일을 보면 인터럽트 벡터로 SIG_USART_RECV, SIG_UART_RECV와 두종류만 있네요.)

WinAVR 헤더 파일은 안봐서 모르겠습니다. 

 

그리고 UART 장치에 MAX232 칩을 포함하면 이놈이 RS-232C가 되는 것 맞나요?

머 그렇다고 볼수가 있지요. 그런데, UART 장치라는건 도대체 몬지요? 

 

UART과 RS-232 는 개념 자체가 다릅니다.

UART는 직렬 동기/비동기 스펙을 정의해 놓은 것이고,

RS-232는 UART통신을 장거리로 보내기 위한 스펙을 정의해 놓은 것입니다.

 

긍까 예를 들어

하나의 PCB에 MCU1인 A가 있고, MCU2인 B가 있다고 가정할때

A와 B는 PCB 상에서 직렬로 바로 물려도 통신이 가능합니다.

이럴때는 내가 프로토콜을 만들어서 사용해도 되고,

혹은 UART 프로토콜을 사용해도 됩니다.

 

그런데, A는 내 책상에, B는 저 멀리 다른 책상에 있다고 치면

(논리적으로 따지자면) 위의 똑같이 만들면 통신이 이루어져야 합니다.

그렇지만, PCB 혹은 MCU가 전달하는 5V 신호는 이런 거리에서 이루어지기 곤란합니다.

(3.3V라고 따지지는 말아주세요. 어차피 신호가 도달하기 어렵습니다.)

 

왜 곤란하느냐? 감쇄가 발생하기 때문입니다. 신호가 약해지기 때문이죠.

그럼 몇 m 까지 가느냐? 스펙 찾아보시면 잘 나옵니다. 저도 외우지는 못해서 죄송~ ^^

 

"그럼 요런 거리에서는 통신을 어떻게 하나요?" -> "그럼 요런 거리에서는 UART 데이터를 어떻게 보내나요?"

라고 정의해놓은게 RS-232 되겠습니다.

물론 RS-232도 "나는 몇 m까지는 보장한다"라고 스펙에 명기되어 있습니다.

 

이 밖에도

"왜  RS-232는 1:1 밖에 안되냐?"

"왜 RS-232는 이렇게 짧은 거리 밖에 안돼?"

라는 볼멘 소리(?) 때문에 태어난게 RS-422나 RS-485입니다.

 

그리고 제가 가지고 있는 책에는 RS-232C 통신만 다루고 있는데

RS-422A, RS-485 통신 방식도 있는데 요놈들도 UART에 관련 칩만 달아주면 사용할 수 있는건가요?

당근입니다.

하지만, 프로그램을 짜줘야 한다는거.. ^^ 

LAN 케이블 꼽는다고, 스타크래프트 IPX가 되는게 아닌것처럼..

보통 컴터는 IPX 하나 깔믄 상큼하게 끝나지만,

MCU에서는 하드웨어 구축해줘야해, 프로그램 짜야해.. 상당히 골치아픕니다.

 

또, 스펙에 보면 커넥터가 이 두 방식은 규정 되어 있지 않다고 되어 있는데 이는 잘 사용하지 않기 때문에 그런건가요?

잘 사용하는지 안하는지는 모르겠고요. 아마 잘사용하지 않아서 그러리라 예상해 봅니다.

그리고 스펙을 정하던 안정하던 그건 미국넘들 맘입니다.

혼자서 통신하려면 혼자서 스펙 정하고 만들면 그뿐입니다. 

 

(속도와 거리를 제외하면 유사한 방식의 SPI, TWI 그리고 CAN 통신이 더 많이 사용되는 것 같네요.)

SPI나 CAN 통신도 훌룡한 통신 방식이긴 합니다만, RS-422나 485도 좋은 통신방식입니다.

무엇보다도 간단한 H/W 구축과 간단한 프로그램이 장점이라고 생각합니다. (물론 저 혼자 생각)

USB와 같은 초고속(RS-232에 비하면) 통신이 판을 치는 마당에 RS-232와 같은 허접(?)한 통신이

여태까지 명목을 유지하는 것에는 반드시 이유가 있다고 생각합니다.

일단 USB 는 제어하기가 절라 어렵다는 점, 그리고 속도가 빠른대신 거리가 짧다는 점(주파수가 높아지면 거리는 짧아짐)

밖에 생각이 안나네요.

 

감사합니다.

머 100% 정확한거는 아니지만 제가 아는데까지 열심히 설명드렸습니다.

질문을 "UART/USART와 RS-232와의 차이점은 무엇인가요?"라고 적어놓으셨으면 더 좋으셨겠네요.

다른 분들이 또 좋은 말씀 적어주시리라 예상해 봅니다.

 

작성자의 카페글 더보기

당근이의 블로그
덧글 8개 | | 조회수 2067 |
  • 2007/01/09 18:00

    답글|신고

    좋은 답변 감사합니다. 제목은 수정 했습니다.

  • 2007/01/09 18:13

    답글|신고

    그리고 USART는 윤덕용 교수님의 AVR ATmega128 정복 책에 UART 대신 나와있네요.

  • 2007/01/18 15:41

    답글|신고

  • 2007/05/14 12:51

    답글|신고

    굿~!

  • 2007/07/05 23:26

    답글|신고

    잘 읽고 갑니다. ^^

  • 2007/07/10 13:04

    답글|신고

    지나다가 추가합니다.
    저의 경우 한 PCB에 MCU를 2개 쓰는데 통신속도를 10,000 BPS로 쓰고 있습니다.
    통신속도도 내맘대로 프로토콜도 내맘대로 ^^;

  • 2009/05/20 18:51

    답글|신고

    검색의 생활화 ^^

  • 2009/07/13 03:53

    답글|신고

    검색의 생활화를 통해서 또 새로운 지식 얻어갑니다.. 오래된 글이긴 하지만 입문자로서 도움이 되는 글이네요 ^^

18549 UART/USART와 RS-232와의 차이점은 무엇인가요? [2] 2007.01.09 1062
18558   UART와 RS-232는 동일한게 아닙니다. [8] 2007.01.09 2067

 

 

레이어 닫기

작성하신 글은 아래의 서비스로 보내신 글입니다.
해당 서비스에서도 삭제 반영 됩니다.
(비디오반영은 추후 제공됩니다.)

* 글보내기 정보는 아래와 같습니다.

취소