当前位置: 首页 > news >正文

IMX6ULL的公板的以太网控制器(MAC)与物理层(PHY)芯片(KSZ8081RNB)连接的原理图分析(包含各引脚说明以及工作原理)

目录

  • 什么叫以太网?它与因特网有何区别?
  • 公板实现以太网的原理介绍(MII/RMII协议介绍)
  • 公板的原理图下载地址
  • 公板中IMX6ULL处理器与MAC(以太网控制器)有关的原理图
  • IMX6ULL处理器的MAC引脚说明
    • 1. **ENET1_TX_DATA0**
    • 2. **ENET1_TX_DATA1**
    • 3. **ENET1_TX_EN**
    • 4. **ENET1_TX_CLK**
    • 5. **ENET1_RX_DATA0**
    • 6. **ENET1_RX_DATA1**
    • 7. **ENET1_RX_ER**
    • 8. **ENET1_RX_EN**
    • 9. **NVCC_ENET**
  • 物理层芯片KSZ8081RNB的原理图(该物理层芯片是公板使用的)
  • 公板的IMX6ULL的以太网控制器1连接的物理层芯片KSZ8081RNB的各引脚介绍及连接情况说明
    • 情况分析与目标说明
    • KSZ8081RNB的数据手册(Data Sheet)
    • 各引脚介绍及相应的连接情况分析
      • 1. MDIO (Management Data Input/Output)
      • 2. MDC (Management Data Clock)
      • 3. RXD0/DUPLEX (Receive Data 0 / Duplex Mode)
        • at the de-assertion of rese 的意思(在复位信号解除有效时)
          • `Ipu/O`、`Ipd/O`、`Ipd/O`是什么意思?
      • 4. RXD1/PHYAD2 (Receive Data 1 / PHY Address 2)
        • PHY地址设置的详细介绍
        • 请注意DNP的含义
        • 公板以太网1对应的物理层芯片的物理地址
        • `Ipu/O`、`Ipd/O`、`Ipd/O`的意思是什么?
        • 公板以太网2对应的物理层芯片的物理地址
        • 公板设置的两个以太网的物理层芯片的物理地址真的有点2,刚好是反的
      • 5. PHYAD1 (PHY Address 1)
      • 6. PHYAD0 (PHY Address 0)【同时也是RX3】
      • 7. CRS_DV/CONFIG2 (Carrier Sense Data Valid / Configuration 2)
        • 对模式“MII、MII back-to-back、RMII”模式的配置和介绍
      • 8. RXER/ISO (Receive Error / Isolation)
      • 9. REF_CLK/B-CAST_OFF (Reference Clock / Broadcast Off)
      • 10. TXD0 (Transmit Data 0)
      • 11. TXD1 (Transmit Data 1)
      • 12. NC2 (No Connect 2)【实际上是TXD2】
      • 13. NC3 (No Connect 3)【实际上是TXD3】
      • 14. TXEN (Transmit Enable)
      • 15. NC1 (No Connect 1)【实际上是TXC引脚】
      • 16. INTRP/NAND_TREE (Interrupt / NAND Tree)
      • 17. RST (Reset)
      • 18. XI (Crystal Input)
      • 19. XO (Crystal Output)
  • 公板的IMX6ULL的以太网控制器2连接的物理层芯片KSZ8081RNB的各引脚介绍及连接情况说明
    • 情况说明
    • 整体原理图
      • 物理层芯片的原理图
      • MAC(以太网控制器)部分的原理图
  • 与以太网1不同的地方

什么叫以太网?它与因特网有何区别?

详情见 https://blog.csdn.net/wenhao_ir/article/details/145691255
从上面这篇博文我们可以看出,以太网的主体是MAC层和物理层,而我们这篇博文涉及到的就是MAC(以太网控制器)与物理层芯片的连接,所以本篇博文中称我们实现的东西为以太网。

公板实现以太网的原理介绍(MII/RMII协议介绍)

在IMX6ULL内部,实现了以太网控制器(MAC)。
题外话:MAC属于链路层中的一层,链路层分为两层,下层为MAC层(媒介访问控制层),上层为 LLC 层(逻辑链路控制层)。

物理层由芯片KSZ8081RNB实现的,它和IMX6ULL内部的以太网控制器(MAC)通过协议MII/RMII来进行对接。

MII(Media Independent Interface)和 RMII(Reduced Media Independent Interface)是两种标准接口,用于连接以太网物理层(PHY) 与 以太网控制器(MAC)。这两种接口规范主要用于以太网通信,它们定义了数据如何在物理层(PHY)和媒介访问控制层(MAC)之间传输。

MII和RMII的区别见链接:
https://www.cnblogs.com/fire909090/p/10654902.html

MII的原理示意图如下:
在这里插入图片描述
RMII的原理示意图如下:
在这里插入图片描述
MII与RMII最主要的区别如下:
①MII有4根TXD线,4根RXD线,而 RMII只有2根TXD线、2根RXD线。

采用MII接口,PYH的时钟频率要求25M,不需要与MAC层时钟一致。
采用RMII接口,PYH的时钟频率要求50M,需与MAC层时钟一致,通常从MAC层获取该时钟源。

从公板的原理图来看,采用的是RMII方式,以太网1的MAC原理图如下:
在这里插入图片描述
从原理图很明显看出公板用的是RMII方式,因为只有2根TXD线、2根RXD线,并且还向物理层芯片提供了时钟信号。
当然,从整个学习过程中,可以明显看出IMX6ULL是支持MII模式的,只是看你怎么配置物理层芯片并且怎么连接相关的引脚了,事实上IMX6ULL与MAC以太网控制器相关的引脚不只上面这些哦。

整个以太网的硬件框架示意图如下:
在这里插入图片描述

公板的原理图下载地址

之前在博文https://blog.csdn.net/wenhao_ir/article/details/145547974 中已经下载好了公板的原理图。
百度网盘下载链接:https://pan.baidu.com/s/1gy1OlDDNPDmKI8L_fHDxOQ?pwd=shtd

公板中IMX6ULL处理器与MAC(以太网控制器)有关的原理图

首先打开公板的核心板的原理图:
在这里插入图片描述
PDF文件 SPF-29364_A1.pdf 翻到第7页,就有IMX6ULL处理器的MAC(以太网控制器)的原理图,如下图所示:
在这里插入图片描述

IMX6ULL处理器的MAC引脚说明

现在来说明公板中IMX6ULL处理器的MAC(以太网控制器)的各引脚情况。

我们把上一个目录中获得的原理图:
在这里插入图片描述
再放大提取,可得到IMX6ULL处理器与网络相关的引脚,如下图所示:
在这里插入图片描述
从中我们可以提取如下17个引脚名:

ENET1_TX_DATA0
ENET1_TX_DATA1
ENET1_TX_EN
ENET1_TX_CLK
ENET1_RX_DATA0
ENET1_RX_DATA1
ENET1_RX_ER
ENET1_RX_ENENET2_TX_DATA0
ENET2_TX_DATA1
ENET2_TX_EN
ENET2_TX_CLK
ENET2_RX_DATA0
ENET2_RX_DATA1
ENET2_RX_ER
ENET2_RX_ENNVCC_ENET

