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

高速PCB设计指南系列(二)

第三篇  高速PCB设计

、电子系统设计所面临的挑战

  随着系统设计复杂性和集成度的大规模提高,电子系统设计师们正在从事100MHZ以上的电路设计,总线的工作频率也已经达到或者超过50MHZ,有的甚至超过100MHZ。目前约50% 的设计的时钟频率超过50MHz,将近20% 的设计主频超过120MHz。
  当系统工作在50MHz时,将产生传输线效应和信号的完整性问题;而当系统时钟达到120MHz时,除非使用高速电路设计知识,否则基于传统方法设计的PCB将无法工作。因此,高速电路设计技术已经成为电子系统设计师必须采取的设计手段。只有通过使用高速电路设计师的设计技术,才能实现设计过程的可控性。

、什么是高速电路

  通常认为如果数字逻辑电路的频率达到或者超过45MHZ~50MHZ,而且工作在这个频率之上的电路已经占到了整个电子系统一定的份量(比如说1/3),就称为高速电路。
  实际上,信号边沿的谐波频率比信号本身的频率高,是信号快速变化的上升沿与下降沿(或称信号的跳变)引发了信号传输的非预期结果。因此,通常约定如果线传播延时大于1/2数字信号驱动端的上升时间,则认为此类信号是高速信号并产生传输线效应。
    信号的传递发生在信号状态改变的瞬间,如上升或下降时间。信号从驱动端到接收端经过一段固定的时间,如果传输时间小于1/2的上升或下降时间,那么来自接收端的反射信号将在信号改变状态之前到达驱动端。反之,反射信号将在信号改变状态之后到达驱动端。如果反射信号很强,叠加的波形就有可能会改变逻辑状态。

、高速信号的确定

  上面我们定义了传输线效应发生的前提条件,但是如何得知线延时是否大于1/2驱动端的信号上升时间? 一般地,信号上升时间的典型值可通过器件手册给出,而信号的传播时间在PCB设计中由实际布线长度决定。下图为信号上升时间和允许的布线长度(延时)的对应关系。 
    PCB 板上每单位英寸的延时为 0.167ns.。但是,如果过孔多,器件管脚多,网线上设置的约束多,延时将增大。通常高速逻辑器件的信号上升时间大约为0.2ns。如果板上有GaAs芯片,则最大布线长度为7.62mm。
    设Tr 为信号上升时间, Tpd 为信号线传播延时。如果Tr≥4Tpd,信号落在安全区域。如果2Tpd≥Tr≥4Tpd,信号落在不确定区域。如果Tr≤2Tpd,信号落在问题区域。对于落在不确定区域及问题区域的信号,应该使用高速布线方法。

、什么是传输线

    PCB板上的走线可等效为下图所示的串联和并联的电容、电阻和电感结构。串联电阻的典型值0.25-0.55 ohms/foot,因为绝缘层的缘故,并联电阻阻值通常很高。将寄生电阻、电容和电感加到实际的PCB连线中之后,连线上的最终阻抗称为特征阻抗Zo。线径越宽,距电源/地越近,或隔离层的介电常数越高,特征阻抗就越小。如果传输线和接收端的阻抗不匹配,那么输出的电流信号和信号最终的稳定状态将不同,这就引起信号在接收端产生反射,这个反射信号将传回信号发射端并再次反射回来。随着能量的减弱反射信号的幅度将减小,直到信号的电压和电流达到稳定。这种效应被称为振荡,信号的振荡在信号的上升沿和下降沿经常可以看到。

、传输线效应

基于上述定义的传输线模型,归纳起来,传输线会对整个电路设计带来以下效应。
· 反射信号Reflected signals
· 延时和时序错误Delay & Timing errors
· 多次跨越逻辑电平门限错误False Switching
· 过冲与下冲Overshoot/Undershoot
· 串扰Induced Noise (or crosstalk)
· 电磁辐射EMI radiation

