五种嵌入式经典通信总线协议

一.先前知识

1.并行与串行

并行通信和串行通信是两种不同的数据传输方式:

  1. 并行通信:并行通信是指在同一时间使用多条并行传输的线路传输多个比特的数据。每个比特使用独立的线路进行传输,同时进行。这样可以在一个时钟周期内传输多个比特,提高传输速率。并行通信常用于短距离高速数据传输,如内部计算机总线、内存之间的数据传输等。

![2023-11-14T17:10:23.png][2]

  1. 串行通信:串行通信是指使用单条线路逐个比特顺序传输数据。每个比特按照顺序依次传输,通过时钟信号进行同步。串行通信通常使用的线路较少,便于布线和实现,适用于长距离通信和低速传输。串行通信常见的标准包括UART、SPI、I2C等。

![2023-11-14T17:11:11.png][3]

并行通信的优势是在同一时间内可以传输多个比特,传输速率较高。然而,由于需要使用更多的线路,对电路和布线的要求较高,限制了通信距离和复杂性。相比之下,串行通信只使用一条线路,更容易实现和布线,适合长距离传输和复杂环境。但是,传输速率相对较低。

选择并行通信还是串行通信通常取决于具体的通信需求、距离、传输速率、成本和可靠性要求等因素。许多应用中,串行通信已成为主流选择,但在某些特殊领域仍然需要并行通信来满足高速数据传输需求。

2.单工和双工

在这里插入图片描述

  1. 单工通信(Simplex):在单工通信中,数据只能在一个方向上进行传输。一个设备只能发送数据,而另一个设备只能接收数据。这种通信模式类似于单向街道,只能在一个方向上进行通行。典型的示例是广播电台向听众广播信号,而听众无法向广播电台发送信号。

  2. 半双工通信(Half Duplex):在半双工通信中,数据可以在两个方向上进行传输,但不能同时进行。设备可以在某个时间段内发送数据,然后切换为接收模式以接收数据。这就像是一个双向的单车道,交通只能在一个方向上进行,而不能同时在两个方向上进行。对讲机是一个常见的半双工通信示例,其中一方说话时,另一方必须等待。

  3. 全双工通信(Full Duplex):在全双工通信中,数据可以在两个方向上同时进行传输,实现双向通信。设备可以同时发送和接收数据,没有时间限制。这就像是双向的双车道,车辆可以同时在两个方向上行驶。典型的全双工通信示例是电话通话。通话双方可以同时说话和听对方说话。

选择单工、半双工或全双工通信取决于具体的应用需求。如果只需要单向传输数据,单工通信可能是合适的选择。如果需要在两个方向上交替传输数据,但不需要同时进行,半双工通信会更合适。而如果需要在两个方向上同时进行双向通信,全双工通信是最合适的选择。

一.UART

1.概述

UART(通用**异步收发传输器)是一种用于串行通信的标准接口协议。它是一种简单但功能强大的通信协议(全双工**),先传低位,后传高位。广泛应用于电子设备之间的数据传输,在嵌入式系统中常用于主机和辅助设备之间的通信。

UART使用两根线(数据线和时钟线)来进行数据传输,UART协议定义了数据的传输格式,包括数据位数、奇偶校验位、停止位等。它通常使用ASCII码来表示字符数据,但也可以传输二进制数据。通常情况下,UART的数据传输速率(波特率)可以根据具体应用需求进行配置,典型的波特率有9600、19200、115200等。

UART接口在各种设备和应用中广泛使用,例如计算机、微控制器、传感器、调制解调器、GPS接收器等。它的简单性和可靠性使得UART成为许多串行通信需求的首选协议。

2.波特率

波特率(Baud Rate)是指单位时间内传送的码元(数字)数,通常用每秒钟传输的比特数(bit/s)来表示。在串行通信中,波特率通常用于表示数据传输的速率,即每秒钟可以发送多少比特的信息。具体来说,波特率指的是发送方发送一个码元所用的时间,和这个码元所代表的比特数之间的关系。

例如,假设串口的波特率设置为9600 bps,则在每秒钟内可以传输9600个比特的数据。这意味着,每秒钟可以传输9600/8=1200个字节的数据(注意,这里的基本传输单元是字节,而不是比特,因为在通信中,比特通常是由一些组合成的字节来表示的)。

3.UART帧格式

![2023-11-14T17:24:13.png][5]

