Menu Close

SPI 通讯协议(1)SPI 定义与应用

什么是SPI

SPI(Serial Peripheral Interface)串行外设接口是Motorola公司在2000年推出的一种同步接口。这种接口首先由motorola 公司在80年代中期开发,后来逐步成为行业标准。

它是一种高速、全双工的同步串行控制总线,主要用于芯片间的传输。

其优点是:

    硬件实现简单,

    通讯线比较少(通常4pin,有利于芯片封装),

    通讯速度比较快(相对于uart, ⅱc,有些芯片可以达到133Mbit/s),

    pcb 布线比较容易。

    驱动程序相对简单。

缺点是:

    数据没有应答, 需要上层硬件,软件来保证传输数据的正确性。

 

参考文章:

SPI 通讯协议 及 SPI 相关工程 详解

SPI接口被广泛的应用在串行falsh存储器、EEPROM、AD转换芯片、液晶显示屏,解码器和各类传感器芯片中。

spi 网络通讯                             spi flash                                             spi 传感器

 

SPI 标准接口

SPI 一主一从 连接

 

SPI ONE MASTER ONE SLAVE

其中, 主芯片 发送 sclk,mosi, /ss ; 主芯片接收 miso 信号。

SCLK – Serial Clock (时钟信号,由主设备产生,输出);

MOSI– Master Output Slave Input (主设备数据输出,从设备数据输入);

MISO– Master Input Slave Output (主设备数据输入,从设备数据输出);

SS– Chip Select (从设备使能信号,由主设备控制, 输出)。

SPI 是一种同步全双工的接口, 主设备发出时钟(sclk),片选信号(ss),mosi 数据信号;

从设备使用主设备的时钟,返回(输出)miso 信号 给主设备

SPI 一主多从 连接

 

SPI ONE MASTER THREE SLAVE

1)主设备可以有多个片选(ss )信号,每个ss 信号分别对应一个从设备, 一般情况下,ss信号为低电平有效,但不是绝对的, 需要查看相关的设备手册(也有高电平有效的设备)

2)所有miso 信号(从设备发出)共用一条miso 信号线。

3)没有被ss 选择的设备,设备内部的miso 需要高阻,这样就不影响其他从设备返回数给主设备。

4)从设备共用主设备发出的sclk, mosi 信号 (广播)

SPI 协议部分

数据传输

SCLK 由主设备发出,通常情况下, 时钟速率没有强制规定, 主要看从设备的接受能力,不能超过从设备所规定的时钟速率即可。

MOSI和MISO线在SCLK的每个时钟周期传输一位数据,一般情况下(绝大多数)先发送最数据最高位MSB;最后发送数据最低位LSB。

SPI有四种通讯模式, 四种模式的主要用来区分

总线空闲时SCLK的状态 (CPOL)

数据采样位置 (CPHA)

这样就分为:时钟极性CPOL(0,1)和 时钟相位CPHA(0,1), 这两个概念。 这主要是用于兼容不同的从设备的需求而产生的通讯模式。 因此:由CPOL和CPHA的组合而产生了四种的通讯模式。

CPOL(clock polarity)、CPHA(clock phase)

CPOL:没有数据传输时,时钟的空闲状态的电平。

CPHA:数据在什么位置采样

如图所示,

CPHA = 1 ; 表示在片选后(片选信号成立,有效),第二个时钟边沿 采集数据。同时还要看CPOL的初始状态(片选成立时)。

     CPOL = 0 , 表示 初始sclk 电平为,所以在sclk 的下降沿作为数据采样

    CPOL = 1 , 表示 初始sclk 电平为,所以在sclk 的上升沿作为数据采样

CPHA = 0 ; 表示在片选后(片选信号成立,有效),第一个时钟边沿 采集数据。同时还要看CPOL的初始状态(片选成立时)。

    CPOL = 0 , 表示 初始sclk 电平为,所以在sclk 的上升沿作为数据采样

    CPOL = 1 , 表示 初始sclk 电平为,所以在sclk 的下降沿作为数据采样

四种工作模式列表

通常被称作 mode 0,mode 1,mode 2,mode 3

SPI 数据通讯方式

1)所有数据都是根据sclk 时钟信号进行 数据转换, 或者 数据采样的。 即spi 是同步传输协议。具体情况(上升沿是采样还是数据转换, 下降沿是采样还是数据转换)根据spi 的4种通讯模式。

2)如果需要片选信号,一定是在片选信号有效的情况下,遵循spi 的4种通讯方式; 在片选无效时, 根据CPOL 的定义, 保持sclk 在高电平(CPOL = 1),或者低电平(CPOL = 0),在有些一主一从的情况下, 可能不需要片选, 这时,默认片选是一直有效的。

3)数据传输没有规定需要多少个时钟周期,算是一个完整的操作。通常是 8个sclk, 16个sclk,24个sclk, 32个sclk 等等。 根据从设备的定义,能够完成从设备的操作即可。

举例:

主设备发送8bit命令

主设备发送8bit 命令, 从设备返回24bit 的数据给主设备。

主设备发送8bit 命令, 发送 24bit 的地址; 从设备返回24bit地址所存储的数据。

 

总体来说, 通讯的内容,有主从设备共同决定,(从设备指出什么样的通讯,可以被接受,主设备,根据从设备的需求,编写相关的驱动)

4)数据通讯没有应答信号, (这个ⅱc是不同的)。 所以通讯时,无法保证对方一定正确接收到发送的数据。 需要上层(软件, 硬件)校验,来保证数据传输的正确性。

5)spi 总线是全双工同步通讯总线, 即发送时,也可以接收数据。但在一般情况下的应用是问答方式进行的。 即发送时,不接收数据; 接收时,不发送数据。 但没有明确规定,必须以这种半双工模式通讯。

 

Posted in FPGA, FPGA 教材教案, FPGA开发板, IC, RISC-V开发板, 开发板, 教材与教案, 文章

发表评论

您的电子邮箱地址不会被公开。

Leave the field below empty!

相关链接