IIC、SPI、CAN、UART等概念

波特率

波特率是指单位时间内传送的码元符号的个数,它是对符号传输速率的一种度量,用单位时间内载波调制状态改变的次数来表示。在电子通信领域,波特即调制速率,指的是有效数据讯号调制载波的速率。波特率的单位是波特(Baud),这一单位是以法国电讯工程师埃米尔·博多(法语:Émile Baudot)(1845-1903)的姓氏来命名的。串口波特率是指单片机或计算机在串口通信时的速率,即信号被调制以后在单位时间内的变化,以波形单位时间内的振荡数来衡量。常见的波特率有2400、4800、9600、19200、38400、57600、115200等标准波特率(每秒发送多少个码元,也就是高低电平)。在选择串口波特率时,需要考虑传输速度、传输距离、硬件支持等因素。

同步通信与异步通信区别

1.同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信时不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节(有开始位和停止位)。异步意味着没有时钟信号来同步从发送设备进入接收端的输出位。

2.同步通信效率高;异步通信效率较低。

3.同步通信较复杂,双方时钟的允许误差较小;异步通信简单,双方时钟可允许一定误差。

4.同步通信可用于点对多点;异步通信只适用于点对点。

串并行

1. 串行(Serial)

在串行通信中,数据按位顺序传输。这意味着数据是一个接一个地传输的,通过单一通信线路。这种方式通常速度较慢,但由于它只需要很少的信号线,因此成本较低。例如,RS-232接口就是一种串行通信的实例。

2. 并行(Parallel)

并行通信中,多个数据位同时在多条线路上传输。这使得传输速度更快,因为可以同时发送多个数据位。然而,这种方式需要更多的线路,通常用于短距离通信,如计算机内部的数据传输。一个典型的例子是早期的打印机接口。

单双工(Simplex/Duplex): 这个术语用来描述通信的双向特性。

单工(Simplex): 在单工通信中,数据只能在一个方向上传输,没有回路。就像广播电视,信息只能从中心站传向用户。

双工(Duplex): 双工通信允许数据在两个方向上同时传输。双工分为全双工和半双工。

全双工(Full-Duplex)

在全双工模式下,通信双方可以同时发送和接收信息,例如,电话通话。

半双工(Half-Duplex):

在半双工模式下,通信双方也可以双向通信,但不能同时进行。发送方和接收方需要交替进行,如对讲机。

串行(Serial)、并行(Parallel)、单双工(Simplex/Duplex)是通信领域中常见的概念。这些概念通常用于描述数据传输的方式和特性,它们影响着数据传输的速度、效率和成本。

串口通讯

“串口”是串行通信接口的简称,是一种通讯方式,它使用一根接收线和一根发送线来传输数据。串口通讯的速度比并行通讯慢,但是它只需要两根线就能实现数据的传输。串口通讯最重要的参数是波特率、数据位、停止位和奇偶的校验。对于两个需要进行串口通信的端口,这些参数必须匹配,这也是能够实现串口通讯的前提。串口通讯的物理层有很多标准,例如RS-232标准,它主要规定了信号的用途、通讯接口以及信号的电平标准。串口通讯的数据结构包括起始位、数据位、奇偶校验位、停止位和空闲位。串口通讯的通讯协议有很多种,例如RS232、RS485等。

串口RS232

RS232概述

RS-232接口符合电子工业联盟(EIA)建立的串行数据通信接口标准。原始编号是EIA-RS-232(简称232,RS232)。它广泛用于计算机串行接口外设连接。连接电缆以及机械、电气、信号和传输过程。RS-232-C标准规定的数据传输速率为每秒50、75、100、150、300、600、1200、2400、4800、9600、19200波特。

RS232特性

RS-232是主流串行通信接口之一。由于RS232接口标准的早期出现,难免存在不足,主要有以下四点:

  • 接口信号电平高,容易损坏接口电路的芯片。RS232接口上任何信号线的电压都处于负逻辑关系中。即:逻辑“1”为-3 ~ -15V;逻辑为“0”:+3 ~ +15V,噪声裕量为2V。也就是说,接收器需要将高于+3V的信号识别为逻辑“0”,将低于-3V的信号识别为逻辑“1”,将5V的TTL电平识别为逻辑正极,将0识别为逻辑负极。与TTL电平不兼容,需要一个电平转换电路来连接到TTL电路。
  • 传输速率低。在异步传输中,比特率为20Kbps;因此,在51CPLD开发板中,集成程序波特率只能是19200,这也是原因。
  • 接口采用信号线和信号回波串,形成共同的接地传输形式。这种标准的接地传输容易受到共模干扰,因此抗噪性较弱。
  • 传输距离有限。最大传输距离为50英尺。它只能达到大约15米。

