이 매뉴얼은 JK전자(JK Electronics) 에 의해서 번역, 수정, 작성 되었고 소유권 또한
JK전자(JK Electronics)
의 것입니다. 소유권자의 허가를 받지 않고 무단으로 수정, 삭제하거나 배포 할 수 없습니다.

 

 

Cortex-M4 STM32F407IGT6 영상처리 개발보드 메뉴얼 - Ethernet


 
* Update history

- 2012.4.25 : 초기 Release


 

4. S/W 테스트 방법

* 예제 4.14 ~ 4.24 까지는 KEIL RL-ARM 라이브러리가 필요 합니다.

4.14 HTTP Server
4.15 HTTP Server with File upload
4.16 Telnet Server
4.17 DNS
4.18 FTP Server
4.19 SNMP
4.20 SMTP Client
4.21 LED switch with TCP/UDP Network
4.22 BSD Network
4.23 TCP/UDP LED Client
4.24 BSD Client

* 예제 4.25 ~ 4.30 까지는 KEIL RL-ARM 라이브러리가 필요 없습니다.

4.25 HTTP Server
4.26 TFTP Server
4.27 TCP Echo Server
4.28 UDP Echo Server
4.29 TCP Echo client
4.30 UDP Echo client

* 예제 4.31 ~ 4.33 까지 FreeRTOS를 이용한 예제 입니다.

4.31 HTTP Server
4.32 HTTP Server with socket library
4.33 Echo Server


   
  4.14 HTTP Server

(1) /Examples/Ethernet/Http_demo
(2) Ehternet을 이용해서 개발보드를 HTTP 서버(CGI동작 테스트)로 동작 시키는 예제 입니다.
(4) 테스트 방법은 개발보드의 Ethernet 포트에 네트워크 케이블을 연결 합니다.

- 개발보드의 IP는 DHCP에 의해서 자동으로 할당 받게 됩니다.

(5) 만약 DHCP에 의해서 IP를 자동으로 할당 받는것이 실패한다면 아래 그림과 같이 Net-Config.c 파일을 열고 "Configuration Wizard" 탭을 이용해서 IP Address, Subnet mask 등을 수정하고 컴파일 합니다.

stm32f407igt6

(6) 개발보드에 펌웨어 다운로드가 완료되면 반드시 네트워크 선이 연결된 상태에서 개발보드의 전원을 연결 합니다.
(7) PC의 인터넷 브라우저를 실행 시키고 URL 을 "http://stm3240g-eval/" 로 입력 합니다.
(8) 그러면 인터넷 익스플로러의 경우 아래와 같이 사용자 이름과 암호를 입력 하라는 창이 나옵니다.
- 사용자 이름 : admin(반드시 소문자로 입력 하세요.)
- 암호 : 없음

stm32f407igt6

"Network" 를 클릭 합니다.

stm32f407igt6

개발보드 HTTP 서버의 네트워크 환경을 수정 할 수 있습니다. 수정 사항은 저장되지 않고 재 부팅을 하면 원상태로 복구 됩니다.

stm32f407igt6

웹 인터페이스를 이용해서 개발보드의 LED 를 ON/OFF 할 수 있습니다.

stm32f407igt6

개발보드의 ADC 값을 읽어 올 수 있습니다.

stm32f407igt6

HTTP서버의 상태를 보여 줍니다.

stm32f407igt6

위의 예제 이외에서 개발보드의 BUTTON 상태를 읽어 올수도 있고, LCD 에 Display 할 수도 있습니다.

4.15 HTTP Server with File upload
(1) /Examples/Ethernet/Http_upload
(2) Ehternet을 이용해서 PC의 파일을 개발보드의 HTTP 서버(CGI동작 테스트)를 이용해서 개발보드의 SD메모리에 파일을 업로드 하는 예제 입니다.
(3) 테스트 방법은 개발보드의 Ethernet 포트에 네트워크 케이블을 연결 합니다.

- 개발보드의 IP는 DHCP에 의해서 자동으로 할당 받게 됩니다.

(4) 개발보드에 SD메모리를 삽입 합니다.

- 반드시 SW3, SW4 를 아래 그림과 같이 SD 쪽으로 점퍼를 Short 시켜야 SD메모리를 사용 할 수 있습니다.

stm32f407igt6

(5) PC의 인터넷 브라우저를 실행 시키고 URL 을 "http://stm3240g-eval/" 로 입력 합니다.
(6) 그러면 인터넷 익스플로러의 경우 아래와 같이 사용자 이름과 암호를 입력 하라는 창이 나옵니다.
- 사용자 이름 : admin(반드시 소문자로 입력 하세요.)
- 암호 : 없음

