QQ:周小姐(342333772) 电话:0755-28130613 微信号:13714163197
富莱新世纪
服务热线:0755-28130613
  • SPI串口模块-SPI、UART、I2C三种串行总线简介-串口模块
  • 添加时间:2019年05月16日  作者:SPI串口模块  来源:SPI串口模块

SPI串口模块-SPI、UART、I2C三种串行总线简介-串口模块

1、SPI

 

SPI是一种高速、全双工、同步、串行通信总线,3~4线接口,以主从模式工作,收发独立,可以实现多个SPI设备互相连接。

 

SPI串口模块-SPI、UART、I2C三种串行总线简介-串口模块

提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。

 

SPI总线由三条信号线组成,分别是SCLK(串行时钟)、SDI(串行数据输入)、SDO(串行数据输出)。

 

SPI串口模块-SPI、UART、I2C三种串行总线简介-串口模块

当有多个从设备时,还可以增加一条从设备选择线,CS是控制芯片是否被选中的,这样就可以实现在同一总线上多个SPI设备互相连接。

 

如果用GPIO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。

 

SPI串口模块-SPI、UART、I2C三种串行总线简介-串口模块

SDI – 主设备数据输入,从设备数据输出;

 

SDO – 主设备数据输出,从设备数据输入;

 

SCLK – 时钟信号,由主设备产生;

 

CS – 从设备使能信号,由主设备控制。

 

SPI串口模块-SPI、UART、I2C三种串行总线简介-串口模块

SPI 是一种允许一个主设备启动一个与从设备同步通讯的协议,从而完成数据的交换。

 

SPI是串行协议,也就是说数据是一位一位传输的,这就是SCLK时钟线存在的原因,由SCLK提供时钟脉冲,SDI、SDO则基于此脉冲完成数据传输。

 

数据输出通过 SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。

 

SPI串口模块-SPI、UART、I2C三种串行总线简介-串口模块

完成一位数据传输,输入也使用同样原理。这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。

 

这样的传输方式有一个优点,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCLK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。也就是说,主设备通过对SCLK时钟线的控制可以完成对通讯的控制。

 

SPI串口模块-SPI、UART、I2C三种串行总线简介-串口模块

SPI还是一个数据交换协议:

 

因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。不同SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义,具体请参考相关器件的文档。

 

最后,SPI接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据。

 0131950407106478.jpg

在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。

 

SPI串口模块-SPI、UART、I2C三种串行总线简介-串口模块

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

 

SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器,还有数字信号处理器和数字信号解码器之间。

 

2、UART

 

UART(Universal Asynchronous Receiver Transmitter,通用异步收发器)

 

SPI串口模块-SPI、UART、I2C三种串行总线简介-串口模块

 

SPI、UART、I2C三种串行总线简介

 

 

UART总线是两线、全双工、异步串口,速度慢。比SPI、I2C这两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上有两根线,一根用于发送,一根用于接收。

 

数据是异步传输的,对双方的时序要求比较严格,通信速度也不是很快,在多机通信上面用的最多。如果用GPIO口模拟UART总线,则需一个输入口,一个输出口。

 

SPI串口模块-SPI、UART、I2C三种串行总线简介-串口模块

UART是用于控制计算机与串行设备的芯片,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。

 

大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。

SPI串口模块-SPI、UART、I2C三种串行总线简介-串口模块

同时,串口通信协议也可以用于获取远程采集设备的数据。串口通信的概念非常简单,串口按位(bit)发送和接收字节。

 

尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。

 

SPI串口模块-SPI、UART、I2C三种串行总线简介-串口模块

作为接口的一部分,UART还提供以下功能:

 

将由计算机内部传送过来的并行数据转换为输出的串行数据流;

将计算机外部来的串行数据转换为字节,供计算机内部使用并行数据的器件使用;

在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验;

在输出数据流中加入启停标记,并从接收数据流中删除启停标记;

处理由键盘或鼠标发出的中断信号;

SPI串口模块-SPI、UART、I2C三种串行总线简介-串口模块

可以处理计算机与外部串行设备的同步管理问题;

有一些比较高档的UART还提供输入输出数据的缓冲区,现在比较新的UART是16550,它可以在计算机需要处理数据前在其缓冲区内存储16字节数据。


工业串口模块,HDMI触控屏,工业视频模块,工业显示模块,MCU驱动模块推荐:

MCU驱动模块-工业串口模块之间的通信-工业串口模块

MCU驱动模块-关于ESP8266串口WiFi模块-工业串口模块

MCU驱动模块-工业串口模块设置模块的属性参数-工业串口模块

工业显示屏-工业液晶显示屏的解决方案-工业液晶屏

工业液晶屏-超高清视频产值规模将达1.5万亿-工业显示屏


mobile
在线咨询
0755-28130613