ENC28J60符合IEEE802.3的全部规范,采用了一系列包过滤机制以对传入数据包进行限制,内部有一个NMA模块,与主控制器通过两个中断脚和SPI实现通信。
寄存器:
共有三种不同形式的寄存器——控制寄存器,以太网寄存器 和PHY寄存器。主控制器通过SPI口对ENC芯片控制寄存器进行读写。以太网寄存器包含一个供以太网控制器发送和接收存储空间,主控制器使用SPI接口对该存储的空间的容量进行编程。只能通过读缓冲器和写缓冲器的SPI指令来访问以太网缓冲器。PHY寄存器用于对PHY模块配置、控制和状态获取,不能通过SPI接口直接访问,只可通过MAC中的MII访问。
控制寄存器:
控制寄存器一共分配在四个bank中,所以有些寄存器地址相同但是分区不同,使用时要先选择分区。
所有bank的最后五个单元1Bh-1Fh都指向同一组寄存器:EIE、EIR、ESTAT、ECON2、ECON1。它们是控制和监事器件工作的关键寄存器,所以可以不切换bank的情况下访问它们。
寄存器被定义成8位长度,而这8位长度包含了三个部分,地址bit7(最高位)用以区分PHY和MAC寄存器,PHY寄存器的操作最为特殊;地址bit6和bit5用以区分BANK,2位空间正好区分4个BANK;地址的最后5位才是寄存器的地址。通过这种方式就可以区分所有的寄存器了。ENC28J60的控制寄存器通常被分为ETH(E开头),MAC(MA),MII(MI)三种.
比较特殊的5个寄存器器:
ECON1:控制ENC的主要功能,包含接收使能,发送请求DMA控制和存储区选择。
BSEL1和BSEL0是对bank的选择。
ECON2:也是控制ENC28J60的其他主要功能