DOI QR코드

DOI QR Code

가상 시리얼 무선랜 통신 모듈 설계

Design of Communication Module for Virtual Serial Wireless LAN

  • 기장근 (공주대학교 전기전자제어공학부)
  • Jang-Geun Ki (Dept. of Electrical Electronic Control Engineering, Kongju National University)
  • 투고 : 2023.08.17
  • 심사 : 2023.10.06
  • 발행 : 2023.10.31

초록

본 논문에서는 전통적으로 대면 중심의 오프라인 접촉방식 실험 실습 위주로 진행되었던 전기 전자 제어공학 분야의 마이크로프로세서 응용 교과목 교육에서 시간적, 공간적, 물리적 제약 요소에 상관없이 언제 어디서나 가상적으로 실습할 수 있게 해주는 온라인 가상실험 시스템 구축 연구의 일환으로, 마이크로프로세서가 다른 주변장치와 무선랜을 통해 통신할 수 있게 해주는 시리얼 무선랜 가상 통신 모듈을 개발하였다. 개발된 모듈은 가상실험 시스템 내의 마이크로프로세서와 시리얼 인터페이스를 통해 연결되고, 이를 통해 송수신되는 데이터를 가상실험 소프트웨어가 수행되고 있는 호스트의 실제 무선랜 인터페이스를 통해 주변 장치들로 전송해 준다. 개발된 시리얼 무선랜 가상 통신 모듈의 기능 검증을 위해 가상실험 시스템 내의 마이크로프로세서가 호스트 컴퓨터의 무선랜 인터페이스를 통해 안드로이드 스마트폰과 데이터를 주고받는 실험을 수행하였으며, 본 연구를 통해 개발된 가상실험용 시리얼 무선랜 통신 모듈을 사용하여 가상 마이크로프로세서가 주변 실물 장치와 무선랜을 통해 통신할 수 있게 되어 마이크로프로세서 응용 교육분야에 효율적으로 활용될 수 있을 것으로 기대된다.

In this paper, a serial wireless LAN virtual communication module that allows microprocessors to communicate wirelessly with other peripheral devices is developed as part of a study to build an online virtual experiment system that allows them to practice virtually anytime, anywhere in microprocessor application education in electrical and electronic control engineering. The developed module is connected to the microprocessor in the virtual experiment system through serial interface. The serial data is sent to and received from peripheral devices through the wireless LAN interface of the host computer where the virtual experiment software is being performed. In order to verify the function of the developed serial wireless LAN virtual communication module, experiments were conducted in which a microprocessor in the virtual experiment system exchanged data with an Android smartphone through a wireless LAN interface of a host computer. The developed serial wireless LAN communication module is expected to enable virtual microprocessors to communicate with surrounding real devices through wireless LAN, which can be efficiently used in microprocessor application education.

키워드

Ⅰ. 서론

최근 3년여에 걸쳐 유행했던 COVID-19의 영향으로 사회 전반에 걸쳐 많은 변화가 이루어져 왔으며, 교육 분야에 있어서도 전통적인 대면 수업 방식을 벗어나 비대면 비접촉 온라인 형태의 수업이 활발히 이루어져 왔다. 이제 COVID-19이 엔데믹 시대로 접어드는 시점에서 교육 형태를 살펴보면 다시 과거의 전통적인 대면 수업으로의 전면적인 복귀보다는 그동안 축적된 비대면 온라인 방식의 노하우를 전통 방식에 접목하여 시너지 효과를 얻고자 하는 노력이 대두되고 있다[1-5]. 그러나 이러한 노력이 결실을 맺기 위해서는 많은 문제점 들을 해결하여야 한다. 대표적인 예로 공학교육의 경우 실험 실습 위주의 학습이 이루어져야 하는 교과목에서 비접촉 온라인 학습만으로는 교육의 목표를 달성하기가 쉽지 않은 실정이다. 이를 해결하기 위해서는 물리적인 실험 실습을 대치할 수 있는 가상실험이나 시뮬레이션 도구들이 개발되어야 한다.

