串行通讯SPI/SCI/IIC

SPI

SPI为串行同步通讯,分为主机与从机。一般为3根线。(算上片选CS为4根)
可以同时进行发送与接收数据
发送数据为8位
包括:
SCLK:时钟信号(主机提供)
MOSI:主机发送数据,从机接收数据
MISO:主机接收数据,从机发送数据
CS:从机片选(一般低有效)
连接方式:
一主一从为例

工作模式

通信有4种模式:CPOL与CPHA组合4种模式:
CPOL:时钟极性
CPHA:时钟相位
CPOL=0,表示当SCLK=0时处于空闲态,所以有效状态就是SCLK处于高电平时
CPOL=1,表示当SCLK=1时处于空闲态,所以有效状态就是SCLK处于低电平时
CPHA=0,表示数据采样是在第1个边沿,数据发送在第2个边沿
CPHA=1,表示数据采样是在第2个边沿,数据发送在第1个边沿
以主机发送,从机接收为例:
0模式:CPOL=0,CPHA=0
SCLK为0时空闲状态;
当SCLK由低到高跳变(上升沿),(从机)进行数据的接收;
当SCLK由高到低跳变(下降沿),(主机)进行数据的发送;
1模式:CPOL=0,CPHA=1
SCLK为0时空闲状态;
当SCLK由高到低跳变(下降沿),(从机)进行数据的接收;
当SCLK由低到高跳变(上升沿),(主机)进行数据的发送;
2模式:CPOL=1,CPHA=0
SCLK为1时空闲状态;
当SCLK由高到低跳变(下降沿),(从机)进行数据的接收;
当SCLK由低到高跳变(上升沿),(主机)进行数据的发送;
3模式:CPOL=1,CPHA=1
SCLK为1时空闲状态;
当SCLK由低到高跳变(上升沿),(从机)进行数据的接收;
当SCLK由高到低跳变(下降沿),(主机)进行数据的发送;
常用0模式与3模式
例:主机发送0x58,从机发送0xD0的四种模式时序图:
在这里插入图片描述

SCI

SCI为串行异步通讯,包含2根线:TXD(发送)与RXD(接收)
主机,从机不需要同一SCLK时钟信号,由各自产生时钟,通讯过程中波特率必须相同
同SPI相比,稳定性与最高速率要小于SPI

连接方式:

一主一从为例:主机RXD连从机TXD,从机RXD连主机TXD
在这里插入图片描述
工作原理:
如果 SCIRXD引脚检测到连续的4个SCICLK周期的低电平,SCI就认为接收到了一个有效的起始位,即检测到4个下降沿开始工作。发送数据过程中,每个数据位占用8个SCI时钟周期、在每个数据位第4、5、6个周期进行采样,如果三次采样中有2次以上的值相同,那么这个值就作为该数据位的值。

IIC

IIC为串行同步通讯,结构简单,仅2根线,一根时钟线:SCL;一根数据线:SDA。
主从可以相互转换
可以多设备并联于总线

连接方式

主机SCL,SDA分别与从机SCL,SDA连接。

工作原理

传输过程中,将两种特定的情况定义为开始和停止条件(如图):
当SCL保持“高”时,SDA由“高”变为“低”为开始条件
当SCL保持“高”且SDA由“低”变为“高”时为停止条件
开始和停止条件均由主控制器产生。
在这里插入图片描述
起始发送寻址数据。器件地址有7位和10位两种
7位地址寻址方式
寻址字节由1个字节构成,高7位为地址位,最低位为方向位,用以表明主机与从机的数据传送方向(读写信号)。方向位为0,表明主机接下来对从设备进行写操作;方向位为1,表明主机接下来对从器件进行读操作。
10位地址寻址方式
寻址字节由2个字节构成,高5位为11110+地址高2位+读/写信号(0写1读)+应答信号+地址低8位
主机发送地址时,总线上的每个从机都将地址码与自己的地址进行比较,如果相同,则认为自己正被主机寻址,根据R/W位将自己确定为发送器或接收器。
传输过程中,数据为8位,SCL为高时数据有效(为低时改变数据)


版权声明:本文为a346544987原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。