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

光纤接口、GTX高速收发器基础知识学习、光口眼图测试--FPGA学习笔记28

                                                                                                                        ----素材来源原子哥

一、光纤接口简介

        光纤接口是用来连接光纤线缆的物理接口,简称为光口。其原理是利用了光从光密介质进入光疏介质从而发生了全反射。通常有 FC、 SC、 ST、 LC、 D4、 DIN、 MU、 MT 等等各种形式接口。

(1) SC 型光纤接口:

        这是一种由日本 NTT 公司开发的光纤连接器。其外壳呈矩形,采用的插针与耦合套筒的结构尺寸和FC 型完全相同。其中插针的端面多采用 PC 或 APC 型研磨方式;紧固方式是采用插拔销闩式,不需旋转。此类连接器价格低廉,插拔操作方便,介入损耗波动小,抗压强度较高,安装密度高。 ST 和 SC 接口是光纤连接器的两种类型,对于 10Base-F 连接来说,连接器通常是 ST 类型的,对于 100Base-FX 来说,连接器大部分情况下为 SC 类型的。 ST 连接器的芯外露, SC 连接器的芯在接头里面。

         

(2) FC 型光纤接口:

        这种连接器最早是由日本 NTT 研制。 FC 是 Ferrule Connector 的缩写,表明其外部加强方式是采用金属套,紧固方式为螺丝扣。最早, FC 类型的连接器采用的陶瓷插针的对接。此类连接器结构简单,操作方便,制作容易,但光纤端面对微尘较为敏感,且容易产生菲涅尔反射,提高回波损耗性能较为困难。后来,对该类型连接器做了改进,采用对接端面呈球面的插针(PC),而外部结构没有改变,使得插入损耗和回波损耗性能有了较大幅度的提高。

(3)LC型光纤接口:

        LC 型连接器是著名 Bell (贝尔)研究所研究开发出来的,采用操作方便的模块化插孔(RJ) 闩锁机理制成。其所采用的插针和套筒的尺寸是普通 SC、 FC 等所用尺寸的一半,为 1.25mm。这样可以提高光纤配线架中光纤连接器的密度。目前,在单模 SFF 方面, LC 类型的连接器实际已经占据了主导地位,在多模方面的应用也增长迅速。

(4) ST 型连接器:

·        ST 连接器,是一种快速连接头,由中国广东深圳市科腾光电技术有限公司开发研制。广泛应用于光配线架(ODF)、 光纤通信设备等。光纤适配器用于光纤活动连接器之间的接续、耦合。根据光纤活动连接器的连接头选择型号。利用良好烧结技术确保质量优异和高强度、高稳定度。

二、高速收发GTX

        在设计光口、 PCIE、 SATA、 XAUI 等高速接口的时候必须使用 FPGA 专用的高速收发器接口才行,否则无法满足高速率通信的性能要求。
        高速收发器以 Xilinx 为例,在 7 系列中有 GTP、 GTX、 GTH、 GTZ(通信速率依次增大)而在 Zynq UltraScale+ MPSoC 系列中高速收发器又分为 GTR、 GTX、 GTY(通信速率依次增大),这些高速收发器在支持的最大通信速率上不相同,适用的场景也不相同。

        7 系列中的 GTX 收发器是节能型收发器,支持从 500mb /s 到 12. 5 Gb/s 的线路速率。一般应用于 PCIE、SFF、 SFP+、 XAUI、 SATA 等高速接口设计。

GTX整体框图如下:

        从上图中可以看到,在 FPGA 器件内部一共拥有 16 对高速收发器 GTX,每一对收发器组成一个通道Channel,每 4 个 Channel 组成一个 Quad,一个 Quad 其实就代表一个 BANK。在 Z100 ZYNQ 中一共拥有 4个 BANK 即 4 个 Quad 的高速收发器。