UART是一种常见的串行通信接口协议,用于将数据在计算机和外部设备之间进行传输。UART通常用于串口通信,通常数据以字节的形式通过串行线路发送和接收,空闲时为高电平

UART帧格式通常由以下几部分组成:

  1. 起始位(Start Bit):UART通信的数据帧以一个起始位开始,表示数据传输的开始。起始位通常为逻辑低电平(0)。

  2. 数据位(Data Bits):数据位是实际传输的数据比特。数据位的数量可以是5、6、7或8位,取决于设备的设置。

  3. 校验位(Parity Bit):校验位是用于检测和纠正数据传输中的错误的附加比特。校验位可以是奇校验、偶校验或无校验(没有校验位)。如果选择了奇校验,则校验位被设置为确保数据位中的1的数目为奇数。如果选择了偶校验,则校验位被设置为确保数据位中的1的数目为偶数。

  4. 停止位(Stop Bit):停止位表示数据帧的结束。它通常是一个或多个逻辑高电平(1)。停止位的数量可以是1、1.5或2个,具体取决于设备的设置。

注意:UART空闲位为高电平,UART通信是一种异步通信方式,由于发送方和接收方的时钟不同步,因此需要使用起始位和停止位来标识每个数据帧的开始和结束。

例如,一个典型的UART帧格式可能是:1个起始位 + 8个数据位 + 1个偶校验位 + 1个停止位。这意味着每个数据帧由11个比特组成。

在实际应用中,UART帧格式可以根据具体的需求进行定制,例如调整数据位的数量、校验位的设置和停止位的数量。这取决于设备之间的通信协议和通信要求。

三.RS232协议(基于UART)

1.UART问题

UART具有一些缺点,包括:

  1. 线缆长度限制:UART通信的传输距离受到线缆的长度限制。在长距离传输时,信号可能会衰减或受到干扰,导致数据错误或丢失。

  2. 电气接口不统一:UART只是对信号的时序进行了定义,而未定义接口的电气特性;UART通信时一般直接使用处理器使用的电平,即TTL电平,但不同的处理器使用的电平存在差异,所以不同的处理器使用UART通信时一般不能直接相连,UART没有规定不同器件连接时连接器的标准,所以不同设备间通过UART通信时连接很不方便;

  3. 时钟同步问题:UART通信是异步通信,发送方和接收方的时钟不同步。这可能导致时钟差异引发的数据丢失或错误。

  4. 速率限制:UART通信的速率受到波特率的限制。较高的波特率可能会导致更高的传输速率,但也会增加传输时钟的要求和电磁干扰的风险。

  5. 通信速度相对较慢:由于UART通信采用的是异步传输方式,并且需要在每个数据帧中添加起始位、停止位和校验位等附加信息,因此与其他通信协议相比,UART的通信速度相对较慢。

因为UART的各种缺点,我们在电气层面又进一步规定了各种协议,其中包括RS232协议RS485协议

2.RS232协议概述

1.接口
该标准规定采用一个25引脚的DB-25连接器,标准中对连接器的每个引脚的信号内容加以规定)还对各种信号的电平加以规定;后来IBM的PC机将RS232简化成了DB-9连接器,后来成为事实标准;现在工业设备的RS-232接口一般只使用RXD、TXD、GND三条线;

2,信号
该标准规定逻辑“1”的电平为-5v到-15v,逻辑“0”的电平为+5v+15v,选用该电气标准的目的在于提高抗干扰能力,增大通信距离,其传送距离一般可达15m

3.电平转换

虽然很多处理器中都会集成UART控制器,但处理器产生的信号一般都是TTL信号并不是符合RS232标准的信号,所以一般我们还需要在处理器外部去添加电路对信号的电平进行转换;通常使用MAX232芯片进行转换。

4.RS232缺点

RS-232标准作为一种老式的串行通信标准,具有以下几个方面的缺陷:

  1. 速度限制:通信速度较低。

  2. 传输距离较短:15m

  3. 抗干扰性差:RS-232标准的电信号传输距离、电源和静电放电等方面的限制都会影响信号的稳定性,易受外部干扰,同时发送和接收设备之间的接地电位差可能会导致误差。

  4. 接口的信号电平值比较高: 接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容,所以需要使用电平转换芯片才能与TTL电路连接

四.RS485协议(基于UART)

1.RS485协议概述

![2023-11-15T06:36:05.png][6]

