SPI协议

参考:

[1]征途pro《野火 FPGA》

[2]Microsoft Word - ILI9486L_DS_V006_20110511 (waveshare.net)

[3](1条消息) SC9820E LCD接口定义上的SPI支持哪种模式?(笔记)_素炒瓢儿白的博客-CSDN博客_spi dcx


1 SPI

  (Serial Peripheral Interface,串行外围设备接口)通讯协议,是 Motorola 公司提出的一种同步串行接口技术,是一种高速、全双工、同步通信总线,在芯片中只占用四根管脚用来控制及数据传输,广泛用于 EEPROM、Flash、RTC(实时时钟)、ADC(数模转换器)、DSP(数字信号处理器)以及数字信号解码器上,是常用的也是较为重要的通讯协议之一。
SPI 通讯协议的优点是支持全双工通信,通讯方式较为简单,且相对数据传输速率较快;缺点是没有指定的流控制,没有应答机制确认数据是否接收。

 

2 SPI 物理层 

一主一从:

一主多从:

 

  • SCK (Serial Clock):

时钟信号线,用于同步通讯数据。由通讯主机产生,决定了通讯的速率,不同的设备支持的最高时钟频率不同,两个设备之间通讯时,通讯速率受限于低速设备。

  • MOSI (Master Output, Slave Input):

主设备输出/从设备输入引脚。主机的数据从这条信号线输出,从机由这条信号线读入主机发送的数据,数据方向由主机到从机。

  • MISO (Master Input,Slave Output):

主设备输入/从设备输出引脚。主机从这条信号线读入数据,从机的数据由这条信号线输出到主机,数据方向由从机到主机。

  • CS(Chip Select):

片选信号线,也称为 CS_N,以下用 CS_N 表示。当有多个 SPI 从设备与 SPI 主机相连时,设备的其它信号线 SCK、MOSI 及 MISO 同时并联到相同的 SPI总线上,即无论有多少个从设备,都共同使用这 3 条总线;而每个从设备都有独立的这一条 CS_N 信号线,本信号线独占主机的一个引脚,即有多少个从设备,就有多少条片选信号线。I2C 协议中通过设备地址来寻址、选中总线上的某个设备并与其进行通讯;而 SPI协议使用 CS_N 信号线来寻址,当主机要选择从设备时,把该从设备的 CS_N 信号线设置为低电平,该从设备即被选中,即片选有效,接着主机开始与被选中的从设备进行 SPI 通讯。

SPI 通讯以 CS_N 线置低电平为开始信号,以 CS_N 线被拉高作为结束信号。

 

3 SPI 协议层

SPI 通讯协议一共有四种通讯模式,这 4 种模式分别由时钟极性(CPOL,Clock Polarity)和时钟相位(CPHA,Clock Phase)来定义

CPOL :参数规定了空闲状态(CS_N 为高电平,设备未被选中)时 SCK 时钟信号的电平状态,


CPHA :规定了数据采样是在 SCK 时钟的奇数边沿还是偶数边沿。 

模式 0:CPOL= 0,CPHA=0。空闲状态时 SCK 串行时钟为低电平;数据采样在 SCK时钟的奇数边沿,本模式中,奇数边沿为上升沿;数据更新在 SCK 时钟的偶数边沿,本模式中,偶数边沿为下降沿。

模式 1:CPOL= 0,CPHA=1。空闲状态时 SCK 串行时钟为低电平;数据采样在 SCK时钟的偶数边沿,本模式中,偶数边沿为下降沿;数据更新在 SCK 时钟的奇数边沿,本模式中,偶数边沿为上升沿。

模式 2:CPOL= 1,CPHA=0。空闲状态时 SCK 串行时钟为高电平;数据采样在 SCK时钟的奇数边沿,本模式中,奇数边沿为下降沿;数据更新在 SCK 时钟的偶数边沿,本模式中,偶数边沿为上升沿。

模式 3:CPOL= 1,CPHA=1。空闲状态时 SCK 串行时钟为高电平;数据采样在 SCK时钟的偶数边沿,本模式中,偶数边沿为上升沿;数据更新在 SCK 时钟的奇数边沿,本模式中,偶数边沿为下降沿。

 

