一、OSI七层模型
为了实现网络通信的标准化,普及网络应用,国际标准化组织(ISO)将整个以太网通信结构制定了OSI模型,即开放式系统互联。
OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即OSI开放互连系统参考模型。
应用层:网络服务与最终用户接口(http等)
表示层:数据的表示、加密、压缩
会话层:建立、管理、终止会话
传输层:定义传输数据的协议端口号、流控、差错校验(TCP,UDP)
网络层:进行逻辑寻址,实现不同网络之间的路径选择(IP)
数据链路层:建立逻辑链接、进行硬件寻址、差错校验(MAC)
物理层:建立、维护、断开物理链接(电平、速度、针脚)
二、TCP/IP五层模型
TCP/IP是指能够在多个不同网络间实现信息传输的协议簇。
TCP/IP协议不仅仅指的是TCP和IP两个协议,而是指一个由FTP\SMTP\TCP\UDP\IP等协议构成的协议簇,只是因为在TCP/IP协议中TCP协议和IP协议最具有代表性,所以被称为TCP/IP协议。
应用层:DNS/HTTP/FTP/SMTP
传输层:TCP/UDP
网络层:IP/ICMP/ARP
数据链路层:LLC/MAC
物理层:物理传输介质
三、以太网简介
以太网是遵守IEEE802.3标准组成的局域网,由IEEE802.3标准规定的,主要是位于参考模型的物理层(PHY)和数据链路层中的介质访问控制子层(MAC)。在家庭、企业和学校所组建的PC局域网形式一般也是以太网,其标志是使用水晶头网线来连接。
四、MII/RGMII
MII或称为媒体独立接口,它是IEEE802.3定义的以太网行业标准,用以连接以太网MAC层和PHY芯片,后逐步扩展为:MII/RMII/SMII/GMII/RGMII等。
MII:百兆以太网接口,单边沿采样。
RMII:百兆以太网接口,MII的线路简化版,双边沿采样。
GMII:千兆以太网接口,单边沿采样。
RGMII:千兆以太网接口,GMII的线路简化版,双边沿采样。
五、以太网接口示意图
ETH_RXC:接收数据时钟
(10Mbit/s------>2.5MHz
100Mbit/s------->25MHz
1000Mbit/s-------->125MHz
)
ETH_RXCTL:接收数据有效信号
ETH_RXD[3:0]:接收数据
ETH_TXC:发送数据时钟
ETH_TXCTL:发送数据有效信号
ETH_TXD[3:0]:发送数据
ETH_RST_N:低电平有效复位信号
ETH_MDC:SMI串行管理接口时钟信号(非周期性,与接收/发送时钟无关)
ETH_MDIO:双向数据线,用来传输MAC层的控制信息和物理层的状态信息。在MDC上升沿有效。
六、MAC子层功能
MAC子层是属于数据链路层的下半部分,主要负责与物理层进行数据交接。如是否可以发送数据,发送的数据是否正确,对数据流进行控制等。它自动对来自上层的数据包加上一些控制信号,交给物理层。
接收方得到正常数据时,自动去除MAC控制信号,把该数据包交给上层。
MAC数据包(位于TCP/IP协议的数据链路层):
MAC数据包由前导字段、帧起始界定符、目标地址、源地址、数据包类型、数据域、填充域、校验域组成。当到达网络层时候,除了有效数据,其他的诸如前导码/DA/SA等等,均被清除。
前导码:7Byte的0x55的方波
SFD:1Byte的0xd5
目的地址:6个字节,网卡的物理地址。一般出厂自带,后面也可以通过软件修改,或者嵌入式工程中重新配置。
源地址:6个字节。
类型/长度:类型-----2字节,可以描述TCP/IP协议层的IP/ARP/SNMP数据包。长度如果大于>0x0600的话,仅描述类型。
数据:包含MAC的上层和填充域,整个MAC包长度最少64字节,数据包最少46个字节,如果数据包不到46字节,在填充域会自动填充无效数据。
校验:4字节,保存了CRC检验序列,用于检错。
七、IP协议(网络层)
IP首部+DATA
IP首部校验和:
(1)将校验和字段置为00。
(2)以2字节为单位,数据反码求和。
(3)将进位加到低16上。
(4)取反。
八、UDP协议
UDP首部+DATA
UDP校验和:
(1)将校验和字段置为00 00
(2)以2字节为单位,数据反码求和
(3)将进位加到低16位上
(4)将相加的结果取反
九、原理图部分解读
引脚配置:
引脚说明:
但是注意我们的板卡如果自己有系统晶振,那46引脚浮空就可以了。
PHY芯片的地址采用引脚复用: