UART和SPI简介

UART

        即通用异步收发器,是一种通用的串行、异步通信总线,该总线有两种数据线,可以实现数据的发送和接收,在嵌入式系统中常用于主机与辅助设备之间的通信。

通信基础-并行和串行

并行通信

串行通信

 单工通信

 双工通信

半双工:发送和接收不可以同时进行

全双工:发送和接收可以同时进行

波特率:

波特率是用于描述UART通信时的通信速度,其单位为bps,即每秒钟传送的bit的数量(位)(不是字节)

UART帧格式

 校验位可有可无

 硬件连接

 UART控制器

一般情况下处理器都会集成UART控制器,我们使用UART进行通信时候只需对其内部的相关寄存器进行设置即可。

SPI简介

SPI总线

        SPI是串行外设接口的缩写,SPI是一种高速的、全双工、同步的串行通信总线;SPI采用主从方式工作,一般有一个主设备和一个或多个从设备;SPI需要至少四根线,分别是MISO、MOSI、SCLK、CS(chip select)。SPI使用引脚较少且布线方便。 

什么时候会比四根线多?

答:多个从机的时候

 寻址方式

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

 通信过程

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电平,传输距离和应用场景相似
  3. 均采用主从方式进行工作

不同点:

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

UARTSPI都是串行通信协议,可以用于在嵌入式系统中实现设备之间的通信。 UART是通用异步收发传输器(Universal Asynchronous Receiver Transmitter)的缩写。它是一种简单的串行通信协议,由一个发送线路、一个接收线路一个时钟线路组成。UART通信不需要时钟同步,通常使用固定波特率进行传输。在嵌入式系统中,我们可以使用UART来连接微控制器其他设备,例如传感器、LCD屏幕等。 以下是UART的配置步骤: 1. 配置引脚:需要将UART的发送引脚接收引脚连接到微控制器的GPIO引脚上。 2. 配置波特率:设置波特率,以确保发送方接收方以相同的速率进行通信。 3. 配置数据位、校验位停止位:这些参数需要与所连接设备的参数匹配。 4. 配置中断:可以启用中断,以便在接收到数据时立即处理。 SPI是串行外设接口(Serial Peripheral Interface)的缩写。SPI协议是一种同步的串行通信协议,用于在微控制器外部设备之间进行高速数据传输。SPI使用多个线路进行通信,包括一个时钟线路、一个主机输出从机输入线路、一个主机输入从机输出线路以及一个片选线路。 以下是SPI的配置步骤: 1. 配置引脚:需要将SPI的时钟引脚、主机输出从机输入引脚、主机输入从机输出引脚片选引脚连接到微控制器的GPIO引脚上。 2. 配置时钟极性相位:时钟极性相位参数需要与所连接设备的参数匹配。 3. 配置数据位宽度:设置数据位宽度,以确保发送方接收方使用相同的数据位宽度进行通信。 4. 配置传输顺序:可以选择MSB(最高有效位)或LSB(最低有效位)优先传输数据。 5. 配置主从模式:可以选择主机或从机模式。 6. 配置中断:可以启用中断,以便在接收到数据时立即处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值