hikey960 SPI调试进阶之基础篇  

分享到:

DragonCat
Level 2Admin
注册时间:8年 前
帖子数: 42
2017年6月21日 上午9:51  

SPI 简介

 

 

SPI(串行外围设备接口)是由Motorola 公司推出的一种同步串行接口总线,其在物理上是通过接在外围设备微控制器(PIC micro) 上面的微处理控制单元 (MCU) 上的同步串行端口(Synchronous Serial PortSSP) 的模块来实现的, 它允许 MCU 以全双工的同步串行方式, 与各种外围设备进行高速数据通信.SPI总线遵从主从模式,由主设备发起通讯请求,通常工作于全双工模式,由4条数据时钟线组成,如下图与下表。

 

SPI设备连接框图(0-0

 

SPI接口描述表(0-1

 

接口管脚

名称

描述

SCK

串行移位时钟

时钟信号,只能由主器件产生

MOSI

串行数据输出

主器件数据输出,从器件数据输入,用于主器件到从器件的数据传输

MISO

串行数据输入

主器件数据输入,从器件数据输出,用于从器件到主器件的数据传输。

CS/SS

从使能/片选信号

设备选择线(片选),由主器件控制,当从器件片选信号输入低电平时为选中状态,/SS是针对从器件而言的,作为主器件,不需要使用/SS

 

SPI连接设备

SPI连接设备中,主要有两种方式:一主一从 和 一主多从 ,从硬件连接上讲这主要取决于 SPI控制器上的CS的个数,即CS总数决定此SPI控制器上可以挂在的从设备总数,连接方式如下图。

 SPI传输原理

 

 

SPI通信本质上是一个串行移位过程,原理非常简单,如下图所示,SPI主从器件构成一个环形总线结构,在主机输出的SCLK时钟控制下,两个移位寄存器进行数据交换。

  1. SPI四种工作模式

 

 

CPOL:时钟极性选择,为0SPI总线空闲为低电平,为1SPI总线空闲为高电平

 

CPHA:时钟相位选择,为0时在SCK第一个跳变沿采样,为1时在SCK第二个跳变沿采样

 

CPOLCPHA组成了四种SPI mode,如下图:

 

工作方式1CPOL = 0 CPHA = 0;

 

工作方式2CPOL = 0 CPHA = 1;

 

工作方式3CPOL = 1 CPHA = 0;

 

工作方式4CPOL = 0 CPHA = 1;

    工作方式1

 

CPHA=0CPOL=0,SPI总线工作在方式1MISO引脚上的数据在第一个SPSCK沿跳变之前已经上线了,而为了保证正确传输,MOSI引脚的MSB位必须与SPSCK的第一个边沿同步,在SPI传输过程中,首先将数据上线,然后在同步时钟信号的上升沿时,SPI的接收方捕捉位信号,在时钟信号的一个周期结束时(下降沿),下一位数据信号上线,再重复上述过程,直到一个字节的8位信号传输结束。

 

 

       工作方式2

 

CPHA=0CPOL=1SPI总线工作在方式2。与前者唯一不同之处只是在同步时钟信号的下降沿时捕捉位信号,上升沿时下一位数据上线。

 

       工作方式3

 

CPHA=1CPOL=0SPI总线工作在方式3MISO引脚和MOSI引脚上的数据的MSB位必须与SPSCK的第一个边沿同步,在 SPI传输过程中,在同步时钟信号周期开始时(上升沿)数据上线,然后在同步时钟信号的下降沿时,SPI的接收方捕捉位信号,在时钟信号的一个周期结束时 (上升沿),下一位数据信号上线,再重复上述过程,直到一个字节的8位信号传输结束。

 

 

       工作方式4

 

CPHA=1CPOL=1SPI总线工作在方式4。与前者唯一不同之处只是在同步时钟信号的上升沿时捕捉位信号,下降沿时下一位数据上线。

 

 

 

 

 

 

 

 

 

 

 


回复引用
wolfkin
Level 2Admin
注册时间:8年 前
帖子数: 27
2017年6月21日 上午9:57  

 坐等更新


回复引用
  
Working

登陆 或者 注册