본 논문에서는 임베디드 웹 서버(Embedded Web Server)를 이용하여 원격에서 다양한 입출력 장치들의 상태를 계측하거나 이들을 제어하는 시스템을 설계하고 개발한다. 설계된 원격 제어 및 계측시스템은 Cortex-M3 ARM마이크로컨트롤러를 사용하여 구현되었으며, 제어 및 계측 시스템 사용자를 위한 사용자 응용 프로그램, 그리고 디지틀 입출력 장치, AD/DAC, LCD 및 온습도 센서 등의 구동장치 프로그램 및 이벤트 처리를 위한 웹서버 프로그램을 구현하였다. 각각의 프로그램은 Eclipse 개발환경을 구축하여 Codesourcery C 언어, Java script, 그리고 HTML 언어를 사용하여 작성되었다. 본 논문에서 구현된 제어 및 계측 시스템의 실험결과는 실제로 실시간 실험을 통해, 설계된 바와 같이 사용자가 원하는 동작을 정확하게 수행하는 것을 확인하였다.
본 논문에서는 임베디드 웹 서버(Embedded Web Server)를 이용하여 원격에서 다양한 입출력 장치들의 상태를 계측하거나 이들을 제어하는 시스템을 설계하고 개발한다. 설계된 원격 제어 및 계측시스템은 Cortex-M3 ARM 마이크로컨트롤러를 사용하여 구현되었으며, 제어 및 계측 시스템 사용자를 위한 사용자 응용 프로그램, 그리고 디지틀 입출력 장치, AD/DAC, LCD 및 온습도 센서 등의 구동장치 프로그램 및 이벤트 처리를 위한 웹서버 프로그램을 구현하였다. 각각의 프로그램은 Eclipse 개발환경을 구축하여 Codesourcery C 언어, Java script, 그리고 HTML 언어를 사용하여 작성되었다. 본 논문에서 구현된 제어 및 계측 시스템의 실험결과는 실제로 실시간 실험을 통해, 설계된 바와 같이 사용자가 원하는 동작을 정확하게 수행하는 것을 확인하였다.
This paper deals with the design and development of the remote control and measurement systems by Embedded Web Server. The remote control and measurement systems are implemented by Cortex M-3 ARM micro-controller. The user application software for the control and measurement system user, and the fir...
This paper deals with the design and development of the remote control and measurement systems by Embedded Web Server. The remote control and measurement systems are implemented by Cortex M-3 ARM micro-controller. The user application software for the control and measurement system user, and the firmware software of device drivers for peripherals such as a digital input/output device, AD/DAC(Analog to Digital/Digital to Analog Converter), LCD, and temperature/humidity sensor are developed in Eclipse environment using Codesourcery C, Java script, and HTML. The experimental result of the proposed control and measurement systems implemented in this paper is evaluated via real-time experiments, which works well as designed.
This paper deals with the design and development of the remote control and measurement systems by Embedded Web Server. The remote control and measurement systems are implemented by Cortex M-3 ARM micro-controller. The user application software for the control and measurement system user, and the firmware software of device drivers for peripherals such as a digital input/output device, AD/DAC(Analog to Digital/Digital to Analog Converter), LCD, and temperature/humidity sensor are developed in Eclipse environment using Codesourcery C, Java script, and HTML. The experimental result of the proposed control and measurement systems implemented in this paper is evaluated via real-time experiments, which works well as designed.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 연구에서는 소형의 마이크로프로세서를 사용하여 디지털 입출력 장치, ADC(analog to digital converter), DAC(digital to analog converter), 온/습도 센서, LCD 등의 다양한 입출력 장치를 제어 및 계측할 수 있도록 인터페이스 회로를 구성하고, 이를 구동하기 위한 Device driver 프로그램을 개발한다. 그리고 임베디드 웹서버를 구현하기 위하여 HTTP 웹서버 프로그램을 개발하고 CGI(common gateway interface) 및 Java 프로그램으로 위의 각종 입출력 장치를 제어한다.
본 연구에서는 여러 가지 다양한 유무선 인터넷 통신망을 이용하여 언제 어디서나 각종 입출력 장치를 원격에서 제어 및 계측할 수 있도록 소형 마이크 로프로세서를 사용하여 따라서 별도의 운영체제가 필요 없는 소형 임베디드 웹 서버(Embedded Web Server)를 구현하였다.
제안 방법
본 연구에서는 임베디드 웹 서버의 입출력장치로는 4 channel digital input으로 DIP 스위치를, 그리고 4 channel digital output으로 LED를 인터페이스 하였으며, 각각 GPIO port E0~E3 그리고 port C4~C7을 사용하였다. 10-bit resolution 4 channel ADC에서 채널 0번은 가변저항기(potentiometer), 채널 1번은 PWM의 출력신호, 채널 2번은 3.3V, 그리고 채널 3번은 0V를 연결하도록 설계하였다. 그리고 DAC 대용으로 PWM 포트 출력단에 커패시터를 연결하여 ADC 채널 1번에 연결하였다.
ARM 코어와의 Debug 및 프로그래밍을 위한 JTAG 포트를 내장하고 있으며 256KB 의 플래시 메모리와 64KB의 SRAM을 내장하고 있다. 3개의 UART, 2개의 SPI, 3개의 CAN, 그리고 2개의 I2C 포트를 갖고 있으며, 특히 10/100 Mbps의 Ethernet MAC 및 PHY 계층을 갖고 있어 본 임베디드 웹 서버 구현에 있어서 인터넷을 사용할 수 있도록 Ethernet을 이용한 TCP/IP 통신방식을 사용하였다. 이와 더불어 6개의 PWM, 최대 42개의 GPIO, 8개의 10-bit ADC, 그리고 온도센서를 내장하고 있으며, 블록도는 아래 그림 3과 같다.
3V, 그리고 채널 3번은 0V를 연결하도록 설계하였다. 그리고 DAC 대용으로 PWM 포트 출력단에 커패시터를 연결하여 ADC 채널 1번에 연결하였다. 이미 본 프로세서에 온도센서를 내장하고 있지만 본 논문에서는 I2C 인터페이스를 갖는 SHT11 온/습도 센서를 추가하였으며, 그리고 16x2 문자 LCD를 Port D의 7비트를 사용하여 인터페이스 하였으며 각각의 구동 프로그램을 작성하여 동작을 확인하였으며 하드웨어 사양을 요약하면 아래와 같다.
향후 다양한 응용 시스템에 대응할 수 있도록 Digital Input/Output, ADC/DAC, 온습도 센서 및 문자 LCD 등의 다양한 입출력장치를 인터페이스하였으며, 오픈 소스를 이용한 개발환경을 구축하여 임베디드 웹 페이지 구축, 각종 입출력장치 구동 프로그램, HTML 표준 언어와 Java script를 이용한 각종 입출력 장치의 Event 처리 프로그램으로 구현되었다. 그리고 WIFI, 3G, LTE 등의 다양한 유무선 통신을 이용하여 댁내/외에서 각종 장치를 제어 및 모니터하여 정확하게 동작하는 것을 구글의 Android 운영체제를 갖는 태블릿 컴퓨터를 통해 동작을 확인하였다.
본 연구에서는 소형의 마이크로프로세서를 사용하여 디지털 입출력 장치, ADC(analog to digital converter), DAC(digital to analog converter), 온/습도 센서, LCD 등의 다양한 입출력 장치를 제어 및 계측할 수 있도록 인터페이스 회로를 구성하고, 이를 구동하기 위한 Device driver 프로그램을 개발한다. 그리고 임베디드 웹서버를 구현하기 위하여 HTTP 웹서버 프로그램을 개발하고 CGI(common gateway interface) 및 Java 프로그램으로 위의 각종 입출력 장치를 제어한다.
c 프로그램이다. 디지털 입/출력, ADC/DAC, Ethernet LAN, LCD, 및 온습도 센서 등을 인터넷을 이용하여 원격지에서 실제로 제어 및 계측하는 프로그램을 작성하여 각 모듈별로 동작을 확인하였다.
Chanseok Bae et al[1] 등은 가정용 홈 네트워크 시스템에 임베디드 웹 서버를 적용하였으며, 그리고 Igor Lkimchynsku[2] 와 Ali Ziya Alkar[2] 등은 인터넷을 통하여 다양한 종류의 입출력 데이터 처리 방법을 이용한 응용 시스템을 제안한 바 있으며 그 응용범위가 점진적으로 확산되는 추세에 있다. 따라서 본 연구에서는 가장 많이 보급되어 있는 유무선 인터넷 통신망을 이용하여 언제 어디서나 각종 장치를 순수하게 제어 및 계측할 수 있도록 소형 마이크로프로세서를 사용하여, 별도의 운영체제가 필요 없는 임베디드 웹 서버(Embedded Web Server)를 구현한다. 임베디드 웹 서버가 개발되면 각종 장치의 입출력 및 센서 정보를 이용하여 다양한 분야에 응용할 수 있다.
1V의 오차가 발생하였다. 또한 DAC를 구성하기 위해서 PWM을 사용하였으며, PWM의 출력을 ADC의 두 번째 입력에 연결하였다. 현재 PWM은 500Hz 주파수의 Duty Ratio 10 %의 출력을 ADC에서 입력한 값은 112로 volt로 환산하면 약 0.
원격 제어 및 계측을 위한 임베디드 웹 서버 구축 프로그램은 응용 프로그램으로 HTML 언어를 이용한 Web page 프로그램, Java script를 이용한 각종 입출력장치의 이벤트 구동(Event Driven) 처리 프로그램, 그리고 설계된 하드웨어 입출력장치에 대한 원격 입출력 제어 및 계측 프로그램 구현이 포함된다. 또한 위의 각종 입출력 프로그램 개발을 위하여 Code sourcery 에서 배포하는 Codesourcery G++ lite 컴파일러와 GDB 디버거 등 Eclipse 기반 개발 환경 구축하였으며, 이를 테스트하기 위한 기본적인 입출력 장치 동작 실험을 수행하였다.
본 논문에서 구현된 임베디드 웹 서버는 ARM 계열 Cortex M-3 마이크로 컨트롤러를 사용하여 입출력장치로 4 channel digital input, 4 channel digital output, 10-bit 해상도의 4 channel ADC, 1 channel PWM(DAC 대용), 100Mbps physical layer ethernet, text display 16x2(상태표시), 그리고 temperature /humidity sensor를 인터페이스하여 여하한 입출력 장치에도 대응하도록 다양한 장치를 제어 및 계측할 수 있는 장치를 설계하여 아래 그림 7과 같이 실제 하드웨어를 구현하였다[7],[8].
CGI 처리방식에 있어서는 사용자의 표준입출력 장치인 키보드와 화면표시 장치를 이용하는 POST 방식과 미리 정해진 표준 변수인 QUERY_STRING 변수를 사용하는 GET 방식이 있으며 이는 아래 그림 5와 같다. 본 연구에서는 후자인 QUERY_STRING 변수를 사용한 GET방식을 이용하여 입출력 장치의 데이터를 처리하였다.
본 연구에서의 임베디드 웹 서버는 아래 그림 1에서와 같이 Wifi, 3G, LTE 등의 유무선 통신을 이용하여 언제나 어디에서든지 Windows 운영체제, iOS 운영체제 및 Anroid 운영체제에서 다양한 종류의 단말기를 이용하여 원격에서 각종 입출력 장치의 상태를 모니터하거나 사용자가 원하는 동작을 제어할 수 있는 임베디드 웹서버를 설계 및 구현한다. 그림 1의 구성도와 같이 고정된 공용 IP 환경에서, 또는 각 가정 인터넷 공유기의 DHCP기능에 의해 부여된 사설 IP를 통해 임베디드 웹서버에 장착된 각종 입출력 장치를 개인용 일반 컴퓨터, 태블릿 컴퓨터, 스마트폰 등의 다양한 단말기를 사용하여 제어 및 모니터한다.
본 프로그램은 크게 출력장치 제어(control)를 위한 프로그램과 입력장치의 상태를 계측(measurement) 및 모니터하는 프로그램으로 구분될 수 있다. 출력장치의 제어를 위한 프로그램의 동작 절차는 우선 ① 사용자에 의해 Web page로 부터 주변장치에 대한 제어 이벤트가 발생하고, ② HTML의 이벤트 발생에 따라 Javascript는 해당 동작을 수행하며, ③ Javascript로 부터 플래시 파일 시스템의 펌웨어 프로그램에서는 해당 이벤트를 구분하여 main.
소형 마이크로프로세서를 이용한 임베디드 웹 서버를 구현하기 위해서 디지털 입출력, ADC, DAC, 온/습도 센서, LCD 표시장치 등 다양한 종류의 여러 가지 입출력 장치를 제어 및 계측할 수 있는 하드웨어 인터페이스를 설계하고, 이를 구동할 수 있는 프로그램을 개발한다. 본 임베디드 웹 서버가 다양한 응용 범위에 적용될 수 있도록 구현되기 위한 프로그램 개발은 임베디드 웹서버 프로그램, 그리고 하드웨어 입출력을 위한 CGI 및 Java 응용 프로그램이 포함된다.
아래 프로그램은 4개의 디지털 출력장치에서 첫 번째 LED를 점등하는 프로그램의 예제를 발췌한 것으로 사용자가 웹 브라우저에서 LED 버튼을 누르면 해당 LED의 상태를 반대로 토글 하는 프로그램으로 GET 방식을 사용하여 CGI 스크립트 프로그램을 사용하여 하드웨어 장치를 점등할 수 있다.
본 연구에서 구현된 프로그램의 전체 구성도는 아래 그림 7과 같으며, 웹은 HTML 표준 언어와 Java script를 이용한 각종 입출력장치의 이벤트 처리 프로그램으로 구현되었다. 원격 입출력 제어 및 계측 프로그램 구현은 입력장치로 DIP S/W, LED, ADC, 그리고 온습도 센서인 SHT11로 구성되었으며, 또한 출력장치로 LED, DAC, 그리고 LCD 장치로 구성되었으며 이를 위한 구동프로그램은 main.c 프로그램이다. 디지털 입/출력, ADC/DAC, Ethernet LAN, LCD, 및 온습도 센서 등을 인터넷을 이용하여 원격지에서 실제로 제어 및 계측하는 프로그램을 작성하여 각 모듈별로 동작을 확인하였다.
그리고 DAC 대용으로 PWM 포트 출력단에 커패시터를 연결하여 ADC 채널 1번에 연결하였다. 이미 본 프로세서에 온도센서를 내장하고 있지만 본 논문에서는 I2C 인터페이스를 갖는 SHT11 온/습도 센서를 추가하였으며, 그리고 16x2 문자 LCD를 Port D의 7비트를 사용하여 인터페이스 하였으며 각각의 구동 프로그램을 작성하여 동작을 확인하였으며 하드웨어 사양을 요약하면 아래와 같다.
향후 다양한 응용 시스템에 대응할 수 있도록 Digital Input/Output, ADC/DAC, 온습도 센서 및 문자 LCD 등의 다양한 입출력장치를 인터페이스하였으며, 오픈 소스를 이용한 개발환경을 구축하여 임베디드 웹 페이지 구축, 각종 입출력장치 구동 프로그램, HTML 표준 언어와 Java script를 이용한 각종 입출력 장치의 Event 처리 프로그램으로 구현되었다. 그리고 WIFI, 3G, LTE 등의 다양한 유무선 통신을 이용하여 댁내/외에서 각종 장치를 제어 및 모니터하여 정확하게 동작하는 것을 구글의 Android 운영체제를 갖는 태블릿 컴퓨터를 통해 동작을 확인하였다.
대상 데이터
본 연구에서는 임베디드 웹 서버의 입출력장치로는 4 channel digital input으로 DIP 스위치를, 그리고 4 channel digital output으로 LED를 인터페이스 하였으며, 각각 GPIO port E0~E3 그리고 port C4~C7을 사용하였다. 10-bit resolution 4 channel ADC에서 채널 0번은 가변저항기(potentiometer), 채널 1번은 PWM의 출력신호, 채널 2번은 3.
임베디드 웹 서버의 하드웨어는 ARM계열의 LM3S8962 Cortex-M3 프로세서를 사용하였으며, 32비트 데이터 길이를 갖으며 동작 주파수는 50Mhz이고 3.0V로 동작한다. ARM 코어와의 Debug 및 프로그래밍을 위한 JTAG 포트를 내장하고 있으며 256KB 의 플래시 메모리와 64KB의 SRAM을 내장하고 있다.
이론/모형
그리고 사용자가 요청하는 화면을 단지 보여주기 위한 정적인 임베디드 웹 페이지를 탈피하여 사용자의 요구사항에 따라 데이터를 처리해주는 동적인 웹 서버를 구축하기 위해서 CGI(common gateway interface) 방식을 사용하였으며, 또한 각종 입출력 장치의 변화에 따른 이벤트 처리를 위하여 Java script를 사용하였다. CGI 처리방식에 있어서는 사용자의 표준입출력 장치인 키보드와 화면표시 장치를 이용하는 POST 방식과 미리 정해진 표준 변수인 QUERY_STRING 변수를 사용하는 GET 방식이 있으며 이는 아래 그림 5와 같다.
본 프로세서에 내장된 Ethernet을 구동하기 위한 TCP/IP 스택은 Luminary Micro에서 제공된 프로그램을 이용하여 브라우저/서버 모델의 소켓프로그램을 사용하였으며, 임베디드 웹 서버 구현에 반드시 필요한 HTTP 프로토콜은 다음 그림 4와과 같이 데이터를 처리한다.
성능/효과
우측 상단의 텍스트 박스에 “Hello”라는 문자 메시지와 “LCD” 버튼을 클릭하면 임베디드 웹 서버에 LCD 창에 문자 메시지가 표시되며 정상적으로 동작하는 것을 확인하였다.
후속연구
임베디드 웹 서버의 웹 페이지의 내용이 빈번하게 변경되지 않는 경우에는 현재 시스템이 아무 문제가 없지만, 만약 웹 페이지의 내용을 자주 변경하는 경우, 플래시 메모리에 웹 페이지를 저장하기 때문에 불편한 점이 있다. 따라서 외부에 SD(secure digital) 카드와 같은 저장장치에 일반적인 컴퓨터 환경에서 웹 페이지를 저장하여 곧바로 수행하면 매우 편리하기 때문에, SD 인터페이스를 통한 편리한 웹 페이지 수정 방법이 계속 연구되어야 하겠다.
질의응답
핵심어
질문
논문에서 추출한 답변
정보통신 기술의 발전으로 요구되는것은 무엇인가?
정보통신 기술의 발전에 따라 원격에서 각종 장치들을 제어하고, 또한 이들 장치의 상태 정보를 센서에 의해 계측하는 기술에 대한 많은 요구가 있다. Chanseok Bae et al[1] 등은 가정용 홈 네트워크 시스템에 임베디드 웹 서버를 적용하였으며, 그리고 Igor Lkimchynsku[2] 와 Ali Ziya Alkar[2] 등은 인터넷을 통하여 다양한 종류의 입출력 데이터 처리 방법을 이용한 응용 시스템을 제안한 바 있으며 그 응용범위가 점진적으로 확산되는 추세에 있다.
임베디드 웹 서버의 장점은 무엇인가?
일반적인 웹 서버는 대부분 컴퓨터를 사용하여 운영되고 있으며, 주로 게시판이나 데이터베이스를 활용하는 응용프로그램 위주의 서버이다. 그러나 임베디드 웹 서버는 원격에서 통신망을 이용하여 각종 장치의 제어 및 계측에 이용되는 서버로 소형의 마이크로프로세서를 사용하여 구현되며 자동 원격검침 시스템, 원격 모니터링 시스템, 자동판매기, 그리고 광고판 문자 전송 등 여러 가지 다양한 응용분야에 사용될 수 있는 장점이 있다[6].
임베디드 웹 서버가 개발로 다양한 분야에 응용된 예로는 무엇이 있는가?
임베디드 웹 서버가 개발되면 각종 장치의 입출력 및 센서 정보를 이용하여 다양한 분야에 응용할 수 있다. 이와 같은 다양한 응용분야의 시도로 Octavian A. Postolache et al[4] 등은 스마트 센서와 인터넷을 이용한 대기 모니터링 시스템을 개발하였으며, 그리고 Cristiano Spelta et al[5] 등은 스마트폰을 이용한 응용 사례를 보여주고 있다. 일반적인 웹 서버는 대부분 컴퓨터를 사용하여 운영되고 있으며, 주로 게시판이나 데이터베이스를 활용하는 응용프로그램 위주의 서버이다.
참고문헌 (8)
Chanseok Bae et al, "Home server for home digital service environments," IEEE Trans. on Consumer Electronics, pp.1129-1135, Nov. 2003
Igor Lkimchynsku, "Extensible Embedded Web Server Architecture for Internet-Based Data Acquisition and Control," IEEE Sensors Journal, Vol.6, No.3, pp.804-811, June 2006
Ali Ziya Alkar, "An Internet-Based Interactive Embedded Data-Acquisition System for Real-Time Applications," IEEE Trans. on Instrumentation and Measurement, Vol.58, No.3 pp.522-529, March 2009
Octavian A. Postolache et al, "Smart Sensors Network for Air Quality Monitoring Applications," IEEE Trans. on Instrumentation and Measurement, Vol.58, No. 9, pp.3253-3262, Sept. 2009
Cristiano Spelta et al, "Smartphone-Based Vehicle-to-Driver/Environment Interaction System for Motorcycles," IEEE Embedded Systems Letters, Vol.2, No.2, pp.39-42, June 2010
Deepak C. Karia et al, "Embedded Web Server Application Based Automation and Monitoring System," Proc. of 2011 Int. Conf. on SCCN, pp.634-637, July 2011
"Stellaris LM3S8962 Microcontroller" Data Sheet, Texas Instruments Inc., Nov. 2011
※ AI-Helper는 부적절한 답변을 할 수 있습니다.