1、每个Quad结构:

        GTX 接口每 4 对组成一个 Quad(一个 BANK),在这个 Quad 当中每一对高速收发器称之为 Channel,每个 Channel 都拥有一个自己私有的时钟锁相环 CPLL,用来给 GTX 接口提供参考时钟。除了 CPLL 之外,在这个 Quad 当中还有一个共享时钟锁相环 QPLL。 QPLL 相比较于 CPLL 最大的区别就是支持的时钟速率不相同, CPLL 提供的时钟工作范围是 1.6Ghz~3.3Ghz, 支持的最高线速度为 6.6Gb/s,超过这个速率就要选择QPLLQPLL的工作频率在低波段模式时为5.93 GHz到8.0GHz,在高波段的工作频率为9.8GHz~10GHz。在这个 Quad 外围大家还看到了 IBUFDS,在 GTX 通信过程中,外围物理引脚 PIN 都是差分信号,所以需要经过 BUFDS 对信号进行差分和单端的相互转换。

2、时钟拓扑

        要想正确的使用 GTX 首先就要了解它整个时钟的拓扑结构。对于一个 Quad 来说每个 CPLL 都属于单独的 Channel 模块,它只能给自己的私有通道提供参考时钟。而 QPLL 是共享时钟锁相环属于 Common 模块,可以给整个 Quad 的所有通道提供参考时钟。那么 CPLL 和 QPLL 它们自己的源时钟又来自哪里呢?如下图所示:

        无论是 QPLL 还是 CPLL 它的源时钟都有 7 路来源,具体说明如下表所示

两路来自外部时钟引脚对,经过 IBUFDS 后转换成单端时钟信号就可以接入 CPLL;还有四路来自上下 Quad,当 FPGA 中不止一个 Quad 的时候当前 Quad中的 GTX 参考时钟可以来自上面的两个 Quad 也可以来自下面的两个 Quad,注意最多只能跨两个 Quad,最后一路时钟来源是内部逻辑产生的时钟,只能用作内部测试

在本节实验中我们选择外部时钟源作为 QPLL 和 CPLL 的参考时钟,结构如下

从上图中可以看到外部晶振提供参考时钟经过 IBUFDS 后转换成单端时钟进入高速收发器的 Quad,从而作为 QPLL 和 CPLL 的参考时钟。

3、时钟使用方式

        时钟的使用模式,主要分为两种使用模式,一种是 Single 外部输入模式另一种是 Multiple 外部输入模式,如下图所示。很容易就能理解 Single 和 Multiple 这两种模式的区别,主要就是外部输入时钟的数量区别。
 

                                                        Single 外部输入模式

                                                         Multiple 外部输入模式

4、Channel 的结构

从上图中可以看到单个 Channel 由发送接口和接收接口组成,每个接口又分为两部分结构,这两部分结构分别是 PMA 和 PCS。 PMA 和 PCS 内部又由许多功能模块构成。

5、GTX数据回环

        GTX 的数据回环可以分为近端回环和远端回环,近端回环中又分为近端 PCS 回环和近端 PMA 回环,远端回环也一样分为远端 PCS回环和远端 PMA 回环。回环的数据一般是使用内部的模式生成器产生 PRBS 数据然后经过回环路径后到达模式检查器去检查接收到的数据是否和生成的数据一致,从而判断通信路径的通信性能。

        从上图中可以看到路径 1 就是近端 PCS 回环,也就是单个收发器内部的 PCS 之间回环,这种回环几乎不使用,因为单纯在单个收发器的内部逻辑功能块之间回环并不能说明通道的性能;路径 2 近端 PMA 回环是单个通道之间 TX 和 RX 的数据回环可以验证单个通道接收和发送的通信性能;路径 3 和 4 是远端的 PMA与 PCS 回环,可以验证对向的 GTX 性能。
        关于 GTX 收发器总结一下就是 GTX 的接收和发送通道都由 PMA 和 PCS 两部分组成,其中 PMA 的主要功能就是进行串并转换和模拟电路的处理,而 PCS 由诸多逻辑功能块组成,可以对并行数字电路的数据进行各种编码处理,相位偏移处理,跨时钟域数据缓冲处理等等。