5.1 反射信号
  如果一根走线没有被正确终结(终端匹配),那么来自于驱动端的信号脉冲在接收端被反射,从而引发不预期效应,使信号轮廓失真。当失真变形非常显著时可导致多种错误,引起设计失败。同时,失真变形的信号对噪声的敏感性增加了,也会引起设计失败。如果上述情况没有被足够考虑,EMI将显著增加,这就不单单影响自身设计结果,还会造成整个系统的失败。
    反射信号产生的主要原因:过长的走线;未被匹配终结的传输线,过量电容或电感以及阻抗失配。


5.2 延时和时序错误
  信号延时和时序错误表现为:信号在逻辑电平的高与低门限之间变化时保持一段时间信号不跳变。过多的信号延时可能导致时序错误和器件功能的混乱。
  通常在有多个接收端时会出现问题。电路设计师必须确定最坏情况下的时间延时以确保设计的正确性。信号延时产生的原因:驱动过载,走线过长。  

5.3 多次跨越逻辑电平门限错误
    信号在跳变的过程中可能多次跨越逻辑电平门限从而导致这一类型的错误。多次跨越逻辑电平门限错误是信号振荡的一种特殊的形式,即信号的振荡发生在逻辑电平门限附近,多次跨越逻辑电平门限会导致逻辑功能紊乱。反射信号产生的原因:过长的走线,未被终结的传输线,过量电容或电感以及阻抗失配。  

5.4 过冲与下冲
   过冲与下冲来源于走线过长或者信号变化太快两方面的原因。虽然大多数元件接收端有输入保护二极管保护,但有时这些过冲电平会远远超过元件电源电压范围,损坏元器件。

5.5 串扰
  串扰表现为在一根信号线上有信号通过时,在PCB板上与之相邻的信号线上就会感应出相关的信号,我们称之为串扰。
  信号线距离地线越近,线间距越大,产生的串扰信号越小。异步信号和时钟信号更容易产生串扰。因此解串扰的方法是移开发生串扰的信号或屏蔽被严重干扰的信号。
5.6 电磁辐射
EMI(Electro-Magnetic Interference)即电磁干扰,产生的问题包含过量的电磁辐射及对电磁辐射的敏感性两方面。EMI表现为当数字系统加电运行时,会对周围环境辐射电磁波,从而干扰周围环境中电子设备的正常工作。它产生的主要原因是电路工作频率太高以及布局布线不合理。目前已有进行 EMI仿真的软件工具,但EMI仿真器都很昂贵,仿真参数和边界条件设置又很困难,这将直接影响仿真结果的准确性和实用性。最通常的做法是将控制EMI的各项设计规则应用在设计的每一环节,实现在设计各环节上的规则驱动和控制。


、避免传输线效应的方法
针对上述传输线问题所引入的影响,我们从以下几方面谈谈控制这些影响的方法。

6.1 严格控制关键网线的走线长度
  如果设计中有高速跳变的边沿,就必须考虑到在PCB板上存在传输线效应的问题。现在普遍使用的很高时钟频率的快速集成电路芯片更是存在这样的问题。解决这个问题有一些基本原则:如果采用CMOS或TTL电路进行设计,工作频率小于10MHz,布线长度应不大于7英寸。工作频率在50MHz布线长度应不大于1.5英寸。如果工作频率达到或超过75MHz布线长度应在1英寸。对于GaAs芯片最大的布线长度应为0.3英寸。如果超过这个标准,就存在传输线的问题。

