交流耦合和直流耦合

news2024/11/26 5:59:48

一、 AC和DC定义

    在选择输入模式时,可能选择不同的耦合方式会影响到数据中的频率成分。大多数信号都有AC成分和DC成分,DC成分是0Hz的部分,对应时域信号中的直流分量(或称为直流偏置),AC成分是信号中的交变部分,包含信号中所有的非零频率成分,如下图所示。

图片

    如上图所示,交变的AC部分围绕DC偏置波动,有时称这个直流分量DC部分为基线,即信号围绕基线波动。对直流偏置进行FFT分析,得到0Hz的成分。对交变部分进行FFT分析,则得到信号中的非零频率成分。

    我们在FFT频谱图中,有时是不是看到0Hz的幅值很大,而非零频率成分却很小。这时,为了更好地查看非零频率成分,有时需要去掉前面几个频率点数据或者显示1或2Hz以上的频率部分。

二、交流耦合和直流耦合

    我们采集到的信号总不会是理想波形,例如,在采集交流信号的时候,可能会混入直流分量,而在采集直流信号的时候,也有可能混入交流分量,所以一个待测信号包含交流和直流两部分。耦合是指两个不同介质中通过物理连接时进行的能量传递。

1、交流耦合

    交流耦合(AC coupling)是在信号与采集点之间加入电容,由于电容具有通交阻直的特性,直流分量就会很容易被过滤掉。因此,交流耦合也被称为电容耦合。AC耦合只允许交流信号通过。

    只允许信号中的交变部分通过,将移除信号中的直流分量(DC部分),通常使用隔直电容器实现。AC耦合可有效地阻隔掉信号中的DC部分,使信号的平均值为0。如下图所示的一个应变信号采用AC耦合时,得到的测量值围绕0με波动。

图片

 2、直流耦合

    直流耦合(DC coupling)因为交流分量往往没有办法过滤,因此,所谓的直流耦合,就是对信号不做任何处理。这样可以同时采集交流和直流信号来进行分析。DC耦合允许任何类型信号通过;

    DC耦合同时允许信号中的交变部分(AC)和直流分量(DC)通过。DC成分为0Hz的信号,扮演了偏置的作用,而AC部分则围绕这个直流偏置量进行波动。如下图所示为一个应变测量信号采用DC耦合时,得到的交变部分围绕55με波动。

图片

三、怎样选择耦合方式

    由于选择不同的耦合方式会导致信号的差异,那么,相对而言,该如何选择耦合方式呢?

    如果要过滤掉信号中的直流部分,就需要通过交流耦合(AC耦合),交流耦合是指在信号与采集点之间加入电容,由于电容具有通交阻直的特性,直流分量就会很容易被过滤掉。因此,交流耦合也被称为电容耦合。

    但是交流分量往往没有办法过滤,因此,所谓的直流耦合,就是对信号不做任何处理。这样可以同时采集交流和直流信号来进行分析。

    如果要过滤掉信号中的交流分量,可以考虑采用滤波器来实现,通过低通滤波器可以有效过滤掉相当一部分交流分量。

    AC耦合会移除信号中的直流分量DC部分,但是它只移除0Hz吗?其实不然,下图给出了AC耦合的滤波特征。滤波器的高通截止频率是在信号幅值的0.707倍处,也就是-3dB点。当然这个截止频率是耦合电路的函数,依赖于您使用的电子元器件。

    下图中给出的是在0.5Hz耦合,也就是说截止频率为0.5Hz。因此,AC耦合会移除信号中的直流分量,但同时也会衰减额外的低频段,如0-0.5Hz。

图片

   如下图所示出了一种交流终接方案,以及电容的每一端的波形·请注意电容将隔断信号的全部直流分量,因此,接收器端只会观察到输入信号的前沿和后沿·输入的波形将对网络充电,于是能量会以RC时间常数缓慢地耗散.

交流耦合方案具有如下的优点∶