从中可以看出,很明显,IMX6ULL支持两个网卡芯片的连接,可分别称为以太网1和以太网2,显然,以太网1和以太网2的引脚是一模一样的,没有区别,所以我们只需要了解下面这9个引脚的功能就可以了:

ENET1_TX_DATA0
ENET1_TX_DATA1
ENET1_TX_EN
ENET1_TX_CLK
ENET1_RX_DATA0
ENET1_RX_DATA1
ENET1_RX_ER
ENET1_RX_ENNVCC_ENET

以下是上面这9个引脚的功能说明:
在看这9个引脚的功能说明前,我要提醒的是,这些引脚实际上实现的是MAC层的功能,这些引脚与KSZ8081RNB提供的物理层相对接,具体的原理见本篇博文中前面对“原理框架”的说明。

1. ENET1_TX_DATA0

  • 功能: 这是以太网 1 的发送数据线的第0位,用于数据从处理器传输到以太网物理层(PHY)设备。

2. ENET1_TX_DATA1

  • 功能: 这是以太网 1 的发送数据线的第1位,类似于 ENET1_TX_DATA0,也是用于数据从处理器到 PHY 的传输。

3. ENET1_TX_EN

  • 功能: 这是以太网 1 的发送使能信号,用于启用发送功能。当该引脚为高电平时,启用数据发送。

4. ENET1_TX_CLK

  • 功能: 这是以太网 1 的传输时钟信号。该引脚用于时钟同步,确保数据传输的时序正确。PHY 和 MAC 之间的时钟同步是以太网通信的关键。
  • 注意:不要看到名字中有个TX就认为是传送数据时的时钟输出,实际上它也是接收数据时的时钟输出,IMX6ULL的官方文档:IMX6ULLRM.pdf的第892页有以下说明:
    在这里插入图片描述
    第4列表明信号ENET1_REF_CLK1可以路由至下面两个Pad(引脚)上:
    ①引脚ENET1_TX_CLK上
    ②引脚GPIO1_IO05上
    上面截图中ALT1和ALT4的含义见下面这篇博文:
    https://blog.csdn.net/wenhao_ir/article/details/145680966
    这说明其实这个引脚传送的信号为ENET1_REF_CLK1,而信号ENET1_REF_CLK1是以太网 1 的传输时钟信号,接收数据和传送数据时都由它向物理层芯片提供时钟信号。
    我们还可以利用工具i.MX Pins Tool v6来佐证我们的想法:
    在这里插入图片描述
    在这里插入图片描述

5. ENET1_RX_DATA0

  • 功能: 这是以太网 1 的接收数据线的第0位,用于接收来自物理层的传入数据,传输方向是从 PHY 到处理器。

6. ENET1_RX_DATA1

  • 功能: 这是以太网 1 的接收数据线 第1位,作用与 ENET1_RX_DATA0 相同,用于接收来自物理层的传入数据,传输方向是从 PHY 到处理器。

7. ENET1_RX_ER

  • 功能: 这是以太网 1 的接收错误信号。当接收到错误的帧或数据时,该信号会被拉高,告知处理器数据接收出现问题。

8. ENET1_RX_EN

  • 功能: 这是以太网 1 的接收使能信号,用于启用接收功能。当该信号为高电平时,启用接收数据功能。

9. NVCC_ENET

  • 功能: 这是以太网电源引脚,用于为以太网接口提供电源。这个引脚提供给以太网 PHY 设备供电,通常会连接到 3.3V 或其他适合的电源。

可见,以太网 1 的8个MAC层相关引脚的构成如下:
3个发送相关引脚、3个接收相关引脚、1个时钟、1个错误信号,刚好8个。

物理层芯片KSZ8081RNB的原理图(该物理层芯片是公板使用的)

打开公板的底板的原理图:
在这里插入图片描述
PDF文件SPF-28616_C2.pdf 翻到第10页和第11页,就有物理层芯片KSZ8081RNB的连接原理图,如下面两幅图所示:
在这里插入图片描述
在这里插入图片描述

公板的IMX6ULL的以太网控制器1连接的物理层芯片KSZ8081RNB的各引脚介绍及连接情况说明

情况分析与目标说明

我们这里的目标是:

了解物理层芯片KSZ8081RNB在实现以太网1的RMII协议时涉及到的相关引脚的详细情况。

我们把以太网1的物理层芯片的原理图放大提取如下:
在这里插入图片描述
我们重点关心的就是KSZ8081RNB与IMX6ULL相连接的引脚,即KSZ8081RNB原理图封装中左边的19个引脚,这19个引脚如下:

MDIO
MDC
RXD0/DUPLEX
RXD1/PHYAD2
PHYAD1
PHYAD0
CRS_DV/CONFIG2
RXER/ISO
REF_CLK/B-CAST_OFF
TXD0
TXD1
NC2
NC3
TXEN
NC1
INTRP/NAND_TREE
RST
XI
XO

KSZ8081RNB的数据手册(Data Sheet)

一个芯片的官方Data Sheet才是了解它的使用的最权威的资料,比chatgpt都权威,事实证明, chatgpt在不热门的芯片分析上错误是很多的,比如这篇博文中对芯片KSZ8081RNB的引脚分析,所以有必要亲自去看一看KSZ8081RNB的数据手册,这时候不能迷信chatgpt。
KSZ8081RNB的数据手册的在线浏览地址如下:
https://ww1.microchip.com/downloads/en/DeviceDoc/00002202C.pdf
百度网盘下载址如下:
https://pan.baidu.com/s/1RR44SHa2uWxQnjWs2ledTQ?pwd=mdhq

各引脚介绍及相应的连接情况分析

看以下内容前请注意:我们在原理介绍中已经分析出了这里连接MAC和物理层的协议是RMII,而不是MII,二者的主要区别在原理介绍中也给出了。

1. MDIO (Management Data Input/Output)

在这里插入图片描述
功能: 用于通过管理数据接口进行 PHY 配置和状态监控。MDIO 是一种串行数据线,通常通过MDC引脚传来的时钟信号进行同步,用于在主机和 PHY 之间传输控制信息。

通过引脚MDIO和后面马上讲到的引脚MDC,主设备可以读取和写入 PHY 芯片的寄存器。

不管在MII协议下还是RMII协议下,都需要它,并且它都作为MDIO口来使用。

它的网络标号为ENET_MDIO,相关的原理图如下:
底板中的相关原理图如下:
在这里插入图片描述
核心版中的相关原理图如下:
在这里插入图片描述
在这里插入图片描述
可见,以太网1的物理层芯片KSZ8081RNB的MDIO引脚连接的是GPIO1_IO06对应的引脚。

2. MDC (Management Data Clock)

在这里插入图片描述
功能: 用于同步 MDIO 信号的时钟信号。MDC 配合 MDIO 实现对 PHY 的管理访问和配置。通常,MDC 是一个时钟信号,主机用它来控制 MDIO 数据的读取和写入。不管在MII协议下还是RMII协议下,都需要它,并且它都作为MDIO口来使用。

通过引脚MDIO和引脚MDC,主设备可以读取和写入 PHY 芯片的寄存器。