6.2 合理规划走线的拓扑结构
  解决传输线效应的另一个方法是选择正确的布线路径和终端拓扑结构。走线的拓扑结构是指一根网线的布线顺序及布线结构。当使用高速逻辑器件时,除非走线分支长度保持很短,否则边沿快速变化的信号将被信号主干走线上的分支走线所扭曲。通常情形下,PCB走线采用两种基本拓扑结构,即菊花链(Daisy Chain)布线和星形(Star)分布。
  对于菊花链布线,布线从驱动端开始,依次到达各接收端。如果使用串联电阻来改变信号特性,串联电阻的位置应该紧靠驱动端。在控制走线的高次谐波干扰方面,菊花链走线效果最好。但这种走线方式布通率最低,不容易100%布通。实际设计中,我们是使菊花链布线中分支长度尽可能短,安全的长度值应该是:Stub Delay <= Trt *0.1.
  例如,高速TTL电路中的分支端长度应小于1.5英寸。这种拓扑结构占用的布线空间较小并可用单一电阻匹配终结。但是这种走线结构使得在不同的信号接收端信号的接收是不同步的。
  星形拓扑结构可以有效的避免时钟信号的不同步问题,但在密度很高的PCB板上手工完成布线十分困难。采用自动布线器是完成星型布线的最好的方法。每条分支上都需要终端电阻。终端电阻的阻值应和连线的特征阻抗相匹配。这可通过手工计算,也可通过CAD工具计算出特征阻抗值和终端匹配电阻值。 

  在上面的两个例子中使用了简单的终端电阻,实际中可选择使用更复杂的匹配终端。第一种选择是RC匹配终端。RC匹配终端可以减少功率消耗,但只能使用于信号工作比较稳定的情况。这种方式最适合于对时钟线信号进行匹配处理。其缺点是RC匹配终端中的电容可能影响信号的形状和传播速度。
  串联电阻匹配终端不会产生额外的功率消耗,但会减慢信号的传输。这种方式用于时间延迟影响不大的总线驱动电路。  串联电阻匹配终端的优势还在于可以减少板上器件的使用数量和连线密度。
  最后一种方式为分离匹配终端,这种方式匹配元件需要放置在接收端附近。其优点是不会拉低信号,并且可以很好的避免噪声。典型的用于TTL输入信号(ACT, HCT, FAST)。
  此外,对于终端匹配电阻的封装型式和安装型式也必须考虑。通常SMD表面贴装电阻比通孔元件具有较低的电感,所以SMD封装元件成为首选。如果选择普通直插电阻也有两种安装方式可选:垂直方式和水平方式。
  垂直安装方式中电阻的一条安装管脚很短,可以减少电阻和电路板间的热阻,使电阻的热量更加容易散发到空气中。但较长的垂直安装会增加电阻的电感。水平安装方式因安装较低有更低的电感。但过热的电阻会出现漂移,在最坏的情况下电阻成为开路,造成PCB走线终结匹配失效,成为潜在的失败因素。  

6.3 抑止电磁干扰的方法
  很好地解决信号完整性问题将改善PCB板的电磁兼容性(EMC)。其中非常重要的是保证PCB板有很好的接地。对复杂的设计采用一个信号层配一个地线层是十分有效的方法。此外,使电路板的最外层信号的密度最小也是减少电磁辐射的好方法,这种方法可采用"表面积层"技术"Build-up"设计制做PCB来实现。表面积层通过在普通工艺 PCB 上增加薄绝缘层和用于贯穿这些层的微孔的组合来实现 ,电阻和电容可埋在表层下,单位面积上的走线密度会增加近一倍,因而可降低 PCB的体积。PCB 面积的缩小对走线的拓扑结构有巨大的影响,这意味着缩小的电流回路,缩小的分支走线长度,而电磁辐射近似正比于电流回路的面积;同时小体积特征意味着高密度引脚封装器件可以被使用,这又使得连线长度下降,从而电流回路减小,提高电磁兼容特性。

