1. 网卡
网卡基本单元有4个:MAC、PHY、变压器、RJ45。框图里舍去晶振、电源、存储设备、LED等外设,根据方案差异,某些数字电路部分不同程度的整合到一个芯片内。
网卡上至少有两个LED灯,分别表示Link(链路正常)和数据传输或数据速率选择(10M/100M)。
晶振是处理器自同步的时钟源。
存储设备指的是EEPROM存储设备,我没用过,绝大多芯片手册里介绍MAC链接一个几K的EEPROM,内部存储MAC地址,其实没有这个EEPROM网卡也能工作,MAC地址可以待CPU启动后由CPU写入。
网卡BOOTROM,是无盘启动的ROM接口,通过远程启动服务构造无盘工作站。
1.1. MAC
媒体访问控制(MAC,Media Access Control),平时所说的MAC地址(局域网地址)指的是MAC芯片的地址。按设计要求它应该是全球唯一,实际上只做到局域网广播域内唯一即可,Windows和Linux都有修改MAC地址的方法。
MAC的作用:在局域网广播链路里控制和协调所有站点对共享介质的访问,以避免或减少冲突。这种冲突检测的方法叫载波侦听多路访问/冲突检测(CSMA/CD,Carrier Sense MultipleAccess With Collision Detection)。下图的多块网卡MAC链接到同一个HUB上,相当于所有MAC的收、发信号连接在一起,组成星形拓扑。
CSMA/CD协议逻辑是:
•发送前检查信道是否空闲,空闲则发送,信道繁忙则继续监听,直到信道空闲
•边发送边检测冲突。如果发送完毕都没有检测到冲突,则发送成功
•如果发送时检测到冲突,立即停止数据发送,并发送jamming信号增强链路冲突,随机等待一段时间等待信道空闲
1.2. PHY
物理层(PHY,Physical Layer),是数、模转换模块。
它实现物理层.IEEE-802.3标准定义了以太网PHY。包括MII/GMII(介质独立接口)子层,PCS(物理编码子层),PMA(物理介质附加)子层,PMD(物理介质相关)子层,MDI子层。
PHY是MAC的 工具人,PHY是CSMA/CD的执行部件,当发生冲突时它告知MAC,由MAC做决策。
PHY眼里只有数据没有帧概念,数据、地址、CRC都同等看待。它负责网络数据编码、解码、链路错误检测。在100Base-T里PHY采用4B/5B编码,用5bit编码传递4bit信息的编码方式,带宽利用率80%,5bit可有32种编码方式,4bit有16种编码方式,从5bit里取出16组编码作为信道信息编码,对这16组编码只有两个要求:5bit组里至少有2个1;5bit里不能有连续3个0。其余的16组表示无用信号或者控制码。
1.3. 变压器
变压器作用:
•提高传输距离、波形修复
•电气隔离、抗干扰、防雷
其实没有变压器两网卡之间也可以通信,只是这个距离会很短,距离越远衰减越大,加上变压器提高信号幅度通信距离得以提高,同样远端传递的信号幅度太低,经过变压器后得以放大,实现波形修复功能。
变压器使芯片端与外部隔离,抗干扰能力大大增强,而且对芯片增加了很大的保护作用
1.4. RJ45
RJ45是布线系统中信息插座(即通信引出端)连接器的一种,连接器由插头(接头、水晶头)和插座(模块)组成,插头有8个凹槽和8个触点。RJ是Registered Jack的缩写,意思是“注册的插座”。在FCC(美国联邦通信委员会标准和规章)中RJ是描述公用电信网络的接口,计算机网络的RJ45是标准8位模块化接口的俗称。
网线有8根4对双绞线,百兆以太网中只用到其中4根:1、2发送、3、6接收。
2. 典型案例
现在嵌入式SOC中,MAC常集成到SOC芯片内,如STM32F4、龙芯1B、i.MX287。下图是龙芯片1B芯片结构图,GMAC指的是千兆网媒体访问控制。
早些年的处理器内部集成MAC,代表有S3C2440,以太网解决方案是外接明显网卡芯片DM9000,下图是DM9000芯片结构图。内部集成MAC和PHY,S3C2440的外部地址总线(内存总线)留出一块区域为DM9000用,访问数据就如同读写内存一样。
下图是某宝PCIE网卡实物图,可以看出MAC和PHY集成到一起,右上角8脚芯片没有焊接,应该是电源转换芯片,网卡的电源直接从PCIE获取。
推荐阅读
【1】揪出元凶:linux定时任务crontab居然没执行 【2】管理多个交叉编译器,一个脚本搞定 【3】什么是runtime