RS-485是一种串行通信协议,常用于在远距离和噪音环境下进行数据通信。以下是有关RS-485协议的一些重要信息:

  1. 物理层特性:RS-485使用差分信号传输,其中一对信号线为正极性(+)和负极性(-)信号线,用于抵消噪音干扰。这种传输方式提供了更高的抗干扰性和噪音容忍度,使其非常适用于远距离通信。

  2. 半双工通信:RS-485是一种半双工通信协议,意味着数据只能在单个信道上进行一个方向的传输。因此,在RS-485通信中,一方设备必须等待另一方设备完成发送或接收操作后才能开始通信。

  3. 多点通信:RS-485支持多个设备在同一信号线上进行通信,允许多点通信拓扑结构。每个设备都有一个唯一的地址,以便其他设备根据地址来识别并选择性地接收数据。

  4. 最大传输距离:RS-485可在最大传输距离上达到1500米,这是由于其差分信号传输和抗干扰性能较强。相比之下,RS-232通信的传输距离通常较短。

  5. 驱动能力:RS-485驱动能力强,能够驱动较多的接收器,适用于工业环境中的长距离数据通信需求。

  6. 信号:RS485标准规定采用差分信号进行数据传输,两线间的电压差为+2v到+6v表示逻辑“1”,两线间的电压差为-2v到-6y表示逻辑“0”;使用差分信号能有效地减少噪声信号的干扰,延长通信距离。RS485接口信号的电平比RS232降低了,所以不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便地与TTL电路连接

需要注意的是,RS-485仅定义物理层的传输规范,而未定义数据帧格式和通信协议。因此,在实际应用中,需要根据具体需求制定相应的协议和应用层通信规范。

RS-485协议是一种可靠、抗干扰能力较强的半双工串行通信协议,适用于远距离传输和工业环境中的数据通信应用。

2.电平转换

虽然很多处理器中都会集成UART控制器,但处理器产生的信号一般都是TTL信号并不是符合RS485标准的信号,所以一般我们还需要在处理器外部去添加电路将TTL信号转换成差分信号;

3.RS485优势

根据您提供的信息,以下是RS-485协议的一些优点:

  1. 信号电平值较低:RS-485接口的信号电平值较低,这意味着它不容易损坏接口电路的芯片。这种特性有助于保护设备的硬件,并延长设备的使用寿命。

  2. 与TTL电平兼容:RS-485接口与TTL电平兼容,可以方便地与TTL电路连接,这简化了与其他数字电路的集成和连接,提高了系统的灵活性和兼容性。

  3. 通信速度快:RS-485支持较快的通信速度,可以满足对高速数据传输的需求,适用于实时性要求高的应用场景。

  4. 抗噪声干扰性强:RS-485协议具有优异的抗噪声干扰性能,这使得它在具有电磁干扰或其他噪声干扰的环境中依然能够保持稳定的通信质量。

  5. 传输距离较远:RS-485能够实现较远的传输距离,最高可达1500米。这使得它非常适用于需要长距离数据传输的应用场景,如工业控制系统、仪器仪表和环境监测等领域。

  6. 可实现多节点组网:RS-485支持多个设备在同一总线上进行通信,因此可以实现多节点组网。这种能力使得RS-485适用于需要在多个设备之间进行实时数据传输和通信的应用。

综上所述,RS-485协议具有信号电平低、兼容性强、通信速度快、抗干扰性强和传输距离远的优点,使其成为一种广泛应用于工业控制和远距离数据通信领域的可靠通信协议。

五.IIC协议

1.IIC总线协议简介

![2023-11-15T07:09:01.png][7]

  1. IIC总线是PhiLips公司在八十年代初推出的一种串行半双工总线主要用于近距离、低速的芯片之间的通信;IIC总线有两粮双向的信号线一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步;IIC总线硬件结构简单,成本较低,因此在各个领域得到了广泛的应用

  2. IIC总线是一种多主机总线,连接在|IC总线上的器件分为主机和从机主机有权发起和结束一次通信,而从机只能被主机呼叫;当总线上有多个主机同时启用总线时,IIC也具备冲突检测和仲裁的功能来防止错误产生;每个连接到IIC总线上的器件都有一个唯一的地址(7bit),且每个器件都可以作为主机也可以作为从机(同一时刻只能有一个主机),总线上的器件增加和删除不影响其他器件正常工作;IIC总线在通信时总线上发送数据的器件为发送器,接收数据的器件为接收器;

