iic与spi

IIC与SPI 相同点

1.均采样串行,同步的方式
2.均采样TTL电平,传输距离和应用场景类似
3.均采样主从方式工作


不同点

1.IIC为半双工,SPI为全双工
2.IIC有应答机制,SPI无应答机制
3.IIC通过向总线广播从机地址来寻址,SPI通过向对应从机发送使能信号来寻址(硬件资源占用多,节约时间)

一、IIC总线通信过程

1.主机发送起始信号启用总线
2.主机发送一个字节数据(8位)指明从机地址(7位)和后续字节(1位)的传送方向,0表示主机发送信号,1表示主机接收信号。
3.被寻址的从机发送应答信号回应主机
4.发送器发送一个字节数据
5.接收器发送应答信号回应发送器
…… ……(循环步骤4,5)
n.通信完成后主机发送停止信号释放总线。

二、起始信号和终止信号

 

SCL为高电平时,SDA由高变低表示起始信号
SCL为高电平时,SDA由低变高表示停止信号

起始信号和停止信号都是由主机发出,起始信号产生后总线处于占用状态,停止信号产生后总线处于空闲状态。

三、字节传送与应答

 

 时钟信号高低电平循环,SCL为高时,数据线信号不能发生变化;SCL为低时允许数据线信号变化。(SCL为高时,SDA电平改变 会产生起始信号或终止信号,信息传送混乱。)

发送器完成一个字节的数据传输后,接收器的数据线必须产生一个低电平的应答来回应发送器。即一次传输需要9位。

四、SPI

 

 cs为片选端(使能端),MOSI(M output S input)主发从收,MISO与之相反。

产生时钟的一侧称为主机,另一侧称为从机。总是只有一个主机(一般来说可以是微控制器/MCU),但是可以有多个从机(后面详细介绍);一个字节传送完成后无需应答即可开始下一个字节的传送;

数据的采集时机可能是时钟信号上升沿(从低到高)或下降沿(从高到低)。具体要看对SPI的配置;

  • 主机发送到从机时:主机产生相应的时钟信号,然后数据一位一位地将从MOSI信号线上进行发送到从机;

  • 主机接收从机数据:如果从机需要将数据发送回主机,则主机将继续生成预定数量的时钟信号,并且从机会将数据通过MISO信号线发送;

 

 

 

时钟极性 CKP/Clock Polarity 

 

根据硬件制造商的命名规则不同,时钟极性通常写为CKP或CPOL。时钟极性和相位共同决定读取数据的方式,比如信号上升沿读取数据还是信号下降沿读取数据;

CKP = 0:时钟空闲IDLE为低电平 0;
CKP = 1:时钟空闲IDLE为高电平1;

时钟相位 CKE /Clock Phase (Edge)


除配置串行时钟速率和极性外,SPI主设备还应配置时钟相位(或边沿)。根据硬件制造商的不同,时钟相位通常写为CKE或CPHA;

顾名思义,时钟相位/边沿,也就是采集数据时是在时钟信号的具体相位或者边沿;

CKE = 0:在时钟信号SCK的第一个跳变沿采样;
CKE = 1:在时钟信号SCK的第二个跳变沿采样;

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
IICSPI和UART都是常见的串行通信协议,它们在不同的应用场景下有着不同的优势和劣势。 1. IIC(Inter-Integrated Circuit)是一种同步、半双工、串行、一对多、有应答机制的通信协议。IIC总线由两根线组成:串行数据线(SDA)和串行时钟线(SCL)。IIC总线的极性和时钟相位是固定的,因此在传输数据时需要先发送起始信号,然后发送从设备地址和读写位,接着发送数据,最后发送停止信号。IIC总线的优点是通信速度快,可靠性高,适用于短距离、高速率的通信。 2. SPI(Serial Peripheral Interface)是一种同步、全双工、串行、一对多、无应答机制的通信协议。SPI总线由四根线组成:串行数据输入线(MOSI)、串行数据输出线(MISO)、串行时钟线(SCK)和片选线(SS)。SPI总线的极性和时钟相位是可变的,因此在传输数据时需要先选择从设备,然后发送数据,最后取消片选信号。SPI总线的优点是通信速度快,可靠性高,适用于长距离、低速率的通信。 3. UART(Universal Asynchronous Receiver/Transmitter)是一种异步、全双工、串行、一对一、无应答机制的通信协议。UART总线由两根线组成:串行数据线(TX)和串行接收线(RX)。UART总线的通信速率是可变的,因此在传输数据时需要先设置波特率,然后发送数据。UART总线的优点是通信距离远,适用于低速率的通信。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Sunxinuai

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

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

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

打赏作者

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

抵扣说明:

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

余额充值