An Implementation of a Configurable UART-to-Ethernet Converter

This paper presents an implementation of a configurable UART-to-Ethernet converter using an ARM-based 32-bit microcontroller as well as a dedicated configuration program running on a PC for configuring the operating parameters of the converter. The program was written in Python. Various parameters pertaining to the operation of the converter can be modified by the configuration program through the Ethernet interface of the converter. The converter supports 3 representative asynchronous serial communication protocols, RS-232, RS-422, and RS-485 and supports 3 network modes, TCP/IP server, TCP/IP client, and UDP client. The TCP/IP and UDP protocols were implemented on the microcontroller using an open source TCP/IP protocol stack called lwIP (A lightweight TCP/IP) and FreeRTOS, a free real-time operating system for embedded systems. Due to the use of a real-time operating system, the firmware of the converter was implemented as a multi-thread application and as a result becomes more modular and easier to develop. The converter can provide a seamless bridge between a serial port and an Ethernet port, thereby allowing existing legacy apparatuses with no Ethernet connectivity to communicate using the Ethernet protocol.





References:
[1] J. Moon, and M. Yoon, “An implementation of a configurable serial-to-Ethernet converter using lwIP”, Science International, vol. ED-11, pp. 34–39, Jan. 1959.
[2] STMicroelectronics, STM32F107xxx Reference Manual, 2014.
[3] “lwIP Wiki”, Available at: http://lwip.wikia.com/wiki/LwIP_Wiki. (Accessed Sep. 20, 2016)
[4] STMicroelectronics, Developing Applications on STM32Cube with lwIP TCP/IP Stack, 2015
[5] “FreeRTOS”, Available at: http://www.freertos.org, (Accessed May 10, 2017)
[6] B. Lubanovic, Introducing Python: Modern Computing in Simple Packages, O’Reilly, 2014
[7] M. Lutz, Learning Python 5/e, O’Reilly , 2013
[8] M. Summerfield, Rapid GUI Programming with Python and Qt: The Definitive Guide to PyQt Programming, Prentice Hall, 2015.
[9] B. M. Harwani, Introduction to Python Programming and Developing GUI Applications with PyQT, Cengage Learning PTR, 2011.