自话路由那些设备(二)

这里开始了解,我们的网络设备到底是咋构成的和使用

首先当然是通过硬件的组成,以便更加清楚他是咋运作的。

写在最前面

网卡工作在osi的最后两层,物理层和数据链路层,物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。物理层的芯片称之为PHY。数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。以太网卡中数据链路层的芯片称之为MAC控制器。很多网卡的这两个部分是做到一起的。他们之间的关系是pci总线接mac总线,mac接phy,phy接网线(rj45口)(当然也不是直接接上的,还有一个变压装置)

一片网卡主要功能的实现就基本上是上面这些器件了。
其他的,还有一颗EEPROM芯片,通常是一颗93C46。里面记录了网卡芯片的供应商ID、子系统供应商ID、网卡的MAC地址、网卡的一些配置,如SMI总线上PHY的地址,BOOTROM的容量,是否启用BOOTROM引导系统等东西。

网卡的由哪些部分组成的?_百度知道

一、PHY 芯片的组成

当然还会涉及到各自的网卡(phy)芯片驱动,路由器还涉及到switch的芯片及驱动啥的。先就单单看看组成:

这个博客其实已经简单的连接和驱动框架都已经写了一遍了:

phy 驱动与 switch 驱动_想要去旅行-CSDN博客

那先说说 mac与phy的关系

嵌入式设备的switch 以及PHY 芯片调试和选型 (1)_睿峰的博客-CSDN博客

以下是摘自的上面的博客。

先了解几个概念:

MAC(介质访问控制),可以理解成数据链路层即可

PHY(物理性),简单理解成转成物理层的连接组件即可

控制接口(MDC/DMIO,I2C,SPI),数据接口(RGMII / GMII/MII) 

网卡: 可以理解成phy 和mac 组成的一个芯片,直接可以通过各种接口和cpu对接 

PHY:   单纯的物理层芯片,通常是和SOC 或是MCU对接,部分soc和mcu 都会集成mac 

switch : 多网口设备,内部结构就是mac+phy,主要功能是将数据在不同端口之间转发。也会留有数据接口以便和SOC 等设备对接。  

一般的几种组成的图是这样的:

完全拆分图:

                               

NIC(网卡) :

                                    

 单口PHY: 还有一种多口phy的应用,但是多数是应用在交换机上,这里就不再延伸:

                    

 switch (交换机)

                  

基本上我们的交换机或者路由器还有单网口的设备的硬件构造就如上面的这样子了。

另外还摘录下关于switch 以及PHY 芯片的选型,参考下面的链接:

嵌入式设备的switch 以及PHY 芯片调试和选型 (2)_睿峰的博客-CSDN博客

二、MAC与PHY的关系

参考到博客:

网卡介绍——MAC与PHY的关系分析_Biao-CSDN博客_mac phy

就上面说到的网口的结构,一般是通过cpu  mac phy三部分组成。DMA控制器一般是属于cpu一部分,在嵌入式中也就是soc的主控了。

1.通常的组成

对于cpu 、mac、phy三部分,并不一定都是独立的芯片,根据组合形式,可分为下列几种类型,也是上面的图有体现出来:

  1. CPU集成MAC与PHY;
  2. CPU集成MAC,PHY采用独立芯片;
  3. CPU不集成MAC与PHY,MAC与PHY采用集成芯片;

下面通过第二种类型的方案进行一个例子的说明:

下图是采用方案二的网口结构图.虚框表示CPU,MAC集成在CPU中.PHY芯片通过MII接口与CPU上的Mac连接.

在软件上对网口的操作通常分为下面几步:

  1. 为数据收发分配内存;
  2. 初始化MAC寄存器;
  3. 初始化PHY寄存器(通过MIIM);
  4. 启动收发; 

2.MII接口

MII接口是MAC与PHY连接的标准接口.因为各厂家采用了同样的接口,用户可以根据所需的性能、价格,采用不同型号,甚至不同公司的phy芯片.

