板子上焊了W5100的话,FPGA侧走SPI最省事。W5100内部集成了MAC和PHY,FPGA只需当SPI主机按寄存器地址读写即可完成以太网通信。相比GMII要自己搭MAC层、处理8位数据总线加一堆控制信号,SPI方案把复杂度压到"读一个寄存器、写一个寄存器"。初学者做协议验证、小带宽采集,这套够用。
W5100有Socket0到Socket3共四个通道,各可跑TCP或UDP。实际建议:Socket0走TCP控制(上位机下发指令),Socket1走UDP数据(高速回传),Socket2/3留作扩展。FPGA侧用四组状态机分别管理收发解包,互不干扰。
为什么选W5100
W5100把10/100M PHY、MAC、IP协议栈封在芯片里,FPGA端只管SPI时序和寄存器操作:
SPI总线:CS/SCK/MISO/MOSI四根线,FPGA分频到8-16MHz驱动,时序直白。
寄存器操作:全局寄存器控制模块,Socket的TX/RX FIFO收发数据。FPGA封装SPI读/写子模块,上层按地址访问即可。
带宽上限:SPI@16MHz约2MB/s,传感器数据、控制指令没问题。要跑满百兆得上GMII。
FPGA端设计要点
1. SPI主机模块:参数化分频系数,支持突发读和单字节写,CS拉低延时满足W5100时序。
2. 指令队列:FIFO缓存待发送的寄存器操作(地址+数据+读写标志),避免总线空闲。
3. 中断处理:INT_n接FPGA外部中断,收完或发完触发解包逻辑。
4. 超时重传:TCP模式下做ACK超时计数,超时后重新发送。
什么时候该上GMII?
需要满速100M全双工或延迟要求<10μs时,W5100的SPI瓶颈会暴露。换GMII后FPGA直连8位数据总线加RX_ER、TX_EN等信号,MAC层搬进FPGA,复杂度上一个台阶。W5100是"自动挡",GMII是"手动挡",按项目需求选。
总结:FPGA接W5100走SPI,四根线搞定以太网,适合学习验证和小带宽场景;追求满速再上GMII。
思考题:如果同时跑TCP和UDP两个Socket,FPGA侧的SPI仲裁和FIFO深度你打算怎么设计?
关于FPGA网络通信的更多细节——SPI时序对齐、多Socket并发调度、W5100到高速以太网迁移——欢迎通过官网右下角客服窗口和我们沟通。宸极教育的FPGA实战课程从低速协议一路讲到JESD204B高速接口,帮你把"跑通"变成"能交付"。点击右下角对话框,留言"以太网"获取课程大纲。
未经许可,禁止转载!
下一篇:没有了