1. 首页
  2. 综合百科
  3. 硬件通信之spi 、iic、usart通信协议比较

硬件通信之spi 、iic、usart通信协议比较

简介:关于硬件通信之spi 、iic、usart通信协议比较的相关疑问,相信很多朋友对此并不是非常清楚,为了帮助大家了解相关知识要点,小编为大家整理出如下讲解内容,希望下面的内容对大家有帮助!
如果有更好的建议或者想看更多关于综合百科技术大全及相关资讯,可以多多关注茶馆百科网。

SPI、I2C、UART(即串口)三种串行总线详解

参考博客

https://blog.csdn.net/xiaodingqq/article/details/80342459

https://blog.csdn.net/weiqifa0/article/details/8845281

https://www.zhihu.com/question/22632011

https://blog.csdn.net/zhuyongxin_6688/article/details/78001767(图,)

https://blog.csdn.net/Setul/article/details/78968242

目录

我的名字

2UART、SPI和I2C的比较

三、串行外设接口:SPI

1. 快速观察点

2. 数据传输

3.Spi读写

四、IC之间的总线:I2C

1. 快速观察点

2. 详细介绍

3.时机

4. 代码

五、通用异步收发器:UART

1. 快速观察点

3.详细介绍

4. 代码学习

六、经验

1. 通信接口分为物理层(硬件层)和协议层

2. 公交车的选择

0

1. RS232

2. UART

3.TTL和RS232

SPI(Serial Peripheral Interface: Serial Peripheral Interface)是摩托罗拉公司提出的用于同步串行数据传输的标准。I2C(INTER IC总线)是PHILIPS开发的用于连接微控制器及其外围设备的两线串行总线。它是一种广泛应用于微电子通信控制领域的总线标准。UART(Universal Asynchronous Receiver Transmitter)是计算机硬件中在串行通信和并行通信之间转换要传输的数据的部分。UART通常集成到其他通信接口的连接中。UART通常被称为“串口”。

UART、SPI、I2C对比表对比项UART SPI I2C信号线数量3、RX、TX、GND 4、SDO、SDI、SCLK、SS 2、SDA、SCLK设备依赖关系——主备设备。SPI通过切片选择信号选择主设备和从设备。IIC使用地址来选择从机。通信方式全双工通信全双工通信半双工通信速率比I2C总线慢,速度可达到几Mbps速度比SPI慢的应用领域

1. UART通常用于控制计算机和串行设备的芯片

2、就是我们常说的串口,基本用于调试。

主要应用于EEPROM、FLASH、实时时钟、AD转换器,以及数字信号处理器和数字信号解码器之间,I2C一般用于同一块板上两个IC之间的通信,它可以取代标准的并行总线,连接各种集成电路和功能模块。传输距离I2C需要支持双向IO,且采用抗上拉,抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信的异步通信特性,一帧可以传输5/6/7/8位同步,SPI允许数据逐位传输,甚至允许悬挂。从最高位开始。同步,电平信号,连续8位一次。它从最高位开始,结构更加复杂。SPI比UART更容易实现。UART需要一个固定的波特率,这意味着两个比特的数据应该间隔在相同的距离。SPI无关紧要,因为它是一种时钟协议。协议比SPI更复杂,但布线比标准SPI的对比更小

在点对点通信中,SPI接口不需要寻址操作,是全双工通信,简单高效。

在有多个从设备的系统中,每个从设备都需要一个独立的使能信号,这在硬件上比I2C系统稍微复杂一些。

(2) SPI总线可以实现多个SPI设备的互连。提供时钟的SPI设备是主设备,其他设备是从设备。SCLK信号线只能由主设备控制,不能由从设备控制。

(3)在SPI总线上,某一时刻可以出现多台从机,但只能存在一台主机。主机通过切片选择决定与哪个从机通信。这要求从机的MISO端口具有三态特性,以便在设备未门控时端口表现为高阻抗。

(4)主从设备之间可以实现全双工通信,收发独立,操作简单,数据传输速率高,但需要占用主机更多的端口线路(每台从机需要一根选线),且只支持单台主机,没有指定的流量控制,没有确认是否收到数据的响应机制。