2.IIC总线通信过程

非常感谢您提供的更详细的I2C总线协议的步骤。下面是对您提到的每个步骤的更详细说明:

  1. 主机发送起始信号启用总线。

  2. 主机发送一个字节数据指明从机地址和后续字节的传送方向。

  3. 被寻址的从机发送应答信号回应主机。

  4. 发送器发送一个字节数据。

  5. 接收器发送应答信号回应发送器。

循环步骤4和步骤5:发送器和接收器之间在每次传输一个字节数据后,持续地循环执行步骤4和步骤5。

n. 通信完成后主机发送停止信号释放总线。

通过这些步骤,主机和从机之间可以进行可靠的数据传输和通信。这个协议的简洁性和灵活性使得I2C总线协议成为连接多个设备进行短距离通信的一种常见选择。

3.IIC寻址方式

  1. IIC总线上传送的数据是广义的,既包括地址,又包括真正的数据.
  2. 主机在发送起始信号后必须先发送一个字节的数据,该数据的高7位为从机地址,最低位表示后续字节的传送方向,'0’表示主机发送数据,'1’表示主机接收数据;总线上所有的从机接收到该字节数据后都将这7位地址与自己的地址进行比较,如果相同,则认为自己被主机寻址,然后再根据第8位将自己定为发送器或接收器

在这里插入图片描述

4.IIC总线信号实现

  1. 起始信号和停止信号
    SCL为高电平时,SDA由高变低表示起始信号
    SCL为高电平时,SDA由低变高表示停止信号
    起始信号和停止信号都是由主机发出,起始信号产生后总线处于占用状态停止信号产生后总线处于空闲状态
    在这里插入图片描述

  2. 字节传送与应答
    IIC总线通信时每个字节为8位长度,数据传送时,先传送最高位,后传送低位,发送器发送完一个字节数据后接收器必须发送1位应答位来回应发送器即一帧共有9位
    在这里插入图片描述

  3. 同步信号
    IIC总线在进行数据传送时,时钟线SCL为低电平期间发送器向数据线上发送一位数据,在此期间数据线上的信号允许发生变化,时钟线SCL为高电平期间接收器从数据线上读取一位数据,在此期间数据线上的信号不允许发生变化,必须保持稳定

在这里插入图片描述

5.典型IIC时序

  1. 主机向从机发送数据
    在这里插入图片描述

  2. 从机向主机发送数据
    在这里插入图片描述

  3. 主机先向从机发送数据,然后从机再向主机发送数据
    在这里插入图片描述

注:阴影部分表示数据由主机向从机传送,无阴影部分则表示数据由从机向主机传送;A表示应答,A非表示非应答,S表示起始信号,P表示终止信号

六.SPI协议

1.SPI总线协议简介

SPI(Serial_Per ipheral Interfaco)是串行外设接口的缩写,SPI是一种高速的全双工同步串行通信总线;SPI采用主从方式工作,一般有一个主设备和一个或多个从设备;SPI需要至少4根线,分别是MISO(主设备输入从设备输出)、MOSI(主设备输出从设备输入)、SCLK(时钟)、CS(片选)SPI使用引脚较少且布线方便,所以越来越多的芯片集成了这种通信协议;

SPI(Serial Peripheral Interface)协议是一种用于串行通信的同步协议,通常用于在数字集成电路之间传输数据。SPI协议通常包含以下特点:

  1. 线配置:SPI使用四根线进行通信,包括一个主时钟线(SCLK),一个主输出/从输入线(MOSI),一个主输入/从输出线(MISO)以及一个片选线(SS)。

  2. 主从结构:SPI协议通常包括一个主设备和一个或多个从设备。主设备控制通信并负责生成时钟信号,而每个从设备都有一个片选线,由主设备控制。

  3. 全双工通信:SPI通信是全双工的,意味着主设备和从设备可以同时发送和接收数据。

  4. 传输模式:SPI协议可以通过调整时钟极性和相位来支持四种传输模式,以适应不同设备的需求。

  5. 速率灵活:SPI协议在不同的设备上可以以不同的速率进行通信,因为时钟频率是可调的。

  6. 灵活性:SPI协议具有一定程度的灵活性,可以通过协商进行高速数据传输,但同时也有较高的实现复杂度。

在这里插入图片描述

2.寻址方式