1、接收器处的输入波形将以偏置电压(VBLAs)为中心,这使得接收器能在器件的最佳点(sweet spot)工作,从而能减少抖动和改善性能。
2、由于CML和LVPECL并非工业标准,因此对器件的阈值并无硬性规定。假定驱动器和接收器有可能来自不同的厂商,则交流耦合能消除不同厂商的产品之间存在的任何阈值差异所造成的影响。
3、交流耦合可以消除驱动器和接收器之间存在的任何直流偏置,因此对于各种技术之间的转换来说十分有效。
4、采用交流耦合的另一个理由是可防止在两个板卡或两个系统的地线之间出现电位差,如果一个电缆连接的两个硬件的地线存在电位差,则相应的电压差会影响到差分对的工作一或者在极端情况下会造成可靠性的问题。交流耦合则可以消除直流电位差,从而避免了这一问题。
 

    交流耦合一般出现在采用高信号速率和使用CML与LVPECL器件的应用情形中。事实上许多器件在内部的接收器终接处集成了电容器。不过交流耦合的一个缺点是需要使用有直流平衡的数据信号。
    一种能同时具备交流耦合和直流耦合优点的创新性IO是DS64EV400可调均衡器的输入级,该器件可以像交流耦合那样容忍阈值和共模平移上的波动,但不需要采用有直流平衡的数据。
 

四、直流平衡

    直流平衡是指在一组数据中1和0的绝对数量之间的差异大小,如果1和0的总数相等,则可以认为是“直流平衡”。直流平衡十分重要,这是因为在使用隔直电容时,电流仅仅在状态切换时流入接收器的终接网络。如果没有切换,则两个接收器端子上的电荷将缓慢地向著同一个量值衰减,从而减小了噪声裕量。

    直流平衡是什么意思呢?如上图所示,由于我们的串行链路中会有交流耦合电容,信号频率越高,阻抗越低,反之频率越低,阻抗越高。因此上面的情况,当码型是高频的时候,基本上可以不损耗的传输过去,但是当码型为连续“0”或者“1”的情况时,电容的损耗就很大,导致幅度不断降低,带来的严重后果是无法识别到底是“1”还是“0”。因此编码就是为了尽量把低频的码型优化成较高频的码型,从而保证低损耗的传输过去。   

    如图所示出了交流耦合电路在启动时的变化过程的示例。最初,两个输入端都为1.2V的电位,而随著第一个正向跳变位到达时,每个端子都跟随著输入波形发生变化,产生极性相反、幅值最大的漂移,随著接下来的负向跳变位的到来,两个端子间的差分电压变得很小,此时出现错误位的概率就很高,在发送了足够数量的平衡的位信息(即1和0的数量相等)后,接收器的每个端子的电位都在1.0V和1.4V之间切换,从而达到最高的噪声裕量该示例属于通电启动时的动态过程,但与传输一长串极性相同的位信息或者非平衡数据的情形很类似,非平衡的数据会缩减噪声裕量,因为接收器端子之间的差分信号无法始终保持为最大值。

    交流耦合可以消除驱动器和接收器之间存在的直流偏置。但是电容将隔断信号的全部直流分量,因此,接收器端只会观察到输入信号的前沿和后沿。当数据 0 或 1 连续出现时,电容会造成接收 端电压下降,信号产生抖动。 交流耦合传输过程中需要使用直流平衡的数据信号。在使用隔直电 容时,电流仅在状态切换时流入接收器的终接网络。因此 0 或 1 连续出现时间过长会影响信号传 输。而直流平衡可以减少 0 或 1 连续出现的情况。

五、8b/10b编码方案

 1、8b/10b的定义

    为可以确保高水平的直流平衡信号,则应采用各种编码方案,如常见的8b/10b。虽然直流平衡是指整个数据组的,但还有其他的一些衡量指标可以反映在短期内器件性能偏离理想值的情况。

    8b/10b编码是指将8b的数据通过某种编码规则扩展成10b,保证数据流中的“0”和“1”数量基本一致,通过降低效率来增加传输的数据恢复的可靠性。8b/10b编码的特性之一是保证DC 平衡,采用8b/10b编码方式,可使得发送的“0”、“1”数量保持基本一致,连续的“1”或“0”不超过5位,即每5个连续的“1”或“0”后必须插入一位“0”或“1”,从而保证信号DC平衡,它就是说,在链路超时时不致发生DC失调。

2、8b/10b 主要优点

  • 保证直流(DC)平衡

  • 有利于提取时钟 时钟恢复是依赖于“电平跳变沿“,所以平衡”0“和”1“,可以简化了时钟恢复,降低了接收机成本。

  • 方便错误检查 8B/10B编码采用冗余方式,将8位的数据和一些特殊字符按照特定的规则编码成10位的数据,根据这些规则,能检测出传输过程中单个和多个比特误码。

 具体8b/10b编码原理见地址:SerDes 基础详解_使用serdes通行范例-CSDN博客

  六、交流耦合电容的选用


    RC时间长度、数据位的宽度、运行长度决定了交流耦合所造成的信号衰减(下降)幅度的大小。为了节省电路板的空间,应该采用尺寸较小的电容器,但是体积较大的电容可以减小信号的衰落。以下等式提供了一种方法,用于粗略估算和确保信号衰减仅为0.25 dB(3%)时所需的电容值。