본 논문에서는 전기전자공학 분야에서 필수적으로 학습해야 하는 디지털 논리회로 설계 및 마이크로프로세서 응용 교과목에서 필요로 하는 가상실험 소프트웨어 개발 연구의 일환으로, 현재 주변에서 가장 많이 사용되는 무선통신 방식 중 하나인 무선랜의 지원방안에 대해 기술하였다.

본 논문의 구성은 다음과 같다. 먼저 1장 서론에 이어 2장에서는 임베디드 시스템 개발 및 마이크로프로세서 응용 회로 설계에서 주변 장치들과의 데이터 교환을 위한 다양한 무선통신 방법 들 중 무선랜 기술을 가상실험 소프트웨어에서 지원하기 위한 방안에 관해 기술하였다. 3장에서는 본 논문에서 개발된 가상실험용 무선랜 지원모듈의 기능 검증 및 활용 방안에 대한 시뮬레이션 예를 기술하였고, 마지막 4장에서 결론을 맺었다.

Ⅱ. 가상실험용 시리얼 무선랜 통신 모듈 모델링

일반적으로 임베디드 시스템과 같은 마이크로프로세서를 이용한 응용 시스템들은 마이크로프로세서와 주변장치 간 데이터 교환을 위해 다양한 유무선 통신프로토콜을 사용할 수 있으며, 최근에는 배선의 부담을 줄일 수 있는 무선통신 방식도 많이 사용되고 있다. 대표적인 무선통신기술로는 블루투스와 무선랜 등이 있으며, 본 논문에서는 전송 거리가 상대적으로 긴 무선랜 통신방식을 가상실험용 소프트웨어에서 지원하는 방안에 관해 기술하였다.

1. 무선랜 개요

무선랜(Wireless LAN)은 가정이나 학교, 캠퍼스, 사무실과 같이 제한된 영역 내에서 무선통신 기술을 사용해 근거리통신망(LAN: Local Area Network)을 형성하여 장치들을 연결하는 무선 통신망으로 게이트웨이를 이용해 인터넷망으로의 접속도 가능하다. WiFi(Wireless Fidelity)라고도 불리우는 IEEE 802.11 표준[6]에 기반한 무선랜이 널리 사용되고 있으며, 복잡한 선 연결 없이 개인용 컴퓨터, 프린터, 스마트폰 등 다양한 장치들을 쉽게 무선으로 연결할 수 있어 최근 사용자가 급증하고 있다. 이러한 WiFi는 블루투스에 비해 전력 소모는 크지만 전송속도가 빠르고, 전송 거리가 크다는 장점을 가지고 있다.

2. 시리얼 통신

시리얼 통신(serial communication)은 송신측과 수신측 간의 정해진 약속(프로토콜)에 따라 데이터 비트들을 한 번에 한 비트씩 차례로 전송하는 방식으로, RS-232, I2C, SPI, USB, CAN 등 다양한 프로토콜이 사용되고 있다.

시리얼 통신방식의 전송모드는 단방향(Simplex) 전송모드, 반이중(Half Duplex) 전송모드, 전이중(Full Duplex) 전송모드 등이 있다. 단방향 전송모드에서는 정해진 송신측에서 수신측 방향으로만, 즉 한쪽 방향으로만 전송이 이루어진다. 반이중 전송모드에서는 전송이 양방향으로 이루어질 수는 있지만 어느 한순간에는 한쪽 방향으로만 전송이 이루어지며, 전이중 전송모드에서는 양쪽 방향으로의 전송이 동시에 이루어진다.