(5)数据通过SDO线输出,数据在时钟的顶部或底部边缘被更改(即发送),并在下一个底部或顶部边缘被读取,从而完成了一个比特的数据传输。同样的原则也适用于数据输入。因此,传输8位数据至少需要8个时钟信号的变化(上边缘和下边缘是一个)。

(6)普通串行通信一次至少连续传输8位数据,SPI允许数据逐位传输,甚至暂停,因为SCK时钟线由主设备控制。没有时钟跳时,设备没有数据采集和传输。也就是说,主设备可以通过控制SCK时钟线来完成对通信的控制。

(7) SPI接口实现CPU与外围低速设备的同步串行数据传输。在主装置的移位脉冲下,逐位传输数据,前(先?)传输高电平。表示全双工通信。

(1) SPI在数据传输过程中需要确定两件事:

首先,数据是在时钟的上升沿还是下降沿收集的;第二,时钟的初始(空闲)状态是高还是低。比较:I2C空闲状态,时钟线(不是数据线吗?)的值很高,在收集数据时时钟线也很高,但SPI提供了一种更自由的方法。(2)两个概念

CPOL:时钟极性:表示SPI空闲时时钟信号是高电平还是低电平。

CPHA:时钟相位,表示SPI设备是在时钟上升沿还是下降沿收集数据。

那么SPI数据传输有四种可能——根据标准,SPI数据传输有四种模式。

(3)四种模式

模式CPOL CPHA 0 0 0 1 0 1 2 1 0 3 1 1 1

模式0(条形cs表示切片选择信号)

模式1

模式2

模式3

SPI在硬件设计上采用双数据线系统。根据设计,在SPI通信过程中,主设备和从设备之间会形成一条数据环链路,即主设备向从设备写入数据一次,从设备返回数据一次(至于从设备返回的数据是否有效,——是另一回事。如果有效,则主设备将其读入。否则,将被丢弃。)

(2)例:假设上升边发送,下降边接收,高边先发送。

假设主机8位寄存器包含要发送的数据10101010

第一条上升边,数据是SDO=1, register=0101010x

当下降边到达时,SDI上的电平将存储在主机的最低寄存器(最右)中,SDO上的电平将存储在从寄存器的最低寄存器(最右)中,然后主机寄存器=0101010SDI (SDI代表1bit),从寄存器=1010101SDO。

这样,在8个时钟脉冲之后,两个寄存器的内容交换一次,从而完成一个spi序列。

假设主机和从机已经初始化,并且主机的sbuff=0xaa=0b1010 1010,从机的sbuff=0x55=0b0101 0101

下面是SPI的8个时钟周期数据的逐步演示

(1)向上表示上升边,向下表示下降边。SDI和SDO是相对于主机的。

(2)当ss引脚作为主机时,从站可以将其拉下,被动选择为从站;作为从机,可作为选片机使用。

(3)根据上述分析,一个完整的传输周期为16位。因为主机首先将命令发送给从服务器,然后准备数据,所以主机在下一个8位时钟周期中读取数据。

一、名字

二、UART、SPI、I2C对比

(1)如图所示

它由两条信号线组成:串行数据线(SDA)和串行时钟线(SCL)。如图箭头1,2所示,I2C器件内部采用开漏方式,母线向上拉。那么母线状态只能拉到0(当MOS管输入0时)。每当任何一方拉下母线时,母线状态必须是0。(2)任何设备都可以像主设备一样工作并控制总线,但一次只能存在一个主设备。

(3)总线上的每个设备都有一个唯一的地址,根据设备的能力作为发射机或接收机工作。

(4)在其协议系统中,数据以目的设备的地址进行传输,从而实现设备组网。

(5)同一总线上连接的集成电路数量仅受该总线最大电容的限制。

(6) SDA传输的数据是大端传输(先高通后低通?),单位为字节。

三、串行外设接口:SPI

https://blog.csdn.net/oqqHuTu12345678/article/details/72356722