它的网络标号为ENET_MDC,相关的原理图如下:
底板中的相关原理图如下:
在这里插入图片描述
核心版中的相关原理图如下:
在这里插入图片描述
在这里插入图片描述
可见,以太网1的物理层芯片KSZ8081RNB的MDC引脚连接的是GPIO1_IO07对应的引脚。

3. RXD0/DUPLEX (Receive Data 0 / Duplex Mode)

在这里插入图片描述
功能: 物理层芯片收到来自网线的数据后需要发给IMX6ULL的MAC(以太网控制器),RXD0就表示发送数据的第0位,注意,是发送数据哈,不是接收数据,这里的发送和接收是在MII/RMII框架的基础上来说的,而MII/RMII框架是把MAC(以太网控制器)作为主端的,即发送和接收是相对于MAC(以太网控制器)来说的。

另外,它还是一个复用引脚,其复用功能是用来设置芯片的工作模式是半双工模式还是全双工模式的。全双工模式可以同时发送和接收数据,半双工模式只能发送或接收数据。

其设置全双工模式和半双工模式的原理如下:
关键是理解下面这句话:

Config Mode: The pull-up/pull-down value is latched as DUPLEX at the de-assertion of reset.

at the de-assertion of rese 的意思(在复位信号解除有效时)

at the de-assertion of reset的意思为“在复位信号解除有效时”,在嵌入式系统中,复位信号通常是用来重新启动硬件,确保所有设备和电路处于已知的初始状态。单词asserted表示复位信号处于有效状态(例如,低电平表示复位有效),单词de-asserted表示复位信号解除有效,通常是指复位信号恢复为无效状态(例如,高电平表示复位结束)。
所以上面这句话的意思是在复位信号解除有效(即系统从复位状态恢复)时,RXD0/DUPLEX 引脚上的拉高或拉低(pull-up/pull-down)值会被捕获并被设置为 DUPLEX 模式。当其值为高电平时,表示用半双工模式,当引脚的值为低电平时,表示用全双工模式,如下面这个截图所示:
在这里插入图片描述

Ipu/OIpd/OIpd/O是什么意思?

这里要说明下Data sheet中的Ipu/O是啥意思?详情见博文 https://blog.csdn.net/wenhao_ir/article/details/145671635

相关的原理图如下:
在这里插入图片描述
可见,引脚 RXD0/DUPLEX通过下拉电阻连接到了地,即它的电平值为低电平状态,所以这里设置的模式为全双工模式。

该引脚的网络标号有两个,分别为ENET1_RXD0ENET1_DUPLEX,相关的原理图如下:
底板中的相关原理图如下:
在这里插入图片描述
在这里插入图片描述
核心版中的相关原理图如下:

在这里插入图片描述
可见,以太网1的物理层芯片KSZ8081RNB的RXD0/DUPLEX引脚作为RXD0时连接的是处理器MAC的ENET1_RX_DATA0引脚,作为DUPLEX时连接的是GND地。

4. RXD1/PHYAD2 (Receive Data 1 / PHY Address 2)

在这里插入图片描述
功能: 物理层芯片收到来自网线的数据后需要发给IMX6ULL的MAC(以太网控制器),RXD1就表示发送数据的第1位,注意是发送不是接收。 注意,是发送数据哈,不是接收数据,这里的发送和接收是在MII/RMII框架的基础上来说的,而MII/RMII框架是把MAC(以太网控制器)作为主端的,即发送和接收是相对于MAC(以太网控制器)来说的。

PHY地址设置的详细介绍

另外,它还是一个复用引脚,Data sheet中对其复用功能的描述如下:
在这里插入图片描述

PHYAD[2:0] is latched at de-assertion of reset and is configurable to any value
from 0 to 7 with PHY Address 1 as the default value.
PHY Address 0 is assigned by default as the broadcast PHY address, but it can
be assigned as a unique PHY address after pulling the
B-CAST_OFF strap-in pin high or writing a ‘1’ to Register 16h, Bit [9].
PHY Address bits [4:3] are set to 00 by default.

要了解这段说明首先要知道PHY 地址(PHY Address)的作用。PHY 地址是每个以太网物理层设备的唯一标识符,主要用于:
①确定并区分网络中不同的 PHY 设备。
②通过 MDIO 接口对不同的 PHY 设备进行配置、管理和监控。
③在多 PHY 配置的系统中,通过不同的 PHY 地址来确保与每个设备的独立通信。
假设一个嵌入式系统连接了多个 PHY 设备。每个 PHY 设备都有一个唯一的 PHY 地址(如 1, 2, 3 等),通过 MDIO 协议,系统可以通过不同的地址来访问这些设备,进行配置或监控。

然后再对上面这段话进行具体解释如下:

这段描述的意思是关于 KSZ8081RNB 芯片中的 PHY 地址(PHY Address) 配置以及如何设置不同的地址。我们可以从下面几个方面进行逐步解释:

  1. PHYAD[2:0] 和复位解除时的配置

    • PHYAD[2:0] 指的是 PHY 地址的最低 3 位,它们可以用于设置一个唯一的 PHY 地址
    • 在复位信号解除(de-assertion of reset)时,PHYAD[2:0] 的值会被 锁存(latched),并且可以根据需求配置成一个从 0 到 7 的任意值。默认情况下,PHY 地址 1 是预设值,也就是说,复位后 PHY 地址会默认为 1,但你可以修改它。
  2. PHY 地址 0 和广播地址

    • PHY 地址 0 是一个特殊的地址,通常被视为 广播地址(Broadcast Address)。在默认情况下,PHY 地址 0 是用来发送广播消息的。
    • 然而,你可以通过 拉高 B-CAST_OFF 引脚(即设置为高电平)或者通过向 寄存器 16h第 9 位 写入 1 来将 PHY 地址 0 设置为一个唯一的地址,而不再是广播地址。设置PHY 地址 0 为唯一地址后,假如某个物理层设备的PHY 地址为0,则它不再接收广播信息。
  3. PHY 地址位 [4:3] 默认值设置为 00

  • PHY 地址的第 4 和第 3 位(即 PHYAD[4:3])被设置为 00。这两位是固定的,不可修改。
  1. 如何设置 PHY 地址
  • PHY 地址 1默认的 PHY 地址。你可以通过配置 PHYAD[2:0] 来选择地址值,这些位可以设置为从 0 到 7 之间的任何值。
  • 如果你想将 PHY 地址 0 重新配置为一个唯一的地址而非广播地址,你可以通过以下两种方式之一:
    1. 拉高 B-CAST_OFF 引脚,即通过硬件控制。
    2. 或者,通过软件,向 寄存器 16h第 9 位 写入 1 来实现。

小结:

  • PHYAD[2:0] 用于配置 PHY 地址的 低 3 位,在复位解除时会锁存并默认设置为 地址 1,但是可以修改为从 0 到 7 的任意值。
  • PHY 地址 0 是一个特殊地址,通常用于广播,但可以通过配置使其变为唯一地址。
  • PHY 地址的第 4 和第 3 位 默认为 00,无法修改。

