이더넷과 TCP/IP: MCU에서 네트워크 쓰기
MAC, PHY, IP, TCP/UDP의 역할 분담과 STM32 + LwIP로 네트워크를 붙이는 구조.
계층별 역할
| 계층 | 하는 일 | MCU에서 |
|---|---|---|
| PHY | 선 위의 전기 신호 | 외부 칩 (LAN8742 등) |
| MAC | 이더넷 프레임 송수신 | MCU 내장 |
| IP | 주소로 길 찾기 | 소프트웨어 스택 |
| TCP / UDP | 연결, 재전송 / 단순 전송 | 소프트웨어 스택 |
| 응용 | HTTP, MQTT, Modbus TCP | 내 코드 |
MAC과 PHY는 RMII 인터페이스(50MHz 클럭)로 연결하고, PHY 설정은 MDIO로 합니다.
LwIP
MCU용 경량 TCP/IP 스택입니다. CubeMX에서 ETH + LWIP를 켜면 DHCP, ping, TCP 소켓을 쓸 수 있습니다. RTOS와 함께 쓰면 소켓 API가 편합니다.
TCP와 UDP 고르기
- TCP: 순서 보장, 재전송. 설정 변경, 파일 전송, 웹
- UDP: 빠르고 단순, 손실 가능. 실시간 센서 스트림, 탐색 방송
차량과 산업
차량 이더넷(100BASE-T1)은 선 한 쌍으로 100Mbps를 보내고, 산업용은 EtherCAT처럼 실시간성을 보장하는 변형을 씁니다. 하드웨어는 다르지만 상위 계층의 생각은 같습니다.