高速应用所采用的电容值一般在0.1 uF~0.01 uF之间。


   当利用交流耦合结构时,耦合电容的选取应特别小心,该电容与负载阻抗一起构成高通滤波结构,非归零的连0 或连1 出现时,电容会造成接收端电压下降,过零点偏移,通过下面的图形可以很好地理解这一点。

交流耦合造成低频分量损失,过零点漂移

    为防止连零和连1 序列造成负载电压有较大下降,我们可以把耦合电容与负载组成的高通网络的3dB 转角频率降低,下面主要从时域对此进行分析,我们知道一级高通RC 网络的时域响应为:

    NRZ 数据信号经过电容耦合至50Ω的负载上,信号这时的摆动则以0 为基准。我们把信号幅度以VP-P进行归一化处理,电压幅度归一化为±0.5VP-P。假定负载最初充电电压为V0+=0.5VP-P,最终电压为V∞=0。τ为HPF 的时常数,则经过一段时间t 后,负载电压下降ΔV为: 

0317015d742556d3dac4a5c6f9579d46.jpeg

    如允许在时间t 时,功率下降0.25dB,则ΔV/ VP-P = 6%;

    如果我们定义TB为数据每比特周期,NCID为最大容许的连零或连1 数目,负载阻抗R=50 Ω,C 为耦合电容,则t=NCID·TB,τ=R·C,C 可通过下面式子估算:

    我们以2.488Gbps 的系统为例,TB = 400ps,NCID = 100bit,通过计算得C =6.2nF。下面计算该电容造成的过零点偏移大小:

    tr在这里指NRZ 信号幅度从20%到80%的上升时间,一般可通过下式估算:

    BW 指系统带宽,通常为0.6~1 倍数据速率,对于2.5Gbps 系统,如果取tr=120ps,C=6.2nF,计算得LFPDJ等于13ps,如果把C 增加到100nF,这时LFPDJ将小于1ps,可以忽略不计。

七、AC耦合为何必须使用直流均衡信号

   

    信号的AC耦合方式具有屏蔽发送端和接收端直流偏置不一致的好处,但并不是所有信号都适合使用这种方式传输,即只有直流平衡信号(数据流中的1与0的数量相等的状态)才可以。从电容充放电的角度,解释非直流平衡信号不适用于AC耦合方式传输的原因。

    非直流平衡信号是不带任何编码方案的信号,直流平衡信号是带有编码方案的信号,比如8b/10b编码。

1、问题的提出

    在某系统研发过程中,出现了2次串行数据在接收端不能正常接收的情形,均为AC耦合时传输了非直流平衡信号。一次是发送固定码型64个连0然后一个1的变化,在接收端不能正确解码;另外一次为PRBS的数据源经过ADC采样后,每个采样点量化的8bit分别由8个通道传输,每个通道的0,1不均衡,使用AC耦合传输后不能正常接收。为何非直流平衡信号不能通过AC耦合电路,本文试图解释这一问题。

2、解决思路

1.电容的基本概念

电容的定义如公式1所示。

图片

Q为电容的电荷量,U为电容两极间电压。

    根据这个定义可以知道,电容可以储存电荷,储存的电荷量与加在电容上的电压有关。电容在存储或者释放电荷时,必然会有电荷的流动,形成电流。电流的大小如公式2所示。

图片

    比如电容在充电时,正极板积聚更多正电荷,负极板积聚更多负电荷,电荷的迁徙必将产生电流。这个公式说明,对于同一个电容来说,充放电时电流大小与电容极板间电压的变化快慢有关,变化越快,电流越大。

2.电容的充电和放电

通俗的解释电容的充电和放电,可以有如下描述。

电容充电:两极板的压差变大,积聚更多电荷;

电容放电:两极板的压差变小,释放更多电荷;

设电容初始电压为V0,最终电压为V∞,则任意时刻t的充电/放电电压为

图片

图片

