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

FPGA 39 ,FPGA 网络通信协议栈进阶,RGMII、ARP 与 UDP 协议与模块设计( RGMII、ARP、UDP原理与模块设计 )

目录

目录​​​​​​​​​​​​​​
一、核心原理
1.1 RGMII 接口:高效数据传输的物理桥梁
1.2 ARP 协议:IP 与 MAC 地址的动态映射引擎
1.3 UDP 协议:轻量级数据传输的高效选择
1.4 FPGA 实现流程
二、时序约束
2.1 时序约束理论基础
2.2 时序约束在协议栈中的应用与优势
2.2.1 RGMII 接口的时序挑战与解决
2.2.2 ARP 与 UDP 模块的时序优化
2.2.3 整体系统的时序协同
三、模块设计
3.1 RGMII 接口转换模块:数据格式的精准适配
3.2 ARP 协议模块:地址解析的全流程管控
3.3 UDP 协议模块:快速数据传输的可靠保障
3.4 辅助模块:功能强化与系统协调
3.5 模块总结
四、注意事项
五、更多操作

前言

在《FPGA 38 ,FPGA 网络通信协议栈基础,ARP 协议深度解析与模块划分( ARP与以太网帧,以及ARP模块常用文件 )》中,我们围绕 ARP 与 以太网帧展开了深入探讨,从 ARP 协议在 OSI 与 TCP/IP 模型中的定位,到以太网帧内 ARP 数据包的结构解析,再到 FPGA 中 ARP 模块的核心设计与功能实现,为 FPGA 网络通信协议栈搭建起重要的底层基石。

而网络通信的完整实现,离不开多种协议的协同运作以及对底层时序和接口的精确控制。这里将基于上篇文章的知识积累,进一步深入剖析 RGMII 接口特性、ARP 与 UDP 协议的理论要点,结合时序约束与网络基础理论,系统阐述网络通信协议栈的模块架构设计,助力构建更全面的 FPGA 网络通信认知体系。

​​​​​​​

一、核心原理

关键知识点解析,RGMII、ARP 与 UDP 的核心原理

1.1 RGMII 接口:高效数据传输的物理桥梁

RGMII(Reduced Gigabit Media Independent Interface)接口作为千兆以太网的关键接口,通过时钟双沿传输数据的特性大幅提升带宽利用率。其核心设计如下:

  1. 数据传输机制:在 125MHz 时钟下,利用上升沿传输低 4 位数据(RXD [3:0]/TXD [3:0]),下降沿传输高 4 位数据(RXD [7:4]/TXD [7:4]),实现 1Gbps 速率传输。
  2. 控制信号设计:TX_CTRL/RX_CTRL 信号在时钟上升沿传输数据使能信号(TX_EN/RX_DV),下降沿传输数据使能与错误信号(TX_ER/RX_ER)的异或值,以此确保数据有效性判断。
  3. 与 PHY 芯片协同:RGMII 直接对接 PHY 芯片(如 RTL8211FD),完成数字信号与以太网电信号的转换,是协议栈与物理网络连接的关键枢纽。

1.2 ARP 协议:IP 与 MAC 地址的动态映射引擎

ARP(地址解析协议)在 FPGA 网络通信中承担 “翻译官” 角色,其核心功能与设计要点如下:

  • 协议流程
    1. 广播请求:主机通过广播 ARP 请求包(目的 MAC 为 FF:FF:FF:FF:FF:FF),请求特定 IP 对应的 MAC 地址。
    2. 单播应答:目标主机接收到请求后,回复单播 ARP 应答包,携带自身 MAC 地址。
    3. 缓存更新:发送方将 IP-MAC 映射存入 ARP 缓存表,后续通信直接使用,减少广播开销 。
  • 数据包结构:ARP 数据包(28 字节)包含硬件类型(0x0001,以太网)、协议类型(0x0800,IPv4)、操作码(1 为请求,2 为应答)、发送 / 目标 MAC 地址及 IP 地址,每个字段都需严格按协议规范填充。
  • FPGA 实现重点:在 FPGA 中,ARP 模块需通过状态机控制数据发送与接收,结合 CRC32 校验确保数据完整性,并利用 Block RAM 实现动态 ARP 缓存表管理。

1.3 UDP 协议:轻量级数据传输的高效选择