1、速览点

https://blog.csdn.net/oqqHuTu12345678/article/details/72356722

https://blog.csdn.net/Mr_Lyoko/article/details/79598106

2、数据传输

https://blog.csdn.net/oqqHuTu12345678/article/details/72358553

(1) UART由波特率发生器、UART接收器和UART发射器组成。

(2)由RX、TX、GND三根信号线组成

(3) UART包括RS232、RS499、RS423、RS422和RS485接口标准规范和总线标准规范。它们之间的主要区别在于它们具有不同的级别范围。TTL和TTL转RS232常用于嵌入式设备。

3、spi读写

(1)开始位:发送逻辑“0”信号,表示传输字符的开始。

(2)数据位:紧挨着开始位。数据位的个数可以是4、5、6、7、8等,组成一个字符。通常使用ASCII码。

(3)奇偶校验位:将该位加到数据位后,“1”的个数应为偶数(偶校验)或奇数(奇校验),以验证数据传输的正确性。

(4)停止位:它是字符数据标记的结束。它可以是1位,1.5位,2位高电平。

(5)空闲位:逻辑为“1”的状态,表示当前行没有数据传输。

(6)波特率:数据传输速率。摊位有:300、600、1200、2400、4800、9600、19200、38400、43000、56000、57600、115200。数据传输端和接收端的波特率必须统一,以保证数据传输的正确性。

四、IC之间总线:I2C

https://blog.csdn.net/oqqHuTu12345678/article/details/71597893

https://blog.csdn.net/oqqHuTu12345678/article/details/71597575

https://blog.csdn.net/xiaodingqq/article/details/80342459

1、速览点

https://blog.csdn.net/oqqHuTu12345678/article/details/71601785

(1)物理层(硬件):如UART、PC、单片机通信。PC机的串口是232级,而单片机的串口是TTL级。如果两个设备之间的通信水平不一致,就相当于语言障碍,导致逻辑混乱。因此,一般的单片机系统板上都会有串口模块电路(串口控制器)进行电平转换,把PC机的232电平转换成单片机能识别的232电平,如常用的PL2303、CH340芯片。

(2)协议层:相当于规定一个标准或规则。例如,在SPI协议中,主机向从机发送一个数据,从机接收后会发送一个响应信号。这是议定书规定的内容,没有人为干预。当然,有些没有这些协议(硬件)的单片机,如51单片机和24c02通信,需要模拟IIC协议,用软件来实现硬件功能,这就增加了软件的复杂性。

2、详细介绍

(1) SPI总线有四根线,分别是SCK, SDO, SDI和SS,可以挂多个从设备。但是,当挂载多个从设备时,主设备还需要制作一个n-optional解码器,用于选择要访问的从设备。当SPI总线只有一个从设备时,只要使用SCK、SDO和SDI, SPI总线优先于I2C总线。

(2) I2C总线只有SCL和SDA两根线。多个从设备也可以挂起。从设备的选择由协议直接完成,不需要添加物理线路。一般来说,当一块板上有多个从设备时,会选择I2C而不是SPI,因为SPI会增加额外的硬件开销和电路板布线。

(3) I2C和SPI总线一般用于从设备中读取一些PROM等。以及串行通信接口SCI (UART?),主要用于两个智能设备之间的相互通信。与SPI和I2C总线的主从模式不同,SCI可以是主-主模式。

-----是另一种说法

(1)总线拓扑/信号路由/硬件资源消耗

IIC只需要两条信号线,而标准SPI至少需要四个信号,如果有多个从设备,则需要更多。一些SPI变体只使用三根线——SCLK、SS和双向MISO/MOSI,但SS线与从设备是一对一的。此外,如果SPI要实现多主设备体系结构,则总线系统需要额外的逻辑和布线。使用IIC构建系统总线的唯一问题是有限的7位地址空间,但是这个问题已经被使用10位地址的——的新标准解决了。在第一点上,IIC显然是赢家。

(2)数据吞吐量/传输速度

