觉得很无趣
正好看到手边有一块FPGA的板子,心想没什么事情干,于是决定做一下网络方面的东西。
准备用SMSC的LAN8700和Spartan 3AN做
早上开始翻阅了一点资料。
大致知道SMSC的LAN8700是用来实现PHY层,然后有两个可以定义的接口模式MII和RMII(stq有一次在msn上的签名就是这个-.-)
The MII includes 16 interface signals:
- transmit data - TXD[3:0]
- transmit strobe - TX_EN
- transmit clock - TX_CLK
- transmit error - TX_ER/TXD4
- receive data - RXD[3:0]
- receive strobe - RX_DV
- receive clock - RX_CLK
- receive error - RX_ER/RXD4
- collision indication - COL
- carrier sense - CRS
The RMII includes 6 interface signals with one of the signals being optional:
- transmit data - TXD[1:0]
- transmit strobe - TX_EN
- receive data - RXD[1:0]
- receive error - RX_ER (Optional)
- carrier sense - CRS_DV
- Reference Clock - CLKIN/XTAL1 (RMII references usually define this signal as REF_CLK)
具体模式的选择是通过COL/RMII/CRS_DV/管脚在nReset上升沿时候的状态决定的。
我拿FPGA要做的事情是实现一个MAC
具体实现过程还不清楚的说-.-毕竟才看了半天。感觉还是要用FSM来给8700进行一些状态的配置以及再受到数据的时候的一些操作。这其中应该包括了一些寄存器的操作。LAN8700不是有MDIO和MDC脚的么。
我现在困惑的是,假设我实现了接收和发包的功能,我又能实现什么功能呢??
难道我在PC端拿VC写个程序发个数据过去,然后拿FPGA显示在LED上,再说吧。
==============================================================
很晕,非常晕,大概老天觉得我太闲了,居然写blog的时候,杭州打我电话,叫我帮做个小项目-.-
I2C + LCD显示
小菜一碟阿
太简单了
就是没有开发板
可惜我没有烧写器
很郁闷