当主设备要和某个从设备进行通信时,主设备需要先向对应从设备的片选线上发送使能信号(高电平或者低电平,根据从机而定)表示选中该从设备。

在这里插入图片描述

3.通信过程

SPI总线在进行数据传送时,先传送高位,后传送低位;数据线为高电平表示逻辑‘1’,低电平表示逻辑‘0’;一个字节传送完成后无需应答即可开始下一个字节的传送;SPI总线采用同步方式工作,时钟线在上升沿或下降沿时发送器向数据线上发送数据,在紧接着的下降沿或上升沿时接收器从数据线上读取数据,完成一位数据传送,八个时钟周期即可完成一个字节数据的传送;

在这里插入图片描述

4.极性和相位

极性和相位
SPI总线有四种不同的工作模式,取决于极性(CPOL)和相位(CPHA)这两个因素,

  1. CPOL表示SCLK空闲时的状态
    CPOL=0,空闲时SCLK为低电平
    CPOL=1,空闲时SCLK为高电平
  2. CPHA表示采样时刻
    CPHA=0,每个周期的第一个时钟沿采样
    CPHA=1,每个周期的第二个时钟沿采样
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

需要说明的是,对于一个特定的从设备来说,一般在出厂时就会将;设计为某种特定的工作模式;我们在使用该设备时就必须保证主设备工作模式和该从设备保持一致,否则是无法进行通信的;所以一般我们需要对主设备的CPOL和CPHA进行配置;

七.IIC和SPI异同点

相同点

  1. 均采用串行、同步的方式
  2. 均采用TTL电平,传输距离和应用场景类似
  3. 均采用主从方式工作

不同点

  1. 1IC为半双工,SPI为全双工。
  2. 11C有应答机制,SPI无应答机制。
  3. 1IC通过向总线广播从机地址来寻址,SPI通过向对应从机发送使能信号来寻址。
  4. 1IC的时钟极性和时钟相位固定,SPI的时钟极性和时钟相位可调。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nova组件讲解和glance对接swift

1、openstack架构 (1)openstack是一种SOA架构(微服务就是从这种架构中剥离出来的) (2)这种SOA架构,就是把每个服务独立成一个组件,每个组件通过定义好的api接口进行互通 &#xff…

复合机器人作为一种新型的智能制造装备高效、精准和灵活的生产方式

随着汽车制造业的快速发展,对于高效、精准和灵活的生产方式需求日益增强。复合机器人作为一种新型的智能制造装备,以其独特的优势在汽车制造中发挥着越来越重要的作用。因此,富唯智能顺应时代的发展趋势,研发出了ICR系列的复合机器…

京东年度数据报告-2023全年度笔记本十大热门品牌销量(销额)榜单

2023年度,在电脑办公市场整体销售下滑的环境下,笔记本市场的整体销售也不景气。 根据鲸参谋平台的数据显示,京东平台上笔记本的年度销量为650万,同比下滑约16%;销售额约为330亿,同比下滑约19%。同时&#…

CF1178F2 Long Colorful Strip 题解 搜索

Long Colorful Strip 传送门 题面翻译 题目描述 这是 F 题的第二个子任务。F1 和 F2 的区别仅在对于 m m m 和时间的限制上 有 n 1 n1 n1 种颜色标号从 0 0 0 到 n n n,我们有一条全部染成颜色 0 0 0 的长为 m m m 的纸带。 Alice 拿着刷子通过以下的过…

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -投票帖子明细实现

锋哥原创的uniapp微信小程序投票系统实战: uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…

经典目标检测YOLO系列(一)复现YOLOV1(5)模型的训练及验证

经典目标检测YOLO系列(一)复现YOLOV1(5)模型的训练及验证 之前,我们依据《YOLO目标检测》(ISBN:9787115627094)一书,提出了新的YOLOV1架构,继续按照此书进行YOLOV1的复现。 经典目标检测YOLO系列(一)YOLOV1的复现(1)总体架构 经典目标检测Y…

Python Flask教程

Flask Doc: https://rest-apis-flask.teclado.com/docs/course_intro/what_is_rest_api/Github: https://github.com/tecladocode/rest-apis-flask-python 1. 最简单的应用 最小应用 from flask import Flaskapp Flask(__name__)app.route("/") def hello_world()…

18 串口通讯

