SPISPI是串行外设接口Serial Peripheral Interface的缩写。SPI是一种串行、全双工、同步的通信总线支持主从模式。通信逻辑线MISOMaster input slave output主机输入从机输出数据来自从机MOSIMaster output slave input主机输出从机输入数据来自主机SCLKSerial Clock串行时钟信号由主机产生发送给从机CSChip Select片选信号由主机发送以控制与哪个从机通信通常是低电平有效信号。通信过程主机先将CS信号拉低这样保证开始接收数据当接收端检测到时钟的边沿信号时它将立即读取数据线上的信号这样就得到了一位数据1bit;主机发送到从机时主机产生相应的时钟信号然后数据一位一位地将从MOSI信号线上进行发送到从机主机接收从机数据如果从机需要将数据发送回主机则主机将继续生成预定数量的时钟信号并且从机会将数据通过MISO信号线发送。优点全双工串行通信高速数据传输速率简单的软件配置极其灵活的数据传输不限于8位可以是任意大小的字非常简单的硬件结构。从机不需要唯一地址与I2C不同从机使用主机时钟不需要精密时钟振荡器/晶振与UART不同不需要收发器与CAN不同。缺点没有硬件从机应答信号主机可能在不知情的情况下无处发送通常仅支持一个主设备需要4根引脚与I2C不同没有定义硬件级别的错误检查协议与RS-232和CAN总线相比传输距离非常短IICSPI是一种串行、半双工、同步的通信总线支持主从模式。用于微控制器MCU和外围设备从设备进行通信的一种总线属于一主多从一个主设备Master多个从设备Slave的总线结构总线上的每个设备都有一个特定的设备地址以区分同一I2C总线上的其他设备。通信逻辑线串行时钟线SCL串行数据线SDA通信过程1.数据有效位规定SCL为低电平SDA允许变化SCL为高电平SDA不允许变化SDA高电平代表1低电平代表0。2.空闲状态当IIC总线的数据线SDA和时钟线同时处于高电平时规定为总线的空闲状态。3.起始信号和终止信号SCL为高电平期间:SDA由低到高 – 起始信号SDA由高到低 – 终止信号4.应答信号发送器每发送一个字节8个bit就在时钟脉冲9期间释放数据线由接收器反馈一个应答信号。应答信号为低电平时规定为有效应答ACK简称应答位表示接收器已经成功地接受了该字节应答位为高电平时规定为非应答信号NACK一般表示接收器接收该字节没有成功。5.总线寻址1IIC协议规定采用7bit的寻址字节寻址字节是起始信号后的第一个字节其位定义如下| 7 | 6 | 5 | 4 3 21 0D7 D1位组成从机地址。 D0位是数据传送的方向0:表示主机向从机写数据1:表示主机由从机读数据。6.通信过程以主设备往从设备中写寄存器为例首先由由主机发送一个开始信号然后主机在数据线上广播从机地址确定数据的传输方向是读还是写“A”代表应答表示主机找到了从机。主机发送一个字节数据从机接收到后会返回给主机一个应答信号直到主机发送完数据或者从机返回一个NACK信号表示从机不再接收主机发送的数据。主机发送一个stop信号。此次数据传输完成。UARTSPI是一种串行、半双工、异步的通信总线。通信逻辑线TX数据发送RX数据接收通信过程通信双方采用约定的波特率。
SPI、UART和I2C通信协议
SPISPI是串行外设接口Serial Peripheral Interface的缩写。SPI是一种串行、全双工、同步的通信总线支持主从模式。通信逻辑线MISOMaster input slave output主机输入从机输出数据来自从机MOSIMaster output slave input主机输出从机输入数据来自主机SCLKSerial Clock串行时钟信号由主机产生发送给从机CSChip Select片选信号由主机发送以控制与哪个从机通信通常是低电平有效信号。通信过程主机先将CS信号拉低这样保证开始接收数据当接收端检测到时钟的边沿信号时它将立即读取数据线上的信号这样就得到了一位数据1bit;主机发送到从机时主机产生相应的时钟信号然后数据一位一位地将从MOSI信号线上进行发送到从机主机接收从机数据如果从机需要将数据发送回主机则主机将继续生成预定数量的时钟信号并且从机会将数据通过MISO信号线发送。优点全双工串行通信高速数据传输速率简单的软件配置极其灵活的数据传输不限于8位可以是任意大小的字非常简单的硬件结构。从机不需要唯一地址与I2C不同从机使用主机时钟不需要精密时钟振荡器/晶振与UART不同不需要收发器与CAN不同。缺点没有硬件从机应答信号主机可能在不知情的情况下无处发送通常仅支持一个主设备需要4根引脚与I2C不同没有定义硬件级别的错误检查协议与RS-232和CAN总线相比传输距离非常短IICSPI是一种串行、半双工、同步的通信总线支持主从模式。用于微控制器MCU和外围设备从设备进行通信的一种总线属于一主多从一个主设备Master多个从设备Slave的总线结构总线上的每个设备都有一个特定的设备地址以区分同一I2C总线上的其他设备。通信逻辑线串行时钟线SCL串行数据线SDA通信过程1.数据有效位规定SCL为低电平SDA允许变化SCL为高电平SDA不允许变化SDA高电平代表1低电平代表0。2.空闲状态当IIC总线的数据线SDA和时钟线同时处于高电平时规定为总线的空闲状态。3.起始信号和终止信号SCL为高电平期间:SDA由低到高 – 起始信号SDA由高到低 – 终止信号4.应答信号发送器每发送一个字节8个bit就在时钟脉冲9期间释放数据线由接收器反馈一个应答信号。应答信号为低电平时规定为有效应答ACK简称应答位表示接收器已经成功地接受了该字节应答位为高电平时规定为非应答信号NACK一般表示接收器接收该字节没有成功。5.总线寻址1IIC协议规定采用7bit的寻址字节寻址字节是起始信号后的第一个字节其位定义如下| 7 | 6 | 5 | 4 3 21 0D7 D1位组成从机地址。 D0位是数据传送的方向0:表示主机向从机写数据1:表示主机由从机读数据。6.通信过程以主设备往从设备中写寄存器为例首先由由主机发送一个开始信号然后主机在数据线上广播从机地址确定数据的传输方向是读还是写“A”代表应答表示主机找到了从机。主机发送一个字节数据从机接收到后会返回给主机一个应答信号直到主机发送完数据或者从机返回一个NACK信号表示从机不再接收主机发送的数据。主机发送一个stop信号。此次数据传输完成。UARTSPI是一种串行、半双工、异步的通信总线。通信逻辑线TX数据发送RX数据接收通信过程通信双方采用约定的波特率。