stm32f407igt6

stm32f407igt6

- "List Directory" 화면

stm32f407igt6

- "File Upload" 를 선택 하고 "찾아보기" 버튼을 눌러서 Upload 할 파일을 선택 하고 "Send" 버튼을 클릭 합니다.

stm32f407igt6

- 다시 "List Directory" 를 해서 파일이 올라 갔는지를 확인 합니다.

stm32f407igt6

(7) 파일 업로드가 시작이 되면 CPU보드의 LED1이 3초에 한번씩 깜빡 입니다.

4.16 Telnet Server
(1) /Examples/Ethernet/Telnet_demo
(2) Ehternet을 이용해서 개발보드를 Telnet 서버로 동작 시키는 예제 입니다.

- 개발보드의 IP는 DHCP에 의해서 자동으로 할당 받게 됩니다.

(3) PC의 도스 명령창(cmd.exe) 을 실행 시키고 "telnet stm3240g-eval" 을 입력 합니다.

stm32f407igt6

- 사용자 이름 : admin(반드시 소문자로 입력 하세요.)
- 암호 : 없음(엔터)

stm32f407igt6

stm32f407igt6

- 연결이 성공 적이면 아래 그림과 같이 "help 명령을 입력하고 다음 명령어 등을 실행 시켜 봅니다.

stm32f407igt6

stm32f407igt6

(주) 윈도7 의 경우 telnet, tftp 기능등이 기본으로 OFF 상태 입니다. PC의 제어판에서 ON 으로 변경 시킨 후 테스트 하시기 바랍니다.

4.17 DNS
(1) /Examples/Ethernet/DNS_demo
(2) Ehternet을 이용해서 DNS resolving(도메인 이름을 DNS서버를 통해서 IP로 변환) 을 하는 예제 입니다
(3) 테스트 방법은 개발보드의 Ethernet 포트에 네트워크 케이블을 연결 합니다.

- 이 예제에서는 개발보드의 IP를 DHCP에 의해서 자동으로 할당 받지 않습니다 아래 그림처럼 메뉴얼로 할당해서 컴파일 해야 합니다..

stm32f407igt6

(4) 개발보드의 UART3 점퍼를 설정 하고 PC의 개발보드의 UART를 연결 합니다.

반드시 SW3, SW4 를 아래 그림과 같이 UART3쪽으로 점퍼를 Short 시켜야 UART3 통신을 할 수 있습니다.

stm32f407igt6

(5) PC의 하이퍼 터미널을 연결 합니다.

stm32f407igt6

4.18 FTP Server
(1) /Examples/Ethernet/FTP_demo
(2) Ehternet을 이용해서 개발보드를 FTP서버로 동작시키는 예제 입니다
(3) 테스트 방법은 개발보드에 SD메모리와 Ethernet 포트에 네트워크 케이블을 연결 합니다.
(4) PC의 탐색기를 실행 시키고 URL 을 "http://stm3240g-eval/" 로 입력 합니다.
(5) 그러면 인터넷 익스플로러의 경우 아래와 같이 사용자 이름과 암호를 입력 하라는 창이 나옵니다.
- 사용자 이름 : admin(반드시 소문자로 입력 하세요.)
- 암호 : 없음

stm32f407igt6

개발보드의 SD메모리의 파일 리스트를 보여 주고 PC의 파일들을 업로드 할 수도 있습니다.

stm32f407igt6

4.19 SNMP
(1) /Examples/Ethernet/SNMP_demo
(2) Ehternet을 이용해서 개발보드를 SNMP 서버로 동작시키는 예제 입니다
(3) 테스트 방법은 개발보드의 Ethernet 포트에 네트워크 케이블을 연결 합니다.
(4) 개발보드와 함께 제공되는 "CD\PC-Software\PC-Software\SNMPTest\Release\SNMPTest.exe" 를 실행 합니다. 실행파일과 VC++ 소스와 함께 제공 하고 있습니다.

stm32f407igt6 stm32f407igt6

개발보드의 IP를 입력하고 "Connect" 버튼을 누릅니다. 개발보드의 IP는 DHCP에 의해서 자동으로 할당 받을수 있으면 LCD 화면에 Display 됩ㄴ디ㅏ.
- Line1, Line2 에 입력한 텍스트가 개발보으의 LCD 화면에 Display 됩니다.
- Outputs(LEDs), Inputs(Buttons) 의 상태를 읽어오거나 출력을 개발보드의 내보낼 수 있습니다.