该引脚的网络标号为ENET1_RXD1ENET1_PHYAD2,相关的原理图如下:
底板中的相关原理图如下:
在这里插入图片描述
在这里插入图片描述

请注意DNP的含义

注意,在这个底层原理图中,DNP 是 “Do Not Populate” 的缩写,表示“不要焊接”或“不要安装,所以相当于原理图是下面这样的:
在这里插入图片描述

公板以太网1对应的物理层芯片的物理地址

所以:
ENET1_PHYAD0的电平为低电平;
ENET1_PHYAD1的电平为高电平;
ENET1_PHYAD2的电平为低电平;
所以对于以太网1的物理层芯片的地址为二进制的010,即PHY地址为2。

Ipu/OIpd/OIpd/O的意思是什么?

上面分别标注的紫色字Ipu/OIpd/OIpd/O是引脚的类型说明,不是实际的电平值说明,详情见 https://blog.csdn.net/wenhao_ir/article/details/145671635

公板以太网2对应的物理层芯片的物理地址

用同样的方法我们可以分析出以太网2的物理层芯片的地址为二进制的001,即PHY地址为1。以太网2的物理层芯片的相关部分原理图如下(我已把DNP部分抹除掉):
在这里插入图片描述

公板设置的两个以太网的物理层芯片的物理地址真的有点2,刚好是反的

分析到这里,不得不说这公板的设计有点2,它把IMX6ULL的以太网1的物理层的芯片的地址设为2,而把以太网2的物理层的芯片的地址设为1,你说这不是犯2吗?你就不能把顺序调一下么?即把以太网1的物理层的芯片的地址设为1,把以太网2的物理层的芯片的地址设为2,这样不好么?真的够2呀。

核心版中的相关原理图如下:
在这里插入图片描述
可见,引脚RXD1/PHYAD2当作为RXD1时,连接的是IMX6ULL的以太网控制器(MAC)的引脚ENET1_RX_DATA1,当作为PHYAD2时,是被下拉为低电平了的。

5. PHYAD1 (PHY Address 1)

在这里插入图片描述
功能: 主要是用于配置 PHY 地址的第二位。与 PHYAD0PHYAD2 一起,可以设置 PHY 芯片的唯一地址,以便在网络中正确识别。PHY 地址的详细介绍见对引脚 RXD1/PHYAD2的介绍。
之前在对引脚 RXD1/PHYAD2的介绍中,已经分析出它PHYAD1的电平为高电平,所以代表逻辑值1。
当然在MII协议下,它还用作发送数据的第2位,不过我们这里用的协议是RMII协议,所以用不到这个发送数据位,注意,是发送数据哈,不是接收数据,这里的发送和接收是在MII/RMII框架的基础上来说的,而MII/RMII框架是把MAC(以太网控制器)作为主端的,即发送和接收是相对于MAC(以太网控制器)来说的。

相关原理图如下:
在这里插入图片描述

在这里插入图片描述

6. PHYAD0 (PHY Address 0)【同时也是RX3】

在这里插入图片描述
用于配置 PHY 地址的最低位(第一位)。与 PHYAD1PHYAD2 一起,可以设置 PHY 芯片的唯一地址,以便在网络中正确识别。PHY 地址的详细介绍见对引脚 RXD1/PHYAD2的介绍。
之前在对引脚 RXD1/PHYAD2的介绍中,已经分析出它PHYAD2的电平为低电平,所以代表逻辑值0。
当然在MII协议下,它还用作发送数据的第3位,不过我们这里用的协议是RMII协议,所以用不到这个发送数据位,注意,是发送数据哈,不是接收数据,这里的发送和接收是在MII/RMII框架的基础上来说的,而MII/RMII框架是把MAC(以太网控制器)作为主端的,即发送和接收是相对于MAC(以太网控制器)来说的。

相关原理图如下:
在这里插入图片描述
在这里插入图片描述

7. CRS_DV/CONFIG2 (Carrier Sense Data Valid / Configuration 2)

在这里插入图片描述
在这里插入图片描述

功能: CRS(Carrier Sense)指示是否检测到载波信号,DV(Data Valid)表示接收的数据是否有效。该引脚通常指示网络链路的状态,并在有有效数据时拉高。
CRS_DV相关的原理图如下:
在这里插入图片描述
在这里插入图片描述
可见,公板的以太网1的物理层芯片KSZ8081RNB连接的是处理器的MAC的ENET1_RX_EN引脚,用来向MAC指示是否有有效数据。

其复用功能CONFIG2 的介绍如下。

对模式“MII、MII back-to-back、RMII”模式的配置和介绍

其复用功能CONFIG2 是一个配置引脚,从Data sheet中可以可以出它和CONFIG1、CONFIG0一起,用来设置物理层芯片的工作模式是处于MII协议下、还是MII back-to-back协议下、还是RMII协议下。

关于什么叫“MII back-to-back”模式,请参考我的另一篇博文:https://blog.csdn.net/wenhao_ir/article/details/145678597

默认情况下,三个引脚的电平值如下图所示:
在这里插入图片描述
上图中划红线的部分的pd代表引脚内部有下拉电阻,即三个引脚的电平值默认都为低电平。所以默认传输模式为MII模式。而我们这里需要的是RMII模式,所以肯定要通过外围电路来重新设置它们的值。从上面的Data sheet的截图来看,只需要设置为不是000和110就行。

接下来我们来看下原理图,看下公板配置的具体值是多少,相关原理图如下:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
把DNP部分去掉(DNP 是 “Do Not Populate” 的缩写,表示“不要焊接”或“不要安装),去掉后如下:
在这里插入图片描述
然后我们可以分别读出ENET1_CONFIG2、ENET1_CONFIG1、ENET1_CONFIG0的电平值分别为:0、0、1,所以模式的配置值为二进制的001,即十进制的1,结合Datasheet来看:
在这里插入图片描述
相当于使用的既不是MII模式,也不是MII back-to-back模式,那就是RMII模式了呗。

8. RXER/ISO (Receive Error / Isolation)

在这里插入图片描述
功能: RXER 是接收错误信号,当物理层芯片KSZ8081RNB接收到错误的帧时该引脚会变为高电平,进而通知处理器的MAC出现错误帧。
相关原理图如下:
在这里插入图片描述
在这里插入图片描述

其复用功能ISO 用于启用或禁用 PHY 的隔离功能。
隔离功能主要用于高噪声环境 或 需要电气保护 的应用,如工业控制、医疗设备、数据中心等。如果你的应用环境本身是一个相对 清洁 或 低干扰 的环境,那么启用隔离功能的必要性就不大。
启用 隔离功能 可能会导致 额外的延迟 或 功耗增加,因为隔离功能通常会涉及变压器或光耦等器件,这些器件可能影响信号传输的速度、信号质量或者功耗。如果目标系统没有电气噪声或高电压的干扰,启用隔离功能可能不会带来额外的好处,反而可能会浪费不必要的资源。因此,默认情况下不启用隔离功能有助于保持系统的 高效性能。
在这里插入图片描述
从Data sheet的截图来看,默认是没有启用的。
公板的相关原理图如下:
在这里插入图片描述
在这里插入图片描述
从原理图来,作为ISO 引脚时,公板对它的配置为低电平,所以没有启用隔离功能。