6.4 其它可采用技术
  为减小集成电路芯片电源上的电压瞬时过冲,应该为集成电路芯片添加去耦电容。这可以有效去除电源上的毛刺的影响并减少在印制板上的电源环路的辐射。
  当去耦电容直接连接在集成电路的电源管腿上而不是连接在电源层上时,其平滑毛刺的效果最好。这就是为什么有一些器件插座上带有去耦电容,而有的器件要求去耦电容距器件的距离要足够的小。
  任何高速和高功耗的器件应尽量放置在一起以减少电源电压瞬时过冲。
  如果没有电源层,那么长的电源连线会在信号和回路间形成环路,成为辐射源和易感应电路。
  走线构成一个不穿过同一网线或其它走线的环路的情况称为开环。如果环路穿过同一网线其它走线则构成闭环。两种情况都会形成天线效应(线天线和环形天线)。天线对外产生EMI辐射,同时自身也是敏感电路。闭环是一个必须考虑的问题,因为它产生的辐射与闭环面积近似成正比。

相关文章:

高速PCB设计指南系列(二)

第三篇 高速PCB设计 &#xff08;一&#xff09;、电子系统设计所面临的挑战   随着系统设计复杂性和集成度的大规模提高&#xff0c;电子系统设计师们正在从事100MHZ以上的电路设计&#xff0c;总线的工作频率也已经达到或者超过50MHZ&#xff0c;有的甚至超过100MHZ。目前…...

uniapp项目打包上线流程

平台&#xff1a;h5小程序app &#xff08;安卓&#xff09;小程序打包上线流程第一步&#xff1a;登录小程序公众平台第二步&#xff1a;hbuilderx打包小程序1.在mainfest.json文件中进行相关配置2.需要将项目中的网络请求改为https协议做为生产环境&#xff08;配置项目的环境…...

垃圾回收:垃圾数据如何自动回收

有些数据被使用之后&#xff0c;可能就不再需要了&#xff0c;我们把这种数据称为垃圾数据。如果这些垃圾数据一直保存在内存中&#xff0c;那么内存会越用越多&#xff0c;所以我们需要对这些垃圾数据进行回收&#xff0c;以释放有限的内存空间 不同语言的垃圾回收策略 通常…...

苹果笔不用原装可以吗?Apple Pencil平替笔推荐

近些年来&#xff0c;不管是学习还是画画&#xff0c;都有不少人喜欢用ipad。而ipad的用户&#xff0c;也是比较重视它的实用价值&#xff0c;尤其是不少人都想要好好利用来进行学习记笔记。事实上&#xff0c;有很多替代品都能替代Apple Pencil&#xff0c;仅仅用于记笔记就没…...

uniCloud基础使用-杂文