图 1  电容充放电电压曲线

    一般情况下,在大约3~5RC后,电容的充放电过程就基本完成了。因此时间常数RC直接决定了电容充放电的快慢。根据公式2,对于同一个电路来说(充放电时间一样),充放电前后的压差越大(电容压差定义为|V∞- V0|),那么充放电的电流也就越大。

    电容的隔直流,通交流特性,也由电容的充放电来解释。如果电容两极的电压不变化,则没有电流和电荷的流动。如果电压发生变化,电路中就会产生电流,电流在电容的另一端就会引起电压的变化。也就是说,直流信号相当于极板间电压无变化,没有电流流过;交流信号,电容在不停的充放电,有电流流过,则相应的电压变化也传递到电容的另外一端。

3.电容两端电压不能突变

    不论电荷聚集到电容极板还是从电容极板释放,都需要一个过程,也就是电容上的电荷值不会突变,根据公式1电容两端的电压也不会突变,而是随着电荷Q的聚集/释放过程而逐渐变化。比如电容两侧目前电压分别为V1=1.2V,V2=0.8V,电容充电完成到达稳态,电容两侧压差为0.4V,左侧极板积聚正电荷,右侧极板积聚负电荷,如图 2所示。

图片

图 2  电容充电稳定图

    如果电容V1侧电压瞬间增大到1.4V,电容启动充电过程。根据电容两端电压不能突变原理,此时V2处的电压会先升高到1.0V。由于电容为充电过程,V1积聚更多正电荷,V2积聚更多负电荷,释放更多正电荷,致使V2的电压下降,一直到0.8V。这时电容充电过程完成,再次进入平衡状态,此时电容两侧压差达到0.6V。

图片

图 3  电容充电时的动态电压变化

    如果电容V1侧电压瞬间降低到1.0V,电容启动放电过程。根据电容两端电压不能突变原理,此时V2处的电压会先降低到0.6V。由于电容为放电过程,V1释放更多正电荷,V2释放更多负电荷,聚集更多正电荷,致使V2的电压上升,一直到0.8V。这时电容放电过程完成,再次进入平衡状态,此时电容两侧压差达到0.2V。

图片

图 4  电容放电时的动态电压变化

    通过上面的实例分析,可以看到交流信号可以通过电容的原因:如果V1为交流信号,在1.4V和1.0V之间不停的交替变化,那么只要电容充放电的时间足够大,换句话说就是信号周期远小于充放电时间,就可以把这种变化带到V2侧,V2就会在1.0V和0.6V之间不停的交替变化,从而实现了交流信号通过电容。这个在后续章节中有更详尽的分析。

    本质上,还是由于电路中不停的有电流(电荷的迁徙)流过,最终表现为电压的变化。下面通过对于不同信号的分析,说明交流信号通过电容传输的变化情况。

    假设一个交流信号V1,经过电容进行AC耦合传输。V1信号的直流偏置为1.2V,摆幅0.4V。经过电容传输后,得到信号V2。V2的直流偏置为V2offset=0.8V。

图片

图 5  AC耦合电路示意图

4.从非直流平衡变为直流平衡

V1从常低变为交流

图片

图6  从常低电平到平衡信号的转换

   t1时刻:V0=1.0-0.8=0.2,V∞=1.4-0.8=0.6,电容压差变化|V∞-V0|=0.4V。到达t2时,电容完成了时间为∆t的充电过程,由于充电导致的V2电压变化∆V,即t2时刻V2=1.2-∆V。

    t2时刻:V0=1.4-(1.2-∆V)=0.2+∆V,V∞=1.0-0.8=0.2,电容压差变化|V∞-V0|=∆V。到达t3时,电容完成相同时间∆t的放电过程,由于放电导致的V2电压变化∆V’,到t3时刻V2=0.8-∆V+∆V’。

    结合第2小节中电容充放电时间的解释,对于同一个电路,电容压差变化(|V∞-V0|)越大,充放电的时间越短,或者说相同的时间内电容压差变化(|V∞-V0|)越大,极板电压变化(V2)越大。结合本例,在第一个∆t间隔内,电容压差变化0.4V,而第二个∆t间隔内电容压差变化∆V,0.4>>∆V,因此在相同的时间间隔∆t内,∆V大于∆V’,也就是说充电量大于放电量。这就解释了中的V2曲线的平均值不断下降的原因。

V1从常高变为交流

图片

