8051( 중급 6부 - RS485 ) |
RS485는 소프트웨어적인 특성에 대한 용어가 아니고 하드웨어적인 특성을 구분짓는 용어 임다. 우리가 serial 통신에서 익히 알고 자주 사용하는 것은 RS232C임다. 이는 inactive 상태가 -12V, active 상태가 +12V의 신호를 이용하여 RXD신호와 TXD 신호를 서로 교차하여 통신이 이루어 질수 있도록 하는 규격임다. 마찬가지로 RS422( 평형 전송 ), RS423( 불평형 전송 ), RS485( 평형 전송 )을 나타내는 규격인것임다. 평형 전송이라 함은 하나의 신호를 두가닥의 신호선을 이용하여 서로 역상의 신호를 실어 보내는 방법 임다.
그러므로 양단의 장비간의 GND는 공통이 아니어도 전송이 가능함다.
불평형 전송에 사용되는 RS423 의 경우에는 양단 장비간의 GND가 공통이 되어야 함다. 정확한 용어로는 TIA/EIA-422, TIA/EIA-485 standard라 함다. 본 강좌에서는 RS422은 제외 하고 RS485에 대한것만 다루기로 함다. RS485 driver/receiver로 사용되는 IC는 TI사의 SN75176이 주로 사용됨다. 이에 대한 자료는 다음 사이트에서 받기 바람다. SN75176B data sheet(PDF) RS485 통신의 특징 1. HALF DUPLEX 방식으로 통신이 이루어 짐다.
RS232C, RS422의 경우에는 송신과 수신이 서로 분리 되어 있어서 FULL DUPLEX 양방향 동시 통신이 가능 함다.
하지만 RS485의 경우에는 송신과 수신이 같은 회선을 사용함다.
양단의 장비간에 연결되는 회선은 단 두가닥으로서 한쪽이 송신을 하면 다른쪽은 수신을 해야 함다.
그래서 HALF DUPLEX 방식으로 통신이 이루어 져야 함다. 2. MULTI DROP에 의한 다자간 통신이 가능하다.
SN75176의 경우 최대 32 points간의 다자간 통신이 가능함다. 요즈음 새로 나온 RS485 tranceiver IC중에는 256 points 를 지원해주는 IC도 있슴다. 3. 종단 저항( terminator resistor )이 사용됨다. RS422에서와 같이 RS485에서도 종단 저항이 사용됨다.
이 종단 저항이라 함은 start point와 end point 양쪽 끝에 저항을 삽입하여 라인간의 impedence를 조정하게 됨다.
또한 RS485 통신에 사용되는 회선은 impedence가 50오옴의 twist pair를 사용해야 함다.
이 종단 저항은 일반적으로 100 오옴 저항을 사용하지만 선로 상태에 따라서 가감을 해야 하는 경우가 발생함다.
만일 100 오옴 종단 저항을 이용해서 통신이 원활히 이루어 지지 않을 경우에는 저항값을 임의로 조정을 해야할 필요가 있슴다. 4. 최고 1.2 Km( 4,000 feet )까지 통신이 가능함다. 다자간의 총 연장 거리로 따졌을때 최고 1.2 Km까지 통신이 가능함다.
단, 거리에 반비례하여 통신 속도가 떨어진다는 점에 유념 해야 함다.
통신 속도는 현장에 맞추어 결정해야 할검다. 5. MODEM등과 같은 전화 회선과는 달라서 두가닥의 회선이 서로 바뀌면 안됨다. 그러므로 A 회선은 A 회선끼리, B 회선은 B 회선끼리 연결 되어야 함다. 만일 바뀌면 통신도 안될뿐만 아니라 SN75176이 과 부하로 망가지게 됨다. 회로 설명 1. 위의 회로에서 RT는 종단 저항을 의미 함다. 종단 저항은 SN75176 몇개가 사용이 되건 간에 단 두개뿐임다. 2. 각각의 SN75176에 연결되는 VCC, GND는 각각 서로 다른 전원임다. SN75176이 취부되는 해당 장비에서 공급 되는 전원이지 전체적인 공통 전원이 아니라는 검다. 3. HALF DUPLEX 방식에 의한 송수신이어야 하므로 아무리 여러대가 연결되어 있다고 하더라도
그 순간에 송신을 하는 곳은 단 한곳이어야 함다. 송신을 하지 않는 나머지는 모두 수신이 되어야 함다. 안그러면 서로 충돌을 일으켜 통신망이 두절됨다. 설계시 유의 할점 1. 위 회로를 보면 TX CONTROL에 연결되는 8051 포트 출력을 74HC14로 inverting 시켜 연결해 주었슴다. 이는 8051 CPU가 reset 직후에는 모든 포트 출력이 high가 되는 점을 고려 한것임다. RS485 multi drop 방식으로 장비간 연동이 이루어 질때 여러대의 장비중 어느 하나를 전원을 껐다 켰을때 초기 상태에서 TX CONTROL이 high가 되어 버리면 그 순간 동안은 통신망이 두절됨다. 또한 CPU의 오동작으로 계속 TX CONTROL이 high 상태로 지속되면 통신망이 두절되 는것과는 별도로 SN75176이 과부하로 망가지는 경우가 발생하게 된다.
RS485 통신시의 가장 취약점이 바로 이것임다. 2. 디지탈 전원과 함께 사용하는 경우 SN75176에서 발생되는 디지탈 노이즈가 다른 IC들에 영향을 덜주기 위하여
VCC 부분에 코일과 콘덴서를 연결 했슴다.
그러나 아날로그 특히 AUDIO 회로와 함께 사용시는 ARTWORK 할때 부터 AUDIO와 간섭을 일으키지 않도록 RS485
부분에는 GND 폴리를 많이 깔아 주고 AUDIO 라인과 서로 교차 되지 않도록 신경을 많이 써야 함다. 3. RS485 회선 A, B 양측에 제너다이오우드를 연결 했슴다.
위에서 설명한 바와 같이 RS485의 각 장비 간의 전원은 각각 별도의 전원이기 때문에 행여 어느 한 장비에 서 문제가 발생 했을 경우에 다른 장비에 영향을 덜 주자는 취지 임다.
이것도 불안 하다면 광 절연 방식으로 RS485 부분을 분리 시켜 주는게 안전함다. RS485 통신시 소프트 웨어적인 고찰 1. 위에서 설명한 바와 같이 RS485 규격은 하드웨어적인 규격임다. 하지만 RS232나 RS422과 같은 FULL DUPLEX 방식에 의한 통신이 아니고 HALF DUPLEX 방식이므로
그에 따른 소프트웨어적인 기법이 사용되어야 한다.
보통은 여러대중의 하나를 HOST로 삼고 나머지는 SLAVE 컨트롤러로 정해놓고서
HOST가 폴링해서 각 SLAVE와 교신하는 방식을 취한다. 2. 그러므로 HOST의 아이디, 각 SLAVE의 아이디를 서로 고유하게 보유 하고 있어야 원할한 통신망을 유지할수 있을것이다. 3. RS485 통신을 위한 정해진 PROTOCOL( 통신 규약 )은 없슴다. 그래서 RS485를 사용한 장비 메이커의 PROTOCOL에 따라 프로그램을 작성해야 함다. 본 강좌에서는 나름대로의 PROTOCOL을 임의로 만들어 실험하기로 함다. 이번 강좌는 RS485의 소개와 회로도, 그리고 설명으로 마무리 함다. 다음 강좌를 기대 하십시오.
'Programming > 8051' 카테고리의 다른 글
8051( 중급 8부 - RS485 기타 serial data 다루기 ) (0) | 2009.11.29 |
---|---|
8051( 중급 7부 - RS485 ) (0) | 2009.11.29 |
8051( 중급 5부 - pre-processor ) (0) | 2009.11.29 |
8051( 중급 4부 - define ) (0) | 2009.11.29 |
8051( 중급 3부 - 함수 ) (0) | 2009.11.29 |