시리얼 통신에서 클럭 신호를 송신 측이 수신 측으로 보내는지 여부에 따라 동기식 또는 비동기식 시리얼 통신으로 구분할 수 있다. 동기식에서는 송신 측에서 수신측으로 데이터 신호선 외에 별도의 클럭 신호선을 이용해 클럭 신호를 보내주며, 대표적인 예로 SPI, I2C, USB, CAN 등이 있다. 반면 RS-232로 대표되는 비동기식에서는 명시적인 별도의 클럭 신호가 수신 측으로 보내지지 않으며, 데이터 전송선의 약속된 변화에 따라 수신 측이 제어 비트들과 데이터 비트들을 구분하고 수신 측 자체의 클럭을 사용해 데이터 비트들을 추출한다. 일반적으로 비동기식 시리얼 통신에서는 시작(start) 비트, 데이터(data) 비트들, 선택사항인 패리티(parity) 비트, 종료(stop) 비트 순으로 전송이 이루어지며, 수신 측에서는 평소 high 상태이던 데이터 전송선의 값이 low로 떨어지는 모서리를 감지하면 데이터 전송이 시작됨을 인식하게 되고 이때부터 1/2 비트타임(=1/비트전송속도)이 지난 시점부터 매 비트타임마다 데이터 전송선의 값을 샘플링 하여 시작, 데이터, 패리티, 종료 비트들의 값을 추출한다. 따라서 비동기식 시리얼 전송에서는 일반적으로 송신 측과 수신 측 사이에 전송속도(초당 보내지는 비트 수), 데이터 비트 수, 패리티 비트 사용 여부, 종료 비트 수 등을 미리 약속한 후 전송이 이루어지게 된다. 이와같은 비동기식 시리얼 통신은 하나의 데이터 전송선만 필요하다는 구조적 단순성으로 인해 대부분의 마이크로 컨트롤러에서 UART(Universal Asynchronous Receiver / Transmitter)라는 이름으로 지원되고 있으며, UART 기능이 없는 마이크로컨트롤러에서도 소프트웨어적으로 일반적인 디지털 입출력 포트를 통해 비트들 값을 송수신하게 함으로써 손쉽게 비동기식 시리얼 통신방식을 구현할 수 있다.

3. 시리얼 무선랜 모듈 모델링 및 구현

일반적으로 마이크로프로세서 또는 마이크로컨트롤러가 무선랜을 통해 다른 장치들과 통신하기 위해서는 마이크로컨트롤러 칩 자체가 WiFi를 지원하도록 하거나 별도의 WiFi 지원 칩을 사용하여 모듈 형태로 구성할 수 있다.

WiFi 기능을 내장한 마이크로컨트롤러는 WiFi 고유의 최대 전송속도로 통신할 수 있으나 상대적으로 비용이 고가이다. 반면 별도의 WiFi 칩과 시리얼(serial) 통신방식을 이용해 연결하는 모듈 형태 구성에서는 전송속도는 낮아 지지만 저비용으로 간단하게 마이크로컨트롤러가 무선랜에 접속할 수 있는 솔루션을 제공할 수 있다.

현재 상용화된 대부분의 마이크로컨트롤러들은 시리얼 통신을 위한 UART 기능을 내장하고 있으며, UART 기능을 내장하고 있지 않은 마이크로컨트롤러들도 일반적인 디지털 입출력 포트를 이용해 소프트웨어적으로 시리얼 통신 기능을 손쉽게 지원할 수 있다. 따라서 이러한 시리얼 무선랜 변환 모듈을 사용한다면 기존에 개발되어 있던 수많은 시리얼 장비들을 손쉽게 인터넷망에 연결시켜 줄 수 있을 뿐만 아니라 인터넷망 연결로 인해 시리얼 장비들의 통신 거리를 획기적으로 확장 시킬 수 있게 될 것이다. 시리얼 무선랜 변환 모듈의 대표적인 예로 Espressif Systems 사가 개발한 ESP8266 Wifi 마이크로칩[7]을 사용해 Ai-Thinker 사가 만든 ESP-01 ~ ESP-15 시리즈 모듈[8] 등이 있다.

본 논문에서는 그림 1에 나타낸 것과 같이 호스트 컴퓨터에서 실행되는 가상실험 소프트웨어에서 마이크로컨트롤러 응용 회로를 설계할 때 가상 마이크로컨트롤러와 가상 시리얼 무선랜 모듈을 시리얼(RS-232) 통신방식으로 연결하여 데이터를 송수신하면 가상 시리얼 무선랜모듈이 호스트 컴퓨터의 무선랜 카드를 이용해 호스트컴퓨터 외부의 주변장치들과 WiFi 무선통신을 할 수 있도록 해주는 시리얼 무선랜 가상모듈을 개발하였다.

