[시리얼통신] RS-232C 커넥터의 핀배치 정리
RS-232C는 DTE(예컨데, PC 또는 터미널)를 기준으로 핀아웃을 정의하고 있다. 또한, DCE(예컨데, 모뎀 또는 주변기기)는 DTE와 직선케이블(Straight Cable 또는 Extention Cable)로 연결하도록 되어 있다. 따라서, DCE측의 커넥터 핀배치도 DTE와 동일할 수 밖에 없다.
그런데, 이러한 핀배치의 표기는 대다수의 사람들뿐만아니라 엔지니어에게조차 혼동을 유발하곤 한다. 본인도 예외는 아니어서 수첩에 적어놓고 사용하기도 함. -,.ㅡ;;
예를 들어, DB9 커넥터의 경우, DTE의 TxD 라인은 3번핀인데 DCE의 3번핀도 TxD라고 부르게 되면 이름상으로는 라인이 서로 충돌을 일으키는 셈이다. 또한 RTS와 CTS도 같은 이유로 인해 혼동이 생긴다.
따라서, 커넥터의 핀배치는 디바이스 자신을 기준으로 명기하는 것이 혼동을 피할 수 있는 가장 쉬운 방법이 아닐까 생각한다. 그래서, 여기저기 자료를 찾아다니며 정리한 끝에 RS-232C 인터페이스 커넥터의 핀배치에 대한 명확한 정리를 해봤다.
따라서, 아까 설명했던 Tx, Rx를 각 디바이스의 관점에서 위와 같이 표기하면, 엇갈려 표기되어 있으므로 혼동의 여지가 없다.
그런데, 한가지 여기서 짚고 넘어갈 것은 RTS와 CTS 또한 엇갈려 표기되어 있다는 점이다.
RTS와 CTS는 데이터 송수신을 위한 통신채널의 흐름제어에 사용되는 신호들인데, 원래 RS-232C의 표준에는 DB9커넥터의 7번핀의 경우 RTS가 할당되어 있고, 8번핀의 경우 CTS가 할당되어 있다. 즉, DCE의 경우에도 RTS와 CTS의 위치가 바뀌어야 정상이다. 하지만, 표준에서서 설명하는 것과 같이 RTS는 오직 DTE가 DCE로 전송하는 신호이고, CTS는 DTE가 DCE로부터 수신하는 신호이다.
다시말해서 DTE의 관점에서 보면, RTS는 송신으로만 사용되며 CTS는 수신으로만 사용된다. 이와 반대로 DCE의 입장이라면 또 뒤바뀌어야 할 것이다. 이것 또한 혼동을 유발하기 일쑤다.
(개인적으로 RS-232C의 커넥터를 왜 저런식으로 DTE의 관점으로만 정의했는지 불만이다. 인터넷 도처에 있는 커넥터의 그림을 보면 제각각이다. 그리고, 그것이 마치 표준인 것처럼 설명하고 있다. DTE측에서 본 그림인지, DCE측에서 본 그림인지조차 설명 안되어 있는 그림도 많고, 심지어는 PC측의 DB9 커넥터를 암컷으로 명기하고 있는 그림도 있다. ㅡ,.ㅡ 결국, RS-232C의 핀배치는 각 핀들이 방향성을 가지고 있기 때문에 각 디바이스를 기준으로 상대적으로 해석해야 올바르지 않나 싶다.)
그러므로 각 디바이스의 관점에서 RTS는 Tx와 같이 나가는 신호, CTS는 Rx와 같이 들어오는 신호로 파악하는 것이 나중에 핸드쉐이킹 부분을 이해하는데 도움이 될 것이다.
감알 마제스 삶의 향기 근검절약 견지와 여행 독백들의 공간. 깜장마녀 하우스 나무 친구들 adsl 도나코