图 7  从常高电平到平衡信号的转换

    t1时刻:V0=1.4-0.8=0.6,V∞=1.0-0.8=0.2,电容压差变化|V∞-V0|=0.4V。到达t2时,电容完成了时间为∆t的放电过程,由于放电导致的V2电压变化∆V,即t2时刻V2=0.4+∆V。

    t2时刻:V0=1.0-(0.4+∆V)=0.6-∆V,V∞=1.4-0.8=0.6,电容压差变化|V∞-V0|=∆V。到达t3时,电容完成相同时间∆t的充电过程,由于充电导致的V2电压变化∆V’,到t3时刻V2=0.8+∆V-∆V’。

    结合第2小节中电容充放电时间的解释,对于同一个电路,电容压差变化(|V∞-V0|)越大,充放电的时间越短,或者说相同的时间内电容压差变化(|V∞-V0|)越大,极板电压变化(V2)越大。结合本例,在第一个∆t间隔内,电容压差将变化0.4V,而第二个∆t间隔内电容压差变化∆V,前者电容压差变化远大于后者,因此在相同的时间间隔∆t内,∆V大于∆V’,也就是说放电量大于充电量。这就解释了中的V2曲线的平均值不断上升的原因。

5.信号为稳定的直流平衡

    第4小节中的信号,经过长时间的变化,总会有一个时刻在一个∆t间隔内的充电量与放电量达到平衡,如图 8所示。

图片

图 8  AC耦合传输直流平衡信号波形图

    t1时刻,由于前一个时间间隔内电容放电,V2=0.6+∆V,则V0=1.0-(0.6+∆V)=0.4-∆V,V∞=1.4-0.8=0.6,电容压差变化|V∞-V0|=0.2V+∆V。到达t2时,电容完成了时间为∆t的充电过程,由于充电导致的V2变化为∆V’,则在t2时刻V2=1.0V+∆V-∆V’。

    T2时刻:V0=1.4-(1.0V+∆V-∆V’),V∞=1.0-0.8=0.2V,电容压差变化|V∞-V0|=0.2-∆V+∆V’,到达t3时,电容完成了时间为∆t的放电过程,由于放电导致的V2变化为∆V’(充电和放电达到平衡,在相同时间内电压变化也相同),则在t3时刻V2=1.0-V0=0.6+∆V-∆V’+∆V’=0.6+∆V。

    由于充电和放电达到平衡,因此在t1和t2时刻计算的电容压差变化应该相等,即0.2V+∆V=0.2-∆V+∆V’,即∆V’=2∆V。如果放大这个时间片段的话(夸张的画),应该如图 9所示。也就是说,在V1的每次升高或者降低变化时,电容都在进行充电或者放电过程,只不过充放电的时间与信号变化的时间比拟起来很长,以至于几乎看不到充放电对V2信号电平的影响。

图片

图 9  AC耦合直流平衡信号局部放大

6.从直流平衡变为非直流平衡

    V1从交流变为常低。根据前两节的分析,一旦V1变为低电平,电容就会开始放电,由于V1没有再变高的过程,放电会一直持续,一直到电容重新达到平衡状态,也就是电容压差最终稳定在0.2V。

图片

图 10  V1变为常低后V2的变化图

     V1从交流变为常高。根据前两节的分析,一旦V1变为高电平,电容就会开始充电,由于V1没有再变低的过程,充电会一直持续,一直到电容重新达到平衡状态,也就是电容压差最终稳定在0.6V。

图片

图 11  V1变为常高后V2的变化图

7.单端信号到差分信号

    事实上,经常使用AC耦合的情形多为差分信号传输,那是由于不同标准电平的差分信号直流偏置会有差别,通常需要使用AC耦合进行直流偏置的隔离。对于差分信号,如果发送端直流不平衡时,在接收端又会是什么现象呢?

   根据前面各小节的分析,得到差分信号的传输波形就是很简单的了。章节4和章节6中均分析了两种数据的波形,将这两种数据分别定义为VP和VN,那么两者相减就得到差分信号的波形了,分别如图 12和图 13所示。仅从波形上看,与单端信号差别不大,仅信号的摆幅比单端信号大了一倍而已。

图片

图 12  差分信号从交变电平到常电平

图片

图 13  差分信号从常电平到交变电平

8.信号非直流平衡时的问题

综合上面的分析,如果信号出现非直流平衡,即常连0或者常连1的数量过多时,可能会造成两个方面的问题:

(1)超过信号的判决门限而造成误判

    任何信号在接收端都会有一个判决门限,比如LVDS信号会有±100mV的门限要求,即Vdiff落在0±100mV内,接收端无法判断接收数据位逻辑0还是逻辑1,可能造成误判。从图 12可以看出,如果发送端出现常连0或者常连1时,电容会过度充电或者过度放电,使接收端的电压可能降低到判决门限(比如LVDS信号的±100mV)以内,造成误判;从图 13可以看出,发送端在常连0或者常连1后,如果出现变化bit,最开始的几个周期这些信号在接收端有摆幅很小的时刻,如果同样落在判决门限(比如LVDS信号的±100mV)以内,也会造成误判。

(2)超过器件能承受的最大电压损坏器件

    从章节4可以看出,V1在常连0或者常连1后出现一个变化bit,V2会出现较大的上摆或者下摆(会到达1.2V或者0.4V),有可能会超过接收器件承受的最大电压,造成器件的损害。

    基于上述两个问题的分析,得到AC耦合电路需要使用直流平衡的信号。当然直流平衡并不是要求信号如前面章节分析的0和1交替反转的那样,本文中使用这样的信号仅为分析方便。实际使用中只要0和1的数量相等或者近似相等就可以了,出现连续的0或者连续的1不可避免,但只要不太多就可以了。比如8B/10B编码,连续的“1”或“0”不超过5位,即每5个连续的“1”或“0”后必须插入一位“0”或“1”。

9.总结

    通过分析,从电容充放电的角度,比较直观的解释了非DC平衡信号不能使用AC耦合传输的原因。同时在分析过程中,我们可以得到以下进一步引申的结论:

1.隔直电容的选择与信号频率有关。如果信号的频率较低,隔直电容不能选择的太小(充放电时间太小),以防止出现图 15所示的情形,使传输波形失真;

2.非DC平衡信号,经过AC耦合传输,信号眼图一般不会闭合,但眼图的中心电平会有偏移,眼皮变厚,眼高也会变小。

图片

图、非DC平衡信号经过AC耦合后的眼图分析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1563331.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VCRUNTIME140_1.dll丢失是怎么回事?多种解决方法帮你搞定

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“vcruntime140_1.dll文件丢失”。那么,这个文件是什么?它的作用是什么?当它丢失时,会提示什么样的错误信息呢?本文将详细介绍vcru…

谷粒商城实战(009 缓存-分布式锁)

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强 总时长 104:45:00 共408P 此文章包含第158p-第p165的内容 分布式锁 原理和使用 使用下shell对产生的命令进行发送 查看 -> 撰写 -> 撰写栏 idea 选中的代码提取成方法 加锁…

使用tcpdump和wireshark进行服务器抓包分析

目录 前言 1.tcpdump简介 2.Wireshark简介 3.实际案例 4.代码示例 5.总结 前言 服务器抓包分析是一种非常常见和有效的网络故障排查和性能优化手段。通过捕获服务器上的网络流量,可以帮助我们深入了解服务器与其它设备之间的通信情况,发现问题并进…

基于8086贪吃蛇游戏系统方恨设计

**单片机设计介绍,基于8086贪吃蛇游戏系统方恨设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于8086的贪吃蛇游戏系统设计是一个结合了微处理器控制、游戏逻辑以及图形显示技术的综合性项目。该系统旨在通过8086微处理器…

JAVA----线程

线程 上回说到 进程 > 运行起来的程序 > 并发编程 > 多核 CPU 操作系统管理进程: 先描述 > PCB 结构体 来把进程的各种属性都表示出来再组织 > 通过链表数据结构把多个 PCB 串起来. PCB 核心属性(进程调度) pid 进程标识符内存指针, 该进程依赖的 指令…

NIKKI DENSO伺服驱动器维修NCR-CAB1A2D-801B

NEXSRT伺服驱动器维修NPSA-MU日机电装伺服维修ACTUS POWER,NCS-ZE12MDA/ZE1MDA-601A,NEXSRT日机电装伺服维修NCS-ZE12MDB-401A/NCS-ZAMDA-401AG。 NIKKI常见故障原因及处理方法: 1、电机在一个方向上比另一个方向跑得快; (1) 故…

Keil MDK 5.37 及之后版本 安装 AC5(ARMCC) 编译器详细步骤

