If you develop on Linux, you've probably heard of LWIP a lot.
Looking at the dictionary meaning of LWIP, it is as follows.
lwIP is a small independent implementation of the TCP/IP protocol suite that has been initially developed by Adam Dunkels. The focus of the lwIP TCP/IP implementation is to reduce resource usage while still having a full scale TCP. This makes lwIP suitable for use in embedded systems with tens of kilobytes of free RAM and room for around 40 kilobytes of code ROM.
To summarize, it means that LWIP operates at the network layer.
Most Ethernet-capable PHY chips do not have a MAC internally, so they can only be used if the MCU supports MAC.
WIZnet Chips?It can be used in MCUs that are not in MAC, LWIP (MACRAW mode) can be used, and hard-wired TCP/IP stacks can also be used.
The chips of WIZnet is a Hardwired Internet controller designed as a full hardwired TCP/IP stack with WIZnet technology.
MACRAW and IPRAW are names created by WIZnet.
MACRAWIn MAC-Raw mode the chips of wiznet behaves pretty much like a CS8900A or a LAN91C96. The chip of wiznet is usually only configured with a MAC address which is used by the chip of wiznet to limit incoming frames to those sent to its MAC address (or broadcasts).
The chips of WIZnet support PPP/PPPoE in MACRAW mode. The Point-to-Point Protocol (PPP) is Link-layer protocol for point-to-point connecting to Network Access Server(NAS) provided by ISP(Internet Service Provider) and sending IP data packet.
IPRAWIP-Raw mode is usable to implement non-UDP/non-TCP IP protocols like ICMP. The chip of wiznet is usually configured with a full IP profile (IP addr, netmask, gateway). It transparently takes care of incoming/outgoing ARP and optionally of incoming ICMP Echo (aka Ping).
The chips of wiznet support IP layer's upper protocol in the TCP/IP Layer.
Even now, the price of PHY chips is rising to the ceiling due to the semiconductor crisis, but Wiznet chips have only a slight price change, so wouldn't it seem more strange to use expensive PHY chips?
When using LWIP, there is a problem of porting with the existing socket API, but it is not difficult.
Basically, the bsd socket function is used, and the library is also provided.
https://github.com/Wiznet/ioLibrary_Driver
It is a socket type API used in Windows, Linux, etc.
----------------------------------------------------------
I worked on a project made using MACRAW more than I thought.
Projects ListIf you visit the links, there is a brief descriptionof the project and the original link.
PiCAT : Raspberry PI + EtherCAT- Raspberry Pi EtherCAT Master (PiCAT)
- Raspberry PI EtherCAT Master (PiCAT) with W5500
- PiCAT Xenomai 3 for Raspberry pi 4
- stm32 Ethernet solution
- Ethernet module + STM32F4Disc + MicroPython
- W5500lwIP
- [STM32 HAL] WIZNET W5100(W5500) + TCP CLIENT
- [STM32 HAL] LwIP TCP Client
Comments
Please log in or sign up to comment.