文章目录 18.0 前言18.1 串口通讯协议简介18.1.1 物理层 18.2 RT1052 的 LPUART 简介18.3 UART 功能框图18.3.1 中断控制 18.4 UART 初始化结构体详解18.4.1 baudRate_Bps18.4.2 parityMode18.4.3 dataBitsCount18.4.4 isMsb18.4.5 stopBitCount18.4.6 txFifoWatermark与rxFifo…

Kubernetes 集群管理—日志架构

日志架构 应用日志可以让你了解应用内部的运行状况。日志对调试问题和监控集群活动非常有用。 大部分现代化应用都有某种日志记录机制。同样地,容器引擎也被设计成支持日志记录。 针对容器化应用,最简单且最广泛采用的日志记录方式就是写入标准输出和标…

RIP【新华三与华为区别】

【介绍】 rip分为rip 1 与 rip 2 ,rip 2 是对 rip 1 的一种升级,rip 2 可以进行认证等功能 【命令】 新华三: [HC3-R1] rip #启用rip [HC3-R1-rip] version 2 #告知rip 版本号 [HC3-R1-rip] network 192.168.1.0 #宣告其网段 [HC3-R1-rip] …

ES分词器

Analysis:文本分析是把全文本转换一系列单词的过程,也叫分词。Analysis是通过Analyzer(分词器)来实现的。 1.Analyzer组成 注意:在ES中默认使用标准分词器:StandardAnalyzer。特点是:中文是单字分词,英文是…

Docker 容器之间的互相通信

Docker容器之间的互相通信 步骤一:创建自定义网络 首先,我们需要创建一个自定义网络,以便容器可以连接到这个网络上,从而实现互相通信。在命令行中执行以下命令: # 创建 docker network create ddz # 查看 docker n…

costmap_2d包介绍

文章目录 一. costmap_2d包介绍二. Costmap包的执行入口-- move_base中调用三. Costmap包的初始化以及维护3.1 Costmap2DROS类3.1.1 构造函数 Costmap2DROS::Costmap2DROS3.1.2 地图更新线程 Costmap2DROS::mapUpdateLoop3.1.3 地图更新 Costmap2DROS::updateMap()3.1.4 激活各…

openssl3.2 - 在VS2019下源码调试openssl.exe

文章目录 openssl3.2 - 在VS2019下源码调试openssl.exe概述笔记先看一个用.bat调用openssl干活的实例VS2019调试参数设置设置 - 命令参数设置 - 工作目录设置 - 环境变量将命令行中需要的文件拷贝到exe目录单步调试备注END openssl3.2 - 在VS2019下源码调试openssl.exe 概述 …

多租户体系实现

文章目录 核心思路方案选择设计考量安全性扩展性通用性易用性 具体实现租户信息透传透传变量名命名规范应用内透传应用间透传 数据层租户隔离MySQL存储方案:多租户Mybatis插件Mybatis插件特点使用多租户Mybatis插件的优势参考文档 应用场景 经过工作中的一处场景启发…

PLC编程中ST语言操作符的使用方法

ST(Structured Text)语言操作符主要用于PLC编程,主要包括算术运算符、比较运算符和逻辑运算符等。 算术运算符包括加()、减(-)、乘(*)、除(/)和指…

中国1981-2023年逐年每15天8km植被指数数据集

摘要 中国1981-2023年逐年每15天8km植被指数数据集来源于GIMMS NDVI数据,包括了1981年7月-2023年12月的长时间序列逐年每15天植被指数变化,格式为arcgis grid格式,投影为WGS84,其时间分辨率是15天,空间分辨…

什么是云服务器,阿里云优势如何?

阿里云服务器ECS英文全程Elastic Compute Service,云服务器ECS是一种安全可靠、弹性可伸缩的云计算服务,阿里云提供多种云服务器ECS实例规格,如经济型e实例、通用算力型u1、ECS计算型c7、通用型g7、GPU实例等,阿里云百科aliyunbai…

C/C++--ProtoBuf使用

一.什么是ProtoBuf 1.序列化和反序列化概念 序列化:把对象转变为字节序列的过程,称为系列化。 反序列化:把字节序列的内容恢复为对象的过程,称为反序列化。 2.什么情况下需要序列化和反序列化 存储数据:将内存中的对象…

Vulnhub靶机:driftingblues 6

一、介绍 运行环境:Virtualbox 攻击机:kali(10.0.2.15) 靶机:driftingblues6(10.0.2.22) 目标:获取靶机root权限和flag 靶机下载地址:https://www.vulnhub.com/entr…