目录
什么是串行?
串行就是用一根数据线,依次传输多位数据
什么是并行?
并行就是,如果要传输8位数据,那么就用8根数据线,每个数据线传输一位数据
什么是同步?
有一根SCL时钟线,保证收发数据双方时钟的同步
比如IIC、SPI就是同步通信
什么是异步?
没有用于同步收发双方的时钟线
比如UART就没有时钟线,它就是异步通信
UART通信协议
是一种通用的串行、异步通信总线,该总线有两条数据线,可以实现全双工的发送和接收数据
规定:空闲位必须置1,起始位为0
发送数据时先发低位,后发高位
UART属于异步通信(接收方和发送方用的时钟不一样) IIC、SPI就属于同步通信
IIC总线
是一种串行、半双工、同步、低速的通信总线
有两根双向的信号线,一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步
发送数据时先发高位,后发地位 和UART不同的是,IIC必须为8位,UART数据位可以是5、6、7或8位
空闲状态:SCL和SDA都为高电平
起始信号:SCL为高时,SDA由高变为低 发送第一个字节的内容:其中7位是从机的地址,最后一位是0还是1决定了主机在通信时是发数据还是收数据 接收器应答信号:发送器发送完一位数据后,接收器必须发送1位应答位来回应发送器
注:应答信号为低电平
SCL为低电平时,是让发送器发数据的,在次期间,数据线上的电平可以改变;SCL为高电平时,是让接收器读数据的,数据线上的电平不允许变化,必须保持稳定
终止信号:SCL为高时,SDA由低变为高
SPI总线
是一种串行、全双工、同步、高速的通信总线
SPI采用主从方式工作,一般有一个主设备和一个或多个从设备
SPI需要至少4根线:
- MISO:主设备输入,从设备输出
- MOSI:主设备输出,从设备输入
- SCLK:时钟线
- CS:片选(一般如果芯片上写CS,那么就是高电平有效;如果芯片上写‘非CS’,那么就是低电平有效)
发送数据时和IIC一样,也是先传高位,在传低位
一个字节传送完成后无应答即可开始下一位字节的传送
虽然SPI和IIC都是同步通信,但是不同的是,IIC的同步是电平触发,而SPI的同步是边沿触发
时钟线在上升沿或下降沿时发送器向数据线上发送数据,在紧接着的下降沿或上升沿时接收器从数据线上读取数据,循环八个时钟周期即可完成一个字节数据的传输