OTNBBE_2023_v23n5_35_f0001.png 이미지

그림 1. 가상 시리얼 무선랜 모듈 구성도

Fig. 1. Virtual serial WiFi module structure

그림 1의 구성에서 호스트 컴퓨터의 가상실험 소프트웨어를 실행시키고 마이크로프로세서와 본 논문에서 개발된 가상 시리얼 무선랜 모듈을 생성해 이들을 RS-232 통신방식의 Tx/Rx 선을 통해 연결(그림 2 참조)한다. 가상 시리얼 무선랜 모듈은 호스트 컴퓨터의 무선랜 카드를 이용해 무선랜 AP(Access Point) 또는 서버 기능을 수행하게 되는데. 처음 가상 시리얼 무선랜 모듈이 생성될 때의 프로그램 동작은 다음과 같다.

먼저 초기화 과정에서 호스트 컴퓨터에 있는 모든 네트워크 인터페이스들을 조사하여 이중 무선랜(wlan) 인터페이스를 찾고, 이 인터페이스에 설정되어있는 IP 주소와 프로그램에서 미리 지정되어있는 서버 포트 번호를 화면에 출력해 준 후, 클라이언트로부터의 접속요구를 기다린다.

스마트폰과 같은 주변장치 클라이언트로부터 접속요구를 수신하면 해당 클라이언트와의 소켓 연결을 관리하는 클라이언트 핸들러 객체를 생성해 실행시킨다. 핸들러 객체는 소켓을 통해 데이터를 수신하면 가상 시리얼 무선랜 모듈의 Tx 핀으로 전달한다.

마이크로컨트롤러가 주변장치 클라이언트로 데이터를 보낼 때는 먼저 RS-232 시리얼 인터페이스를 통해 가상시리얼 WiFi 모듈로 보내지고 이를 수신한 시리얼 WiFi 모듈은 현재 접속되어 있는 모든 클라이언트들의 핸들러 객체를 이용해 플러딩(flooding) 방식으로 전달한다.

Ⅲ. 시리얼 무선랜 기능 검증 실험

본 논문에서 개발된 시리얼 무선랜 모듈의 기능을 검증하기 위해 그림 2에 나타낸 것과 같은 마이크로컨트롤러 응용회로를 설계하고 시뮬레이션을 수행하였다.

OTNBBE_2023_v23n5_35_f0002.png 이미지

그림 2. 시리얼 무선랜 모듈 기능 검증 회로

Fig. 2. Circuit for serial WiFi module verification

그림 2의 회로에서 사용된 예제 마이크로컨트롤러는 PIC16F690[9] 칩이고, 이 칩의 UART 기능을 사용하여 PIC 칩의 Rx 선을 통해 수신된 데이터 바이트를 포트 C에 연결된 LED들로 출력하여 비트값들을 표시한 후, 수신 데이터 바이트를 그대로 Tx 선을 통해 다시 되돌려주도록 하는 에코우(echo) 프로그램을 작성하여 PIC칩에서 수행되도록 구성하였다. 그림 2에서 PIC16F690 마이크로컨트롤러의 Tx/Rx 선은 본 연구에서 개발된 시리얼 무선랜 모듈 칩의 Rx/Tx 선과 연결되어 있음을 볼 수 있으며, 이 Tx/Rx 선을 통해 송수신되는 비트들을 2채널 tracer 소자를 통해 실시간으로 관찰하도록 회로를 구성하였다. 참고로 시리얼 무선랜 모듈의 Tx/Rx 핀 할당은 기존 연구[10]에서 개발된 가상 블루투스 모듈과의 호환성을 위해 동일한 핀 번호를 사용하도록 구성하였으며, 원할 경우 손쉽게 Tx/Rx 핀 번호를 수정할 수 있도록 프로그램되어 있다.