获取openID云函数use strict; exports.main async (event, context) > {//event为客户端上传的参数console.log(event : , event)// jscode2session 微信小程序登录接口&#xff0c;获取openidconst {code} event;// 云函数中如需要请求其他http服务&#xff0c;则使用uni…...

vector的模拟实现

文章目录vector的模拟实现vector 结构定义1. vector的迭代器的实现2. vector四个默认成员函数2.1 构造函数2.1.1 无参2.1.2 n个val初始化2.1.3 迭代器初始化2.2 析构函数2.3 拷贝构造函数2.3.1 传统写法2.3.2 现代写法2.4 赋值重载运算符3. 管理数组相关接口3.1 reserve3.2 res…...

【无标题】compose系列教程-4.相对布局ConstraintLayout的使用

相对布局在Compose中被称为ConstraintLayout&#xff0c;它可以让您以相对于其他元素的方式放置元素。 以下是使用ConstraintLayout实现相对布局的示例代码&#xff1a; Composable fun ConstraintLayoutExample() { ConstraintLayout(modifier Modifier.fillMaxSize()…...

JavaEE简单示例——Bean管理

简单介绍&#xff1a; 在这一章节我们会比较详细的介绍我们在之前的测试类中以及Bean管理XML配置文件中所使用到的类和方法&#xff0c;以及XML中配置的属性所代表的详细含义。以及之前我们反复提到但是一直没有详细的讲解的一个东西&#xff1a;容器。我们可以大致的有一个概…...

react+antdpro+ts实现企业级项目四:注册页面实现及useEmotionCss的介绍

创建文件路径并注册register路由 在pages/User下创建Register文件夹并创建index.tsx文件 然后在config/routes创建register注册路由。注册完后&#xff0c;当在登陆页面点击注册按钮时就可以跳转到此注册页面而不会报404了。 export default [{path: /user,layout: false,rou…...

Shifu基础功能:数据采集

数据采集 我们可以通过HTTP/gRPC与deviceShifu进行通信&#xff0c;deviceShifu会将我们发送的请求转换成设备所支持协议的形式&#xff0c;并发送给设备。 当设备接收到指令之后&#xff0c;数据会传输到deviceShifu中&#xff0c;之后deviceShifu将数据作为我们请求的返回值…...

代码随想录算法训练营day54 | 动态规划之子序列 392.判断子序列 115.不同的子序列

day54392.判断子序列1.确定dp数组&#xff08;dp table&#xff09;以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组115.不同的子序列1.确定dp数组&#xff08;dp table&#xff09;以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺…...

MCAL知识点(三):Port与Dio配置

目录 1、概述 2、 Port的EB-tresos配置 2.1、创建模块 2.2 General配置 2.3、PortCnfigSet 2.4、Port的属性...

初识C++需要了解的一些东西(1)

目录&#x1f947;命名空间&#x1f3c5;存在原因&#x1f3f5;命名空间定义&#x1f3a7;命名空间的3种使用方式&#x1f3c6;C输入和输出&#x1f31d;缺省参数&#x1f31c;缺省参数概念⭐️缺省参数分类☀️函数重载&#x1f525;引用&#x1f31a;引用概念&#x1f313;引…...

友元函数的使用大全

概述 我们知道&#xff0c;C的类具有封装和信息隐藏的特性。一般情况下&#xff0c;我们会封装public的成员函数供用户调用&#xff0c;而将成员变量设置为private或protected。但在一些比较复杂的业务情况下&#xff0c;可能需要去访问对象中大量的private或protected成员变量…...

QT学习笔记-QT多项目系统中如何指定各项目的编译顺序

QT学习笔记-QT多项目系统中如何指定各项目的编译顺序背景环境解决思路具体操作背景 为了更好的复用程序功能以及更优雅的管理程序&#xff0c;有经验的程序员通常要对程序进行分层和模块化设计。在QT/C这个工具中同样可以通过创建子项目的方式对程序进行模块化&#xff0c;在这…...

JWT令牌解析及刷新令牌(十一)

写在前面&#xff1a;各位看到此博客的小伙伴&#xff0c;如有不对的地方请及时通过私信我或者评论此博客的方式指出&#xff0c;以免误人子弟。多谢&#xff01;如果我的博客对你有帮助&#xff0c;欢迎进行评论✏️✏️、点赞&#x1f44d;&#x1f44d;、收藏⭐️⭐️&#…...

Hibernate学习(一)

Hibernate学习&#xff08;一&#xff09; Hibernate框架的概述&#xff1a; 一&#xff1a;什么是框架&#xff1a;指软件的半成品&#xff0c;已经完成了部分功能。 二&#xff1a;EE的三层架构&#xff1a; 1.EE的三层经典架构&#xff1a; 我在这里主要学的是ssh框架。 三…...

Go的 context 包的使用

文章目录背景简介主要方法获得顶级上下文当前协程上下文的操作创建下级协程的Context场景示例背景 在父子协程协作过程中, 父协程需要给子协程传递信息, 子协程依据父协程传递的信息来决定自己的操作. 这种需求下可以使用 context 包 简介 Context通常被称为上下文&#xff…...

微服务为什么要用到 API 网关?

本文介绍了 API 网关日志的价值&#xff0c;并以知名网关 Apache APISIX 为例&#xff0c;展示如何集成 API 网关日志。 作者程小兰&#xff0c;API7.ai 技术工程师&#xff0c;Apache APISIX Contributor。 原文链接 什么是微服务 微服务架构&#xff08;通常简称为微服务&a…...

SWUST OJ 1042: 中缀表达式转换为后缀表达式【表达式转逆波兰表达式】

题目描述 中缀表达式是一个通用的算术或逻辑公式表示方法&#xff0c;操作符是以中缀形式处于操作数的中间&#xff08;例&#xff1a;3 4&#xff09;&#xff0c;中缀表达式是人们常用的算术表示方法。后缀表达式不包含括号&#xff0c;运算符放在两个运算对象的后面&#…...

Matlab基础知识

MATLAB批量读入文件和导出文件一、 批量读入文件1.若文件名称有序&#xff0c;则按照文件名称规律循环读取文件(1)读入不同的excelfor i1:1:10strstrcat(F:\数据\v,int2str(i),.xlsx); %连接字符串形成文件名Axlsread(str); end注&#xff1a;变量i为整数时&#xff0c;可以用i…...

动手学深度学习【2】——softmax回归

动手学深度学习网址&#xff1a;动手学深度学习 注&#xff1a;本部分只对基础知识进行简单的介绍并附上完整的代码实现&#xff0c;更多内容可参考上述网址。 前言 前面一节我们谈到了线性回归&#xff0c;它解决的是预测某个值的问题。但是在日常生活这&#xff0c;除了预测…...

深入理解Activity的生命周期

之前学习安卓的时候只是知道生命周期是什么&#xff0c;有哪几个&#xff0c;但具体的详细的东西却不知道&#xff0c;后来看过《Android开发艺术探索》和大量博客之后&#xff0c;才觉得自己真正有点理解生命周期&#xff0c;本文是我对生命周期的认识的总结。废话少说先上图。…...

Go语言刷题常用数据结构和算法

数据结构 字符串 string 访问字符串中的值 通过下标访问 s1 : "hello world"first : s[0]通过切片访问 s2 : []byte(s1) first : s2[0]通过for-range循环访问 for i, v : range s1 {fmt.Println(i, v) }查询字符是否属于特定字符集 // 判断字符串中是否包含a、b、…...

深入vue2.x源码系列:手写代码来模拟Vue2.x的响应式数据实现

前言 Vue响应式原理由以下三个部分组成&#xff1a; 数据劫持&#xff1a;Vue通过Object.defineProperty()方法对data中的每个属性进行拦截&#xff0c;当属性值发生变化时&#xff0c;会触发setter方法&#xff0c;通知依赖更新。发布-订阅模式&#xff1a;Vue使用发布-订阅…...

Linux线程控制

本篇我将学习如何使用多线程。要使用多线程&#xff0c;因为Linux没有给一般用户直接提供操作线程的接口&#xff0c;我们使用的接口&#xff0c;都是系统工程师封装打包成原生线程库中的。那么就需要用到原生线程库。因此&#xff0c;需要引入-lpthread&#xff0c;即连接原生…...

【LeetCode】剑指 Offer(20)

目录 题目&#xff1a;剑指 Offer 38. 字符串的排列 - 力扣&#xff08;Leetcode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 写在最后&#xff1a; 题目&#xff1a;剑指 Offer 38. 字符串的…...

FutureTask中的outcome字段是如何保证可见性的?

最近在阅读FutureTask的源码是发现了一个问题那就是源码中封装结果的字段并没有使用volatile修饰&#xff0c;源码如下&#xff1a;public class FutureTask<V> implements RunnableFuture<V> {/*** 状态变化路径* Possible state transitions:* NEW -> COMPLET…...

直播回顾 | 聚焦科技自立自强,Bonree ONE 助力国产办公自动化平稳替代

3月5日&#xff0c;两会发布《政府工作报告》&#xff0c;强调科技政策要聚焦自立自强。 统计显示&#xff0c;2022年金融信创项目数同比增长300%&#xff0c;金融领域信创建设当前已进入发展爆发期&#xff0c;由国有大型银行逐渐向中小型银行、非银金融机构不断扩展。信创云…...

深入理解Linux进程

进程参数和环境变量的意义一般情况下&#xff0c;子进程的创建是为了解决某个问题。那么解决问题什么问题呢&#xff1f;这个就需要进程参数和环境变量来进行决定的。子进程解决问题需要父进程的“数据输入”(进程参数 & 环境变量)设计原则&#xff1a;3.1 子进程启动的时候…...

Vue3之组件间的双向绑定

何为组件间双向绑定 我们都知道当父组件改变了某个值后&#xff0c;如果这个值传给了子组件&#xff0c;那么子组件也会自动跟着改变&#xff0c;但是这是单向的&#xff0c;使用v-bind的方式&#xff0c;即子组件可以使用父组件的值&#xff0c;但是不能改变这个值。组件间的…...

Java语法基础(一)

目录 代码注释方法 编码规范 基本数据类型及取值范围 变量和常量的声明与赋值 变量 常量 标识符 基本数据类型的使用 整数类型的使用 浮点类型的使用 布尔类型的使用 字符类型的使用 代码注释方法 单行注释&#xff1a;使用“//”进行单行注释多行注释&#xff1a;使…...

优思学院|零质量控制是什么概念?

零质量控制&#xff08;Zero Quality Control&#xff09;是指一个理想的系统&#xff0c;可以生产没有任何缺陷的产品&#xff0c;因此不需要频繁的检查&#xff0c;从而节省时间和金钱。那些追求过程优化并致力于持续过程改进的组织将零质量控制&#xff08;Zero Quality Con…...

2023-03-09 CMU15445-Query Execution

摘要: CMU15445, Project #3 - Query Execution 参考: Project #3 - Query Execution | CMU 15-445/645 :: Intro to Database Systems (Fall 2022) https://github.com/cmu-db/bustub 要求: OVERVIEW At this point in the semester, you have implemented the internal co…...

vuedraggable的使用

Draggable为基于Sortable.js的vue组件&#xff0c;用以实现拖拽功能。 特性 支持触摸设备 支持拖拽和选择文本 支持智能滚动 支持不同列表之间的拖拽 不以jQuery为基础 和视图模型同步刷新 和vue2的国度动画兼容 支持撤销操作 当需要完全控制时&#xff0c;可以抛出所有变化 可…...

双馈风力发电机-900V直流混合储能并网系统MATLAB仿真

MATLAB2016b主体模型&#xff1a;双馈感应风机模块、采用真实风速数据。混合储能模块、逆变器模块、转子过电流保护模块、整流器控制模块、逆变器控制模块。直流母线电压&#xff1a;有功、无功输出&#xff08;此处忘记乘负一信号输出&#xff09;&#xff0c;所以是负的。蓄电…...

leader选举过程

启动electionTimer&#xff0c;进行leader选举。 一段时间没有leader和follower通信&#xff0c;就会超时&#xff0c;开始选举leader过程。有个超时时间&#xff0c;如果到了这个时间&#xff0c;就会触发一个回调函数。具体如下: private void handleElectionTimeout() {boo…...

建造者模式

介绍 Java中的建造者模式是一种创建型设计模式,它的主要目的是为了通过一系列简单的步骤构建复杂的对象,允许创建复杂对象的不同表示形式,同时隐藏构造细节.它能够逐步构建对象,即先创建基本对象,然后逐步添加更多属性或部件,直到最终构建出完整的对象. 该模式的主要思想是将…...

IO与NIO区别

一、概念 NIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多。在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。 二、NIO和IO的主要区别 下表总结了Java I…...

无监督循环一致生成式对抗网络:PAN-Sharpening

Unsupervised Cycle-Consistent Generative Adversarial Networks for Pan Sharpening &#xff08;基于无监督循环一致生成式对抗网络的全色锐化&#xff09; 基于深度学习的全色锐化近年来受到了广泛的关注。现有方法大多属于监督学习框架&#xff0c;即对多光谱&#xff0…...

ArrayList源码分析(JDK17)

ArrayList类简介类层次结构构造无参构造有参构造添加元素add&#xff1a;添加/插入一个元素addAll:添加集合中的元素扩容mount与迭代器其他常见方法不常见方法不常见方法的源码和小介绍常见方法的源码和小介绍积累面试题ArrayList是什么&#xff1f;可以用来干嘛&#xff1f;Ar…...

数字IC/FPGA面试笔试准备(自用待填坑)

文章目录 前言常见的IC问题数字电路基础问题Verilog & SV跨时钟域信号处理类综合与时序分析类低功耗方法STA(静态时序分析)RTL设计(包含手撕代码)总线问题AXIAPBAHB体系结构的问题RISCV的问题一些笔试选择题前言 这是实验室师兄面试过程中整理的面试和笔试题目,目前只有题…...

基于多任务融合的圣女果采摘识别算法研究

基于多任务融合的圣女果采摘识别算法研究 1、简介 本文主要解决圣女果生产销售环节中&#xff0c;现有的流程是采摘成熟的圣女果&#xff0c;再对采摘下的果实进行单独的品质分级&#xff0c;不仅费时费力&#xff0c;而且多增加一个环节&#xff0c;也增加了对果实的二次伤害…...

又一个开源第一!飞桨联合百舸,Stable Diffusion推理速度遥遥领先

AIGC(AI Generated Content)&#xff0c;即通过人工智能方法生成内容&#xff0c;是当前深度学习最热门的方向之一。其在绘画、写作等场景的应用也一直层出不穷&#xff0c;其中&#xff0c;AI绘画是大家关注和体验较多的方向。 Diffusion系列文生图模型可以实现AI绘画应用&…...

数据链路层及交换机工作原理

目录 一&#xff0c;帧格式 1.1 帧头类型字段的作用 1.2 MAC地址 1.3 MTU值 二&#xff0c;交换机工作原理 2.1 交换机的端口 2.2 端口状态 三&#xff0c;交换机基本工作模式及命令 3.1 交换机的工作模式&#xff1a; 3.2 命令 一&#xff0c;帧格式 其中类型是指&am…...

VSCode 开发配置,一文搞定(持续更新中...)

一、快速生成页面骨架 文件 > 首选项 > 配置用户代码片段 选择需要的代码片段或者创建一个新的&#xff0c;这里以 vue.json 举例&#xff1a; 下面为我配置的代码片段&#xff0c;仅供参考&#xff1a; {"Print to console": {"prefix": "…...

全网最详细的(CentOS7)MySQL安装

一、环境介绍 操作系统&#xff1a;CentOS 7 MySQL&#xff1a;5.7 二、MySQL卸载 查看软件 rpm -qa|grep mysql 卸载MySQL yum remove -y mysql mysql-libs mysql-common rm -rf /var/lib/mysql rm /etc/my.cnf 查看是否还有 MySQL 软件&#xff0c;有的话继续删除。 软件卸…...

基于LSTM的文本情感分析(Keras版)

一、前言 文本情感分析是自然语言处理中非常基本的任务&#xff0c;我们生活中有很多都是属于这一任务。比如购物网站的好评、差评&#xff0c;垃圾邮件过滤、垃圾短信过滤等。文本情感分析的实现方法也是多种多样的&#xff0c;可以使用传统的朴素贝叶斯、决策树&#xff0c;…...

2023年全国最新机动车签字授权人精选真题及答案17

百分百题库提供机动车签字授权人考试试题、机动车签字授权人考试预测题、机动车签字授权人考试真题、机动车签字授权人证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 三、多选题 1.注册登记安全检验时&#xff0c;送检乘用…...

PowerShell远程代码执行漏洞(CVE-2022-41076)分析与复现

漏洞概述PowerShell&#xff08;包括Windows PowerShell和PowerShell Core&#xff09;是微软公司开发的任务自动化和配置管理程序&#xff0c;最初只是一个 Windows 组件&#xff0c;由命令行 shell 和相关的脚本语言组成。后于2016年8月18日开源并提供跨平台支持。PowerShell…...