enc28j60_cn.txt

来自「带 SPI接口的独立 以太网控制器 . 2006 Microchip」· 文本 代码 · 共 3,144 行 · 第 1/5 页

TXT
3,144 行
字号
3-3: 
MICON:MII控制寄存器
R/W-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 
bit 7 bit 0 
bit 7 
bit 6-0RSTMII:MII管理模块复位位 
1 =MII管理模块保持在复位状态 
0 =正常操作 
未用:读为 
0
图注: 
R = 可读位 
W = 可写位 
U = 未用位,读为 
0 
-n = 上电复位时的值 
1 = 置 
1 0 =清零 
x = 未知 
寄存器 
3-4: 
MICMD:MII命令寄存器 
U-0 U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-0bit 7 bit 0 
bit 7-2bit 1 
bit 0 
未用:读为 
0 
MIISCAN:MII扫描使能位 
1 =连续读 
MIREGADR中的 
PHY寄存器,并把数据写入 
MIRD 
0 =不在进行 
MII管理扫描操作 
MIIRD:MII读使能位 
1 =读 
MIREGADR中的 
PHY寄存器一次,并把数据写入 
MIRD 
0 =不在进行 
MII管理读操作
图注: 
R = 可读位 
W = 可写位 
U = 未用位,读为 
0 
-n = 上电复位时的值 
1 = 置 
1 0 =清零 
x = 未知

RSTMII-------

------MIISCAN MIIRD 

. 2006 Microchip Technology Inc.高级信息 
DS39662A_CN第 
21页 



ENC28J60 


寄存器 
3-5: 
MISTAT:MII状态寄存器 
U-0 U-0 U-0 U-0 R-0 R-0 R-0 R-0bit 7 bit 0 
bit 7-4bit 3bit 1 
bit 1 
bit 0 
未用:读为 
0 
保留:保持为 
0 
NVALID:MII管理读数据无效位 
1 =MIRD内容仍然无效 
0 =MII管理读周期已完成并且 
MIRD已被更新 
SCAN:MII管理扫描操作位 
1=正在进行 
MII管理扫描操作 
0=不在进行 
MII管理扫描操作 
BUSY:MII管理忙位 
1=当前正在读或写 
PHY寄存器 
0 =MII管理接口空闲
图注: 
R = 可读位 
r = 保留位,保持为 
0 
-n = 上电复位时的值 
1 = 置 
1 
U =未用位,读为 
0 
0 =清零 
x = 未知

NVALID SCAN BUSY ----r 

3.3.4 PHSTAT寄存器 
PHSTAT1和 
PHSTAT2寄存器内包含有一些只读位,可
以显示 
PHY模块的当前工作状态,特别是与网络其他
部分通信的状态。 


PHSTAT1寄存器(寄存器 
3-6)包含 
LLSTAT位,在上
一次读寄存器后如果物理层链路出现故障,该位会清零
并保持低电平。主控制器周期性查询该位可确定链路出
现故障的时间。在没有使用链路状态变化中断的情况
下,该方法尤其适用。 


PHSTAT1寄存器还包含一个闲聊( 
Jabber)状态位。
如果以太网控制器连续不断地发送数据,不让其他节点
共享介质,那么就称以太网在“闲聊”。通常闲聊状态
表明本地控制器严重违反了 
IEEE规范定义的最大数据
包长度规定。该位保持高电平表明自上一次读寄存器起
发生了闲聊状态。 


PHSTAT2寄存器(寄存器 
3-7)包含的状态位表明 
PHY
模块是否连接到网络,是否在发送或接收数据。 


3.3.5 PHID1和 
PHID2寄存器 
PHID1和 
PHID2寄存器为只读寄存器。它们保存的常
数可帮助识别以太网控制器,也可以用于调试。这些常
数包括: 


. 
PHY模块的部件编号( 
PPN5:PPN0) 
. 
PHY模块的版本号( 
PREV3:PREV0) 
. 
PHY标识符( 
PID24:PID3),作为 
Microchip 
OUI(Organization Unique Identifier)的一部分 
PHY部件编号和版本号位于 
PHID2内。PHY标识符的
两个高字节位于 
PHID1,余下部分位于 
PHID2。表 
3-3
给出了它们在寄存器内的具体位置。

在 
EREVID内也存储了版本信息。 EREVID是一个只读控
制寄存器,包含一个 
5位标识符,用来标识器件特定硅片
的版本号。欲知该寄存器的详细信息,请参见表 
3-2。 


DS39662A_CN 第 
22页 
高级信息 
. 2006 Microchip Technology Inc.


ENC28J60


寄存器 
3-6: 
PHSTAT1:物理层状态寄存器 
1 

U-0 U-0 U-0 R-1 R-1 U-0 U-0 U-0

---PFDPX PHDPX---

bit 15 bit 8 
U-0 U-0 U-0 U-0 U-0 R/LL-0 R/LH-0 U-0

