采用FPGA对网络芯片的控制应该说是一种很好的尝试,也是对简单网络接口应用的有益尝试。并且FPGA的使用也增加了系统的可扩展性。
图4.1 FPGA+网络芯片
一般的网络芯片有LAN91C111、DM9K等。本次设计使用的芯片是SMSC公司的LAN91C111,和DM9K相比,QuartusII对LAN9C111芯片的支持更好。
4.1 LAN91C111芯片简介[1]
LAN91C111是SMSC公司推出的第三代快速以太网控制器。该芯片上集成了遵循CSMA/CD协议的MAC(媒体层)和PHY(物理层),符合IEEE802.3/802.U-Base-Tx/10Base-T规范。总的内部存储器FIFO缓冲区的大小为8 KB,这是发送和接收操作的芯片总存储。SMSC的LAN91C111与LAN9000系列的软件兼容。
主要特点:
(1)单芯片以太网控制器
(2)双速 - 10/100 Mbps
(3)完全支持全双工交换式以太网
(4)支持突发数据传输
(5)8字节的接收和发送FIFO缓冲区的内部存储器
(6)增强的电源管理功能
(7)通过串行EEPROM接口可选配置
(8)支持8位,16位和32位CPU访问
(9)内部32位超宽数据通道(成数据包缓冲存储器)
(10)内置透明的仲裁从顺序存取架构
(11)MMU的建筑平面与对称结构和队列发送和接收
(12)3.3V工作电压5V容错I / O缓冲器
(13)单一25 MHz的参考时钟的PHY和MAC
(14)外部25 MHz的外部PHY的输出引脚,支持PHY的物理媒体
(15)低功耗CMOS设计
(16)支持多种嵌入式处理器主机接口
该芯片主要包括EPH模块、DMA模块、Arbiter仲裁器、MMU模块、总线接口模块BIU、EEPROM接口、内部PHY和MII接口等。其8-32位数据总线接口单元通过控制总线、地址总线和数据总线与外部的CPU相连。外部数据可以8位、16位或32位的方式与LAN91C111进行交换。
图4.2 LAN91C111芯片模块图
4.2 硬件原理分析
以太网接口部分的原理图如图4.3所示,该电路没有使用LAN91C111的MII接口,因此可以把与MII接口有关的引脚悬空。地址总线A1~A15与EP2C35的A1~A15相连,A0悬空,AEN为一片选信号,只有当它为低电平时A1~A15才有效;数据总线D0~D31与EP2C35的D0~D31相连。其中BE0~BE3是用来控制D0~D31数据通道的选择信号。例如,BE0控制D0~D7,BE1控制D8~D15,依次类推。LCLK,RDYRTN,CYCLE,W/R是与同步信号有关的引脚,SRDY,DATACS,VLBUS是工作在32位数据传输的情况下所用的信号。LDEV使AEN信号有效,并且是A1~A15地址信号被正确解码的确认信号。ADS是地址锁存信号。EP2C35接收LAN91C111的数据是基于中断的,因此LAN91C111的中断输出引脚INTR0接入EP2C35的外部中断引脚。
由于该接口电路中LAN91C111没有使用EEPROM,所以LAN91C111的ENEEP引脚需要接地。同时由于RD和WR是低电平有效,所以要加上拉电阻防止干扰;其余信号是高电平有效,同理要加下拉电阻。PHY模块的RBIAS引脚必须接11kΩ的电阻再接地,这样PHY才能正确接收数据。
5 软件设计
通过上文的介绍,我们知道,完成此次软件部分的设计需要三步,首先要完成NIOSII软核处理器的定制,其次要完成FPGA芯片的配置,最后根据网络协议实现数据发送与接收。
5.1 NIOSII软核处理器定制
Nios 处理器是一种软核CPU,并针对Altera 的可编程逻辑器件和片上可编程系统的设计思想做了相应优化。作为一种可配置的通用RISC处理器,它可以与用户自定义逻辑(userlogic)结合构成SOPC系统,并下载到Altera 的可编程器件中去。32 位Nios 软核结合外部闪存以及大容量存储器,可构成一个功能强大的32 位嵌入式处理器系统。 基于FPGA的以太网接口设计+文献综述(6):http://www.youerw.com/tongxin/lunwen_5996.html