网卡(network interface card,简称nic),也称网络适配器,是电脑与局域网相互连接的设备。只要连接到局域网就需要网卡。一个网卡主要包括osi的最下面两层,物理层和数据链路层。物理层的芯片称之为phy,数据链路层的芯片称之为mac控制器。本文旨在学习以太网基础mac和phy的知识,总结系统框架和物理硬件组成原理,了解各种接口。
phy & mac & mii
phy
phy 是物理接口收发器,它实现物理层。包括 mii/gmii (介质独立接口) 子层、pcs (物理编码子层) 、pma (物理介质附加) 子层、pmd (物理介质相关) 子层、mdi 子层。定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。物理层的芯片称之为phy。
mac
mac 是 media access control 的缩写,即媒体访问控制子层协议。该协议位于 osi 七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。在发送数据的时候,mac 协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,mac 协议首先判断输入的信息是否发生传输错误,如果没有错误,则去掉控制信息发送至 llc 层。以太网 mac 由 ieee-802.3 以太网标准定义。
mii
mii即媒体独立接口,也叫介质无关接口。它是ieee-802.3定义的以太网行业标准。它包括一个数据接口,以及一个mac和phy之间的管理接口。数据接口包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。mii数据接口总共需16个信号。管理接口是个双信号接口:一个是时钟信号,另一个是数据信号。通过管理接口,上层能监视和控制phy。由此可见,mac 和 phy,一个是数据链路层,一个是物理层;两者通过 mii 传送数据。
系统组成
从硬件的角度来分析,以太网的电路接口一般由cpu、mac(media access control)控制器和物理层接口phy组成:对于上述三部分,并不一定都是独立的芯片,主要有以下几种情况:
(1)cpu内部集成了mac和phy,难度较高;(2)cpu内部集成mac,phy采用独立芯片(主流方案);(3)cpu不集成mac和phy,mac和phy采用独立芯片或者集成芯片(高端采用)。phy整合了大量模拟硬件,而mac是典型的全数字器件,芯片面积及模拟/数字混合架构的原因,是将mac集成进微控制器而将phy留在片外的原因。更灵活、密度更高的芯片技术已经可以实现mac和phy的单芯片整合。以常用的cpu内部集成mac,phy采用独立的芯片方案为例,虚线内表示cpu和mac集成在一起,phy芯片通过mii接口与cpu上的mac互联。
对于这种方案,其硬件方案比独立的更简单,phy与mac之间有以下两个重要的硬件接口:(1)mdio总线接口,主要是完成cpu对于phy芯片的寄存器配置;(2)mii即媒体独立接口,也叫介质无关接口。常见的有mii、rmii、gmii、rgmii等。“媒体独立”表明在不对 mac 硬件重新设计或替换的情况下,任何类型的 phy 设备都可以正常工作。mii 数据接口总共需要16个信号,包括:
transmit data - txd[3:0]transmit strobe - tx_entransmit clock - tx_clktransmit error - tx_er/txd4receive data - rxd[3:0]receive strobe - rx_dvreceive clock - rx_clkreceive error - rx_er/rxd4collision indication - colcarrier sense - crs一般说来,包括ic 对 phy 作读取与写入用的一组信号:mdc(clock),mdio(data) 作为 data sampling reference 用的两组 clock,频率应为 25mhz(tx_clk,rx_clk)各4-bit 的输出、输入 bus(tx[0:3],rx[0:3]);通知对方准备输入数据的输出、输入的启动信号(tx_en);输出、输入的错误通知信号(tx_er,rx_er);得到有效输入数据的通知信号(rx_dv);网络出现拥塞的 colision 信号(col)。做为 carrier 回复用的信号(crs),电位可使用+5v 或+3.3v。mii 以 4bit,即半字节方式双向传送数据,时钟速率 25mhz,其工作速率可达 100mb/s。mii传递了网络的所有数据和数据的控制,而 mac对phy 的工作状态的确定和对 phy 的控制则是使用 smi ( serial management interface) 界面通过读写phy的寄存器来完成的。phy 里面的部分寄存器是 ieee 定义的,这样 phy 把自己的目前的状态反映到寄存器里面,mac 通过 smi 总线不断地读取 phy 的状态寄存器以得知目前 phy 的状态,例如连接速度,双工能力等。当然也可以通过 smi 设置 phy 的寄存器达到控制的目的,例如流控地打开关闭,自协商模式还是强制模式等。不论是物理连接的 mii 总线和 smi 总线还是 phy 的状态寄存器和控制寄存器都是有 ieee 的规范的,因此不同公司的 mac 和 phy 一样可以协调工作。当然为了配合不同公司的 phy 的自己特有的一些功能,驱动需要做相应的修改。
smi
smi是mac内核访问phy寄存器接口,它由两根线组成、双工,mdc为时钟,mdio为双向数据通信,原理上跟i2c总线很类似,也可以通过总线访问多个不同的phy。
mdc/mdio基本特性:
两线制:mdc(时钟线)和mdio(数据线)。时钟频率:2.5mhz通信方式:总线制,可同时接入的phy数量为32个通过smi接口,mac芯片主动地轮询phy层芯片,获得状态信息,并发出命令信息。后来为了支持千兆网口,也就开始有了千兆网的mii接口,也就是gmii接口。现在比较常用的是rgmii,减小了mac和phy之间的引脚数量。数据信号和控制信号混合在一起,并且在工作时钟的上升沿和下降沿同时采样,其对应关系如下:10m带宽对应的是2.5mhz,因为4bit*2.5m=10mbps100m带宽对应的是25mhz,因为4bit*25m=100mbps1000m带宽对应的是125mhz,4bit*125m=1000mbps,因为250mhz频率太高,所以采用双边沿采样技术(会带来设计复杂度)。
开关模式电源转换器补偿网络的频率特性介绍
迪文2K高分辨率智能屏发布4款新品
威马汽车沈晖:5G技术使自动驾驶更智能、更安全
分享一个自动关断电路
相控阵天线方向图——第3部分:旁瓣和锥削
以太网——PHY、MAC、MII与网卡
Microchip WFI32-IoT开发板助您跃然云端
一图看懂2016全球半导体行业十大并购案
led背光驱动电路图
交流微电网的作用和应用
CAN总线镍氢电池管理解决方案
华为Mate10即将发布,华为荣耀8、华为Mate9、华为P10Plus大降价!购买还是等待?
通过设计实现连接
国内外农业机器人市场增长显著,到2025年其市场规模将达到879亿美元
物通博联网段隔离器可以接入多少PLC实现NAT转换和跨网段访问
ESP-C3芯片技术的应用
讨论原理图,这几位工程师都快打起来了
支出超201亿美元!华为成为全球第三大芯片买家
大内存时代振奋人心的CXL技术(下)
HM72B系列可处理高功率环境的SMT电感