-----LLSTAT JBRSTAT-

bit 7 
bit 0

bit 15-13 
未用:读为 
0 

bit 12 
PFDPX:PHY全双工能力位 
1 =PHY在全双工模式下能工作在 
10 Mbps频率下(该位始终置 
1) 


bit 11 
PHDPX:PHY半双工能力位 


1 =PHY在半双工模式下能工作在 
10 Mbps频率下(该位始终置 
1) 


bit 10-3 
未用:读为 
0 

bit 2 
LLSTAT:PHY锁存链路状态位 


1 =链路激活,并且自上一次读 
PHSTAT1后链路一直处于激活状态 
0 =链路失效,或自上一次读 
PHSTAT1后失效了一段时间 


bit 1 
JBRSTAT:PHY锁存闲聊状态位 
1 =自上一次读 
PHYSTAT1后, 
PHY检测到某个发送符合闲聊条件 
0 =自上一次读 
PHYSTAT1后, 
PHY未检测到任何闲聊发送 


bit 0 
未用:读为 
0 

图注: 
R = 只读位 
R/L = 只读锁存位 
U = 未用位,读为 
0 
1 =上电复位时置 
1 0 =上电复位时清零 
LL = 保持低电平位 
LH = 保持高电平位

. 2006 Microchip Technology Inc.高级信息 
DS39662A_CN第 
23页 



ENC28J60 


寄存器 
3-7: 
PHSTAT2:物理层状态寄存器 
2 

U-0 U-0 R-0 R-0 R-0 R-0 R-x U-0

--TXSTAT RXSTAT COLSTAT LSTAT DPXSTAT(1)-

bit 15 bit 8 
U-0 U-0 U-0 R-0 U-0 U-0 U-0 U-0

---PLRITY----

bit 7 
bit 0

bit 15-14未用:读为 
0 
bit 13 TXSTAT:PHY发送状态位 
1 =PHY正在发送数据 
0 =PHY未发送数据 
bit 12 RXSTAT:PHY接收状态位 
1 =PHY正在接收数据 
0 =PHY未接收数据 
bit 11 COLSTAT:PHY冲突状态位 
1 =发生冲突 
0 =未发生冲突 
bit 10 LSTAT:PHY链路状态位(不锁存) 
1 =链路激活 
0 =链路失效 
bit 9 DPXSTAT:PHY双工状态位 
(1) 
1 =PHY被配置为全双工工作模式( 
PHCON1.PDPXMD位置 
1) 
0 =PHY被配置为半双工工作模式( 
PHCON1.PDPXMD位清零)
注 
1:双工模式状态位的复位值取决于 
LED同 
LEDB引脚的连接方式(欲知更多信息,请参见第 2.6

节“LED配置”)。 


bit 8-5 
未用:读为 
0 

bit 4 
PLRITY:极性状态位 
1 = TPIN+/TPIN-上信号极性是反向的 
0 = TPIN+/TPIN-上信号极性是正向的 


bit 3-0 
未用:读为 
0 

图注: 
R = 可读位 
W =可写位 
U = 未用位,读为 
0 
-n = 上电复位时的值 
1 = 置 
1 0 =清零 
x = 未知位

DS39662A_CN 第 
24页 
高级信息 
. 2006 Microchip Technology Inc.


ENC28J60 


4.0串行外设接口( 
SPI) 
4.1概述 
ENC28J60可与许多单片机上的串行外设接口( 
Serial 
Peripheral Interface, 
SPI)直接相连。此器件只支持 
SPI的模式 
0,0。另外, 
SPI端口要求 
SCK在空闲状态
时为低电平,并且不支持时钟极性选择。

图 
4-1: 
SPI输入时序

图 
4-2: 
SPI输出时序 


在 
SCK的每个上升沿移入数据,命令和数据通过 
SI引
脚送入器件。 ENC28J60在 
SCK的下降沿从 
SO引脚
输出数据。当执行操作时 
CS引脚必须保持低电平,当
操作完成时返回高电平。

CS 
SCK 
SI 
SO 
MSB输入
高阻态
LSB输入
CS 
SCK 
SO MSB输出LSB输出
忽略
SI 
. 2006 Microchip Technology Inc.高级信息 
DS39662A_CN第 
25页 



ENC28J60 


4.2 SPI指令集 
ENC28J60共有七条指令。表 
4-1显示了所有操作的命
令代码。
ENC28J60所执行的操作完全依据外部主控制器通过 
SPI接口发出的命令。这些命令为一个或多个字节的指
令,用于访问控制存储器和以太网缓冲区。指令至少包
含一个 
3位操作码和一个用于指定寄存器地址或数据常
量的 
5位参数。写和位域指令后还会有一个或多个字节
的数据。 


表 
4-1: 
ENC28J60的 
SPI指令集

