UART Communication
- 로보틱스에서 액츄에이터(모터)와 통신을 할 때, 가장 많이 이용되는 serial communication이 UART 통신이다. MCU에서 UART (TTL Level) pin이 항상 붙어 있어서 쉽게 이용가능함.
- MCU 단에서 나오는 UART RX, TX pin에 추가로 RS-232 혹은 RS-485의 moduel or IC를 붙여야 한다. 그냥 MCU 단에서 나오는 데이터는 Raw UART(?)이다. 보통 혼용해서 부르는 데, 확실히 485나 232로 구현하기 위해서는 driver를 붙여야함.
- UART == TTL 로 생각하면 될 것 같다. 그리고 RS는 Recommended Standard이다.
- UART로 daisy chain 통신을 구현할 수 있다. 하지만 1:N 통신은 RS-485로 구현하자.
- UART 패킷 구조
- 9600 baud rate의 경우, start bit - 8 bits of data - no parity bit - 1 stop bit으로 구성된다.
- 485로 Bulk read, bulk write을 구현가능
- 직렬 통신 방식이란?
데이터 비트를 1개의 비트 단위에 따라서 외부로 송신 혹은 수신하는 방식이다. 구현하기 쉽다. 멀리갈 수 있다. 기존의 통신선로를 쉽게 활용할 수 있다. 대표적으로 LAN, RS-232 등이 있다.
- 많은 사람들이 비동기식 직렬 통신 방식을 RS-232라고 알고 있는 데, 실제로는 RS-232라는 것은 비동기식 통신 컨트롤러에서 나오는 디지털 신호를 외부와 연결시키는 전기적인 신호 방식의 하나일 뿐이다. 또한 UART는 RS-232와 voltage 만 제외하고 모두 같다. 아래와 같이 UART(TTL Level)보다 높은 전압으로 좀 더 먼거리의 통신이 가능하게 한다.
UART: Logic 0 -> 0V / Logic 1 -> 3.3V or 5V
RS-232: Logic 0 -> +12V (+3 to +25V) / Logic 1 -> -12V (-3 to -25V)
Most PCs: Logic 0 -> -13 / Logic 1 -> +13V
-UART에서 나오는 신호는 TTL신호레벨을 갖기 때문에 노이즈에 약하고, 통신 거리에 제약이 있다. 이러한 TTL 신호를 입력받아 노이즈에 강하고 멀리갈 수 있게 해주는 인터페이스 IC를 Line Driver/Receiver라 부르며, 이중 대표적인 것이 RS-232, RS-422, RS-485가 있다.
- RS-422는 RS-232보다 조금 더 먼거리 통신이 가능하고, 하나의 포트에 여러 Receiver가 연결이 가능하다. 지원 장비가 드물다는 것이 흠이다.
- RS-485는 RS-422와 유사하지만 2 Wire만 사용하는 게 간편하다. (Rx/Tx) 또한 N to N 연결이 가능하다.
- RS 비교표
- MCU 단에서 나오는 UART RX, TX pin에 추가로 RS-232 혹은 RS-485의 moduel or IC를 붙여야 한다. 그냥 MCU 단에서 나오는 데이터는 Raw UART(?)이다. 보통 혼용해서 부르는 데, 확실히 485나 232로 구현하기 위해서는 driver를 붙여야함.
- UART == TTL 로 생각하면 될 것 같다. 그리고 RS는 Recommended Standard이다.
- UART로 daisy chain 통신을 구현할 수 있다. 하지만 1:N 통신은 RS-485로 구현하자.
- UART 패킷 구조
- 9600 baud rate의 경우, start bit - 8 bits of data - no parity bit - 1 stop bit으로 구성된다.
- 485로 Bulk read, bulk write을 구현가능
- 직렬 통신 방식이란?
데이터 비트를 1개의 비트 단위에 따라서 외부로 송신 혹은 수신하는 방식이다. 구현하기 쉽다. 멀리갈 수 있다. 기존의 통신선로를 쉽게 활용할 수 있다. 대표적으로 LAN, RS-232 등이 있다.
- 많은 사람들이 비동기식 직렬 통신 방식을 RS-232라고 알고 있는 데, 실제로는 RS-232라는 것은 비동기식 통신 컨트롤러에서 나오는 디지털 신호를 외부와 연결시키는 전기적인 신호 방식의 하나일 뿐이다. 또한 UART는 RS-232와 voltage 만 제외하고 모두 같다. 아래와 같이 UART(TTL Level)보다 높은 전압으로 좀 더 먼거리의 통신이 가능하게 한다.
UART: Logic 0 -> 0V / Logic 1 -> 3.3V or 5V
RS-232: Logic 0 -> +12V (+3 to +25V) / Logic 1 -> -12V (-3 to -25V)
Most PCs: Logic 0 -> -13 / Logic 1 -> +13V
-UART에서 나오는 신호는 TTL신호레벨을 갖기 때문에 노이즈에 약하고, 통신 거리에 제약이 있다. 이러한 TTL 신호를 입력받아 노이즈에 강하고 멀리갈 수 있게 해주는 인터페이스 IC를 Line Driver/Receiver라 부르며, 이중 대표적인 것이 RS-232, RS-422, RS-485가 있다.
- RS-422는 RS-232보다 조금 더 먼거리 통신이 가능하고, 하나의 포트에 여러 Receiver가 연결이 가능하다. 지원 장비가 드물다는 것이 흠이다.
- RS-485는 RS-422와 유사하지만 2 Wire만 사용하는 게 간편하다. (Rx/Tx) 또한 N to N 연결이 가능하다.
- RS 비교표
Comments
Post a Comment