4 SPI时序图举例

  此图表示的是主机视角的通讯时序。SCK、MOSI、CS_N 信号均由主机控制产生,SCK 是时钟信号,用以同步数据,MOSI 是主机输出从机输入信号,主机通过此信号线传输数据给从机,CS_N 为片选信号,用以选定从机设备,低电平有效;而 MISO 的信号由从机产生,主机通过该信号线读取从机的数据。MOSI 与 MISO 的信号只在 CS_N 为低电平的时候才有效,在 SCK 的每个时钟周期 MOSI 和 MISO 传输一位数据。

 

5 扩展SPI协议

  标准 SPI 协议(Standard SPI)也称作单线 SPI 协议(Single SPI),其中的单线是指该 SPI 协议中使用单根数据线 MOSI 进行发送数据,单根数据线 MISO 进行接收数据。 为了适应更高速率的通讯需求,半导体厂商扩展 SPI 协议,主要发展出了 Dual/Quad/Octal SPI 协议,加上标准 SPI 协议(Single SPI),这四种协议的主要区别是数据线的数量及通讯方式。

SDR 和 DDR 模式

  扩展的 SPI 协议还增加了 SDR 模式(单倍速率 Single Data Rate)和 DDR 模式(双倍 速率 Double Data Rate)。例如在标准 SPI 协议的 SDR 模式下,只在 SCK 的单边沿进行数据传输,即一个 SCK 时钟只传输一位数据;而在它的 DDR 模式下,会在 SCK 的上升沿和下降沿都进行数据传输,即一个 SCK 时钟能传输两位数据,传输速率提高一倍。


下面是有关SPI在LCD上的应用


6 SPI接口在LCD上的应用

  小分辨率的LCD,比如QQVGA,QCIF,QVGA等,广泛应用于功能手机和穿戴设备(比如手表)上。这类小分辨率的LCD,除了支持并行接口(比如i80),一般也会支持串行接口。在实际产品中广泛运用的串行接口就是SPI,由于其频率一般可以达到几十MHz,可以满足小分辨率LCD的性能要求。

SPI接口应用在LCD上,主要是以下四种模式:

  • 3线9bit Ⅰ型 :SCL/CSX /SDA
  • 3线9bit Ⅱ型 :SCL/CSX /SDO /SDI
  • 4线8bit Ⅰ型 :SCL/CSX /DCX /SDA
  • 4线8bit Ⅱ型 :SCL/CSX /DCX /SDO /SDI
  • 3线9bit 2 data Lane :SCL/CSX/D0/D1 //D1 由 DCX(RS)PIN 转换

  所谓的 3-wire,4-wire 指的是有没有 DCX 线。其中LCD 用 DCX 来区分传输的数据是 Data 还是 Command。

  所谓的 Ⅰ型、Ⅱ型指的是SDO、SDI有没有共用,如果共用则成为SDA就是 Ⅰ型,没有共用就是 Ⅱ型。

① 3-wire 9-bit 模式

3-wire 9bit写入模式下,用 SDA 信号线上的 D/C bit 来表示,传输实际数据前会先传输一个 D/C bit 数据位,比 8-bit 多了一个bit,所以称作 9-bit。D/C bit 为0时,表示Command;D/C bit 为1时,表示 Data。

3-wire 9-bit 数据格式图

3-wire 9-bit 数据/命令写入时序图

3-wire 9bit读出模式下,主机首先发送一个命令,随后数据即可读出。

② 4-wire 8-bit 模式

4-wire 8-bit 写入模式下,用 D/CX信号线的电平高低指示Command和Data。低电平时,表示Command;高电平时,表示Data。由于数据流中不再包含D/C bit,都是实际要传输的数据,所以传输效率相比 3-wire要高一些。

4-wire 8-bit 数据格式图

4-wire 8-bit 数据/命令写入时序图

4-wire 8bit读出模式

posted @ 2023-01-05 11:03  森是林上木  阅读(651)  评论(0编辑  收藏  举报