需要发送的数据通过MII接口中的收发两组总线实现.而对PHY芯片寄存器的配置信息,则通过MII总的一组串口总线实现,即MIIM(MII Management).

3.DMA

收发数据总是间费时费力的事,尤其对于网络设备来说更是如此.CPU做这些事情显然不合适.既然是数据搬移, 最简单的办法当然是让DMA来做.毕竟专业的才是最好的

4. MAC

5. PHY

PHY芯片有一组寄存器用户保存配置,并更新状态.CPU不能直接访问这组寄存器,只能通过MAC上的MIIM寄存器组实现间接访问.同时PHY芯片负责完成MII总线的数据与Media Interface上数据的转发.该转发根据寄存器配置自动完成,不需要外接干预.

三、MAC和PHY的关系

摘自:

网卡介绍——MAC与PHY的关系分析_Biao-CSDN博客_mac phy

问:以太网MAC是什么?

MAC即Media Access Control,即媒体访问控制子层协议.该协议位于OSI七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。

在发送数据的时候,MAC协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,MAC协议首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息发送至LLC层.该层协议是以太网MAC由IEEE-802.3以太网标准定义.最新的MAC同时支持10Mbps和100Mbps两种速率.

以太网数据链路层其实包含MAC(介质访问控制)子层和LLC(逻辑链路控制)子层.一块以太网卡MAC芯片的作用不但要实现MAC子层和LLC子层的功能,还要提供符合规范的PCI界面以实现和主机的数据交换.

MAC从PCI总线收到IP数据包(或者其他网络层协议的数据包)后,将之拆分并重新打包成最大1518Byte,最小64Byte的帧.这个帧里面包括了目标MAC地址、自己的源MAC地址和数据包里面的协议类型(比如IP数据包的类型用80表示).最后还有一个DWORD(4Byte)的CRC码.

可是目标的MAC地址是哪里来的呢?这牵扯到一个ARP协议(介乎于网络层和数据链路层的一个协议).第一次传送某个目的IP地址的数据的时候,先会发出一个ARP包,其MAC的目标地址是广播地址,里面说到:”谁是xxx.xxx.xxx.xxx这个IP地址的主人?”因为是广播包,所有这个局域网的主机都收到了这个ARP请求.收到请求的主机将这个IP地址和自己的相比较,如果不相同就不予理会,如果相同就发出ARP响应包.这个IP地址的主机收到这个ARP请求包后回复的ARP响应里说到:”我是这个IP地址的主人”.这个包里面就包括了他的MAC地址.以后的给这个IP地址的帧的目标MAC地址就被确定了.(其它的协议如IPX/SPX也有相应的协议完成这些操作.)

IP地址和MAC地址之间的关联关系保存在主机系统里面,叫做ARP表,由驱动程序和操作系统完成.在Microsoft的系统里面可以用arp-a的命令查看ARP表.收到数据帧的时候也是一样,做完CRC以后,如果没有CRC效验错误,就把帧头去掉,把数据包拿出来通过标准的借口传递给驱动和上层的协议客栈,最终正确的达到我们的应用程序.

还有一些控制帧,例如流控帧也需要MAC直接识别并执行相应的行为.

以太网MAC芯片的一端接计算机PCI总线,另外一端就接到PHY芯片上,它们之间是通过MII接口链接的.

问:以太网PHY是什么?

PHY是物理接口收发器,它实现物理层.IEEE-802.3标准定义了以太网PHY.包括MII/GMII(介质独立接口)子层,PCS(物理编码子层),PMA(物理介质附加)子层,PMD(物理介质相关)子层,MDI子层.它符合IEEE-802.3k中用于10BaseT(第14条)和100BaseTX(第24条和第25条)的规范.

问:造成以太网MAC和PHY单片整合难度高的原因是什么?

答:PHY整合了大量模拟硬件,而MAC是典型的全数字器件.芯片面积及模拟/数字混合架构是为什么先将MAC集成进微控制器而将PHY留在片外的原因.更灵活、密度更高的芯片技术已经可以实现MAC和PHY的单芯片整合.

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值