그림 3에는 호스트 컴퓨터의 콘솔 창 동작화면(그림 좌측)과 호스트 컴퓨터를 통해 가상실험 플랫폼 내의 마이크로컨트롤러와 데이터를 교환하는 모바일 단말장치의 동작 화면(그림 우측)을 나타내었다.

OTNBBE_2023_v23n5_35_f0003.png 이미지

그림 3. 시리얼 무선랜 모듈 기능 검증 회로

Fig. 3. Operation for functional verification of the serial WLAN module

그림 3(a)의 단계 ①은 호스트 컴퓨터에서 그림 2에 나타낸 회로도 구성시 WiFiserial 소자를 생성하면 호스트 컴퓨터의 콘솔 창에 나타나는 메시지를 보여주며, 호스트 컴퓨터의 WiFiserial 모듈은 호스트 컴퓨터의 무선랜 인터페이스를 통해 주변 단말장치로부터의 접속요구를 기다린다

그림 3(b)의 단계 ①은 스마트폰과 같은 모바일 단말장치에서 무선랜 앱을 실행시킨 초기화면을 나타내며, 단계 ②와 같이 화면 상단에 무선랜 서버의 IP 주소, 즉 호스트 컴퓨터의 가상실험 플랫폼에서 시리얼 무선랜 모듈을 생성했을 때 모니터에 표시되는 무선랜 IP 주소와 미리 약속된 서버의 포트 번호를 입력한 후 “CONNECT TO SERVER” 연결 버튼을 클릭하면 호스트와의 연결설정이 진행된다. 연결설정을 요구받은 호스트 컴퓨터의 콘솔 창에는 그림 3(a)의 단계 ③과 같이 접속 요구한 모바일 단말장치에 대한 정보와 현재까지 연결 완료된 모바일 단말들의 개수가 출력되며, 모바일 단말장치의 무선랜 앱에는 ④와 같이 접속 완료되었다는 메시지가 출력된다.

그림 2의 회로에서 기능 검증 수행 시 호스트 컴퓨터의 마이크로컨트롤러는 시리얼 인터페이스를 통해 입력받은 바이트들을 그대로 되돌려 주는 에코우(echo) 프로그램을 실행하도록 구성하였기 때문에, 이를 시험하기 위해 모바일 단말에서 그림 3(b)의 단계 ⑤와 같이 임의의 문자(예로 ‘A’)를 입력하고 전송 버튼을 누르면, 해당 문자의 8비트 ASCII 코드값이 WiFi를 통해 단계 ⑥과 같이 호스트 컴퓨터의 시리얼 무선랜 모듈로 전송되고, 이를 수신한 시리얼 무선랜 모듈은 시리얼 인터페이스를 통해 마이크로컨트롤러로 해당 바이트를 전송(단계 ⑦ 상단)하게 된다. 마이크로컨트롤러는 에코우 프로그램에 의해 수신된 바이트 데이터를 그대로 되돌려 주게 되고(단계 ⑦ 하단), 이를 수신한 시리얼 무선랜 모듈은 호스트 컴퓨터의 WiFi를 통해 모바일 단말로 전송하게 된다(단계 ⑧).

본 논문에서 개발된 시리얼 무선랜 모듈의 정상 동작 및 기능 검증을 위해 위에서 설명한 마이크로컨트롤러의 단순 에코우 프로그램 외에도, 호스트 컴퓨터의 마이크로컨트롤러가 모바일 단말장치로 먼저 데이터 전송을 시작하고 모바일 단말장치로부터의 응답을 수신하는 등의 다양한 응용 프로그램들을 실행시켜 모바일 단말장치와 호스트 컴퓨터의 가상 마이크로컨트롤러가 전송 오류 없이 데이터들을 송수신할 수 있음을 실험을 통해 확인하였다.

Ⅳ. 결론

그동안 인터넷을 비롯한 정보통신 기술의 급격한 발달과 COVID-19 이라는 커다란 사회환경적 변화에 따라 공학교육 분야에서도 많은 변화가 이루어져 왔으며, 특히 최근에는 기존의 대면 중심 교육에 더해 비대면 온라인교육의 장점을 병합한 형태의 새로운 교육 패러다임이 관심을 받고 있다. 본 논문에서는 전통적으로 대면 중심의 오프라인 접촉방식 실험 실습 위주로 진행되었던 전기 전자 제어공학 분야의 마이크로프로세서 응용 교과목 교육에서 시간적, 공간적, 물리적 제약 요소에 상관없이 언제 어디서나 가상적으로 실습할 수 있게 해주는 온라인 가상실험 시스템 구축 연구의 일환으로, 마이크로프로세서가 다른 주변장치와 무선랜을 통해 통신할 수 있게 해주는 시리얼 무선랜 가상 통신 모듈을 개발하였다. 개발된 모듈은 가상실험 시스템 내의 마이크로프로세서와 시리얼 인터페이스를 통해 연결되고, 이를 통해 송수신되는 데이터를 가상실험 소프트웨어가 수행되고 있는 호스트의 실제 무선랜 인터페이스를 통해 주변 장치들로 전송해 준다. 개발된 시리얼 무선랜 가상 통신 모듈의 기능 검증과 유용성 확인을 위해 가상실험 시스템 내의 마이크로프로세서가 호스트 컴퓨터의 무선랜 인터페이스를 통해 안드로이드 스마트폰과 데이터를 주고받는 다양한 실험을 수행하였다. 본 연구를 통해 개발된 가상실험용 시리얼 무선랜 통신 모듈을 사용하면 가상 마이크로프로세서가 주변 실물 장치와 무선랜을 통해 통신할 수 있게 되어 마이크로프로세서 응용 교육 분야에 효율적으로 활용될 수 있을 것으로 기대된다.

참고문헌

  1. Sun-Kyung Kang, Yoon Choi, "A Study on the Application Plan of Online Educational Media for the Youth in the Era of COVID-19", Journal of Wellness, 17(2), pp.25-31, (2022). DOI : http://dx.doi.org/10.21097/ksw.2022.5.17.2.25
  2. Amran Rasli, Mcxin Tee, Yin Ling Lai, Zian Cheak Tiu, Eu Hui Soon, "Post-COVID-19 strategies for higher education institutions in dealing with unknown and uncertainties", Frontiers in Education Sec. Higher Education, Vol.7, (2022), DOI : https://doi.org/10.3389/feduc.2022.992063
  3. Shadnaz Asgari, Jelena Trajkovic, Mehran Rahmani, Wenlu Zhang, Roger C. Lo, Antonella Sciortino, "An observational study of engineering online education during the COVID-19 pandemic", PLOS ONE, 16(4): e0250041, (2021). DOI : https://doi.org/10.1371/journal.pone.0250041
  4. Sang-Young Cho, "Virtual Development Environment for Embedded Software Development", Journal of The Institute of Internet, Broadcasting and Communication (JIIBC), vol.7, no.6, pp. 99-107, 2007. UCI : G704-001948.2007.7.6.004
  5. Joshua Grodotzki, Siddharth Upadhya, A. Erman Tekkaya, "Engineering education amid a global pandemic", Advances in Industrial and Manufacturing Engineering, ELSEVIER, (2021), DOI : https://doi.org/10.1016/j.aime.2021.100058
  6. IEEE Standard for Information Technology-Telecommunications and Information Exchange between Systems - Local and Metropolitan Area Networks--Specific Requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications, IEEE Std 802.11-2020, (2021). DOI : https://doi.org/10.1109/IEEESTD.2021.9363693
  7. Espressif Systems, ESP8266EX Datasheet, (2023). https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf
  8. Ai-Thinker Technology, ESP8266 series module topic, (2023). https://docs.ai-thinker.com/en/esp8266
  9. Microchip, "PIC16F631/677/685/687/689/690 Data Sheet", DS40001262, Microchip Inc., https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/40001262F.pdf
  10. Jang Geun Ki, "Implementation of Bluetooth Communication Module for Virtual Experiments", Journal of Software Assessment and Valuation, 19(1), pp.45-51. (2023). ISSN 2092-8114, DOI : http://dx.doi.org/10.29056/jsav.2023.3.06.