三、IBERT简介

        IBERT 是 Xilinx 官方为高速收发器提供的一个性能演示平台 IP,通过这个 IP 可以配置 GTX 收发器的时钟拓扑,通道速率,逻辑宽度等属性。并可以调用 GTX 内置的 PRBS 模块,用来产生伪随机序列码和检查伪随机序列码,一般称这个 PRBS 模块为模式生成器和模式检查器。

        IBERT 设计中启用的每个 GTX 收发器都有一个模式生成器和一个模式检查器。模式生成器通过发射器发送数据。模式检查器通过接收器接收数据,并根据内部生成的模式对其进行检查。 IBERT 提供 PRBS 7 位,PRBS 15 位, PRBS 23 位, PRBS 31 位, Clk 2x(101010…)和 Clk10x(11111111110000000000…)模式。 使用模式检查器逻辑,将传入的数据与内部生成的模式进行比较。当检查器接收到连续 5 个周期的数据且没有错误时, 就认为链接成功。链路信号链接成功后, 如果后续通信中检查器连续接收到 5 个周期的数据错误,则认为链路信号链接失败。内部计数器累积接收到的字数和错误数。

        除此之外, IBERT 还与 JTAG 通信相关联,在整个运行过程中可以在 Vivado 界面观测到整个 IBERT 的运行状态,还可以通过 DRP 接口动态修改 GTX 的配置属性。

        上表当中只摘取了 IBERT 的部分引脚,对于 IBERT 的参考时钟来说它不仅可以来自外部的专用时钟输入引脚,也可以来自南北专用的时钟路由,在本节实验中选择的是外部专用时钟引脚提供参考时钟,所以剩下的南北时钟路由接口全部接地,对于这些南北时钟路由接口就没有放入上表中了。

四、硬件设计

        TX_disable 在使用的时候需要将这个使能打开,所以代码中要给这个引脚低电平。

        4 对 GTX 收发器所在的 BANK(本节实验只使用了 BANK109)了,大家可以看到两路外部时钟引脚分别从差分引脚对 AD10、 AD9 和 AF10、 AF9 进入 BANK,其中 CLK0 对应的是光口的外部输入时钟,频率为 156.25Mhz。这个时钟是由外部晶振产生的如下图所示。

五、设计目标

        利用官方提供的 IBERT IP 去验证板载光口以及外接光模块的通信性能,具体的验证方式是在 Vivado 软件中观察光口眼图,通过眼图来确认通信的质量。

六、程序设计

Component Name:给当前 IP 命名。
Number of Protocols:协议数量选择,最高支持自定义三种协议通信。
LineRate(Gbps):当前协议的通道速率,GTX 支持的速率范围是 500mb /s到12. 5Gb/s。DataWidth:默认 32 位。
Refclk(MHz):板载的外部专用时钟输入是 156.25MHz,所以这里选择 156.25MHz。
Quad Count:当前芯片型号有四个 Quad,这里选择 1。
PLL:这里的通信速率已经达到 10Gbps 所以推荐选择 QPLL。

GTX Location:选择 Quad 位置,本节实验选择 Quad_109。
Protocol Selected:协议选择,本节实验在“Number of Protocols”选项中选的是 1 个协议,所以这里默认就一个。
Refclk Selection:参考时钟选择,在硬件设计部分已经介绍过 CLK0 是光口收发器的外部输入时钟,所以这里选择 MGTREFCLK0_109。

Source: IBERT 的系统时钟来源可以选择外部输入,也可以选择 Quad 时钟,本节实验选择 Quad 时钟。

生成官方示例

添加使能信号

七、下载验证

待光模块到了之后更新

相关文章:

光纤接口、GTX高速收发器基础知识学习、光口眼图测试--FPGA学习笔记28

----素材来源原子哥 一、光纤接口简介 光纤接口是用来连接光纤线缆的物理接口,简称为光口。其原理是利用了光从光密介质进入光疏介质从而发生了全反射。通常有 FC、 SC、 ST、 LC、 D4、 DIN、 MU、 MT 等等各种形式接口。 (1) SC 型光纤接…...

【k8s】k8s部署Argo CD

1、创建 Argo CD 命名空间: 先创建一个专用的命名空间 argocd 用于部署 Argo CD。 kubectl create namespace argocd 2、安装 Argo CD: 使用 kubectl 从 Argo CD 官方 GitHub 仓库安装它。运行以下命令来安装所有的 Argo CD 组件: kubectl a…...

PHP礼品兑换系统小程序

🎁 礼品兑换系统:革新企业礼品管理,专属神器来袭! 💻 一款专为追求高效与个性化的现代企业量身打造的礼品兑换系统,它基于强大的ThinkPHP框架与前沿的Uniapp技术栈深度融合,不仅完美适配礼品卡…...

【SSH端口转发:实现安全的远程端口映射】

SSH端口转发:实现安全的远程端口映射 在网络应用开发和运维过程中,我们经常需要进行端口转发来实现各种网络访问需求。今天我要分享一个使用SSH进行端口转发的实用脚本,并详细讲解其工作原理。 脚本内容 免密 ssh-copy-id -p 20080 rootxx…...

2024年第十五届蓝桥杯青少组国赛(c++)真题—快速分解质因数

快速分解质因数 完整题目和在线测评可点击下方链接前往: 快速分解质因数_C_少儿编程题库学习中心-嗨信奥https://www.hixinao.com/tiku/cpp/show-3781.htmlhttps://www.hixinao.com/tiku/cpp/show-3781.html 若如其他赛事真题可自行前往题库中心查找,题…...

为什么你的 Qt 应用程序会出现 xcb 插件错误

有朋友咨询为什么他们的 Qt 应用程序在统信 UOS ARM 版本下运行,提示如下错误: qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in "" This application failed to start because no Qt platform plugin could be i…...

ANSYS HFSS 中的相控天线阵列仿真方法

概述 相控天线阵列系统广泛使用,从国防雷达应用到商业 5G 应用。设计这些天线阵列涉及复杂的数学运算,需要全波仿真。Ansys HFSS 全场 3D 电磁仿真软件可以在合理的时间内以较低的计算成本仿真复杂的相控阵天线系统,同时考虑复杂激励、环境&…...

【记录】Jenkins版本及JDK关系介绍的官网地址

Redhat Jenkins Packages...

66,【6】buuctf web [HarekazeCTF2019]Avatar Uploader 1

进入靶场 习惯性输入admin 还想用桌面上的123.png 发现不行 看看给的源码 <?php // 关闭错误报告&#xff0c;可能会隐藏一些错误信息&#xff0c;在开发阶段可考虑开启&#xff08;例如 error_reporting(E_ALL)&#xff09; error_reporting(0); // 引入配置文件&#x…...

MECD+: 视频推理中事件级因果图推理--VLM长视频因果推理

论文链接&#xff1a;https://arxiv.org/pdf/2501.07227v1 1. 摘要及主要贡献点 摘要&#xff1a; 视频因果推理旨在从因果角度对视频内容进行高层次的理解。然而&#xff0c;目前的研究存在局限性&#xff0c;主要表现为以问答范式执行&#xff0c;关注包含孤立事件和基本因…...

pycharm+pyside6+desinger实现查询汉字笔顺GIF动图

一、引言 这学期儿子语文期末考试有一道这样的题目&#xff1a; 这道题答案是B&#xff0c;儿子做错了选了C。我告诉他“车字旁”和“车”的笔顺是不一样的&#xff0c;因为二者有一个笔画是不一样的&#xff0c;“车字旁”下边那笔是“提”&#xff0c;而“车”字是“横”&am…...