UDP(用户数据报协议)以 “无连接、低延迟” 特性适用于实时性场景,其协议设计与 FPGA 实现要点如下:

  1. 协议特性:无需建立连接即可发送数据,适合视频流、音频通话等对延迟敏感但允许少量丢包的应用,不过可靠性需上层应用自行保障。
  2. 数据包结构:UDP 数据包由首部(8 字节)和数据部分组成。首部包含源端口号、目的端口号、长度(首部 + 数据)和校验和(可选,计算 UDP 伪首部 + 首部 + 数据)。

1.4 FPGA 实现流程

发送端: 在发送端,FPGA 的主要任务是构建完整的以太网帧并发送。具体流程如下:

  1. 构建 UDP 首部:根据应用层提供的数据,生成 UDP 首部,包括源端口号、目标端口号、UDP 数据长度以及 UDP 校验和(可选)。
  2. 计算 IP 首部校验和:构造 IP 首部,设置源 IP 地址、目标 IP 地址、协议类型等字段,并计算 IP 首部的校验和以确保传输过程中的完整性。
  3. 封装以太网帧头:将生成的 IP 包封装到以太网帧中,添加以太网帧头,包括目标 MAC 地址、源 MAC 地址以及类型字段(如 IPv4 类型为 0x0800)。
  4. 添加 CRC32 校验:在以太网帧尾部附加 CRC32 校验码,用于接收端验证帧的完整性。
  5. 发送数据帧:通过 FPGA 的物理接口(如 GMII 或 RGMII),将以太网帧发送到网络中。

接收端: 在接收端,FPGA 的任务是对接收到的以太网帧进行逐层解析,提取有效数据并完成校验。具体流程如下:

  1. 接收以太网帧:从物理接口接收完整的以太网帧,并检查 CRC32 校验以确认帧的完整性。
  2. 解析以太网帧头:提取以太网帧头信息,包括目标 MAC 地址、源 MAC 地址和类型字段,判断是否为 IPv4 数据包。
  3. 解析 IP 首部:从数据包中提取 IP 首部,验证 IP 校验和,解析源 IP 地址、目标 IP 地址及协议类型,确认数据包的合法性。
  4. 解析 UDP 首部:进一步解析 UDP 首部,提取源端口号、目标端口号、数据长度等信息,并验证 UDP 校验和(如果存在)。
  5. 提取有效数据:从 UDP 数据段中提取应用层的有效载荷数据,并将其传递给后续处理模块或输出接口。
  6. 错误处理与丢弃:对于校验失败或格式不正确的数据包,进行错误标记或直接丢弃。

