2019년 4월 22일 월요일

Arduino(아두이노) RS-422(RS-485)로 스케치 전송하기. [작성중]



우선 Arduino 스케치를 전송 할때는 RS-232에서 Rx,Tx,DTR,GND 4선을 사용합니다.(일반적인 RS-232통신에서는 DTR을 안쓰고 3선을 연결하죠.)

송,수신 선이 나눠져 있으니 전이중(Full-duplex) 통신이 가능합니다.



그리고 RS-422에 경우 Rx,Tx 에 해당하는 선이 +,- 로 나눠서 RX+,RX-, TX+,TX- 로 4선을 사용해서 노이즈에 강하게 설계가 되었습니다.

송,수신 선이 나눠져 있으니 전이중(Full-duplex) 통신이 가능합니다.

그리고 추가로 RS-485에 경우 RS-422에서 RX+,TX+ 와 RX-,TX- 를 묶어서 2선을 사용 합니다.

송,수신 선이 합쳐져 있으니 반이중(Half-duplex) 통신만 가능합니다.

2선을 사용하는 장점이 있지만 송,수신 선이 서로 묶에 있어서 이를 동시에 처리 할 수는 없어서 소프트웨어적으로 동기를 잡아 줘야 합니다.



RS-485 Driver 는 소프트웨어적으로 DE, RE 단자를 제어해 줘야 합니다. (송신 할때 High를 주고, Low 상태에서는 수신만 가능 합니다.)

RS-485 Driver 를 사용해서 RS-422을 구현 하려며 칩을 2개 사용 해서 칩 하나는 항상 수신, 다른 하나는 항상 송신으로 사용 하면 되겠죠.

그럼 Arduino에 스케치 전송을 위해서 DTR도 RS-485 Driver 를 사용해서 DTR+,DTR-로 변환해서 처리를 한다면 DTR시그널이 살아나므로 노이즈에 강한 시그널을 사용할수 있습니다.

반이중(Half-duplex)방식칩을 3개 사용하는 개념이 되겠습니다.

그냥 RS-422을 사용할수 있는 RS-422 Driver 를 2개 사용해도 되지만 시그널 4개는 필요 없으니 왠지 손해보는 느낌이고, RS-422,485 Driver 를 섞어 써도 됩니다.
기호에 맞게 회로를 구성 하면 되지만 칩을 두종류 재고로 확보하기도 애매해서 저는 그냥 RS-422 Driver 인 MAX485 을 3개 사용 하려고 합니다.



RS422과 RS485에 9핀 핀배열을 위와 같습니다.

저는 DTR신호를 추가 하려고 하니..일반적으로 많이 쓰지 않는 4번,9번에 DTR+, DTR-를 사용 할겁니다.



그리고 RS485 Driver 에서 나온 5V TTL 신호를 다시 RS232 신호인 12V 로 변환하기 위해서 RS232 Driver를 사용할겁니다.




- 작성중이므로 이후 내용은 추후에 추가 하겠습니다. -

댓글 없음:

댓글 쓰기