4.20 SMTP Client
(1) /Examples/Ethernet/SMTP_demo
(2) Ehternet을 이용해서 개발보드를 SMTP 클라이언트로 동작시키는 예제 입니다
(3) 이 예제를 제대로 테스트 하기 위해서는 SMTP_demo.c 파일에서 아래와 같이 SMTP 메일서버의 IP 주소를 제대로 수정 해야 합니다.

stm32f407igt6

- SMTP_uif.c 파일에서 아래 그림과 같이 메일 계정 정보를 수정 합니다. 이 정보는 위의 메일 서버 계정을 입력하는 것입니다. 사용자 마다 다를 수 있습니다.

stm32f407igt6

개발보드의 IP 주소등 네트워크 정보를 메뉴얼로 수정 합니다.

stm32f407igt6

(4) 테스트 방법은 개발보드의 Ethernet 포트에 네트워크 케이블을 연결 합니다.
(5) 아웃룩 등의 Email 클라이언트에서 프로그램을 이용해서 위에서 설정한 SMTP서버에 접속하여 메일이 도착 하였는지 확인 합니다.


4.21 LED switch with TCP/UDP Network
(1) /Examples/Ethernet/LEDSwitch
(2) Ehternet을 이용해서 개발보드와 PC같의 TCP/UDP 통신을 하는 예제 입니다.

개발보드의 IP 주소등 네트워크 정보를 메뉴얼로 수정 합니다.

stm32f407igt6

(3) 테스트 방법은 개발보드의 Ethernet 포트에 네트워크 케이블을 연결 합니다.
(4) 개발보드와 함께 제공되는 "CD\PC-Software\PC-Software\LEDSwitch\Release\LEDSwitch.exe" 를 실행 합니다. 실행파일과 VC++ 소스와 함께 제공 하고 있습니다.

stm32f407igt6 stm32f407igt6

개발보드의 IP를 입력하고 하고 Outputs(LEDs) 를 Check or Uncheck 하면 개발보드의 LED를 제어할 수 있습니다.

4.22 BSD Network
(1) /Examples/Ethernet/BSD_server
(2) 4.21 의 통신예제와 동일하나 개발보드의 통신을 BSD socket 으로 구현 했다는것만 차이가 있습니다.

4.23 LED Client
(1) /Examples/Ethernet/LEDClient
(2) Ehternet을 이용해서 개발보드와 PC같의 TCP/UDP 통신을 하는 예제 입니다.

개발보드의 IP 주소등 네트워크 정보를 메뉴얼로 수정 합니다.

- BSD_client.c 에서는 개발보드에서 접속할 리모트 IP 주소를 입력 합니다.
- BSD_client.c의 "Communication Protocol 을 TCP or UDP 를 수정하면 통신 프로토콜을 설정 할 수 있습니다.


stm32f407igt6

- Net_Config.c 에서는 개발보드에 할당할 IP주소를 입력 합니다.

stm32f407igt6

(3) 테스트 방법은 개발보드의 Ethernet 포트에 네트워크 케이블을 연결 합니다.
(4) 개발보드와 함께 제공되는 "CD\PC-Software\PC-Software\echotool.exe" 를 실행 하고 "echotool.exe /p udp /s 1001" 를 입력 합니다.

stm32f407igt6

개발보드에서 보내는 통신 데이터를 캡쳐해서 볼 수 있습니다.

stm32f407igt6

4.24 BSD Client
(1) /Examples/Ethernet/BSD_client
(2) 4.23 의 통신예제와 동일하나 개발보드의 통신을 BSD socket 으로 구현 했다는것만 차이가 있습니다.

4.25 HTTP Server
(1) /Examples/STM32F4x7_ETH_LwIP_V1.0.0/Project/Standalone/httpserver/MDK-ARM
(2) Ehternet을 이용해서 개발보드를 HTTP 서버로 동작 시키는 예제 입니다.
(3) 테스트 방법은 개발보드의 Ethernet 포트에 네트워크 케이블을 연결 합니다.

- 개발보드의 IP는 DHCP에 의해서 자동으로 할당 받게 됩니다.

stm32f407igt6

(4) 개발보드의 LCD에 Display되는 IP 주소를 확인하고 PC의 웹브라우저를 실행 합니다. 개발보드의 LCD에 Display된 IP 주소를 브라우저창에 입력 합니다.

stm32f407igt6

LED와 ADC 값등을 웹 브라우저등을 통해서 확인 합니다.

stm32f407igt6

stm32f407igt6


4.26 TFTP Server
(1) /Examples/STM32F4x7_ETH_LwIP_V1.0.0/Project/Standalone/tftpserver/MDK-ARM
(2) Ehternet을 이용해서 개발보드를 FTP 서버로 동작 시키는 예제 입니다.

- main.h 파일에서 개발보드에 할당될 IP주소를 입력 합니다.

