SPI通信协议详解

嵌入式 TOMORROW 6个月前 (05-25) 281次浏览 0个评论 扫描二维码

SPI,是英语 Serial Peripheral interface 的缩写,中文全称是串行外围设备接口。是 Motorola 所研发的一种串行通信协议。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD 转换器,还有数字信号处理器和数字信号解码器之间。SPI通信协议是一种高速的全双工同步的通信总线协议。可以支持百兆 bit/s 的通信速率。

 

SPI的通信原理十分简单,它是以主从方式来工作,这种模式通常是:一个主设备和一个或多个从设备,由主设备发起通信。需要至少 4 根线,然而事实上 3 根也可以(单向传输时)。4 根线分别是:

  • MOSI    – 主设备数据输出,从设备数据输入(MOSI:master output slave input)
  • MISO     – 主设备数据输入,从设备数据输出(MISO:master input slave output)
  • SCLK   – 时钟信号,由主设备产生
  • CS /NSS       – 从设备使能信号(片选),由主设备控制

接线实例:

SPI 通信协议详解

 

时序图:

SPI 通信协议详解

 

SPI有四种工作模式,由 CPOL 和 CPHA 决定。

        CPOL: 时钟极性, 表示 SPI总线在空闲时, 时钟信号是高电平还是低电平. 如果 CPOL 被设为 1, 空闲时 SCK 时钟信号为高电平. 当 CPOL 被设为 0 时则正好相反.
        CPOL = 0: SCK idle phase is low; 
        CPOL = 1: SCK idle phase is high;

        CPHA: 时钟相位, 表示 SPI 进行数据采样时,SCK 是上升沿还是下降沿。 若 CPHA 被设置为 1, 则 SPI 设备在时钟信号变为下降沿时触发数据采样, 在上升沿时发送数据。当 CPHA 被设为 0 时也正好相反。
        CPHA = 0: Output data at negedge of clock while receiving data at posedge of clock;
        CPHA = 1: Output data at posedge of clock while receiving data at negedge of clock;

 

 

 


TOMORROW 星辰 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:SPI 通信协议详解
喜欢 (1)
TOMORROW
关于作者:
一个从石头坑掉到泥坑里的攻城狮。
英俊的巨人发表我的评论  请填写正确的 个人信息
取消评论
表情 加粗 斜体 签到