--- 본문 시작 --
임베디드 시스템을 시리얼 포트를 이용하여 외부 장치와 연결하는 것을 살펴 보겠습니다.
첫번째로 RS-232 에 대해 알아봅시다.
수 년전부터 USB에 밀려 노트북을 비롯한 대부분의 PC에서 사라지고 있지만 실제 RS-232는
아직도 무시할 수 없는 시리얼 통신 인터페이스 표준입니다.
RS-232 는 1962년에 EIA(Electronic Industries Association)에서 EIA-232 의 이름으로 처음 발표되었다고 합니다.
RS-232 관련 자료를 보다보면 "Unbalanced" 라는 말을 보게 됩니다.
우리말로 하면 "불평형" 정도가 되겠습니다.
어떤 의미 일까요?
데이터를 전송할 때 신호선(Signal Line)과 접지(Signal ground) 간의 전압을 사용한다는
의미입니다.
RS-232 는 물리계층(Physical Layer)에서의 전기적 규약 이라고 이해하면 편리할 것 같군요.
RS-232 는 일반적인 디지털 로직에서 사용하는 전압(예를들어 +5V)을 사용하지 않습니다.
아래 두 그림을 보면 그 의미를 잘 이해할 수 있습니다.
RS-232 는 max. ±25V 라고는 하는데...
실제는 -5V ~ -15V (Typ. -12V)와 +5V ~ +15V(Typ. +12V)의 전압을 사용합니다.
한 가지 특이한 점이 Logic '1' 을 위해 (-)전압을 Logic '0' 을 위해 (+) 전압을 사용한다는
것입니다.
대부분의 마이크로컨트롤러는 내부에 UART(Universal Asynchronous Receiver & Transmitter)를
포함하고 있습니다.
UART 부분은 다음에 따로 설명하겠습니다.
이러한 UART의 출력은 +5V Logic이 이므로 RS-232 통신을 위해서는 +5V Logic의 데이터를
RS-232 의 전압 Level 로 변환해 주는 소자(Device)가 필요합니다.
또, RS-232 Level로 수신된 정보를 +5V Level로 변환하여 UART로 보낼 필요가 있겠죠.
이 역할을 하는 소자가 바로 우리가 잘 알고 있는 MAX232, MAX233 입니다.
+5V Power 로 부터 RS-232 에 필요한 ±12V 를 만들기 위해 Capacitive Voltage Generator가
소자 내에 구현되어 있습니다.
아래 그림은 실제 데이터가 RS-232를 통해 전송되는 모습을 보여줍니다.
아래 그림은 RS-232 connector로 많이 사용되는 9-pin D-sub connector 의 각 pin 별
신호를 보여주고 있습니다.
실제로는 모든 신호를 사용하지 않고 TD, RD, 접지(signal ground) 만 사용하여 대부분 구현합니다.
통신 거리는 어느정도 일까요?
아래 표는 "Texas Instruments" 에서 제공하는 자료입니다.
RS-232는 데이터 전송을 위해 접지를 참조하기 때문에 RS-422이나 RS-485 방식에 비해
통신거리가 멀지는 않습니다.
또, 통신 거리에 영향을 주는 요소들이 많이 있는데...
아래 표에서 알 수 있드시,
데이터의 전송속도도 통신거리에 영향을 주는 주요 요인입니다.
전송 속도가 빠를 수록 통신거리는 짧아집니다.
흔히 말하기를, 19,200 bps에서 15m 정도의 통신거리를 가진다고 합니다.
실제 해 보면 더 길게(20m 이상)도 통신이 됩니다.
또, 하나 중요한 요소가 사용하는 Cable의 종류입니다.
cable의 total capacitance는 데이터의 전송거리에 영향을 미칩니다.
Low capacitance cable을 사용하면 데이터 전송거리를 더 멀리할 수 있습니다.
그리고 Shield 선의 사용 여부도 전송거리에 영향을 줍니다.
아무래도 Shield(차폐) 선을 사용하는 것이 좋겠죠..
RS-232는 기본적으로 1:1 통신입니다.
그리고, 접지를 사용하므로 앞으로 다룰 RS-422 또는 RS-485 방식 보다 외부 Noise에 약합니다.
실제, RS-232 만 설명해도 끝이 없을 것 같습니다.
ESD나 Surge 와 같은 대책도 해야 하고 실제 현장에 적용을 위해서는 단순히 RS-232 관련 소자의
사용 외에도 고려해야 할 것이 많습니다.
소자를 선정할 경우도, Driver와 Receiver 를 개별 소자를 사용할 것인 지, 두 가지가 하나의 소자에
통합된 형태를 사용할 것인 지...
적용할 환경에 따라 commercial type 을 사용할 것인 지 아니면 온도 특성이 좋은 Industrial type을
사용할 것인 지 생각해야 할 것이 너무도 많습니다.
그래서, 개발이 어렵다는 것이죠... 단순히, 기능만 구현하는 것은 어렵지 않습니다.
너무 말이 많았군요...
오늘은 이 정도로 줄이겠습니다.
펌 [http://blog.naver.com/seo0511?Redirect=Log&logNo=10132695322]
'연구&개발 > Embedded' 카테고리의 다른 글
DA1458X 시리즈 DSPS 설정_ EVERNOTE (0) | 2015.09.11 |
---|---|
[펌]Atmega 128 spi 통신 라이브러리.. (0) | 2013.07.26 |
Atmega128을 이용한 DC 서보모터 위치(각도)제어 (0) | 2013.01.14 |