UART,IIC,SPI

UART和USART:

USART:通用同步异步收发器(Universal Synchronous Asynchronous Receiver and Transmitter)
UART:通用异步收发器(Universal Asynchronous Receiver and Transmitter)

同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。
异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。

同步是阻塞模式,异步是非阻塞模式。

UART是全双工串行异步通信,不需要时钟线,需要两根信号线Tx和Rx

PC和单片机通信需要加电平转换芯片将TTL(单片机)转RS232(PC)

UART的传输过程

接收过程:Rx接收数据,经过编解码模块,一位一位放入接收移位寄存器,然后一次性写入接收数据寄存器,CPU就可以从接收数据寄存器读取了

发送过程:CPU将数据写入发送数据寄存器,然后发送数据寄存器一次性发送给发送移位寄存器,然后根据波特率将数据一位一位发送出去。

大多情况下用于调试

IIC:

IIC:适合多主机多从机间的通信。半双工同步串行通信,需要一根时钟线SCL和一根数据线SDA。是一个支持多设备的总线(总线就是多设备共用信号线),通过地址访问设备

数据协议
起始和结束信号:
SCL为高电平时,SDA由高变低是起始信号。
SCL为高电平时,SDA由低变高是终止信号。
传输过程中SCL为高电平时SDA数据有效,SCL为低电平时进行SDA高低切换

主机写数据到从机

起始信号----主机发送地址和写信号----从机应答----主机发送数据-----从机应答----。。。----主机发送数据-----从机非应答----结束信号

主机由从机读数据
起始信号----主机发送地址和读信号----从机应答----从机发送数据----主机应答----。。。从机发送数据-------主机非应答----结束信号

上面两个过程可以复合使用

总线空闲条件
IIC总线上设备都释放总线(发出传输停止)后,IIC总线根据上拉电阻变成高电平,SDA SCL都是高电平。

参考:https://blog.csdn.net/MoLiYw/article/details/101103224

SPI:

SPI:(Serial Peripheral Interface串行外设接口),串行外设接口全双工同步串行通信,传输速率高,只支持单主机,采用主从控制方式

使用四条线:
SCK:时钟信号 -> 主机产生,速率受限低速设备
SS(CS/NSS):片选 -> 低电平有效,同一时刻只允许一个设备连接
MISO(SDI):主设备输入/从设备输出
MOSI(SDO):主设备输出/从设备输入

通过片选选择从机设备
多从机与主机连接时,共用SCK.MISO,MOSI
每个从机单独有一根SS线,主机将SS线拉低即选中该设备。

起始信号:SS线置低
终止信号:SS线拉高

CPOL/CPHA和通讯模式:

SPI有四种通讯模式,由CPOL(时钟极性)和CPHA(时钟相位共同决定)

CPOL时钟极性决定SCK线在空闲时的状态:
CPOL=0,SCK在空闲状态为低电平
CPOL=1,SCK在空闲状态为高电平

CPHA时钟相位决定数据的采样时刻:
CPHA=0,MISO和MOSI线上的数据在SCK时钟线的“奇数边沿”被采样
CPHA=1,MISO和MOSI线上的数据在SCK时钟线的“偶数边沿”被采样
举例:CPHA=0,SCK=0/1的两种情模式在这里插入图片描述

总结:
在这里插入图片描述
IIC和SPI的不同:

IICSPI
半双工全双工
多主机总线单主机总线
通过地址选择设备SS片选
传输速度比SPI慢
采样方式,空闲状态电平等细节不同
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值