如果您必须在应用程序中使用高速数据传输,SPI是正确的选择。因为SPI是全双工的,IIC不是。SPI没有定义速度限制,平均实现通常达到或超过10mbps。IIC的最高速度是Fast +模式(1 Mbps)和High speed模式(3.4 Mbps),这需要额外的I/O缓冲区,并且并不总是容易实现。

(3)优雅

IIC通常被描述为比SPI更优雅。公平地说,我们倾向于认为两者都是同样优雅和健壮的。IIC的优雅之处在于它的——特性,它以非常轻的架构实现了多主设备仲裁和设备路由。但是,对于工程师来说,总线结构比较难以理解,总线性能也不高。SPI的优点是结构直观简单,易于实现,具有良好的可扩展性。SPI的简单性还不足以称之为优雅,因为要用SPI构建有用的通信平台,您需要在SPI之上构建特定的通信协议软件。换句话说,工程师必须更加努力地工作,才能实现IIC所不具备的SPI的高速性能。此外,这种自由裁量的工作是完全免费的,这就解释了为什么SPI没有官方标准。IIC和SPI都为低速设备通信提供了良好的支持,但是,SPI适用于数据流应用程序,而IIC更适用于“字节设备”的多主设备应用程序。

(4)总结

在数字通信协议集群中,IIC和SPI常被称为“小”协议,与以太网、USB、SATA、PCI-Express等总线传输速度几百兆/秒相比。然而,我们不能忘记各种公共汽车的用途。“大”协议用于系统外整个系统之间的通信,“小”协议用于系统内各个芯片之间的通信。没有迹象表明“大”协议需要取代“小”协议。Iics和spi的存在和流行体现了“适可而止”的哲学。

UART是一种通用异步接收机/发射机。既然它是一个“设备”,它显然只是一个设备,是用来执行特定功能的硬件。它最基本的功能是字符串合并数据转换。

此外,UART还控制数据的格式(波特率、开始位、数据位、检查位、停止位等),这意味着它也是一种异步串行通信的方式。它本身不是一个协议,但具有协议的特点,不过,它比RS232协议更通用。

因此,可以说UART有硬件和协议两大类。

嵌入式MCU中的UART采用TTL级,PC中的UART采用RS232级。因此,UART不规定使用什么级别,这取决于您使用的通信标准。也就是说,UART可以在RS232指定的级别上通信,也可以在其他协议指定的级别上工作。

注:RS232不同于普通的TTL电平。RS232采用负逻辑,所以一般采用MAX-232双向转换芯片。

TTL标准:低电平为0,高电平为1 (+5V电平,3.3V以上即可)

RS-232标准:正0级,负1级(15V级)

------------------------------------------------------------------------

4. 注意RS232不是接口标准。接口标准为DB9和DB25。

5. 一般情况下,设备连接时只连接GND RX TX。请勿连接Vcc或+3.3v电源线,以免与目标设备电源冲突。

6、PL2303、CP2102芯片是USB转TTL串口芯片,使用USB扩展串口(TTL级)。

------------------------------------------------------------------------

3、时序

(1)串口(UART)、COM口

(它们是同一个概念吗?COM端口有两种物理标准:D型9针插头和4针杜邦头。左边是UART,中间是4针杜邦头COM端口,右边是d型9针插头。因此,4针杜邦头是相同的UART。另外,我们一般只连接d型9脚插头GND, RXD和TXD,所以其实和UART是一样的)

(2)下图为使用PL2303芯片的USB转TTL串口

下图是使用CP2102芯片的USB转TTL串口

下图为USB转RS-232串口

本文主要介绍了关于硬件通信之spi 、iic、usart通信协议比较的相关养殖或种植技术,综合百科栏目还介绍了该行业生产经营方式及经营管理,关注综合百科发展动向,注重系统性、科学性、实用性和先进性,内容全面新颖、重点突出、通俗易懂,全面给您讲解综合百科技术怎么管理的要点,是您综合百科致富的点金石。
以上文章来自互联网,不代表本人立场,如需删除,请注明该网址:http://seotea.com/article/1445807.html