由于 Keil 5.37 及之后版本不再默认安装 AC5(ARMCC) 编译器,这就会导致由 AC5 编译的工程无法正常编译,往往输出窗口会提示以下信息:*** Target ‘STM32xxxx‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available. —…

Redis数据库:概念、安装及常用操作命令

目录 前言 一、数据库概述 1、关系型数据库(RDBMS) 1.1 产生背景 1.2 概念 1.3 特点 1.4 优缺点 1.5 常见主流关系型数据库 2、非关系型数据库(NoSQL) 2.1 产生背景 2.2 概念 2.3 特点 2.4 优缺点 2.5 常见主流非关…

实验三 Java类的继承与派生(计算机专业)

实验三 Java类的继承与派生(头歌) 制作不容易,点个关注!给大家带来更多的价值! 目录 实验三 Java类的继承与派生(头歌)** 制作不容易,点个关注!给大家带来更多的价值&…

HBase(超级无敌详细PROMAX讲解版)

简介 概述 图-1 HBase图标 HBase原本是由Yahoo!公司开发的后来贡献给了Apache的一套开源的、基于Hadoop的、分布式的、可扩展的非关系型数据库(Non-Relational Database),因此HBase不支持SQL(非关系型数据库基本上都不支持SQL),而是提供了一套单独的命…

文件搜索案列 --java

目标: 搜索盘符下面符合要求的文件名,并可以选择是否打开该文件 代码: import java.io.File; import java.io.IOException; import java.util.Arrays; import java.util.Scanner;public class findQQ {public static void main(String[] a…

Node.js-------初识Node.js与内置模块

能够知道什么是 Node.js能够知道 Node.js 可以做什么能够说出 Node.js 中的 JavaScript 的组成部分能够使用 fs 模块读写操作文件能够使用 path 模块处理路径能够使用 http 模块写一个基本的 web 服务器 一.初识Node.js 1.浏览器中的 JavaScript 的组成部分 2.Node.js 简介 …

vscode安装通义灵码

作为vscode的插件,直接使用 通义灵码-灵动指间,快码加编,你的智能编码助手 通义灵码,是一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研…

【日常记录】【JS】createNodeIterator 遍历DOM节点

文章目录 1、介绍2、createNodeIterator3、nodeType4、参考链接 1、介绍 createNodeIterator() 方法是 DOM API 中的一个方法,用于创建一个 NodeIterator 对象,可以用于遍历文档树中的一组 DOM 节点。就是可以把DOM 变成可遍历的 2、createNodeIterator …

SVM简介 详细推导 核函数 线性可分 非线性可分

SVM(Support Vector Machine) Vapnik发明用于解决二分类问题的机器学习算法。 线性可分与非线性可分 在二维平面中,线性可分指的是可以通过一条直线对平面上的点进行划分使得标签相同的点在直线的同一侧,标签不同的点在直线的不同侧。 在二维平面中&…

Linux:基本指令篇

文章目录 前言1.ls 指令2.pwd命令3.cd 指令4.touch指令5.mkdir指令(重要)6.rmdir指令 && rm 指令(重要)7.man指令(重要)8.cp指令(重要)9.mv指令(重要&#xff09…

时序数据库IoTDB:功能详解与行业应用

一文读懂时序数据库 IoTDB。 01 为什么需要时序数据库 解释时序数据库前,先了解一下何谓时序数据。 时序数据,也称为时间序列数据,是指按时间顺序记录的同一统计指标的数据集合。这类数据的来源主要是能源、工程、交通等工业物联网强关联行业…

【Java面试题系列】基础篇

目录 基本常识标识符的命名规则八种基本数据类型的大小,以及他们的封装类3*0.10.3返回值是什么short s1 1; s1 s1 1;有什么错? short s1 1; s1 1;有什么错?简述&&与&的区别?简述break与continue、return的区别?Arrays类的…

直方图均衡化的本质

Rafael C. Gonzalez “Digital Image Processing”的错误 直方图均衡化的本质是灰度级分布的近邻映射,这部分的内容全错。总有些人崇洋媚外。 我修改了相关的内容,参阅禹晶、肖创柏、廖庆敏《数字图像处理(面向新工科的电工电子信息基础课程…

如何在Linux系统运行RStudio Server并实现无公网IP远程访问【内网穿透】

文章目录 推荐 前言1. 安装RStudio Server2. 本地访问3. Linux 安装cpolar4. 配置RStudio server公网访问地址5. 公网远程访问RStudio6. 固定RStudio公网地址 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下…