zoukankan      html  css  js  c++  java
  • 协议——SPI

      SPI(Serial Peripheral interface)是由摩托罗拉公司定义的一种串行外围设备接口,是一种高速、全双工、同步的通信总线,只需要四根信号线即可,节约引脚,同时有利于PCB的布局。正是出于这种简单易用的特性,现在越来越多的芯片集成了SPI通信协议,如FLASH、SD卡,AD转换器等。SPI的通信原理比较简单,它以主从方式工作,通常有一个主设备和一个或多个从设备。一般其有 4 根线,片选线(CS)、同步时钟线(SCLK)、输入数据线(MOSI)和输出数据线(MISO)。

    一、通信模式
      一般而言,SPI通信有4种不同的模式,不同的从设备在出厂时被厂家配置为其中一种模式,模式是不允许用户修改的。主设备和从设备必须在同一模式下进行通信,否则数据会接收错误。SPI的通信模式是由CPOL(时钟极性)和CPHA(时钟相位)来决定的,四种通信模式如下:
    模式0:CPOL = 0, CPHA = 0;
    模式1:CPOL = 0, CPHA = 1;
    模式2:CPOL = 1, CPHA = 0;
    模式3:CPOL = 1, CPHA = 1;

    1.CPOL时钟极性

      CPOL信号控制着SPI_CLK的时钟极性,时钟极性变化规律如下:

    CPOL = 1:SPI_CLK空闲时为高,第1个时钟沿为下降沿
    CPOL = 0:SPI_CLK空闲时为低,第1个时钟沿为上升沿

    2.CPHA时钟相位

      CPHA信号控制数据与时钟的对齐模式,其不同模式下的时序图如下所示:

      由上图可知,当CPHA = 1时,时钟的第一个变化沿(上升沿或者下降沿)数据开始改变,那么也就意味着时钟的第2个变化沿(与第一个变化沿相反)锁存数据;当CPHA = 0时,数据在时钟的第一个变化沿之前就已经改变,并且保持稳定,也就意味着在时钟的第一个变化沿锁存数据。

    二、总结

    参考资料:

    [1]亚德诺半导体.一文读懂4线SPI

    [2]威三学院FPGA教程

    [3]正点原子FPGA教程

  • 相关阅读:
    简易高重用的jdbcutils工具封装实现类以及简易连接池实现
    http header 具体解释
    zoj 3888 Twelves Monkeys 二分+线段树维护次小值
    hyperLink的定制
    document.body.clientHeight的取值
    在循环中创建网页元素的问题
    mongo db 启动停止
    myeclipse 2014破解
    weblogic 集群部署时上传jsp不更新问题
    Spring classPath:用法
  • 原文地址:https://www.cnblogs.com/xianyufpga/p/11341809.html
Copyright © 2011-2022 走看看