串口RS485

RS485概述

RS-485串行总线广泛用于通信距离必须为几十米到几公里的时候。RS-485使用平衡的发射和差分接收,因此可以抑制共模干扰。除了总线收发器的高灵敏度外,它还可以检测低至200mV的电压,从而将发射的信号恢复到公里以上。RS-485使用半双工工作模式,任何时候只发送一个点。因此,发射电路必须由使能信号控制。

RS485 特性

RS-485对于多点互连非常方便,可以节省许多信号线。RS-485应用可以联网以形成一个分布式系统,允许多达32个驱动器和32个接收器并联连接。针对RS-232的缺点,新标准RS-485具有以下特点:

RS-485的电气特性:逻辑“1”由两条线路+2V~+6V之间的电压差表示,逻辑“0”由两条线路之间的电压差-6V~-2V表示。接口信号电平低于RS-232,不易损坏接口电路芯片。该电平与TTL电平兼容,便于与TTL电路连接。

最高数据传输速率为:10Mbps

RS-485接口采用平衡驱动器和差分接收机的组合,具有抗共振固模干扰能力,即抗噪声性能好。

RS-485接口的最大传输距离为4000英尺,实际上可达3000米。

RS-232接口仅允许一个收发器连接到总线,即单站功能。相比之下,RS-485接口仅允许在总线上连接多达128个收发器,即多站能力。用户 使用单个RS-485接口可以快速建立设备网络。

RS232 和 RS485 的区别

工作模式:RS232 为全双工,RS485 为半双工。

传输方式:RS485和RS232只是物理协议的通信(即接口标准),RS485是差分传输方式,RS232是单端传输方式,但通信程序没有太大区别。

信号线:RS485接口组成的半双工网络,一般只需二根信号线。RS-232 口一般只使用 RXD、TXD、GND 三条线 。

抗干扰性:RS485接口是采用平衡驱动器和差分接收器的组合,抗噪声干扰性好。RS232接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰。

传输距离:RS485接口的最大传输距离标准值为 1200 米(9600bps 时),实际上可达 3000 米。RS232传输距离有限,最大传输距离标准值为 50 米,实际上也只能用在 15 米左右。

通信能力:RS485 接口在总线上是允许连接多达128个收发器,用户可以利用单一的 RS485 接口方便地建立起设备网络。RS232只允许一对一通信。

传输速率:RS232传输速率较低,在异步传输时,波特率为 20Kbps。RS485 的数据最高传输速率为 10Mbps 。

电气电平值:RS485的逻辑"1"以两线间的电压差为+(2-6) V 表示;逻辑"0"以两线间的电压差为-(2-6)V 表 示 。在 RS-232 中任何一条信号线的电压均为负逻辑关系。即:逻辑"1",-(5-15)V;逻辑"0 " +(5- 15)V 。

常用的通讯协议

IIC(Inter-Integrated Circuit),SPI(Serial Peripheral Interface),CAN(Controller Area Network),和UART(Universal Asynchronous Receiver/Transmitter)是常见的通信协议,用于在不同的电子设备和模块之间进行数据传输和通信。

IIC (Inter-Integrated Circuit)

IIC的特点

I²C的正确读法为“I平方C”也称为I2C(Inter-IC Communication),是一种串行、半双工通信协议,主要用于近距离、低速对的芯片之间的通讯,用于连接多个集成电路(IC)或器件,通常用于连接传感器、显示屏、存储器等。(传输速率低、硬件结构简单)

  1. 使用两条线(时钟线和数据线)进行全双工通信。I2C串行总线一般有两根信号线(数据线SDA、时钟线SCL),一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。(设备上的串行数据线SDA接口电路应该是双向的,输出电路用于向总线上发送数据,输入电路用于接收总线上的数据。而串行时钟线也应是双向的,作为控制总线数据传送的主机,一方面要通过SCL输出电路发送时钟信号,另一方面还要检测总线上的SCL电平,以决定什么时候发送下一个时钟脉冲电平)
  2. 支持多主机和多从机通信,每个从机有唯一的地址。IIC总线是一种多主机总线,主机有权发起和结束一次通讯,而从机只能被主机呼叫。 当总线上有多个主机同时启用总线时,IIC也具备冲空检测和仲裁的功能来防止错误产生
  3. 每个连接到IIC总线上的器件都有一个唯一的地址(7bit),且每个器件都可以作为主机也可以作为从机(同一时刻只能有一个主机,其它从机接收到起始信号后就不再启用了),总线上的器件增加和删除不影响其他器件正常工作;IIC总线在通信时总线上发送数据的器件为发送器,接收数据的器件为接收器;

