本文目录
- 一、常见的网络协议
- 二、网络模型
- 二、网络数据的封装和解封装
- 二、抓包工具wireshark
- 三、传输介质
- 四、RJ-45接口
- 1. 百兆网口
- 2. 千兆网口
- 五、PHY芯片
- 1. 网络变压器的作用
- 2. PHY芯片类型判断
- 六、MAC控制器
- 七、MAC控制器与PHY芯片连接方式
- 1. MII接口方式(百兆网)
- 2. RMII接口方式(百兆网)
- 3. GMII接口方式(千兆网)
- 4. RGMII接口方式(千兆网)
- 八、MDIO接口:实现MAC控制器对PHY芯片寄存器的读写
- 九、典型的以太网实现方式
对于网络知识不太熟悉的同学可以查看这篇文章:计算机网络知识点详情总结。
一、常见的网络协议
- TCP、UDP协议:详情查看-TCP、UDP系统编程。
- DNS协议:是互联网中用于将域名(如www.example.com)转换为对应的IP地址的分布式命名系统。它充当了互联网上域名和IP地址之间的映射关系的服务。例如:在ping 相应的IP地址时,可以ping通,但是在ping域名时,ping不通,这是因为DNS配置错误导致的。
- DHCP协议:用于自动分配和管理TCP/IP网络上的设备的IP地址和其他网络配置信息。即用于自动分配IP地址、子网掩码、默认网关和DNS服务器地址等网络参数给局域网内的客户端设备。
- FTP协议:File Transfer Protocol,文件传输协议是一种用于在网络上传输文件的协议。它工作在应用层,使用TCP传输服务,确保文件传输的可靠性和完整性。
- HTTP协议:HyperText Transfer Protocol,超文本传输协议是一种用于分布式、协作式、超媒体信息系统的应用层协议。它是万维网(WWW)的数据通信的基础。用于上网、访问网页等的协议。
- HTTPS协议:HyperText Transfer ProtocolSecure,超文本传输安全协议是HTTP 的安全版本,它通过 SSL/TLS协议对数据进行加密,确保数据传输的安全性。应用于网上银行、网上支付等。
二、网络模型
网络模型:OSI七层网络模型、TCP/IP四层网络模型。详情查看计算机网络知识点总结第一章节内容。
二、网络数据的封装和解封装
OSI的七层模型是在TCP/IP的四层网络模型广泛应用后才出模型标准,但是在实际使用中我们通常使用的是TCP/IP四层网络模型。下图为数据的封装操作,解封装为此的逆操作。
二、抓包工具wireshark
三、传输介质
常见的传输介质包括:网线、光纤、电缆。作为嵌入式领域,我们最常使用的就是网线,这里我们主要讲解网线。
-
网线种类
(1) 1类线和2类线
1类线和2类线主要用于早期的电话通信系统,并不支持数据传输或现代意义上的网络应用。随着网络技术的发展,这两类线已经被淘汰,不再用于网络布线。
(2)3 类线
3 类线是早期的以太网电缆标准之一,主要用于传输 10Mbps的传统以太网。它的标称频率为16MHz,最大传输距离为100米,最常见的按口为RJ-45。然而,由于传输速率的限制,3 类线在现代网络环境中已很少使用。
(3)4类线
4 类线的传输频率为20MHz,主要用于语音传输和最高传输速率16Mbps的数据传输。虽然它比3类线有所提升,但在实际应用中,由于性价比不高,4类线并未得到广泛应用,很快就被更先进的5类线所取代。
(4)5类线
5类线是计算机网络中常用的双绞式电缆,支持最高100Mbps的数据传输速率。它的标称频率为100MHz,最大传输距离也为100米。5 类线被广泛应用于以太网、宽带接入工程中,是构建现代网络基础设施的重要组成部分。
(5)超5类线
超5类线是5类线的增强版,主要用于千兆以太网(1000Mbps),同时向下兼容百兆以太网。与5类线相比,超5类线在传输性能上有所提升,特别是在衰减与串扰比值(ACR)以及信噪比方面表现更优。超5类线也是当前网络布线中常用的线缆类型之一。开发板默认送的都是超5类线。
(6)6 类线
6 类线是一种用于千兆以太网(1000Mbps)的传输介质,采用了 250MHz的带宽,具有更高的传输速度和更低的信号衰减率。与之前的线缆相比,6类线在内部结构、材质和外部保护等方面都有所改进,以确保更高的传输质量和稳定性。6类线广泛应用于家庭、企业和数据中心等场合。 -
网线线序标准
网线是由8根(4组)双绞线组成,分别是:橙白色+橙色,绿白色+绿色,蓝白色+蓝色,棕白色+棕色,每俩根线缠绕在一起。
网线的线序标准决定了这8根导线的连接顺序。常见的线序标准有T568A 和T568B。T568A和T568B的线序标准如下,使用相应的网线线序接到水晶头相应的1号、2号…等位置。默认一般都是T568B 标准。
●由于线序标准的不同,又将网线分为于交叉线和直连线。
交叉线:一端是 568A 标准,另一端是 568B 标准的双绞线。常用于电脑和电脑间的连接。
直连线:两端都是 568A 标准,或者两端都是 568B标准。常用于电脑和交换机间的连接。
生活中最常用的是 568B直连线。现代交换机路由器的PHY芯片,大都带有自动识别转换功能,无论是交叉线还是直连线,均可自动转换连通。
四、RJ-45接口
RJ-45 插头,也被称为 “水晶头”,是一种只能沿固定方向插入并具备防脱落功能的塑料接头。RJ-45 是网络接口的标准规范,而 RJ-11 则常用于电话线连接。由于 RJ-45 插头外表晶莹剔透,形似水晶,因此得名 “水晶头”。
对于百兆网口和千兆网口的区别在于:芯片的不同,如下所示。
1. 百兆网口
在 10M 和 100M 网络中,只使用了四根线,其中两根用于发送,两根用于接收。即1、2、3、6号引脚。
上图中由于芯片框图设计的收发引脚处已经包含了网络变压器,所以不需要在原理图中的收发引脚中添加变压器,如果框图中没有,则需要在原理图中添加变压器。且在芯片的框图中并没有13、14号引脚,这是因为该引脚为铁皮外壳上的引脚,用于接地。
以下是引脚编号和功能说明:
引脚编号 | 名字功能 | 说明 |
---|---|---|
1 | TD+ | 发信号+ |
2 | TD - | 发信号- |
3 | RD+ | 收信号+ |
4 | NC | 空脚 |
5 | NC | 空脚 |
6 | RD- | 收信号- |
7 | NC | 空脚 |
8 | NC | 空脚 |
2. 千兆网口
在千兆网络接口中,使用了八根线,其中四根用于发送,四根用于接收。
上图中由于芯片框图设计的收发引脚处已经包含了网络变压器,所以不需要在原理图中的收发引脚中添加变压器,如果框图中没有,则需要在原理图中添加变压器。且在芯片的框图中并没有15、16号引脚,这是因为该引脚为铁皮外壳上的引脚,用于接地。
以下是引脚编号和功能说明:
引脚编号 | 名字功能 | 说明 |
---|---|---|
2 | MDI 0+(TX_D1+) | 发信号+ |
3 | MDI 0- (TX_D1-) | 发信号- |
4 | MDI 1+(RX_D2+) | 收信号+ |
5 | MDI 2+(BI_D3+) | 双向信号传输 |
6 | MDI 2-(BI_D3-) | 双向信号传输 |
7 | MDI 1-(RX_D2-) | 收信号- |
8 | MDI 3+(BI_D4+) | 双向信号传输 |
9 | MDI 3- (BI_D4-) | 双向信号传输 |
五、PHY芯片
PHY 芯片是网络设备中负责物理层(Physical Layer)功能的芯片,常见于以太网设备中。PHY 芯片的主要作用是将数据在数字信号与模拟信号之间转换,使得设备能够通过物理介质(如双绞线、光纤等)进行通信。
在PHY芯片和网络接口间要连接网络变压器。如果网口芯片框图中包含网络变压器,则不用在原理图中添加变压器。
1. 网络变压器的作用
- 消除共模干扰,增强信号。
- 电气隔离。
2. PHY芯片类型判断
其使用类型可以根据网络变压器中心抽头连接方式来判断。
(1)电压型:通常中心抽头会接到一个稳定的电压参考(例如地),通过这种方式控制信号的电平。这样可以减少电磁干扰,并且维持信号完整性。电压型接地方式的中心抽头通常是直接接地的。
(2)电流型:指的是通过中心抽头接收来自 PHY 芯片的电流反馈,而不是直接接地。PHY(物理层)芯片的信号可能通过变压器传送给中心抽头,因此需要处理从 PHY 过来的信号电流。电流型接地方式通常用于更复杂的电路设计中,特别是需要考虑到 PHY 和 RJ45 之间的电流传输和隔离的场合。
六、MAC控制器
MAC 控制器(Media Access Control Controller,介质访问控制器)是网络通信系统中的一个关键组件,负责管理设备与网络介质之间的通信,特别是在数据链路层中的介质访问控制子层(MAC 层)。MAC 控制器的主要任务是确保数据帧能够在网络介质上正确传输和接收。
MAC 控制器的主要功能包括:
- 帧的封装和拆封:
(1)封装:将来自更高层(如网络层、传输层)的数据打包成以太网帧,并在帧中添加必要的控制信息,如源地址和目标地址。
(2)拆封:从接收到的以太网帧中提取数据并传递给上层协议处理,同时检查帧的完整性。 - 地址解析和过滤:
MAC 控制器使用设备的 MAC 地址来判断数据帧的目的地是否是本设备。如果帧的目标 MAC 地址与设备的地址匹配,数据将被接收,否则丢弃或转发。 - 控制数据流:
MAC 控制器通过协议(如 IEEE 802.3x 的流量控制)实现对网络流量的控制。当设备忙于处理数据时,可以通过控制帧通知对端设备暂停发送数据,防止缓冲区溢出。 - 半双工与全双工模式:
(1)半双工:设备在同一时间只能发送或接收数据,MAC 控制器负责管理发送和接收的顺序,并处理冲突(collision)问题,使用 CSMA/CD 协议(载波侦听多路访问/冲突检测)来解决冲突。
(2)全双工:设备可以同时进行数据发送和接收,MAC 控制器在这种模式下无需处理冲突问题,通常性能更好。 - 错误检测与校验:
MAC 控制器会对发送和接收的帧进行校验,如生成和检查 CRC(循环冗余校验),确保数据传输过程中没有发生错误。如果检测到错误,控制器可能会请求重新发送数据。 - 优先级与调度:
MAC 控制器可能会实现一些高级功能,如优先级调度,保证高优先级的流量(如语音、视频)得到及时处理,以满足实时性要求。 - 与 PHY 的接口:
MAC 控制器与 PHY(物理层)紧密合作,通过标准接口(如 MII、RMII、RGMII 等)传输处理后的帧,PHY 则负责将这些帧转换为适合通过物理介质(如电缆或光纤)传输的信号。
总结来说,MAC 控制器是数据链路层的核心,负责管理网络设备如何访问共享的传输介质,确保设备之间能够高效、可靠地进行数据传输。它与物理层(PHY)配合,完成整个数据链路的传输任务。
七、MAC控制器与PHY芯片连接方式
MII是英文(Medium Independent Interface)的缩写,翻译成中文是“介质独立接口”,该接口一般应用于以太网硬件平台的MAC层和PHY层之间,MII接口的类型有很多,常用的有MII、RMII 、GMII、SGMII等;下简单介绍如下。
1. MII接口方式(百兆网)
●TX_CLK(Transmit Clock):发送时钟信号,由 PHY 产生并提供给 MAC,用来同步发送数据。在 100Mbps 以太网时,时钟频率为 25 MHz;在 10Mbps 时,时钟频率为 2.5 MHz。
●TX_EN(Transmit Enable):发送使能信号,用于指示当前的发送数据有效。高电平表示有有效数据正在传输。
●TX_ER(Transmit Error):发送错误信号,高电平有效,用于指示发送过程中出现错误。
●TXD[3:0](Transmit Data):发送数据线,一共有 4 根,用于并行传输 4 位数据位。这些信号由 MAC 提供给 PHY。
●RXD[3:0](Receive Data):接收数据线,和发送数据线类似,也是一组 4 根并行信号线,用于接收从 PHY 传来的数据。
●RX_CLK(Receive Clock):接收时钟信号,由 PHY 产生并提供给 MAC,用于同步接收数据。在 100Mbps 以太网时,时钟频率为 25MHz;在 10Mbps 时,时钟频率为 2.5 MHz。
●RX_ER(Receive Error):接收错误信号,用于指示接收过程中出现错误。
●RX_DV(Receive Data Valid):接收数据有效信号,表示接收的数据是有效的。当有数据被成功接收到时,该信号为高电平。
●CRS(Carrier Sense):载波侦听信号,用于指示 PHY 检测到网络中有信号正在传输。
●COL(Collision Detect):冲突检测信号,当 PHY 检测到网络中发生数据包冲突时,该信号会变高。
2. RMII接口方式(百兆网)
RMII是MII的简化板,连线数量由MII的16根减少为7根,极大简化了接口的复杂性。
●TX_EN(Transmit Enable):发送使能信号,高电平表示发送的数据有效。这个信号用于指示当前正在传输有效数据。
●TXD[1:0](Transmit Data):发送数据线(2 根),用于并行传输 2 位数据。相比 MII 的 4 根数据线,RMII 只需要 2 根数据线,节省了引脚资源。
●RXD[1:0](Receive Data):接收数据线(2 根),和发送数据线类似,用于并行接收 2 位数据。相比 MII,数据线数量减少了一半。
●CRS_DV(Carrier Sense / Data Valid):这是载波侦听和接收数据有效的组合信号线。载波侦听:表示物理层正在检测到信号。接收数据有效:当接收到有效数据时,该信号为高电平,表示数据有效。
●REF_CLK(Reference Clock):参考时钟信号,频率为 50 MHz,由外部时钟源提供。这个时钟用于同步数据的收发操作。与 MII 不同,RMII 不再分别使用不同的发送和接收时钟,发送和接收都使用同一个参考时钟。
3. GMII接口方式(千兆网)
GMII(Gigabit Media Independent Interface) 是 MII 的扩展版本,用于支持千兆以太网(1000 Mbps)的通信。GMII 提供了更高的带宽,并通过增加数据线和更高的时钟频率来实现千兆速率,同时保持与 MII 类似的接口结构。
注意:10M/100M/1000M 网的时钟分别是 2.5M,25M 和125M。
●TX_ER(Transmit Error):发送错误信号,用于指示发送过程中出现错误。当发生发送错误时,该信号为高电平。
●TX_EN(Transmit Enable):发送使能信号,指示当前正在发送有效数据。高电平表示数据有效。
RX_CLK(Receive Clock):接收时钟信号,频率为 125 MHz,由 PHY 产生并提供给 MAC,用于同步接收数据。与 MII 的 RX_CLK 类似,只是时钟频率更高。
●TXD[7:0](Transmit Data):发送数据线(8 根),用于并行传输 8 位数据。与 MII 和 RMII 不同,GMII 通过 8 根并行数据线传输更多数据,以支持更高的传输速率。
●RX_ER(Receive Error):接收错误信号,指示接收过程中发生了错误。
●RX_DV(Receive Data Valid):接收数据有效信号,指示接收到的数据信号是有效的。高电平表示有效数据正在传输。
●RXD[7:0](Receive Data):接收数据线(8 根),用于并行接收 8 位数据,与发送数据线相同,接收数据线也从 4 根增加到 8 根,以适应更高的带宽需求。
●TX_CLK(Transmit Clock):发送时钟信号,频率为 125 MHz,用于同步数据传输。与 MII 不同,GMII 的时钟频率大大提升,以支持千兆以太网的高数据传输速率。
●CRS(Carrier Sense):载波侦听信号,指示网络中有活动信号。当网络上有信号传输时,PHY 会激活该信号。
●COL(Collision Detect):冲突检测信号,表示在半双工模式下发生了冲突。当两个设备同时发送数据时,GMII 会检测到冲突,并激活该信号。
4. RGMII接口方式(千兆网)
RGMII(Reduced Gigabit Media Independent Interface) 是 GMII(Gigabit Media Independent Interface)的简化版本,设计目的是在保持千兆以太网性能的前提下,减少物理接口的引脚数量。RGMII 使用更少的信号线,并通过在时钟的上升沿和下降沿传输数据来提高效率。
注意:10M/100M/1000M 网的时钟分别是 2.5M,25M 和125M。
●RX_CLK(Receive Clock):接收时钟信号,与发送时钟类似,频率为 125 MHz,用于同步接收数据,数据同样在上升沿和下降沿进行传输。
●RX_CTL(Receive Control):接收控制信号,这个信号与 GMII 中的 RX_DV(接收数据有效) 和 RX_ER(接收错误) 信号相结合,用来标识接收数据的有效性和错误。
●RXD[3:0](Receive Data):接收数据线(4 根),用于并行接收 4 位数据。与 TXD 相同,RXD 也通过时钟的上升沿和下降沿同时传输数据。
●TX_CLK(Transmit Clock):发送时钟信号,频率为 125 MHz,与 GMII 相同,但在 RGMII 中,数据在线的上升沿和下降沿均传输数据,因此通过更少的数据线实现同样的传输速率。
●TX_CTL(Transmit Control):发送控制信号,这个信号与 GMII 中的 TX_EN(发送使能) 和 TX_ER(发送错误) 信号相结合,用来指示发送数据的有效性和错误。
●TXD[3:0](Transmit Data):发送数据线(4 根),用于并行传输 4 位数据。RGMII 在时钟的上升沿和下降沿同时传输数据,因此通过 4 条数据线可以实现与 GMII 8 条数据线相同的传输速率。
八、MDIO接口:实现MAC控制器对PHY芯片寄存器的读写
- 概念
Management Data Input/Output 的缩写,管理数据输入输出接口。与网口数据MDI0 按口是通信无关,主要是实现 MAC控制器对十十心片的管理与控制,比如设置 PHY寄存器。比如通过对 PHY 芯片寄存器的控制来配置网口的工作速率,或者通过读取 PHY 芯片的状态寄存器来获取网口的状态等。
MDIO 接口是同步串行半双工接口。由MDC和MDIO 俩跟信号线组成。即MDIO:数据线(双向传输)、MDC:时钟线(单项传输)。 - PHY芯片地址
- 命令操作PHY寄存器
九、典型的以太网实现方式
按照集成度和设计方案,确实可以将其细分为三种主要方式。
-
方式 1:CPU 内部集成了 MAC 和 PHY。(不常用,技术复杂)
(1)优点:系统设计更加紧凑,减少了外部芯片的数量,功耗和成本较低。
(2)缺点:实现难度较高,需要强大的集成设计能力,通常不容易达到最佳的网络性能或支持更复杂的网络标准。此外,这种方式缺乏灵活性,难以升级或更换单独的 PHY。
(3)应用场景:较少使用,通常出现在一些高度集成的嵌入式设备中,或者网络性能需求较低的场景。 -
方式 2:CPU 内部集成 MAC,PHY 采用独立芯片。(主流方式)
(1)优点:这是当前主流方案,因为它在保持 CPU 整体集成度的同时,保留了对不同 PHY 芯片的选择和灵活性。可以根据具体应用需求选择不同的 PHY 芯片以支持不同的网络速率(如 10/100/1000 Mbps)和网络接口(如 RJ45 或光纤)。
(2)缺点:尽管相比于全集成方案,它的设计复杂度稍高,但这种方式已经足够成熟,并且在可维护性、扩展性和性能上表现更好。
(3)应用场景:广泛应用于路由器、交换机、服务器等网络设备,满足大多数网络需求。
-
方式 3:CPU 外部独立 MAC 和 PHY(不常用,成本较高)
(1)优点:独立的 MAC 和 PHY 芯片带来最大的灵活性,便于选择更高性能或专用的芯片来优化网络性能。此外,这种设计更容易升级,便于网络设备制造商根据不同需求配置不同的 MAC 和 PHY。
(2)缺点:设计复杂度更高,需要额外的芯片、接口和电路设计,功耗和成本也会相应增加。
(3)应用场景:多见于高性能网络设备中,如高端交换机、企业级路由器或数据中心设备,尤其是在对网络速度、稳定性要求极高的场景下。
总结来说,方式 2 是当前的主流方案,因为它在性能、设计复杂度、灵活性和成本之间取得了平衡。而方式 1 和方式 3 则分别适用于对集成度要求很高的嵌入式场景或对性能要求极高的高端网络设备。