WIZnet W5300을 이용한 고속 UART-to-Ethernet 응용 개발

기본 통신 장치 – UART

Embedded Device에서 UART는 가장 기본이 되는 통신 방식이다.

Tiny MCU에도 UART 1, 2개는 기본으로 장착되어 있고 산업 현장에서 운용중인 장치들은 예전부터 Serial 통신이라는 방식으로 다른 장치들과 데이터를 교환해 왔기 때문에 Serial 통신 방식중에 가장 대중적인 UART는 여전히 매력적인 통신 방식이다.

UART 통신의 데이터 전송 능력의 한계로 SPI, Ethernet 등 고속의 통신 방식으로 전환하려는 시도가 활발하게 진행되고 있지만 오히려 최근에는 UART의 전송 속도를 올리는 방식의 접근이 활발하게 이루어 지고 있다.

일부 MCU에서는 13.5Mbps의 baud rate까지 지원하고 있어서 익숙한 UART 통신 방식으로 문자열 전송을 넘어서서 영상 데이터까지 전송하는 데 아무런 문제가 없는 실정이다.

UART-to-Ethernet

산업현장에서 사용되는 임베디드 장치에서 UART로 전송하는 데이터를 원격지의 서버로 전달하기 위해서는 Ethernet이나 WiFi를 이용해서 인터넷 통신으로 전환해야한다.

산업현장의 특성을 고려할 때 유선 방식의 Ethernet이 안정적이다.

UART 데이터를 Ethernet으로 바꾸기위해서는 UART-to-Ethernet 변환기가 필요하다.

WIZnet WIZ145SR

WIZnet WIZ145SR

WIZnet의 WIZ145SR (또는 WIZ140SR)은 Cortex M3 기반의 STM32103ZE MCU에 자사의 W5300 Ethernet Controller로 구성된 UART-to-Ethernet 프로토콜 Convert 모듈이다. 4개의 UART가 지원하고 있는데 동시에 4개의 UART 기반 Embedded Device를 원격지의 서버와 연결할 수 있다.

WIZ140SR은 현재 230Kbps의 Baud rate만 지원하고 있어서 보다 빠른 데이터 전송에는 한계가 있다.

W5300은 채널당 송수신 각각 8KByte의 데이터 버퍼를 가지고 있고 MCU와 16bit 데이터 버스로 인터페이스 하고 있어서 인터넷으로 고속 데이터 전송에는 무리가 없을 것으로 예상된다.

MCU의 UART가 지원하는 최대 2.25Mbps(USART1은 최대 4.5Mbps) 를 Full Duplex로 사용한다고 가정하고 4개 채널을 동시에 사용한다면 이론상으로 Ethernet throughput 20Mbps 가 필요하다.

WIZnet의 자료를 의하면 W5300으로 20Mbps 성능을 내는 것은 어렵지 않을 것으로 판단된다.

Goal

WIZ145SR 기반으로 UART baud rate 2Mbps 이상으로 송수신 되는 데이터를 인터넷을 거쳐 원격지 서버로 교환하는 예제를 구성하는 것이 본 포스팅의 타겟이다. (WIZ145SR의 전체 기능의 구현은 본 포스팅의 범위 밖이다.)

항상 원하는 결과가 나오는 것은 아니지만 그 과정에서 얻게 되는 아이디어나 작은 팁이 개발자들에게 조금이라도 도움이 될 수 있기를 바라는 마음에서 시작해 보고자 한다.

1차 목표는 한달안에 기본 예제를 구성하는 것이다.

개발자 여러분들의 많은 피드백을 기대한다.

관련 포스팅

Leave a Comment