IIC总线通信过程(整个过程就发送四个信号)

  1. 主机发送起始信号启用总线
  2. 主机在发送了起始信号后再发送一个字节数据指明从机地址和后续字节的传递方向(确定从机的地址,只占了一个字节的7位(高七位),最后的一位确定剩余发送方向(最后一位如果是0就是主机给从机发,最后一位是1就是从机给主机发)

  1. 被寻址的从机发送应答信号回应主机
  2. 发送器发送一个字节数据
  3. 接收器发送应答信号回应发送器
  4. 循环步骤4、5
  5. 通讯完成后主机发送停止信号释放总线
  • SCL为高电平时,SDA由高变低表示起始信号
  • SCL为高电平时,SDA由低变高表示停止信号 空闲时他俩都是高电平

一般是高电平表示起始位,就算出现干扰也不会出现通讯错误。

IIC总线通信时每个字节为8位长度,数据传送时,先传送最高位后传送低位,发送器发送完一个字节数据后接收器必须发送1位应答位来回应发送器即一帧共有9位

IIC总线在进行数据传送时,时钟线SCL为低电平期间发送器向数据线上发送一位数据,在此期间数据线上的信号允许发生变化,时钟线SCL为高电平期间接收器从数据线上读取一位数据,在此期间数据线上的信号不允许发生变化,必须保持稳定。SCL的作用就是告诉发送器和接收器什么时候发,什么时候收。

SPI (Serial Peripheral Interface)

SPI的特点

是一种高速串行通信协议,通常用于连接微控制器、外围设备和传感器。使用四条线(时钟、数据输入、数据输出和片选)。可以支持全双工通信,适用于高速数据传输。通常使用主从架构,其中一个主机控制多个从机。(主机的作用就是用于管理和控制总线的)

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

寻址方式

当主设备要和某个从设备进行通信时,主设备需要先向对应从设备的片选线上发送使能信号(高电平或者低电平,根据从机而定)表示选中该从设备 (使能是一个电子学科词汇,指的是让某一个功能起作用。在数字电路设计中,一般开路输入管脚呈现为高电平,因此使能信号绝大多数情况下是一个低电平。使能信号一般是在划分地址空间时,由逻辑电路产生的。可编程接口芯片都有一个使能开关,通常以CE ( Chip Enable)或CS (Chip Select)表示,只有当该输入端处于有效电平,接口芯片才进入电路工作状态,实现数据的输入输出。)怎么判断一个芯片是发送高电平使能还是发低电平使能?

通信过程

SPI总线在进行数据传送时,先传送高位,后传送低位;数据线为高电平表示逻辑‘1’,低电平表示逻辑‘0’;一个字节传送完成后无需应答即可开始下一个字节的传送;(有应答和无应答的区别:有应答服务的优点是保证数据的可靠性,提高通信效率;缺点是增加通信延迟。无应答服务的优点是减少通信延迟,减轻通信负担;缺点是不能保证数据的可靠性);没有起始信号、结束信号、没有应答。

SPI总线采用同步方式工作,时钟线在上升沿或下降沿时发送器向数据线上发送数据,在紧接着的下降沿或上升沿时接收器从数据线上读取数据,完成一位数据传送,八个时钟周期即可完成一个字节数据的传送;

极性和相位

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

CPOL表示SCLK空闲时的状态

CPOL=0,空闲时SCLK为低电平

CPOL=1,空闲时SCLK为高电平

CPHA表示采样时刻

CPHA=0,每个周期的第一个时钟沿采样; 上升沿发数据,下降沿读数据

CPHA=1,每个周期的第二个时钟沿采样 ;下降沿发数据,上升沿读数据

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

IIC和SPI的异同

相同点

1.均采用串行、同步的方式

2.均采用TTL电平,传输距离(短距离)和应用场景类似 (TTL电平是指适合于TTL电路工作的电平。TTL的电源工作电压是5V,那么5V就可为高电平,0V为低电平。 TTL器件输出低电平要小于0.8V,高电平要大于2.4V。 输入高电平>=2.0V,输入低电平)

3.均采用主从方式工作

不同点

1.IIC为半双工,SPI为全双工

2.IIC有应答机制,SPI无应答机制

3.IIC通过向总线广播从机地址来寻址,SPI通过向对应从机发送使能信号来寻址

4.IIC的时钟极性和时钟相位固定,SPI的时钟极性和时钟相位可调

CAN (Controller Area Network 控制器局域网)总线

是一种在汽车和工业领域广泛使用的串行通信协议。采用差分信号线进行通信,具有高噪声抵抗能力。支持多主机通信,适用于实时控制和数据传输。有两种常见的标准:CAN 2.0A(标准帧)和CAN 2.0B(扩展帧)。

CAN总线传输距离很长,可达1千米,如传输速度最高到1Mbps, 通信距离最远到10km,无损位仲裁机制,多主结构。连接在CAN总线上的设备叫做节点设备(CAN Node),CAN网络的拓扑一般为线型。线束最常用的是双绞线,线上传输为对称的差分电平信号。

CAN采用的差分线是两根线共同作用,且是双绞线缠绕,这样即使是受到干扰,也是两根线同时受到干扰,它们的压差也会保持不变,这样就能保证传递的信息不受干扰。

如果是两个设备同时发送信息,此时哪一个设备发送的信息优先呢?当总线上同时出现逻辑0和逻辑1的时候,总线会被置为逻辑0,后面的数据帧就不会再发送了。

 一般嵌入式中,处理器MCU的CAN接口出来的是CAN TXD和CAN RXD,一收一发,但是实际接到CAN网络中还需要收发器,收发器输出的就是差分信号了CANH和CANL,如下图所示。  

UART (Universal Asynchronous Receiver/Transmitter)

是一种简单的串行通信协议,通常用于连接计算机、微控制器和外围设备。采用两条线(发送:TX和接收:RX,还需要参考:GND)进行半双工通信。将所需传输的数据一位接一位地传输,在UART通讯协议中信号线上的状态位高电平代表’1’,低电平代表’0’。数据以异步方式传输,通过起始位、数据位、停止位和可选的校验位来定义数据帧。通信速度可根据需求进行配置。 抗干扰能力差

  • 16
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
UARTIICSPI,CAN都是常见的串行通信协议,它们有以下区别: 1. 通信方式:UART(Universal Asynchronous Receiver/Transmitter)是异步串口通信,只有一对数据线(TX和RX)。IIC(Inter-Integrated Circuit)是双线制的串行总线,包括SCL(时钟线)和SDA(数据线)。SPI(Serial Peripheral Interface)是四线制的串行总线,包括SCK(时钟线)、MISO(Master In Slave Out)、MOSI(Master Out Slave In)和CS(片选线)。CAN(Controller Area Network)是CAN总线通信,一般是在电气层面上实现的。 2. 数据传输速率:UART通信速率较低,一般在1Mbps以下,而IICSPI和CAN的通信速率较高,可以达到几Mbps甚至更高。 3. 通信距离:UART通信距离较短,一般在数米以内,而IICSPI通信距离也比较短,一般在几十厘米以内。CAN可以实现较远的通信距离,达到数百米甚至几千米。 4. 设备连接数量:UART通信是一对一的通信方式,即一个发送器连接一个接收器。IICSPI可以实现多个设备的连接,通过地址或片选信号进行选择通信对象。CAN总线可以连接多台设备,形成一个网络结构。 5. 硬件复杂度:UART通信硬件简单,适用于简单的串行通信IICSPI通信需要更复杂的硬件支持,例如时钟同步和数据线的动态切换等。CAN通信硬件较为复杂,需要专用的CAN控制器和收发器。 总的来说,UART适用于短距离低速率的通信IIC适用于简单的多设备通信SPI适用于高速数据传输,CAN适用于远距离和高可靠性的通信。不同的应用场景下,可以选择合适的串行通信协议。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曲途光未央

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值