拟合算法 (matlab工具箱)

拟合算法&#xff1a; 1线性最小二乘法拟合 使用matlab进行求解 拟合优度&#xff1a;R^2 拟合优度的matlab代码&#xff1a; 2,Matlab工具箱的教学 一些函数: 拟合算法&#xff1a; 插值算法中&#xff0c;得到的多项式f(x)要经过所有样本点。但是如果样本点太多&#…...

联想电脑怎么用u盘装系统_联想电脑用u盘装win10系统教程

联想电脑怎么重装系统&#xff1f;在当今科技发展迅猛的时代&#xff0c;联想电脑已经成为了人们生活中不可或缺的一部分。然而&#xff0c;随着时间的推移&#xff0c;我们可能会遇到一些问题&#xff0c;例如系统崩溃或者需要更换操作系统。这时&#xff0c;使用U盘来重新安装…...

WPF2-在xaml为对象的属性赋值

1. AttributeValue方式 1.1. 简单属性赋值1.2. 对象属性赋值 2. 属性标签的方式给属性赋值3. 标签扩展 (Markup Extensions) 3.1. StaticResource3.2. Binding 3.2.1. 普通 Binding3.2.2. ElementName Binding3.2.3. RelativeSource Binding3.2.4. StaticResource Binding (带参…...

什么是报文的大端和小端,有没有什么记忆口诀?

在计算机科学中&#xff0c;**大端&#xff08;Big-Endian&#xff09;和小端&#xff08;Little-Endian&#xff09;**是两种不同的字节序&#xff08;即多字节数据在内存中的存储顺序&#xff09;。理解这两种字节序对于网络通信、文件格式解析以及跨平台编程等非常重要。 1…...

【2024 博客之星评选】请继续保持Passion

我尝试复盘自己2024年走的路&#xff0c;希望能给诸君一些借鉴。 文章目录 回头望感想与收获成长与教训今年计划感恩一些体己话 回头望 回望我的2024年&#xff0c;年初拿高绩效&#xff0c;但感觉逐渐被公司一点点剥离出中心&#xff1b;年中一直在学习防患于未然&#xff1b…...

网络通信---MCU移植LWIP

使用的MCU型号为STM32F429IGT6&#xff0c;PHY为LAN7820A 目标是通过MCU的ETH给LWIP提供输入输出从而实现基本的Ping应答 OK废话不多说我们直接开始 下载源码 LWIP包源码&#xff1a;lwip源码 -在这里下载 ST官方支持的ETH包&#xff1a;ST-ETH支持包 这里下载 创建工程 …...

Redis源码-redisObject

解释 redis中&#xff0c;所有的数据类型最终都转换成了redisObject&#xff0c;该结构体的定义&#xff0c;在文件server.h中。 参数说明 参数名说明unsigned type:4对象对应的数据类型unsigned encoding:4对象的编码方式unsigned lru:LRU_BITSLRU算法清空对象&#xff0c…...

YOLOv10-1.1部分代码阅读笔记-tuner.py

tuner.py ultralytics\engine\tuner.py 目录 tuner.py 1.所需的库和模块 2.class Tuner: 1.所需的库和模块 # Ultralytics YOLO &#x1f680;, AGPL-3.0 license# 此模块提供用于对象检测、实例分割、图像分类、姿势估计和多对象跟踪的 Ultralytics YOLO 模型的超参数调…...

【数据结构】二分查找

&#x1f6a9; WRITE IN FRONT &#x1f6a9; &#x1f50e; 介绍&#xff1a;"謓泽"正在路上朝着"攻城狮"方向"前进四" &#x1f50e;&#x1f3c5; 荣誉&#xff1a;2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…...

iOS-支付相关

支付宝支付 #import <AlipaySDK/AlipaySDK.h> //orderStrAliPay为服务端传的订单信息 //fromScheme为应用配置的schemeUrl标识&#xff0c;用户支付包支付成功后跳转会本应用内 //callback回调需要在- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url 中调…...

ubuntu16.04 VSCode下cmake+clang+lldb调试c++

VSCode下cmakeclanglldb调试c Ubuntu16.04 安装OpenCV4.5.4 文章目录 VSCode下cmakeclanglldb调试c1.安装clangclangdcmake2、打开VSCode&#xff0c;安装扩展插件3、编译4、Debug4.1 创建launch.json。4.2 配置setting.json 5. vscode安装配置clang-format插件5.1 Linux系统安…...

学Python的人…

学Python的人… 一、Python能干什么&#xff1f; 1.爬虫&#xff1a;前几年&#xff0c;深度学习还没发展起来的时候&#xff0c;书店里Python就和爬虫挂钩&#xff0c;因为Python写爬虫确实方便。 2.数据分析&#xff1a;Python有各种的数据分析库可以方便使用&#xff0…...

GDB相比IDE有什么优点

GDB(GNU Debugger)相比于集成开发环境(IDE)具有一些独特的优点,主要体现在其灵活性、可定制性和低级控制能力。具体来说,GDB有以下几个优点: 1. 轻量级且无依赖 GDB是一个命令行工具,不依赖于任何复杂的图形界面或大型库,这使得它非常适合在资源受限的环境中使用,比…...

Docker 镜像加速的配置

解决拉取镜像报错&#xff1a;Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while 在使用 Docker 过程中&#xff0c;拉取镜像的速度常常会受到网络状况的影响&#xff0c;尤其是在国内网络环境下&#xff0c;…...

分布式多卡训练(DDP)踩坑

多卡训练最近在跑yolov10版本的RT-DETR&#xff0c;用来进行目标检测。 单卡训练语句&#xff08;正常运行&#xff09;&#xff1a; python main.py多卡训练语句&#xff1a; 需要通过torch.distributed.launch来启动&#xff0c;一般是单节点&#xff0c;其中CUDA_VISIBLE…...

MFC程序设计(一)MFC入门

本MFC教程使用VS2022实现 MFC基本概念 微软基础类库&#xff08;英语&#xff1a;Microsoft Foundation Classes&#xff0c;简称MFC&#xff09;是一个微软公司提供的类库&#xff08;class libraries&#xff09;&#xff0c;以C类的形式封装了Windows API&#xff0c;并且…...

swift Actor并发处理

preconcurrency 使用 /*在 Swift 5.5 引入并发模型后&#xff0c;编译器会对潜在的数据竞争和不安全的并发代码发出警告或错误。然而&#xff0c;某些旧代码或第三方库可能尚未完全适配这些新规则。preconcurrency 提供了一种临时解决方案&#xff0c;允许你在不修改代码的情况…...

网络编程 | UDP套接字通信及编程实现经验教程

1、UDP基础 传输层主要应用的协议模型有两种&#xff0c;一种是TCP协议&#xff0c;另外一种则是UDP协议。在上一篇博客文章中&#xff0c;已经对TCP协议及如何编程实现进行了详细的梳理讲解&#xff0c;在本文中&#xff0c;主要讲解与TCP一样广泛使用了另一种协议&#xff1a…...

Hadoop•搭建完全分布式集群

听说这里是目录哦 一、安装Hadoop&#x1f955;二、配置Hadoop系统环境变量&#x1f96e;三、验证Hadoop系统环境变量是否配置成功&#x1f9c1;四、修改Hadoop配置文件&#x1f36d;五、分发Hadoop安装目录&#x1f9cb;六、分发系统环境变量文件&#x1f368;七、格式化HDFS文…...

代码中使用 Iterable<T> 作为方法参数的解释

/*** 根据课程 id 集合查询课程简单信息* param ids id 集合* return 课程简单信息的列表*/ GetMapping("/courses/simpleInfo/list") List<CourseSimpleInfoDTO> getSimpleInfoList(RequestParam("ids") Iterable<Long> ids); 一、代码解释&…...

web前端1--基础

&#xff08;时隔数月我又来写笔记啦~&#xff09; 1、下载vscode 1、官网下载&#xff1a;Visual Studio Code - Code Editing. Redefined 2、步骤&#xff1a; 1、点击同意 一直下一步 勾一个创建桌面快捷方式 在一直下一步 2、在桌面新建文件夹 拖到vscode图标上 打开v…...

关于opensips的帮助命令的解释

opensips -help以下是 opensips 命令及其选项的中文解释&#xff08;基于 3.6.0-dev 版本&#xff09;&#xff1a; 命令用法 opensips -l 地址 [-l 地址 ...] [选项]选项说明 选项功能-f 文件指定配置文件&#xff08;默认为 /usr/local//etc/opensips/opensips.cfg&#x…...

你还在用idea吗

从VIM、Emacs&#xff0c;到eclipse、Jetbrains, 再到VSCode&#xff0c;过去的三十年时间&#xff0c;出现了这三代IDE产品。现在属于AI的时代来了&#xff0c;最新一代的产品像Cursor、Windsurf&#xff0c;就在昨天&#xff0c;字节跳动发布了最新的IDE&#xff0c;就叫Trae…...

安装wxFormBuilder

1. 网址&#xff1a;GitHub - wxFormBuilder/wxFormBuilder: A wxWidgets GUI Builder 2. 安装MSYS2 MSYS2可以在GitHub的内容中找到&#xff0c;这个版本是32位64位的 3. 在程序中打开MINGW64 shell 4. 在MSYS2 MINGW64 shell中输入 pacman -Syu pacman -S ${MINGW_PACKAGE…...

【大数据2025】Hadoop 万字讲解

文章目录 一、大数据通识大数据诞生背景与基本概念大数据技术定义与特征大数据生态架构概述数据存储数据计算与易用性框架分布式协调服务和任务调度组件数仓架构流处理架构 二、HDFSHDFS 原理总结一、系统架构二、存储机制三、数据写入流程四、心跳机制与集群管理 安全模式&…...

HTML语言的计算机基础

HTML语言的计算机基础 引言 在当今信息技术迅猛发展的时代&#xff0c;网页设计和开发已成为计算机科学中不可或缺的一部分。而HTML&#xff08;超文本标记语言&#xff09;作为构建网页的基础语言&#xff0c;承载着网页上所有内容的结构&#xff0c;帮助开发者创建和展示信…...

Cannot resolve symbol ‘XXX‘ Maven 依赖问题的解决过程

一、问题描述 在使用 Maven 管理项目依赖时&#xff0c;遇到了一个棘手的问题。具体表现为&#xff1a;在 pom.xml 文件中导入了所需的依赖&#xff0c;并且在 IDE 中导入语句没有显示为红色&#xff08;表示 IDE 没有提示依赖缺失&#xff09;&#xff0c;但是在实际使用这些依…...

Swift语言的函数实现

Swift语言函数实现详解 引言 Swift是一种强类型、泛型编程的现代编程语言&#xff0c;广泛应用于iOS和macOS开发。函数是Swift编程中的基本构建块之一&#xff0c;通过函数可以将代码进行模块化&#xff0c;实现重用性和可读性。本篇文章将系统地介绍Swift中的函数&#xff0…...

除了基本的事件绑定,鸿蒙的ArkUI

鸿蒙操作系统&#xff08;HarmonyOS&#xff09;是由华为技术有限公司开发的分布式操作系统&#xff0c;旨在为多种智能设备提供一个统一的操作平台。它不仅适用于智能手机&#xff0c;还适用于平板电脑、智能手表、智能电视等物联网设备。为了使开发者能够更加便捷地创建跨设备…...

数据分析及应用:经营分析中的综合指标解析与应用

目录 1. 市场份额(Market Share) 2. 客户获取成本(Customer Acquisition Cost, CAC) 3. 客户生命周期价值(Customer Lifetime Value, CLV) 4. 客户留存率(Customer Retention Rate, CRR) 5. 净推荐值(Net Promoter Score, NPS) 6. 转化率(Conversion Rate) …...

Mac开启任何来源安装配置环境变量

目录 开启任何来源配置环境变量退出保存时如果没有权限修改文件权限拓展——.bash_profile和.zshrc 开启任何来源 sudo spctl --master-disable#打开软件时提示文件损坏 sudo xattr -r -d com.apple.quarantine 进入访达应用程序拖拽应用到终端配置环境变量 cd ~ vi ~/.bash…...

UI自动化设计模式--POM

在自动化测试中&#xff0c;Page Object Model&#xff08;POM&#xff09;设计方式是一种常用的设计模式&#xff0c;它将页面元素和操作封装成独立的类&#xff0c;提高了测试代码的可读性、可维护性和可复用性。以下是关于POM设计方式的详细介绍&#xff1a; 基本概念 POM…...

(三)线性代数之二阶和三阶行列式详解

在前端开发中&#xff0c;尤其是在WebGL、图形渲染、或是与地图、模型计算相关的应用场景里&#xff0c;行列式的概念常常在计算变换矩阵、进行坐标变换或进行图形学算法时被使用。理解二阶和三阶行列式对于理解矩阵运算、旋转、平移等操作至关重要。下面&#xff0c;我将结合具…...

postman接口测试工具详解

一、前言 Postman是一款广泛使用的API测试工具&#xff0c;适用于开发人员和测试人员。它提供了直观的用户界面&#xff0c;能够方便地进行API请求、响应验证、自动化测试等操作。本文将详细介绍Postman的功能和用法&#xff0c;帮助用户高效地进行API测试。 二、Postman的主…...

Golang 中强大的重试机制,解决瞬态错误

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons&#xff1a;JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram&#xff0c;自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 &#xff1f; 5 IDEA必装的插件&…...

【C语言系列】深入理解指针(2)

一、数组名的理解 上一篇文章中我们写过一个这样的代码&#xff1a; int arr[10] {1,2,3,4,5,6,7,8,9,10}; int *p &arr[0];这里使用&arr[0] 的方式拿到了数组第⼀个元素的地址&#xff0c;但是其实数组名本来就是地址&#xff0c;而且是数组首元素的地址&#xff…...

【网络原理】万字详解 HTTP 协议

&#x1f970;&#x1f970;&#x1f970;来都来了&#xff0c;不妨点个关注叭&#xff01; &#x1f449;博客主页&#xff1a;欢迎各位大佬!&#x1f448; 文章目录 1. HTTP 前置知识1.1 HTTP 是什么1.2 HTPP 协议应用场景1.3 HTTP 协议工作过程 2. HTTP 协议格式2.1 fiddler…...

WIFI连接与通信

ESP32-S3 支持 2.4 GHz 的 Wi-Fi 4&#xff08;802.11n&#xff09;标准&#xff0c;提供高达 150 Mbps 的数据传输速率。它支持 STA&#xff08;Station&#xff09;模式、AP&#xff08;Access Point&#xff09;模式和 Wi-Fi 直连&#xff08;Wi-Fi Direct&#xff09;模式&…...

Elixir语言的数据库编程

Elixir语言的数据库编程 介绍 Elixir是一种基于Erlang虚拟机&#xff08;BEAM&#xff09;的函数式编程语言&#xff0c;特别适用于构建可扩展和可维护的系统。它结合了Erlang的卓越并发特性和Ruby的易用性&#xff0c;因此在Web开发和实时应用中越来越受到欢迎。伴随着Elixi…...