打算基于正点原子的教程学习lwIP,开发板用的正点原子stm32f407zgt6最小系统板加LAN8720A来实现网络通信
开发IDE使用的是CLion,用的开源的嵌入式编译器:arm-gnu-toolchain-15.3.rel1-mingw-w64-i686-arm-none-eabi
参考书籍:《lwIP开发指南_V1.7.pdf》
网络数据的数据流通
结合这张图,数据从单片机连接的网线到单片机内部去处理,整体逻辑是这样的:
数据以差分信号的形式在网线中传递,直到传递到RJ45网口(外部PHY),然后LAN8720A将其转换成01二进制数据,通过它的RMII接口传递给stm32的mac内核,mac有发送和接收的缓冲区,各一个,每个2KB,(IEEE规定每个帧最大1520B左右,2kB完全够用了),mac内核获取一帧数据后,告诉单片机的DMA,将该帧转移到指定的内存区域,这样的内存区域有多个,每个内存区域由一个DMA描述符(结构体)来控制访问。
2026/9/13大约 4 分钟