概述:
SPI串行外围设备接口,是Mototrola公司推出的。全双工通信,通信速率高,主要应用在flash,实时时钟RTC,数模转换器ADC等设备上。
主要构造:
SPI在芯片中只占用四根管脚用来控制及数据传输,分别为时钟线SCK,片选信号线CS,数据输入线MISO,数据输出线MOSI.
特点:
1,SPI设备之间通信必须由主设备控制从设备,主设备可通过片选实现控制多个从设备,从设备不能产生或控制时钟,只可主设备提供。
2,SPI是采用同步方式传输数据的。
3,SPI设备之间数据传输又称为数据交换,不管是读数据还是写数据都需要发送数据到从设备为其提供时钟,才能正常进行,在有些设备
读取数据时可能需要先写入数据,此时一定要记得将写入时从设备响应的数据也读出来,后面才可读出对应需要的数据。
时钟极性与时钟相位:
1,时钟极性(CPOL):
表示 SPI 在空闲时, 时钟信号是高电平还是低电平. 若CPOL =1, 设备在空闲时 SCK时钟信号为高电平. CPOL=0, SCK为低电平。
2,时钟相位(CPHA):
表示SPI在采样数据时是在SCK第一个边沿还是第二个边沿,第一个边沿CPHA=0,第二个边沿CPHA=1.
3,如何判断:
SCK的空闲时候的电压,是0还是1,决定了CPOL是0还是1,数据采样时刻对应着的SCK的电平,是第一个边沿还是第二个边沿,
对应着CPHA为0还是1。
优缺点:
1,优点:
支持全双工操作,操作简单,数据传输速率较高。
2,缺点:
需要占用主机较多的口线,只支持单个主机,没有应答机制确认是否接收到数据。