zoukankan      html  css  js  c++  java
  • SPI通信

    SPI是由Motorola公司提出的一种同步串行外围接口;它在速度要求不高,低功耗,需要保存少量参数的智能化传感系统中得到了广泛应用;

      SPI是一个全双工的同步串行接口,在数据传输过程中,总线上只能是一个主机和一个从机进行通信;

      通信四种模式:

        1、MISO(Master In Slave Out)

           主机输入,从机输出;

        2、MOSI(Master  Out  Slave In)

            主机输出,从机输入;

        3、SCK(Serial  Clock)

            串行时钟信号

        4、SS(Slave  Select)

            从机选择信号,低电平有效;(即作从机时,该位置低)

    SPI总线可在软件的控制下构成各种系统

            

                          SPI总线与多从机连接

    SPI的基本结构相当于两个8位移位寄存器的首尾相接,构成16位的环形移位寄存器,从而实现了主机与从机的数据交换;

              

                          SPI接口的基本结构图

    SPI主从模式

      设置MSTR(主设备选择)和SPE位(使能位)来选择是否工作在主模式还是从模式;

    stm32强大之处:因为从机NSS位必须接0,而主机NSS位接1;stm32可以有软件来设置相应的主从位;

    SPI下时钟信号的相位和极性(设置由与之通信的具体芯片来设定)

      SPI接口可由CPOL和CPHA设定4种不同传输格式的时序;

      CPOL决定时钟脉冲SCK的有效脉冲方式(正脉冲、负脉冲)。CPHA决定数据线MOSI什么时候输出数据或采集数据;

      根据CPOL和CPHA的组合数目,一共四种设置情况;

                           

    数据图分析:

            

    数据帧的格式

      根据SPI_CR1寄存器中的LSBFIRST位,输出数据位时可以MSB(高位先传)在先也可以是LSB(低位先传),根据SPI_CR1寄存器的DFF位,每个数据帧可以是8位或者16位,所选择的数据帧格式对发送/接收都有效;

    SPI通信配置步骤:(在主模式下,串行时钟在SCK脚产生)

      1、通过SPI_CR1寄存器的BR[2:0]位定义串行时钟波特率;

      2、选择CPOL和CPHA位,定义数据传输和串行时钟间的相位关系;

      3、设置DFF位来定义8/16位数据帧格式;

      4、配置SPI_CR1寄存器的LSBFIRST位定义帧格式;

      5、如果NSS引脚需要工作在输入模式,硬件模式中在整个数据帧传输期间应把NSS脚连接到高电平;在软件模式中,需要设置SPI_CR1寄存器的SSM和SSI位,如果NSS引脚工作在输出模式,则只需设置SSOE位;

      6、必须设置MSTR和SPE位(只当NSS被连到高电平,这些位才能保存置位)。

        在这个配置中,MOSI脚是数据输出,而MISO脚是数据输入;

    SPI通信过程:

      

      

  • 相关阅读:
    gitlab备份及恢复
    Nginx一:常用命令和配置文件介绍
    SpringTask三:使用SpringBoot
    SpringTask二:注解配置方式
    SpringTask一:xml配置方式
    大坑!maven的web项目初始化错误:sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification ...
    Quartz(5):quartz监听器
    Quartz(4):quartz.properties配置文件介绍
    Quartz(3):simpleTrigger和cronTrigger触发器的介绍
    Quartz(2):JobDetail、JobExectionContext、JobDataMap的介绍
  • 原文地址:https://www.cnblogs.com/chris-cp/p/3920596.html
Copyright © 2011-2022 走看看