指令名称和助记符
字节 
0字节 
1和后面的字节
操作码参数数据
读控制寄存器( 
RCR) 
0 0 0 a a a a a N/A
读缓冲器( 
RBM) 
0 0 1 1 1 0 1 0 N/A
写控制寄存器( 
WCR) 
0 1 0 a a a a a d d d d d d d d
写缓冲器( 
WBM) 
0 1 1 1 1 0 1 0 d d d d d d d d
位域置 
1(BFS) 
1 0 0 a a a a a d d d d d d d d
位域清零( 
BFC) 
1 0 1 a a a a a d d d d d d d d
系统命令(软件复位)( 
SC) 
1 1 1 1 1 1 1 1 N/A

图注: 
a = 控制寄存器地址, 
d = 数据有效负载。

DS39662A_CN 第 
26页高级信息 
. 2006 Microchip Technology Inc. 


ENC28J60 


4.2.1读控制寄存器的命令制寄存器中的哪一个。如果 
5位地址指向的是一个 
ETH
读控制寄存器( 
Read Control Register,RCR)命令允
寄存器,那么选定寄存器中的数据会立即开始从 
SO引
许主控制器随意读取 
ETH、 
MAC和 
MII寄存器。通过
脚移出,最高位在前。图 
4-3显示了这些寄存器的读取
特殊的 
MII寄存器接口可以读取 
PHY寄存器的内容(欲
序列。
知更多信息,请参见第 
3.3.1节“读 
PHY寄存器”)。如果地址指向了一个 
MAC或 
MII寄存器,则首先从 
SO

引脚移出一个无效数据字节,随后从 
SO引脚移出数据,

将 
CS引脚拉为低电平启动 
RCR命令。然后将 
RCR操
最高位在前。通过拉高 
CS引脚的电平可结束 
RCR操
作码和随后的 
5位寄存器地址( 
A4到 
A0)发送给 
ENC28J60。5位地址决定将使用当前存储区中 
32个控
作。图 
4-4给出了读 
MAC和 
MII寄存器的命令序列。

图 
4-3:读控制寄存器的命令序列( 
ETH寄存器)

SO 
SI 
SCK 
CS 
0 2 3 4 5 6 7 8 9 10 11 12 13 14 151 
7 6 5 4 3 2 1 0
数据输出
2 034000 1
操作码地址
高阻态
图 
4-4:读控制寄存器的命令序列( 
MAC和 
MII寄存器) 


SO 
SI 
SCK 
CS 
0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 221 
2 034000 1 
7 6 5 4 3 2 1 0
操作码
无效字节
高阻态
23 
7 6 5 4 3 2 1 0
数据字节输出
地址
. 2006 Microchip Technology Inc.高级信息 
DS39662A_CN第 
27页 



ENC28J60 


4.2.2读缓冲存储器命令
读缓冲存储器( 
Read Buffer Memory,RBM)命令允许
主控制器从 
8 KB发送和接收缓冲存储器中读取字节。

如果 
ECON2寄存器中的 
AUTOINC位置 
1,那么在读
完每个字节的最后一位之后, 
ERDPT指针将会自动地
递增指向下一个地址。正常情况下下一个地址为当前地
址加 
1。然而,如果读取了接收缓冲器中的最后一个字
节(ERDPT = ERXND),则 
ERDPT指针将转而指向
接收缓冲器的起始单元。这样主控制器可以从接收缓冲
器中连续读取数据包,而无须跟踪何时需要折回。当读
取地址 
1FFFh时,如果 
AUTOINC被置 
1,且 
ERXND
没有指向该地址时,则读指针将递增并折回到 
0000h。

将 
CS引脚拉为低电平启动 
RBM命令。然后将 
RBM操
作码及随后的 
5位常量 
1Ah发送给 
ENC28J60。在发送 
RBM命令和常量后,由 
ERDPT指向的存储器中的数据
将从 
SO引脚移出,首先移出最高位。如果主控制器继
续在 
SCK引脚提供时钟信号,而没有拉高 
CS的电平, 
ERDPT指向的字节将再次从 
SO引脚移出,同样首先
移出最高位。当 
AUTOINC被使能时,使用该方式就可
以连续地从缓冲存储器中顺序读取字节而无需多余的 
SPI命令。拉高 
CS引脚电平可以结束 
RBM命令。 


图 
4-5:写控制寄存器的命令序列 


CS 


4.2.3写控制寄存器的命令
写控制寄存器( 
Write Control Register,WCR)命令允
许主控制器以任何次序写入 
ETH、 
MAC和 
MII控制寄
存器。通过特殊的 
MII寄存器接口对 
PHY寄存器执行写
操作(欲知更多信息,请参见第 
3.3.2节“写 
PHY寄
存器”)。

将 
CS引脚拉为低电平启动 
WCR命令。然后将 
WCR
操作码及随后的 
5位地址( 
A4到 
A0)发送给 
ENC28J60。5位地址决定要使用当前存储区中 
32个控
制寄存器中的哪一个。在发送 
WCR命令和地址后,发
送要实际写入的数据

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?