stm32f407igt6

(3) 테스트 방법은 개발보드의 Ethernet 포트에 네트워크 케이블을 연결 합니다.
(4) 개발보드에 SD메모리를 삽입 합니다.

- 반드시 SW3, SW4 를 아래 그림과 같이 SD 쪽으로 점퍼를 Short 시켜야 SD메모리를 사용 할 수 있습니다.

stm32f407igt6

- 개발보드에 할당된 IP 주소 입니다.

stm32f407igt6

(5) PC의 도스 프롬프트 창에서 아래와 같이 개발보드에 할당인 IP주소로 ftp 접속을 하고 "text.txt" 파일을 업로드 합니다.

stm32f407igt6

업로드된 파일들은 개발보드의 SD메모리에 저장 됩니다.

stm32f407igt6

4.27 TCP Echo Server
(1) /Examples/STM32F4x7_ETH_LwIP_V1.0.0/Project/Standalone/tcp_echo_server/MDK-ARM
(2) Ehternet을 이용해서 개발보드를 TCP echo 서버로 동작 시키는 예제 입니다.

- main.h 파일에서 개발보드에 할당될 IP주소를 입력 합니다. IP주소를 할당하지 않아도 DHCP서버에 연결된다면 자동으로 할당 받습니다.

stm32f407igt6

(3) 테스트 방법은 개발보드의 Ethernet 포트에 네트워크 케이블을 연결 합니다.
(4) 개발보드와 함께 제공되는 "CD\PC-Software\PC-Software\TCPUDPDbg\TCPUDPDbg.exe 를 실행하고 "CreateComm" 을 클릭 합니다.

stm32f407igt6

연결 생성 창에서 아래 그림과 같이 입력 합니다. "DestIP" 는 개발보드의 LCD창에 보여지는 IP를 입력 합니다.

stm32f407igt6

아래와 같이 연결이 되면 "AutoSend" 를 체크하거나 "Send" 버튼을 이용해서 개발보드에 데이터를 송신하고 수신 할 수 있습니다.

stm32f407igt6

4.28 UDP Echo Server
(1) /Examples/STM32F4x7_ETH_LwIP_V1.0.0/Project/Standalone/udp_echo_server/MDK-ARM
(2) Ehternet을 이용해서 개발보드를 UDP echo 서버로 동작 시키는 예제 입니다.
(3) 테스트 방법은 4.27 예제와 동일합니다. 단지 연결 생성시에 TCP 대신에 UDP를 선택 하면 됩니다.

4.29 TCP Echo client
(1) /Examples/STM32F4x7_ETH_LwIP_V1.0.0/Project/Standalone/tcp_echo_client/MDK-ARM
(2) Ehternet을 이용해서 개발보드에서 TCP echo 서버에 패킷을 전송하는 예제 입니다.

- main.h 파일에서 개발보드에 할당될 IP주소를 입력 합니다. IP주소를 할당하지 않아도 DHCP서버에 연결된다면 자동으로 할당 받습니다.
- 하지만 UDP echo 서버의 IP주소는 수정해서 컴파일 해야 합니다.

stm32f407igt6


(3) 테스트 방법은 개발보드의 Ethernet 포트에 네트워크 케이블을 연결 합니다.
(4) 개발보드와 함께 제공되는 "CD\PC-Software\PC-Software\echotool.exe" 를 실행 하고 "echotool.exe /p tcp /s" 를 입력 합니다.

stm32f407igt6

개발보드에서 보내는 통신 데이터를 캡쳐해서 볼 수 있습니다.

stm32f407igt6


4.30 UDP Echo client
(1) /Examples/STM32F4x7_ETH_LwIP_V1.0.0/Project/Standalone/udp_echo_client/MDK-ARM
(2) Ehternet을 이용해서 개발보드에서 UDP echo 서버에 패킷을 전송하는 예제 입니다.
(3) 테스트 방법은 명령어 입력창에서 "echotool /p udp /s" 를 입력하는것 이외에는 4.29와 동일 합니다.

* 테스트 방법은 위의 예제들과 동일 합니다.

4.31 HTTP Server
(1) /Examples/STM32F4x7_ETH_LwIP_V1.0.0/Project/FreeRTOS/udp_echo_client/MDK-ARM

4.32 HTTP Server with socket library
(1) /Examples/STM32F4x7_ETH_LwIP_V1.0.0/Project/FreeRTOS/udp_echo_client/MDK-ARM

4.33 Echo Server
(1) /Examples/STM32F4x7_ETH_LwIP_V1.0.0/Project/FreeRTOS/udptcp_echo_server_netconn/MDK-ARM