通过上述流程,FPGA 能够高效地实现以太网通信中的数据封装与解析,满足实时性和可靠性的要求,同时支持灵活的功能扩展和优化。


    二、时序约束

    时序约束与协议栈设计,深度融合

    2.1 时序约束理论基础

    在 FPGA 实现网络通信协议栈时,时序约束是保障设计正确性的核心要素:

    • 关键术语
      1. 建立时间(Tsu):时钟上升沿前数据需保持稳定的最短时间,确保寄存器正确采样。
      2. 保持时间(Th):时钟上升沿后数据需持续稳定的最短时间,避免采样错误。
      3. 时钟偏斜(Tskew):同一时钟域内不同路径时钟信号的到达时间差,可通过 BUFG 等原语优化。
      4. 亚稳态:当输入信号不满足 Tsu 或 Th 时,寄存器输出可能处于不确定状态,导致逻辑错误。
    • 时间裕量与路径延迟
      1. 建立时间裕量:实际到达时间与要求到达时间的差值,正数表示时序满足。
      2. 最大 / 最小延迟:最大延迟(T - Tsu)决定系统最高时钟频率,最小延迟(Th)需满足数据保持要求。
      3. 时序路径:确保数据路径延迟(TData = Tco + Tlogic)小于时钟周期与 Tsu 之和,即 T > Tco + Tlogic + Tsu。

    2.2 时序约束在协议栈中的应用与优势

    2.2.1 RGMII 接口的时序挑战与解决

    RGMII 接口双沿传输数据时,对时钟与数据的相位关系要求严苛。通过时钟约束(如设置时钟周期和抖动容限)和 IO 约束(定义输入输出延时),确保数据在时钟沿稳定采样。例如,利用 IDDR 和 ODDR 原语实现数据同步时,需精确计算时钟偏斜,避免亚稳态风险,从而保障数据传输的准确性。

    2.2.2 ARP 与 UDP 模块的时序优化

    ARP 和 UDP 模块中,状态机控制数据包的构建与解析,涉及大量组合逻辑和寄存器操作。通过静态时序分析(STA)工具检查寄存器到寄存器路径的延时,优化关键路径逻辑,确保状态切换的及时性。以 ARP 请求发送过程为例,通过时序约束保证以太网帧头、ARP 数据和 CRC 校验的生成满足时钟周期要求,避免因逻辑延迟导致数据丢失。

    2.2.3 整体系统的时序协同

    协议栈各模块间的数据交互需遵循统一的时序规则。通过系统同步设计(如采用全局时钟),减少时钟域交叉带来的时序问题;结合动态时序分析(DTA)进行仿真验证,模拟不同激励下的时序表现,确保协议栈在复杂网络环境下也能稳定运行。


    三、模块设计

    模块设计与架构,以 RGMII、ARP、UDP 为核心的协同体系

    3.1 RGMII 接口转换模块:数据格式的精准适配

    • rgmii_to_gmii.v:作为顶层模块,实例化 rgmii_rx 和 rgmii_tx,将 RGMII 双沿数据转换为 GMII 单沿格式,为 ARP、UDP 模块提供统一接口。通过时序约束确保数据转换过程中时钟与数据的同步性,有效避免亚稳态。
    • rgmii_rx.v:利用 BUFIO 和 BUFG 原语处理时钟信号,通过 IDDR 原语实现 RGMII 数据和控制信号的双单沿转换,确保数据准确采样。通过设置输入延时约束,进一步优化时钟与数据的相位关系。
    • rgmii_tx.v:采用 ODDR 原语将 GMII 单沿数据转换为 RGMII 双沿格式,根据时钟沿生成对应控制信号,适配 PHY 芯片传输要求。通过输出延时约束,保证数据在时钟沿稳定输出。

    3.2 ARP 协议模块:地址解析的全流程管控

    • arp.v:ARP 顶层模块,整合 arp_tx、arp_rx 和 crc32_data,协调各模块信号,实现 ARP 协议完整功能。通过时序约束确保模块间数据交互的及时性和稳定性。
    • arp_tx.v:基于状态机构建 ARP 请求 / 应答包,处理以太网帧头、ARP 数据字段填充,控制 CRC32 校验启动与结果插入。通过优化状态机逻辑,减少关键路径延时,严格满足时序要求。
    • arp_rx.v:通过状态机解析接收数据,验证帧格式与 ARP 字段合法性,提取 IP-MAC 映射,输出有效数据与标志信号。利用静态时序分析检查数据解析路径,避免因逻辑复杂导致时序违例。
    • crc32_data.v:为 ARP 和 UDP 模块提供 CRC32 校验服务,确保数据在链路层传输的完整性。通过时序约束保证校验计算与数据传输的同步性。

    3.3 UDP 协议模块:快速数据传输的可靠保障

    • udp_rx.v:利用状态机解析 UDP 数据包,验证以太网帧、IP 首部和 UDP 首部,提取有效数据,输出数据有效信号与接收完成标志。通过时序约束确保数据解析过程中各字段的校验及时完成,避免数据积压。
    • udp_tx.v:基于状态机构建 UDP 数据包,计算 IP 首部校验和与 UDP 校验和,封装以太网帧头,结合 CRC32 校验后发送数据。通过优化校验和计算逻辑,减少关键路径延时,确保数据包按时发送。

    3.4 辅助模块:功能强化与系统协调

    • arp_ctrl.v:根据外部触发(如按键)和 ARP 接收状态,动态控制 ARP 发送策略,实现请求与应答的灵活调度。通过时序约束确保控制信号的响应速度,避免错过数据传输时机。
    • ​​​​​​​en_ctrl.v:根据 ARP 和 UDP 发送使能信号,动态选择输出数据,避免协议冲突,保障数据有序传输。通过时序约束确保使能信号的切换无毛刺,防止数据丢失。
    • key_fliter.v:对按键信号消抖处理,为 ARP 控制模块提供稳定触发信号,增强用户交互可靠。通过设置合适的延时参数,满足时序要求,避免误触发。

    实际工程中的模块划分:

    像图像中的 .v 等设计文件,实际上都是同级别组件,它们之间的上下级关系是通过写入代码后,软件会自动划分文件的上下级别。

    在硬件设计中,通过Verilog实例化子模块,可将复杂设计分解为更小的部分,便于管理与复用。这种层次结构通过代码定义模块间的上下级关系,促进团队协作与设计验证。其实质是利用HDL实现设计的分层细化。

    3.5 模块总结

    参考以上,该工程一共12个Verilog文件,模块大致可以分为 4 大种类:

    1. ARP,协议模块

    • ​​​arp.v
    • arp_tx.v
    • arp_rx.v
    • crc32_data.v

    2. RGMII,接口转换模块

    • rgmii_to_gmii.v
    • rgmii_rx.v
    • rgmii_tx.v

    3. UDP,协议模块

    • udp_rx.v
    • udp_tx.v

    4. 辅助模块

    • arp_ctrl.v
    • en_ctrl.v
    • key_fliter.v

    通过这种划分,每个大模块都能聚焦于特定的功能领域,不仅提高了代码的可读性和可维护性,还使得设计更加模块化和易于扩展。此外,这种结构也便于团队合作开发,不同成员可以专注于不同的模块而不会相互干扰。


    四、注意事项

    设计优势与问题解决

    通过上述设计,该 FPGA 网络通信协议栈具备显著优势:

    • 提升系统稳定性:严格的时序约束与分析,有效解决了 RGMII 接口数据同步、ARP/UDP 模块状态切换等场景下的亚稳态和时序违例问题,确保协议栈在高速运行时的可靠性。
    • 优化资源利用:结合静态时序分析优化关键路径,减少不必要的逻辑延迟,在满足时序要求的同时降低 FPGA 资源消耗,提升设计效率。
    • 增强兼容性:基于标准协议规范设计 ARP 和 UDP 模块,并通过时序约束确保与 PHY 芯片及其他网络设备的兼容性,避免因时序不匹配导致的通信故障。
    • 支持高速通信:对 RGMII 接口和协议栈整体的时序优化,使其能够支持千兆以太网的数据传输速率,满足实时性应用对低延迟、高带宽的需求。

    通过对 RGMII 接口、ARP 与 UDP 协议的深度剖析,结合时序约束理论进行模块设计,我们构建了一个高效、稳定的 FPGA 网络通信协议栈架构。这些设计不仅明确了各模块的功能边界,更确保了从物理层数据传输到协议层数据处理的高效协作。在下一篇文章中,我们将基于此架构,深入展开 Verilog 代码实现,将理论设计转化为可运行的数字电路,进一步探索协议栈优化与调试的实践策略。


    五、更多操作

    完整FPGA系列,请看

    FPGA系列,文章目录https://blog.csdn.net/weixin_65793170/article/details/144185217?spm=1001.2014.3001.5502

    相关文章:

    FPGA 39 ,FPGA 网络通信协议栈进阶,RGMII、ARP 与 UDP 协议与模块设计( RGMII、ARP、UDP原理与模块设计 )

    目录 目录​​​​​​​​​​​​​​ 一、核心原理 1.1 RGMII 接口:高效数据传输的物理桥梁 1.2 ARP 协议:IP 与 MAC 地址的动态映射引擎 1.3 UDP 协议:轻量级数据传输的高效选择 1.4 FPGA 实现流程 二、时序约束 2.1 时序约束理论…...

    《系统分析师-第三阶段—总结(七)》

    背景 采用三遍读书法进行阅读,此阶段是第三遍。 过程 本篇总结第13章第14章的内容 第13章 第14章 总结 系统设计分为概要设计与详细设计,然后重点讲解了处理流程设计,输入输出原型设计,面向对象设计、人机交互设计&#xff1…...

    Lightroom 2025手机版:专业编辑,轻松上手

    在摄影和图像编辑的世界里,Adobe Lightroom一直是一个不可或缺的工具。无论是专业摄影师还是摄影爱好者,都依赖它来提升照片的质量和视觉效果。今天,我们要介绍的 Lightroom 2025手机版,是Adobe公司为移动设备量身定制的照片编辑器…...

    Cursor:AI时代的智能编辑器

    在开发者社区掀起热潮的Cursor,正以破竹之势重塑编程工具格局。这款基于VS Code的AI优先编辑器,不仅延续了经典IDE的稳定基因,更通过深度集成的智能能力,将开发效率推向全新维度。2023年Anysphere公司获得的6000万美元A轮融资&…...

    x86架构-k8s设置openebs的hostpath作为默认存储类的部署记录

    文章目录 前言一、openebs是什么?二、准备步骤1.下载yaml文件2.准备一个新的单点k8s用于测试2.将openebs-operator.yaml中的镜像修改成使用国内加速源的 三、执行yaml1.openebs-operator.yaml2.local-hostpath-pvc.yaml和local-hostpath-pod.yaml 四、关于默认存储路…...

    废品回收小程序:全链路数字化解决方案,赋能绿色未来

    用户端:一键触达,便捷回收新体验 废品百科与估价指南:分类标准与实时价格一目了然,用户轻松掌握废品价值。一键预约,轻松回收:指尖轻点即可完成预约,上门服务省时省力。精准定位,导…...

    Kotlin和JavaScript的对比

    Kotlin和JavaScript有一些相似之处,但也存在显著的差异,下面从多个方面为你详细分析: 相似点 1. 语法灵活性 变量声明:二者在变量声明上都较为灵活。在JavaScript里,借助var、let和const可以声明变量。其中&#xf…...

    蓝桥杯 5. 拼数

    拼数 原题目链接 题目描述 给定 n 个正整数 a1, a2, …, an,你可以将它们任意排序。 现要将这 n 个数字连接成一排,即令相邻数字收尾相接,组成一个数。 问,这个数最大可以是多少。 输入格式 第一行输入一个正整数 n&#x…...

    (即插即用模块-特征处理部分) 四十四、(2024 TGRS) FEM 特征增强模块

    文章目录 1、Feature Enhancement Module2、代码实现 paper:FFCA-YOLO for Small Object Detection in Remote Sensing Images Code:https://github.com/yemu1138178251/FFCA-YOLO 1、Feature Enhancement Module 遥感图像中,小目标的特征通…...

    “情况说明“以后,Unity XR 开发者如何选择?

    Unity自4月7日发布了一系列“情况说明”,点进来的朋友应该都是看过的,此处不再赘述。此后引发了开发者社区的广泛关注和讨论。作为细分领域的XR开发者,此时也会面临着工具和版本的抉择或迷茫。笔者同样面临这些问题,因为要确定未来…...

    c#版yolo可视化标注和一键免环境训练系统0429更新介绍

    yolo免环境一键训练工具c#版yolo标注工具 ## 更新日志 - 2025.4.1: 1、软件上线 - 2025.4.6 1、调整界面,修复用户在1920*1080不能全部显示问题 2、修复 刷新当前目录 无法加载新增图片问题 3、新增 下一张图片快捷键 Enter或者ctrl↓&…...

    Leetcode 3533. Concatenated Divisibility

    Leetcode 3533. Concatenated Divisibility 1. 解题思路2. 代码实现 题目链接:3533. Concatenated Divisibility 1. 解题思路 这一题的话事实上如果我们原始的数组有序排列一下,然后依次考察每个元素是否可以被选用,此时,我们得…...

    CosyVoice、F5-TTS、GPT-SoVITS、Fish-Speech声音模型项目深度对比:选型指南

    在数字人、虚拟助手、智能客服等应用快速发展的背景下,文本转语音(TTS)和语音克隆技术已成为AI领域的核心技术之一。本文将对目前主流的四个开源语音合成项目——CosyVoice、F5-TTS、GPT-SoVITS 和 Fish-Speech进行全方位对比分析&#xff0c…...

    什么是DNS缓存?怎么清理DNS缓存?

    在网络世界中,当我们输入一个网址想要访问某个网站时,计算机并不能直接识别“www.example.com”这样的网址,而是需要将其转换为对应的IP地址才能进行通信。这个转换过程由域名系统(DomainNameSystem,简称DNS&#xff0…...

    基于STM32、HAL库的ATECC508A安全验证及加密芯片驱动程序设计

    一、简介: ATECC508A是Microchip公司生产的一款加密认证芯片,提供以下主要特性: 基于硬件的ECDSA (Elliptic Curve Digital Signature Algorithm) 加密 支持SHA-256哈希算法 内置真随机数生成器(TRNG) 16个密钥存储槽位,可配置多种用途 支持I2C接口,最高1MHz时钟频率 超低…...

    初中九年级学生体测准考证照片采集软件使用说明

    随着中考体育测试的临近,各校陆续开始组织学生进行准考证照片、中考报名照片的采集工作。为方便学校集中采集和学生自主完成照片拍摄,本文将详细介绍使用"校园证件照采集平台"进行手机拍照线上采集的操作方法,帮助学校轻松完成体测…...

    提供一些其他常见的字符串处理算法的Java示例

    以下为你提供几种常见字符串处理算法的 Java 示例: 1. 字符串反转 反转字符串即把字符串中的字符顺序颠倒。 public class RemoveSpaces {public static String removeSpaces(String str) {return str.replaceAll("\\s", "");}public static…...

    软件设计师-软考知识复习(2)

    PERT图详解 PERT(Program Evaluation and Review Technique,计划评审技术)是一种用于项目管理的图形化工具,主要用于分析任务的时间安排、识别关键路径和优化资源分配。它特别适用于复杂项目,其中任务之间存在依赖关系…...

    Qwen3快速部署 Qwen3-0.6B、Qwen3-8B、Qwen3-14B,Think Deeper

    文章目录 0 Qwen31 平台与环境安装1 模型下载2 模型测试 0 Qwen3 今天,通义千问Qwen团队正式开源推出 Qwen3,这是 Qwen 系列大型语言模型的最新成员。最新的Qwen3系列模型具备双模推理能力(深入思考/快速响应)、支持119种语言及方…...

    【C到Java的深度跃迁:从指针到对象,从过程到生态】第四模块·Java特性专精 —— 第十七章 IO流:超越FILE*的维度战争

    一、从C文件操作到Java流的进化 1.1 C文件操作的原始挑战 C语言通过FILE*和低级文件描述符进行I/O操作&#xff0c;存在诸多限制&#xff1a; 典型文件复制代码&#xff1a; #include <stdio.h> int copy_file(const char* src, const char* dst) { FILE* in fope…...

    Leetcode刷题记录22——滑动窗口最大值

    题源&#xff1a;https://leetcode.cn/problems/sliding-window-maximum/description/?envTypestudy-plan-v2&envIdtop-100-liked 题目描述&#xff1a; 思路一&#xff1a; 暴力遍历法&#xff0c;通过一个长度为k的滑动窗口遍历nums&#xff0c;将其中最大的数依次记…...

    React 第三十四节 Router 开发中 useLocation Hook 的用法以及案例详解

    一、useLocation基础用法 作用&#xff1a;获取当前路由的 location 对象 返回对象结构&#xff1a; {pathname: "/about", // 当前路径search: "?namejohn", // 查询参数&#xff08;URL参数&#xff09;hash: "#contact", …...

    BT134-ASEMI机器人功率器件专用BT134

    编辑&#xff1a;LL BT134-ASEMI机器人功率器件专用BT134 型号&#xff1a;BT134 品牌&#xff1a;ASEMI 封装&#xff1a;TO-126 批号&#xff1a;最新 引脚数量&#xff1a;3 封装尺寸&#xff1a;如图 特性&#xff1a;双向可控硅 工作结温&#xff1a;-40℃~150℃…...

    十五种光电器件综合对比——《器件手册--光电器件》

    十五、光电器件 名称 原理 特点 应用 发光二极管&#xff08;LED&#xff09; 基于半导体材料的电致发光效应&#xff0c;当电流通过时&#xff0c;电子与空穴复合&#xff0c;释放出光子。 高效、节能、寿命长、响应速度快、体积小。 广泛用于指示灯、照明、显示&#…...

    网络安全攻防演练实训室建设方案

    一、引言 在数字化浪潮席卷全球的当下&#xff0c;网络已深度融入社会的各个层面&#xff0c;成为推动经济发展、社会进步和科技创新的关键力量。从日常生活中的移动支付、社交互动&#xff0c;到企业运营中的数据管理、业务拓展&#xff0c;再到国家关键基础设施的运行&#…...

    极客天成受邀参加2050大会,共赴人工智能科技盛宴

    2025年4月25日&#xff0c;备受瞩目的2050大会在杭州云栖小镇盛大开幕。作为科技领域的佼佼者&#xff0c;北京极客天成科技有限公司受邀参加了此次盛会&#xff0c;与全球科技爱好者共同探索科技的未来。 大会盛况空前&#xff0c;科技盛宴开启 2050大会是由杭州市云栖科技创…...

    GUI_DrawPixel 函数详解

    GUI_DrawPixel 是嵌入式GUI库中的基础像素绘制函数&#xff0c;用于在指定坐标绘制单个像素点。下面我将详细介绍这个函数的功能、实现和使用方法。 1. 函数功能 在显示屏的指定位置(x,y)绘制一个像素点 使用当前设定的颜色进行绘制 是构建所有高级图形&#xff08;线、圆、…...

    AWS MSK 集群升级前配置检查:保障升级平稳进行的关键步骤

    在 AWS Managed Streaming for Apache Kafka (MSK) 集群升级之前,进行全面的配置检查至关重要。本文将介绍一个用于 MSK 升级前配置检查的 Bash 脚本,帮助您识别潜在的风险点,确保升级过程的顺利进行。 为什么需要升级前检查? AWS MSK 提供了自动升级功能,但在升级过程中,不…...

    leetcode 2516. 每种字符至少取 K 个

    题目描述 滑动窗口问题 可以转化为求按照题目要求从两端取走字符后&#xff0c;中间部分的最大长度。中间部分就是一个滑动窗口。 class Solution { public:int takeCharacters(string s, int k) {vector<int> count(3,0);int n s.size();for(int i 0;i <n;i){cou…...

    通信原理第七版与第六版区别附pdf

    介绍 我用夸克网盘分享了「通信原理 第7版》樊昌信」&#xff0c;链接&#xff1a;https://pan.quark.cn/s/be7c5af4cdce 《通信原理&#xff08;第7版&#xff09;》是在第6版的基础上&#xff0c;为了适应当前通信技术发展和教学需求&#xff0c;并吸取了数十所院校教师的反…...

    CPU 空转解析

    在编程中&#xff0c;“避免 CPU 空转” 指的是防止程序在等待某个条件满足时&#xff0c;无意义地消耗 CPU 资源。以下是对这一问题的详细解释&#xff1a; 1. 什么是 CPU 空转&#xff1f; 当代码中出现类似以下逻辑时&#xff1a; while not condition_met: # 循环检查条…...

    云蝠智能大模型智能呼叫:赋能零售行业服务,助力客户增长

    在数字化浪潮席卷全球的今天&#xff0c;零售行业正面临前所未有的变革压力。消费者需求日益个性化、市场竞争愈发激烈&#xff0c;传统的人工客服模式已难以满足企业对高效触达、精准营销和极致体验的需求。而云蝠智能大模型智能呼叫系统&#xff0c;凭借其突破性的AI技术和深…...

    Consul安装部署(Windows环境)

    部署资料链接&#xff1a;https://download.csdn.net/download/ly1h1/90722829​​​​​ 1.下载 Consul 1.访问 Consul 官方下载页面&#xff1a;Install | Consul | HashiCorp Developer 2.选择适合 Windows 的版本&#xff08;如 consul_1.16.1_windows_amd64.zip&#xff…...

    Sql刷题日志(day7)

    面试&#xff1a; 1、怎么样的数据挖取能真正对业务起到指导作用&#xff1f; 明确的业务目标&#xff1a;开始之前明确你想通过数据挖掘解决的业务问题。这些问题应具体、可量化&#xff0c;并与业务战略紧密相关。正确的数据集&#xff1a;确保使用的数据与你的业务问题相关…...

    【MuJoCo仿真】开源SO100机械臂导入到仿真环境

    主要参考&#xff1a;https://github.com/jpata/gym-so100/tree/integration/gym_so100/assets/trs_so_arm100 参考&#xff1a;&#xff08;八&#xff09;lerobot开源项目扩展so100的仿真操控&#xff08;操作记录&#xff09;_so100机械臂 仿真-CSDN博客 下载&#xff1a;…...

    redis 有序集合zrange和zrangebyscore的区别

    起因是查询数据&#xff0c;用了zrangebyscore 但是一直显示没数据 具体命令zrangebyscore key 0 -1 withscores, 原有印象中一直是这么用的&#xff0c;但是突然查不出来了&#xff0c; 于是搜了下问题所在。 通过分数查看 不能用0和-1表示最小和最大&#xff0c;只能用分数来…...

    基于C#窗体+GDI+绘图实现分形树

    实验&#xff1a;分形树 一. 引言 实验目的:继续学习C#窗体应用程序的图形化界面设计以及GDI绘图的一些基本指示,通过制作各种类型的分形树增强对于递归的理解,在创造分形图形的过程中感受编程的快乐 Tutorial任务 1.制作不同类型的分形图形(本次演示的是两种不同类型的分…...

    使用Langchain+DeepSeep进行测试相关工作

    1.使用BaseChatModel实现自定义DeepSeekLLM import json import typing from typing import Optional, Any, List, Dict, Union, Sequence, Callable, Literalimport requests from langchain_core.callbacks import CallbackManagerForLLMRun from langchain_core.language_m…...

    Java练习6

    一.题目 数字加密与解密 需求: 某系统的数字密码&#xff08;大于 0&#xff09;&#xff0c;比如 1983&#xff0c;采用加密方式进行传输。 规则如下: 先得到每位数&#xff0c;然后每位数都加上 5&#xff0c;再对 10 求余&#xff0c;最后将所有数字反转&#xff0c;得到一…...

    二叉树知识点

    1、树形结构 1.1概念 二叉树属于树形结构&#xff0c;所以先了解树形结构之后&#xff0c;再学习二叉树。 树形结构是一种非线性的数据结&#xff0c;是由n个有限节点组成的一个具有层次关系的集合&#xff0c;其形状就像一棵到这的树&#xff0c;跟朝上&#xff0c;叶子朝下…...

    neo4j暴露公网ip接口——给大模型联通知识图谱

    特别鸣谢 我的领导&#xff0c;我的脑子&#xff0c;我的学习能力&#xff0c;感动了 1. 搭建知识图谱数据库&#xff08;见上一章博客&#xff09; 这里不加赘述了&#xff0c;请参考上一篇博客搭建 2. FastApi包装接口 这里注意&#xff1a;NEO4J_URI不得写http:,只能写…...

    在阿里云实例上部署通义千问QwQ-32B推理模型

    通义千问QwQ-32B是阿里云开源的320亿参数推理模型,通过大规模强化学习在数学推理、编程及通用任务中实现性能突破,支持消费级显卡本地部署,兼顾高效推理与低资源消耗。 本文将介绍如何利用vLLM作为通义千问QwQ-32B模型的推理框架,在一台阿里云GPU实例上构建通义千问QwQ-32…...

    GEE进行Theil-Sen Median斜率估计和Mann-Kendall检验

    介绍一下Theil-Sen Median斜率估计和Mann-Kendall趋势分析&#xff0c;这两种方法经常结合使用&#xff0c;前者用于估计趋势的斜率&#xff0c;后者用于检验趋势的显著性。如多年NPP或者NDVI的趋势分析。 主要介绍使用GEE实现这一内容的代码方法&#xff0c;若使用python&…...

    WSL2下Docker desktop的Cadvisor容器监控

    由于WSL2的Docker存放是在Linux的docker-desktop目录下&#xff0c;需要从这里面挂载到WSL2里的/var/lib/docker&#xff0c;并且正确挂载启动&#xff0c;才能使 Cadvisor 识别到docker容器并且监控资源。 首先需要在WSL2终端进行挂载操作&#xff1a; sudo mount -t drvfs \…...

    深度学习---pytorch搭建深度学习模型(附带图片五分类实例)

    一、PyTorch搭建深度学习模型流程 1. 环境准备 安装PyTorch及相关库&#xff1a; pip install torch torchvision numpy matplotlib2. 数据准备 数据集加载&#xff1a;使用内置数据集&#xff08;如CIFAR-10&#xff09;或自定义数据集。数据预处理&#xff1a;包括归一化…...

    基于 STM32 的智慧图书馆智能控制系统设计与实现

    一、系统架构概述 智慧图书馆智能控制系统集成环境调控、安全监控、借阅管理与信息推送功能,通过 STM32 主控芯片联动传感器、执行器及云平台,实现图书馆智能化管理。系统架构分为感知层(传感器)、控制层(STM32 主控)、执行层(继电器 / 显示屏)及云端层(数据交互),…...

    4. python3基本数据类型

    Python3 中有六个标准的数据类型&#xff1a; Number&#xff08;数字&#xff09; String&#xff08;字符串&#xff09; List&#xff08;列表&#xff09; Tuple&#xff08;元组&#xff09; Set&#xff08;集合&#xff09; Dictionary&#xff08;字典&#xff09; Pyt…...

    什么是缓冲区溢出?NGINX是如何防止缓冲区溢出攻击的?

    大家好&#xff0c;我是锋哥。今天分享关于【什么是缓冲区溢出&#xff1f;NGINX是如何防止缓冲区溢出攻击的&#xff1f;】面试题。希望对大家有帮助&#xff1b; 什么是缓冲区溢出&#xff1f;NGINX是如何防止缓冲区溢出攻击的&#xff1f; 缓冲区溢出是指程序试图向一个固定…...

    4.27搭建用户界面

    更新 router下面的index.js添加新的children 先区分一下views文件夹下的不同vue文件&#xff1a; Home.vue是绘制home页面的所有的表格。 Main.vue是架构头部和左侧目录的框架的。 研究一下这个routes对象&#xff0c;就可以发现重定向redirect的奥妙所在&#xff0c;我们先把…...

    常用回环检测算法对比(SLAM)

    回环检测本质上是一种数据相似性检测算法,原理是通过识别机器人是否回到历史位置,建立位姿约束以优化全局地图,纠正长期的里程计漂移实现全局地图的一致性,简单讲就是识别场景中的重复特征以修正累积误差。 1. 概述 算法类别原理特点优势劣势词袋模型特征聚类为单词,TF-I…...