STM32 ETH + LwIP (UDP Echo Server)
사용 보드 : F429ZI
프로그램 : CubeIDE
Background
TCP/IP OSI Layer Model [OSI Layer Model 설명 블로그]
STM32-> UDP Server
PC -> Client
Data 전송 (Data) <-Frame 하여 보낸 후
수신하는 부분에서 Frame 을 해제하여 받음
각 계층마다 어떤 데이터가 붙는지 알 수 있다.
DP83848 PHY Transceiver : RJ45 커넥터 (Eth 신호 -> 3.3V Digital 신호)
1Layer인 물리 계층의 전기적 신호를 전달하는 과정을 해줌
<영상의 프로젝트 과정>
ETH -> LwIP stack (third party open source) -> UDP echo server -> User Application
내가 사용하는 보드 F429ZI 는 Ethernet Port가 존재함
UTP (Unshieled Twisted Pair) 케이블 : 절연체로 보호받지 않은 두 줄씩 페어로 묶인 케이블
종류 : Direct Cable(T568B), Cross Cable(T568A)
1. GPIO 설정
.ioc 파일에서
-
Connectivity -> ETH -> RMII
-
Middleware -> LWIP -> Enabled
2. 초기화
ethernetif.c -> low_level_init : mac address 초기화
lwip.c -> MX_LWIP_Init : ip 초기화
3. 코드
알집을 풀고나서
Project -> STM32xG_EVAL -> Application -> LwIP -> LwIP_UDP_Echo_Server 예제
자신의 원래 프로젝트에
Inc -> udp_echoserver.h
src -> udp_echoserver.c
다음 파일을 복사하고
#include "udp_echoserver.h"
한다.
lwip.c 에서 가져온 struct netif gnetif; 를 -> lwip.h 에 extern 사용
main 안쪽에
init 한줄 while 문에 코드 두 줄을 입력한다.
- udp_echoserver_init();
- ethernetif_input(&gnetif);
- sys_check_timeouts();
4. Ping Test
window 버튼 + R -> cmd
ping 192.168.0.235 <- 본인이 설정한 stm32 ip 주소
5. UDP Program
hercules setup utility
udp_echoserver.h 의 default port는 7번이다.
실행 후 UDP 선택<작성중>
Author And Source
이 문제에 관하여(STM32 ETH + LwIP (UDP Echo Server)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@lcooldong/STM32-ETH-LwIP-UDP-Echo-Server저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)