深圳市航顺芯片技术研发有限公司
直播中

王飞云

8年用户 1579经验值
私信 关注
[问答]

SPI协议是什么?有哪些特征?

SPI协议是什么?有哪些特征?

什么是I2C协议?

回帖(1)

罗颖

2021-11-2 14:40:36
  SPI

SPI协议:Serial Peripheral Interface
SPI,是一种高速的全双工同步通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚。
在大容量产品和互联型产品上,SPI接口可以配置为支持SPI协议或者支持I2S音频协议。SPI接口默认工作在SPI方式,可以通过软件把功能从SPI模式切换到I2S模式。
  









F207↓





  SPI 接口一般使用 4 条线通信:
MISO 主设备数据输入,从设备数据输出。
MOSI 主设备数据输出,从设备数据输入。
SCLK 时钟信号,由主设备产生。
CS 从设备片选信号,由主设备控制。
两个数据线,一个数据线,一个片选线。





两个移位寄存器加上MISO和MOSI有点像环形寄存器,左边给右边传一个最高位并且左边移位,右边最高位被左边传来的最高位替代,并且移位,最低位移出来的又传给左边的移位寄存器的最低位。最终两个移位寄存器可以完全交换数据。
SPI 主要特点有:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。
SPI 总线四种工作方式 SPI 模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果 CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果 CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果 CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI 主模块和与之通信的外设备时钟相位和极性应该一致。
  NSS





从选择(NSS)脚管理,软件模式下任意一个GPIO理论上都可以做NSS,不是固定的,因为这个可以连接多个SPI设备,比如PA2、PA3、PA4都作为NSS,进行片选,就可以连接三个从设备。
  时钟信号的相位和极性
SPI_CR寄存器的CPOL和CPHA位来控制的。
CPOL:时钟极性,控制在没有数据传输时时钟的空闲状态电平,此位对主模式和从模式下的设备都有效。0:SCK引脚在空闲状态保持低电平,1:SCK引脚在空闲状态保持高电平。
CPHA:时钟相位,1:SCK时钟的第二个边沿(CPOL位为0就是下降沿,1就是上升沿)进行数据位的采样,数据在第二个时钟边沿被锁存,如果0:,SCK时钟的第一边沿(CPOL位0下降沿,1上升沿)进行数据位采样,数据在第一个时钟边沿被锁存。
CPOL时钟极性和CPHA时钟相位组合选择数据捕捉的时钟边沿。





主从要匹配
  




   I2C

两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。
它是由数据线SDA和时钟SCL构成串行总线,可发送和接收数据。在CPU与被控IC之间,IC与IC之间进行双向传送。高速IIC总线一般可达400kbps以上。
半双工
I2C协议



  • 空闲状态 I2C总线的SDA和SCL两条信号线同时处于高电平状态
  • 开始信号 SCL为高电平期间,SDA由高到低的跳变 启动信号是电平跳变时序信号,不是一个电平信号
  • 停止信号 当SCL为高期间,SDA由低到高的跳变 停止信号也是一种电平跳变时序信号,而不是电平信号
  • 应答信号 发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。低电平是有效应答,高电平是无效应答。 对于反馈有效应答ACK的要求是,接收器在第9个时钟脉冲之前的低电平期间将SDA线拉低,并且确保在该时钟的高电平期间为稳定的低电平。
  • 数据的有效性 I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。就是说数据在SCL的上升沿到来之前就要准备好,并且在下降沿到了之前必须稳定。
  • 数据传输 每个位和时钟都是对应的

   片选:动词,单片机学科词汇,可以理解成选片。举个例子,有很多芯片挂在同一总线上(像电脑里很多外设都是挂在总线上),但我们有时候需要对其中特定的某个芯片进行数据、地址或命令的独立传输,此时,我们需要有一个信号来告诉挂在总线上的芯片们,这些数据、地址是传给哪个芯片的。那这样的话,其他芯片就会对这些信号“漠不关心”,而目标芯片就知道这些数据是传给自己的从而做出反应。这个信号就叫做片选信号CS(chip select)或SS(slave select)。片选这个词即由此而来,指通过设置跳线,利用与门、或门、非门的组合来决定到底是哪几部分进入工作状态。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分