9. REF_CLK/B-CAST_OFF (Reference Clock / Broadcast Off)

在这里插入图片描述
REF_CLK 是PHY的参考时钟输出引脚,用于向别的器件提供MII/RMII框架下由MAC向物理层发送数据时的时钟信号。
注意并不是向MAC提供时钟信号,恰恰相反,物理层芯片KSZ8081RNB传输数据时的时钟信号还来自于MAC(以太网控制器),MAC(以太网控制器)发来的时钟信号通过KSZ8081RNB的引脚XI进入KSZ8081RNB,相关原理图如下:
在这里插入图片描述
在这里插入图片描述
注意:不要看到ENET1_TX_CLK中有个TX,就以为只是MAC发送数据时的时钟信号,实际上MAC接收数据时也是它提供时钟信号,具体的情况我前面已经解释了,在本博文中搜索ENET1_REF_CLK1即可。

还要注意:在KSZ8081RNB的Data sheet中REF_CLK/B-CAST_OFF的标签名称为RXC/B-CAST_OFF,而不是原理图中的REF_CLK/B-CAST_OFF

这个引脚作为REF_CLK时的相关原理图如下:
在这里插入图片描述
可见,这个引脚作为REF_CLK时,只连接了第1501号测试点(TP是test point的缩写),而并没有连接处理器芯片,也就是说它是向别的第三方器件提供一个MAC向物理层芯片传输数据时的时钟信号的副本。

引脚REF_CLK/B-CAST_OFF的复用功能为B-CAST_OFF,它是禁用PHY 地址0的广播属性,即将PHY 地址0变为设置为一个唯一的地址,这个在前面介绍PHY 地址已经详细说明了,详情搜索本博文拉高 B-CAST_OFF 引脚
当把引脚B-CAST_OFF拉高时,PHY 地址0就被设置为唯一地址属性了,而不是广播地址属性了,下面是KSZ8081RNB的Data sheet截图:
在这里插入图片描述
这个引脚作为B-CAST_OFF时的相关原理图如下:
在这里插入图片描述
在这里插入图片描述
可见,在公板中,它是被设置为了高电平,即将PHY 地址0设置为了唯一地址。

10. TXD0 (Transmit Data 0)

在这里插入图片描述
功能: TXD0 是物理层芯片KSZ8081RNB的第0位接收数据线,用于从MAC接收数据。
注意:这里是物理层芯片接收数据哈,不是发送数据,这里的发送和接收是在MII/RMII框架的基础上来说的,而MII/RMII框架是把MAC(以太网控制器)作为主端的,即发送和接收是相对于MAC(以太网控制器)来说的。

相关原理图如下:
在这里插入图片描述
从上面这幅原理图可以看出,还引出了一个测试点。
在这里插入图片描述
由此可见,以太网1的物理层芯片KSZ8081RNB的引脚TXD0连接的是处理器MAC的ENET1_TX_DATA0引脚。

11. TXD1 (Transmit Data 1)

在这里插入图片描述
功能: TXD1 是物理层芯片KSZ8081RNB的第1位接收数据线,用于从MAC接收数据。
注意:这里是物理层芯片接收数据哈,不是发送数据,这里的发送和接收是在MII/RMII框架的基础上来说的,而MII/RMII框架是把MAC(以太网控制器)作为主端的,即发送和接收是相对于MAC(以太网控制器)来说的。

相关原理图如下:
在这里插入图片描述
在这里插入图片描述
由此可见,以太网1的物理层芯片KSZ8081RNB的引脚TXD1连接的是处理器MAC的ENET1_TX_DATA1引脚。

12. NC2 (No Connect 2)【实际上是TXD2】

在这里插入图片描述
因为我们这里使用的是RMII模式,所以TX只有两位,所以物理层芯片接收只需要两根线,所以不需要TXD2,所以原理图中记为NC2(即未连接的引脚)。

相关原理图如下:
在这里插入图片描述

13. NC3 (No Connect 3)【实际上是TXD3】

在这里插入图片描述
因为我们这里使用的是RMII模式,所以TX只有两位,所以物理层芯片接收只需要两根线,所以不需要TXD3,所以原理图中记为NC3(即未连接的引脚)。

相关原理图如下:
在这里插入图片描述

14. TXEN (Transmit Enable)

在这里插入图片描述
功能: 该引脚是用于使能数据发送的控制信号。当该引脚为高电平时,允许数据从MAC向物理层芯片发送,此时物理层芯片知道我可以接收由MAC发来的数据了。
注意:这里是物理层芯片接收数据哈,不是发送数据,这里的发送和接收是在MII/RMII框架的基础上来说的,而MII/RMII框架是把MAC(以太网控制器)作为主端的,即发送和接收是相对于MAC(以太网控制器)来说的。

相关原理图如下:
在这里插入图片描述
在这里插入图片描述
可见,以太网1物理层芯片KSZ8081RNB的引脚TXEN是连到处理器的MAC的引脚ENET1_TX_EN上的。

15. NC1 (No Connect 1)【实际上是TXC引脚】

在这里插入图片描述
这个引脚在MII/RMII协议进行数据发送时(数据由MAC发到物理层芯片),对外输出数据发送时的时钟信号,以供第三方器件或模板使用,和前面的引脚REF_CLK(RXC)类似。

由于这里不需要用这个外送的时钟信号,所以原理图中没有对它进行连接,所以标注它为NC1 (No Connect 1)。

16. INTRP/NAND_TREE (Interrupt / NAND Tree)

在这里插入图片描述
功能:
INTRP 是中断信号输出,当 PHY 芯片发生特定事件(如链接变化、接收错误等)时,它会触发中断输出中断信号给处理器,相关原理图如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从上面的原理图中,我们可以看到以太网1的物理层芯片KSZ8081RNB的引脚INTRP连接的是IMX6ULL的SNVS_TAMPER5引脚。IMX6ULL的引脚 SNVS_TAMPER5 是一个与 SNVS (Secure Non-Volatile Storage) 相关的引脚,通常用于安全相关功能,如防篡改检测、硬件加密等。SNVS_TAMPER5 是SNVS子系统中的一个输入引脚,用于检测外部篡改信号或事件。这些篡改信号通常是通过硬件防护机制来监测设备是否遭受物理攻击或者不当操作。比如,设备如果受到攻击,可能会通过这个引脚触发篡改检测机制。
物理层芯片的引脚INTRP 产生的中断信号实际就是一种设备不正常的信号,所以可以连接到IMX6ULL的引脚 SNVS_TAMPER5 进行相应的处理。

物理层芯片KSZ8081RNB的INTRP/NAND_TREE 引脚的复用功能NAND_TREE 用来设置是否启用NAND Tree Mode
在这里插入图片描述
可见,当复位信号解除有效时,如果其处于低电平,代表启用NAND Tree Mode;当复位信号解除有效时,如果其处于高电平,则代表禁用NAND Tree Mode

NAND Tree Mode的介绍如下:
MAC 地址(媒体访问控制地址) 是网络设备唯一的标识符,在 以太网通信 中,每个设备需要一个唯一的 MAC 地址来与其他设备进行区分。在一些情况下,多个 PHY 设备可能需要共享一个统一的 MAC 地址空间,而 NAND Tree Mode 则通过特定的地址分配方式,使得网络中的多个设备能够根据需要识别和通信。

