Note 4. W5500-EVB Web Server Library의 구성과 활용

W5500-EVB 웹 서버 라이브러리의 구성 요소와 활용


W5500-EVB 웹 서버 라이브러리는 다음과 같은 주요 함수로 구성되어 있다. 각각의 주요 함수가 Initialize 단계, Main routine, Timer에 목적에 맞게 삽입되어야 정상적인 동작을 확인 할 수 있다. 각 함수의 선언은 ioLibrary >> Internet >> httpServer 폴더 내 httpServer.h 파일에서 확인할 수 있다.

< Initialize 단계: 한 번만 수행 >

  • httpServer_init() 
    • 웹 서버에서 사용할 Tx / Rx 버퍼와 W5500 칩의 H/W socket을 지정한다.
  • reg_httpServer_cbfunc()
    • 웹 서버에서 사용할 MCU reset 과 watchdog timer 를 사용하는 경우 watchdog timer reset 을 등록한다. 제공되는 라이브러리에는 MCU reset 만 등록되어 있다.
  • reg_httpServer_webContent()
    • 웹 브라우저를 통한 사용자의 요청에 응답할 웹 컨텐트를 등록한다. 이 함수를 통해 등록된 웹 페이지, JavaScript 라이브러리, CSS, 이미지 등이 사용자 요청에 의해 웹 브라우저에 보여지게 된다.
    • 파라메터는 요청에 응답할 컨텐트 이름 (e.g., ‘index.html’) 과 그 내용 (e.g., ‘<html><body> HelloWorld </body></html>’) 으로 구성된다.

< Main Routine 단계: Main loop 내 위치 >

  • httpServer_run()
    • 웹 서버의 메인 루틴이며, HTTP Request 수신 및 분석, 요청에 해당하는 컨텐트를 찾거나 CGI 처리를 수행하고 HTTP Response로 응답하도록 구현되어 있다.
    • Polling 방식으로 구현되어 있기 때문에 while loop 안에 위치하여야 하며, 한 번의 loop 마다 사용하고자 하는 H/W socket 개수 만큼 호출되어야 한다.

< Web Server Timer: Timer에서 1초 마다 호출 >

  • httpServer_time_handler()
    • 웹 서버의 Timeout 체크를 위한 time count 함수이다. 코드 내 timer에 위치하여 매 1초 마다 한 번씩 호출되어야 한다.

실제 코드의 동작은 IDE 환경에서 Source code를 통해 확인하기 바란다.

Debug Message


W5500-EVB의 웹 서버 라이브러리는 개발의 편의를 위해 Serial Debug message 출력 기능을 제공한다. W5500-EVB의 Mini-USB 포트를 PC에 연결하고 해당하는 COM 포트로 serial terminal 접속을 수행하면 네트워크 정보 및 각 H/W socket의 동작을 확인할 수 있다. Default로 설정된 serial terminal 연결 정보는 다음과 같다.

  • Serial port setup
    • Baud rate : 115200 bps
    • Data bit : 8 bit
    • Parity bit : none
    • Stop bit : 1 bit
    • Flow control : none

Serial terminal 에 연결되면 다음과 같은 정보를 확인할 수 있으며, HTTP client의 요청에 따라 각 socket의 동작이 출력된다.

  • Device name / Version
  • Network Configuration
    • MAC address
    • IP address
    • Gateway address
    • Subnet mask
  • List of Web content
  • HTTP Socket info

serial_debug_message

* 참고 : IP 주소와 같이, W5500-EVB에 할당된 네트워크 정보는 main.c 파일 상단에 정의되어 있다. 사용자 네트워크 환경에 맞춰 수정하기 바란다.

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중