zoukankan      html  css  js  c++  java
  • SPI通信协议接口概述

    一、 spi的概述

    SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,它是由Motorola公司推出,用来在微控制器和外围设备芯片之间实现数据交换的低成本、易使用的接口。SPI总线为同步串行数据传输总线,用于单片机的外围拓展。spi利用时钟线对数据位进行同步,时钟的上升沿或下降沿锁存数据,来自主机或从机的数据在时钟上升沿或下降沿同步,主机和从机可以同时传输数据。

     

    二、 spi的配置

    spi可以是三线式的也可以是四线式的

    1、三线制半双工SPI可以分时收发

    SCLK串行时钟

    CS或SS外设片选或从机选择

    DIO数据线,输入与输出共用

     

    2、四线制全双工SPI可同时收发

    MISO主机输入/从机输出

    MOSI主机输出/从机输入

    SCLK串行时钟

    CS/SS外设片选或从机选择

    来自主机的片选信号CS是从芯片是否被主芯片选中的控制信号,这通常式一个低电平有效,拉高时从机与SPI总线断开连接,当使用多个从机时,主机需要为每个从机提供单独的片选信号,产生时钟信号的器件称为主机

    三、 spi的数据传输

    通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议,也就是说数据是一位一位的传输的。这就是SCLK时钟线存在的原因,由SCLK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。数据输出通过 SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输,输入也使用同样原理。因此,至少需要8次时钟信号的改变(上沿和下沿为一次),才能完成8位数据的传输。(源自百度百科)

    四、 时钟极性和时钟相位

    在spi的概述中我们讲spi利用时钟线对数据位进行同步,时钟的上升沿或下降沿锁存数据,那么主机就需要根据从机的要求去选择时钟极性和时钟相位。根据CPOL和CPHA位的选择,有四种SPI模式可用。

    CKPOL (Clock Polarity) (时钟)极性:SPI空闲时的时钟信号电平(1高电平,0低电平)

    CKPHA (Clock Phase) (时钟)相位:SPI在时钟的第几个边沿采样(1第二个边沿开始,0第一个边沿开始)

     

     参考:SPI代码实现_哔哩哔哩_bilibili

    参考:SPI(SPI协议)_百度百科 (baidu.com)

  • 相关阅读:
    linux 压力测试工具之ab
    docker save load export import的区别
    手把手教你打造高效的 Kubernetes 命令行终端
    K8S 中的容器编排和应用编排
    linux mount一个目录到另外一个目录
    linux sed命令详解
    各种安全证书间的关系及相关操作
    Linux Shell/Bash wildcard通配符、元字符、转义符使用
    vim打开多个文件、同时显示多个文件、在文件之间切换
    吉他演奏中的速度与节拍
  • 原文地址:https://www.cnblogs.com/zhongllmm/p/14994216.html
Copyright © 2011-2022 走看看