相关的原理图如下:
在这里插入图片描述
在这里插入图片描述
从原理图中,我们可以看出,ENET1_NAND_TREE是通过下拉电阻接地的,所以其值为低电平,所以公板的以太网1的物理层芯片是启用了NAND Tree Mode的。

17. RST (Reset)

在这里插入图片描述
功能: 用于对 PHY 芯片进行硬件复位。通过将该引脚拉低,PHY 可以被复位,恢复到初始状态。

相关原理图如下:
在这里插入图片描述
在这里插入图片描述
从这个原理图来看,ENET1_nRST信号是由处理器的相关信号控制74LV595PW芯片产生的,74LV595PW 是一款 8位串行输入/并行输出 移位寄存器(Shift Register)芯片。

18. XI (Crystal Input)

在这里插入图片描述
功能: XI 是物理层芯片的晶体振荡器的输入引脚,通常连接到外部晶体振荡器,用于提供时钟信号给 PHY 芯片。在这里是连接到处理器的MAC的引脚ENET1_TX_CLK,注意,MAC的引脚ENET1_TX_CLK并不只是提供发送数据时的时钟,也提供接收数据时的时钟哦,相关情况我已在上面的博文中详细描述,请在本博文中搜索关键词“佐证我们的想法”,进而跳转到相关内容。

相关的原理图如下:
在这里插入图片描述
在这里插入图片描述

19. XO (Crystal Output)

当采用MII接口,PYH的时钟频率要求25M,不需要与MAC层时钟一致,时钟信号不需要来自MAC层。此时就需要PYH有外部时钟源,此时XO引脚就作为连接外部时钟源的引脚,它的作用是作为晶体的反馈引脚。
在这里插入图片描述

上面这个Data sheet的截图解释了 KSZ8081RNB 芯片的 XO 引脚的功能和用途,具体说明如下:

  1. Crystal feedback for 25 MHz crystal

    • XO 引脚 用于接入 25 MHz 晶体振荡器反馈信号
    • 当使用 25 MHz 晶体 时,XO 引脚 作为晶体的反馈引脚,用来连接晶体的反馈端口,帮助实现稳定的 时钟振荡。该引脚与 晶体 的谐振行为相关,允许物理层芯片通过晶体提供稳定的时钟信号。
  2. This pin is a no connect if an oscillator or external clock source is used

  • 如果你使用外部的 振荡器(oscillator)时钟源(clock source) 来为芯片提供时钟信号,则 XO 引脚 不需要连接。
  • 在这种情况下,XO 引脚 将是一个 不连接(No Connect) 引脚,因为时钟信号不再通过晶体产生,而是通过外部振荡器或时钟源直接提供给芯片的 其他时钟引脚

小结

  • XO 引脚 的主要作用是连接 25 MHz 晶体振荡器 的反馈端来提供时钟信号。如果你不使用晶体,而是选择使用外部振荡器或时钟源来提供时钟信号,则 XO 引脚 需要保持 不连接,以避免干扰芯片的正常工作。

简而言之,XO 引脚用来与 晶体 一起工作,而如果使用外部 时钟源或振荡器,则无需使用此引脚。

公板的IMX6ULL的以太网控制器2连接的物理层芯片KSZ8081RNB的各引脚介绍及连接情况说明

情况说明

由于和以太网控制器1连接的物理层芯片KSZ8081RNB的连接差不多,所以这里就说二者不同的地方就是了。

整体原理图

物理层芯片的原理图

打开公板的底板的原理图:
在这里插入图片描述
PDF文件SPF-28616_C2.pdf 翻到第第11页,就有以太网2物理层芯片KSZ8081RNB的连接原理图,如下面两幅图所示:

在这里插入图片描述
在这里插入图片描述
上图中的DNP 是 “Do Not Populate” 的缩写,表示“不要焊接”或“不要安装,所以相当于原理图是下面这样的:
在这里插入图片描述

MAC(以太网控制器)部分的原理图

在这里插入图片描述

与以太网1不同的地方

只有一个地方不一样,就那是物理层芯片的PHY 地址不一样,这个我前面已经说过了,我当时还说设计者有点2,刚好把以太网1的MAC连接的物理层芯片的PHY 地址设为了2,而以太网2的MAC连接的物理层芯片的PHY 地址设为了1,详情请搜索关键词“不得不说这公板的设计有点2”。

相关文章:

IMX6ULL的公板的以太网控制器(MAC)与物理层(PHY)芯片(KSZ8081RNB)连接的原理图分析(包含各引脚说明以及工作原理)

目录 什么叫以太网?它与因特网有何区别?公板实现以太网的原理介绍(MII/RMII协议介绍)公板的原理图下载地址公板中IMX6ULL处理器与MAC(以太网控制器)有关的原理图IMX6ULL处理器的MAC引脚说明1. **ENET1_TX_DATA0**2. **ENET1_TX_DATA1**3. **ENET1_TX_EN*…...

一周学会Flask3 Python Web开发-request请求对象与url传参

锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili request请求对象封装了从客户端发来的请求报文信息,我们可以从中获取所有数据。 request对象包含的常用属性&…...

2024年国赛高教杯数学建模C题农作物的种植策略解题全过程文档及程序

2024年国赛高教杯数学建模 C题 农作物的种植策略 原题再现 根据乡村的实际情况,充分利用有限的耕地资源,因地制宜,发展有机种植产业,对乡村经济的可持续发展具有重要的现实意义。选择适宜的农作物,优化种植策略&…...

WEB前端将指定DOM生成图片并下载最佳实践(html2canvas)

前言: html2canvas 是一个 JavaScript 库,其主要作用是将 HTML 元素或其部分内容渲染为 Canvas 图像。通过它,开发者可以将网页中的任意 DOM 元素(包括文本、图片、样式等)转换为图片格式(如 PNG 或 JPEG&…...

C# 十六进制字符串转换为十进制

在 C# 中,将十六进制(Hexadecimal)字符串转换为十进制(Decimal)整数非常简单。以下是几种常见的方法: 方法 1: 使用 Convert.ToInt32 Convert.ToInt32 方法可以直接将十六进制字符串转换为十进制整数。 示…...

第4章 信息系统架构(三)

4.3 应用架构 应用架构的主要内容是规划出目标应用分层分域架构,根据业务架构规划目标应用域、应用组和目标应用组件,形成目标应用架构逻辑视图和系统视图。从功能视角出发,阐述应用组件各自及应用架构整体上,如何实现组织的高阶…...

Qt 保留小数点 固定长度 QString 格式化

QString的arg()函数格式化输出double类型数值,包括fieldWidth、fmt、prec和fillChar参数的作用。示例代码展示了如何设置精度和填充字符,以及字段宽度的影响。文中提到,当fieldWidth小于实际长度时,前面的填充不会被截断。此外&am…...

亲测可用,IDEA中使用满血版DeepSeek R1!支持深度思考!免费!免配置!

作者:程序员 Hollis 之前介绍过在IDEA中使用DeepSeek的方案,但是很多人表示还是用的不够爽,比如用CodeChat的方案,只支持V3版本,不支持带推理的R1。想要配置R1的话有特别的麻烦。 那么,今天,给…...

AI训练中的常用指令

以下是一些常用于深度学习训练的 Linux 指令,可以帮助你高效管理和执行训练任务: 文件管理 查看当前目录内容:ls进入目录:cd 路径/到/目录创建新目录:mkdir 新目录名称删除文件或目录: 删除文件&#xff…...

汽车同轴供电(PoC)电感器市场报告:未来几年年复合增长率CAGR为14.3%

汽车同轴供电(PoC)系统旨在通过同轴电缆传输电力和数据。 该技术适用于各种汽车应用,如摄像头系统、传感器和其他需要通过单根电缆传输电力和数据的车载设备。 汽车 PoC 系统中的电感器有多种用途,包括能量存储:电感器…...

C++中间件DDS介绍

C DDS 库简介 DDS(Data Distribution Service) 是一种用于实时分布式系统通信的中间件标准,由 OMG(Object Management Group) 提出。它是一种发布/订阅(Publish/Subscribe)模式的数据通信框架&…...

强化学习笔记

强化学习的总体目标:寻找最优策略。 关键名词 智能体(Agent) 状态(State):智能体相对于环境的状态 s ∈ S s∈S s∈S 状态空间(State space):把所有状态放在一起&…...

【个人记录】openEuler安装K3S并配置为GPU节点

前言 国内网络环境特殊,在线安装比较麻烦,K3S采用离线安装方式进行部署。 安装整体思路是: 安装GPU驱动安装CUDA工具安装nvidia容器运行时安装K3S设置K3S使用GPU 基础环境 采用All In One方式(其实只有一张GPU卡)部…...

SpringAI系列 - ToolCalling篇(二) - 如何设置应用侧工具参数ToolContext(有坑)

目录 一、引言二、集成ToolContext示例步骤1: 在`@Tool`标注的工具方法中集成`ToolConext`参数步骤2:`ChatClient`运行时动态设置`ToolContext`参数三、填坑一、引言 在使用AI大模型的工具调用机制时,工具参数都是由大模型解析用户输入上下文获取的,由大模型提供参数给本地…...

Linux系统中常见的词GNU是什么意思?

GNU 是 “GNU’s Not Unix” 的递归缩写,它是一个自由软件项目,旨在创建一个完全自由的操作系统。这个名字反映了GNU项目的核心理念:它试图创建一个类Unix的系统,但不是Unix本身。 GNU 项目由 理查德斯托曼(Richard S…...

Revit API:对元素过滤的三点思考

一、为什么要对元素进行过滤? 提高效率:Revit模型可能包含成千上万的元素,直接对所有元素进行操作会非常耗时。通过过滤,可以只选择需要处理的元素,从而提高代码的执行效率。 精准控制:通过过滤&#xff0…...

计算机毕业设计Python农产品推荐系统 农产品爬虫 农产品可视化 农产品大数据(源码+LW文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

计算机网络之TCP的可靠传输

上一篇内容可能比较多,显得比较杂乱,这一篇简单总结一下TCP是靠什么实现可靠传输的吧。 校验和 TCP是端到端的传输,由发送方计算校验和,接收方进行验证,目的是为了验证TCP首部和数据在发送过程中没有任何改动&#x…...

linux 驱动编程配置(minis3c2440)

1.介绍 1. 启动过程:启动u-boot------>>启动linux内核----->>挂载根文件系统 2. uboot是一个裸机程序,是一个bootloader,用于启动linux系统以及系统初始化 ubootloader主要完成了哪些任务:1. 初始化异常向量表&a…...

数据库基础1

MySQL在C语言中的操作步骤 C语言操作MySQL的基本流程如下: 引入MySQL头文件初始化MySQL连接连接到MySQL服务器执行SQL语句获取查询结果处理查询结果释放结果集和连接 数据库中有哪些约束规则 1.主键约束 promary key 具有唯一且非空 2.外键约束 foreign key 3.非…...

Redis文档总结

文档:https://redis.com.cn/topics/why-use-redis.html 1.我们为什么一定要用 Redis 呢? 速度快,完全基于内存,使用 C 语言实现,网络层使用 epoll 解决高并发问题,单线程模型避免了不必要的上下文切换及竞争…...

论文笔记(七十二)Reward Centering(二)

Reward Centering(二) 文章概括摘要2 简单的奖励中心 文章概括 引用: article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan, Yi and Tomar, Manan and Sutton, Richard S},journal{arXiv preprint arXiv:2405.0…...

25年2月通信基础知识补充:多普勒频移与多普勒扩展、3GPP TDL信道模型

看文献过程中不断发现有太多不懂的基础知识,故长期更新这类blog不断补充在这过程中学到的知识。由于这些内容与我的研究方向并不一定强相关,故记录不会很深入请见谅。 【通信基础知识补充7】25年2月通信基础知识补充1 一、多普勒频移与多普勒扩展傻傻分不…...

ASUS/华硕无畏16 X1605VA 原厂Win11 22H2系统 工厂文件 带ASUS Recovery恢复

华硕工厂文件恢复系统 ,安装结束后带隐藏分区,带一键恢复,以及机器所有的驱动和软件。 支持型号:X1605VA 系统版本:Windows 11 22H2 文件下载:点击下载 文件格式:工厂文件 安装教程&#x…...

DeepSeek赋能智慧文旅:新一代解决方案,重构文旅发展的底层逻辑

DeepSeek作为一款前沿的人工智能大模型,凭借其强大的多模态理解、知识推理和内容生成能力,正在重构文旅产业的发展逻辑,推动行业从传统的经验驱动向数据驱动、从人力密集型向智能协同型转变。 一、智能服务重构:打造全域感知的智…...

自学FOC系列分享--SVPWM和clark 逆变换及代码实战

自学FOC系列分享--SVPWM和clark 逆变换 1 说在前面2 回顾clarke 和 park的变换和逆变换2.1 概述2.2 公式说明 3 SVPWM是如何写的3.1 简单说明3.2 重要对比 4、代码实战4.1 代码构成说明4.2 全部代码4.3 测试代码4.4 测试结果4.5 结果分析 总结 1 说在前面 如前一篇文章所述的系…...

LeetCode-524. 通过删除字母匹配到字典里最长单词

1、题目描述: 给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以通过删除 s 中的某些字符得到。 如果答案不止一个,返回长度最长且字母序最小的字符串。如果答案不存在&#x…...

浅谈网络 | 容器网络之Cilium

目录 Cilium介绍Cilium是什么Cilium 主要功能特性为什么用Cilium? 功能概述组件概况BPF 与 XDPeBPF (Extended Berkeley Packet Filter)XDP (eXpress Data Path) Cilium介绍 Cilium是什么 Cilium 是一个开源网络和安全项目,专为 Kubernetes、Docker 和…...

armv7l

在 **ARMv7l** 中,最后的字符是字母 **“l”**(小写字母 “L”),而不是数字 **“1”**。 --- ### 1. **ARMv7l 的含义** - **ARMv7**:指的是 **ARM 架构的第 7 代版本**,是一种广泛应用于嵌入式系统&…...

从零开始构建一个小型字符级语言模型的完整详细教程(基于Transformer架构)

最近特别火的DeepSeek,是一个大语言模型,那一个模型是如何构建起来的呢?DeepSeek基于Transformer架构,接下来我们也从零开始构建一个基于Transformer架构的小型语言模型,并说明构建的详细步骤及内部组件说明。我们以构建一个字符级语言模型(Char-Level LM)为例,目标是通…...

期权帮|股指期货交割日为啥会大跌?

锦鲤三三每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 股指期货交割日为啥会大跌? 股指期货交割日股市可能会大跌,主要原因有以下几点: 1.交割日时多空双方需要平仓或转仓,若多头急于平仓…...

B树和B+树

1. B树 1.1 定义 B树是一种多路平衡查找树,具有以下性质: 每个节点最多包含 m 个子节点(m 阶 B树)。 根节点至少有两个子节点(除非它是叶子节点)。 每个内部节点(非根和非叶子节点&#xff…...

分布式事务核心理论:CAP与BASE

一、引言:分布式系统的挑战 在互联网应用中,随着业务规模的扩大,单机数据库已无法满足高并发和海量数据存储需求。分布式系统将数据拆分到不同节点,但随之带来了数据一致性的难题。CAP与BASE理论为分布式事务提供了重要的设计指导…...

【UCB CS 61B SP24】Lecture 4 - Lists 2: SLLists学习笔记

本文内容为重写上一节课中的单链表,将其重构成更易于用户使用的链表,实现多种操作链表的方法。 1. 重构单链表SLList 在上一节课中编写的 IntList 类是裸露递归的形式,在 Java 中一般不会这么定义,因为这样用户可能需要非常了解…...

记录一个ES分词器不生效的解决过程

问题背景 商城项目,其中商品查询检索使用的是ES, 但存在某些商品查询不到的问题 例如:某商品名包含AA_BBB这样的关键词,但是搜索"AA"不能查询到该商品,但是将商品名修改为AA BBB后就能查询到了. 怀疑是分词的问题,但看代码,在创建ES索引时在对应字段上也定义了分词器…...

Jeecg+vue3去掉JInput组件默认模糊查询的配置方式

遇见的问题:input查询带**号 情况1、使用schemas配置的表单项 添加type""属性,默认type为like,去掉模糊则配置为空 文档链接 jeecg文档说明JInput 2、直接调用组件则在属性上直接添加type""属性...

Could not initialize class io.netty.util.internal.Platfor...

异常信息: Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class io.netty.util.internal.PlatformDependent0 Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.reflect.InaccessibleObjec…...

什么是业务流程分类框架

业务流程分类框架是一个用于组织和系统化地分类业务流程的结构化方法。它旨在帮助企业理解、管理、分析和改进其运营流程。 可以把它想象成一个图书馆的图书分类系统,帮助快速找到和理解不同类型的书籍。对于业务流程来说,分类框架帮助快速了解不同类型的…...

向量的点乘的几何意义

源自AI 向量的点乘(Dot Product)在几何和图形学中有重要的意义。它不仅是数学运算,还可以用来描述向量之间的关系。以下是点乘的几何意义及其应用: 1. 点乘的定义 对于两个向量 a 和 b,它们的点乘定义为:…...

达梦数据库应用开发_JDBC接口介绍_yxy

达梦数据库应用开发_JDBC接口介绍 1 JDBC是什么?2 JDBC主要类或接口介绍2.1 建立与 DM 数据库的连接2.2 转接发送 SQL 语句到数据库2.3 处理并返回语句执行结果 3 JDBC基本使用3.1 前期准备3.2 增删改查代码示例3.3 绑定变量操作示例3.4 大字段操作示例 1 JDBC是什么…...

在ubuntu上用Python的openpyxl模块操作Excel的案例

文章目录 安装模块读取Excel数据库取数匹配数据和更新Excel数据 在Ubuntu系统的环境下基本职能借助Python的openpyxl模块实现对Excel数据的操作。 安装模块 本次需要用到的模块需要提前安装(如果没有的话) pip3 install openpyxl pip3 install pymysql在操作前,需…...

RabbitMQ介绍以及基本使用

文章目录 一、什么是消息队列? 二、消息队列的作用(优点) 1、解耦 2、流量削峰 3、异步 4、顺序性 三、RabbitMQ基本结构 四、RabbitMQ队列模式 1、简单队列模式 2、工作队列模式 3、发布/订阅模式 4、路由模式 5、主题模式 6、…...

搭建 Hadoop 3.3.6 伪分布式

搭建 Hadoop 3.3.6 伪分布式 IP 192.168.157.132 初始化操作 更改yum源 # 1_1.安装Wget yum install wget# 1_2.备份CentOS-Base.repo文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak# 2.下载阿里yum源配置 wget -O /etc/yum.repos.d/Cen…...

进程控制(靠原语实现)

什么是进程控制? 进程控制的主要功能是:对系统中的所有进程实施有效管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。 简化理解:进程控制就是要实现进程状态转换。 知识一览: 如何实现进程控制&#…...

linux5-多任务--进程fork()

一.多任务:让系统具备同时处理多个任务的能力 1.如何实现多任务 1.1进程:操作系统上正在运行的程序,需要消耗内存和CPU 1.1.1 进程的生存周期:创建、调度、消亡 1.1.1.1进程的创建:每个进程被创建时,操作…...

【蓝桥】二分法

1、简介 1.1 定义: 通过将问题的搜索范围一分为二,迭代地缩小搜索范围,直到找到目标或确定目标不存在 1.2 适用: 有序数据集合,且每次迭代可以将搜索范围缩小一半 1.3 本质: 枚举:利用数据结构…...

linux查看程序占用的本地端口

ss是Socket Statistics的缩写,用来替代旧的netstat工具,功能更强大,执行更快。它用于查看系统的网络连接情况,包括TCP、UDP等协议的信息。 一. 命令解析: sudo ss -tulwnpss (Socket Statistics):替代 ne…...

统计函数运行时间的python脚本

这是一个统计函数运行时间的实用脚本,其中用到了函数的嵌套、链式传输参数,以及修饰器。 import time# 定义一个装饰器timer,用于计算被装饰函数的运行时间 def timer(func):print("执行了timer")def wrapper(*args, **kwargs):st…...

百度搜索和文心智能体接入DeepSeek满血版——AI搜索的新纪元

在当今数字化时代,搜索引擎作为互联网信息获取的核心工具,正经历着前所未有的变革。据悉,2025年2月16日,百度搜索和文心智能体平台宣布全面接入DeepSeek和文心大模型的最新深度搜索功能,搜索用户可免费使用DeepSeek和文…...

快速入门Springboot+vue——MybatisPlus快速上手

学习自哔哩哔哩上的“刘老师教编程”,具体学习的网站为:6.MybatisPlus快速上手_哔哩哔哩_bilibili,以下是看课后做的笔记,仅供参考。 第一节 ORM介绍 ORM对象关系映射,为了解决面向对象与关系数据库存在的互补匹配现象…...