SPI及其接口介绍

上传人:206****923 文档编号:40639539 上传时间:2018-05-26 格式:DOCX 页数:7 大小:260.70KB
返回 下载 相关 举报
SPI及其接口介绍_第1页
第1页 / 共7页
SPI及其接口介绍_第2页
第2页 / 共7页
SPI及其接口介绍_第3页
第3页 / 共7页
SPI及其接口介绍_第4页
第4页 / 共7页
SPI及其接口介绍_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《SPI及其接口介绍》由会员分享,可在线阅读,更多相关《SPI及其接口介绍(7页珍藏版)》请在金锄头文库上搜索。

1、一一、S SP PI I 接接口口简简介介SPI(Serial Peripheral Interface-串行外设接口 )总线系统是一种同步串行外设接口,它可以使 MCU 与各种外围设备以串行方式进行通信以交 换信息。SPI 有三个寄存器分别为:控制寄存器SPCR,状态寄存器 SPSR, 数据寄存器 SPDR。外围设备 FLASHRAM、网络控制器 、LCD 显示驱动器、 A/D 转换器(如图一所示)和 MCU 等。 图一、ADC 中的 SPI二二、S SP PI I 接接口口一个典型的 SPI 模块的核心部件是一个 8 位的移位寄存器和一个 8 位 的数据寄存器 SPIDR。通过 SPI 进

2、行数据传送的设备有主 SPI 和从 SPI 之 分,即 SPI 传送在一个主 SPI 和一个从 SPI 之间进行。图 二给出了两个 SPI 模块相互连接、进行 SPI 传送的示意图,图左边是一个主 SPI,图右边 为一个从 SPI。图二、典型 SPI 示意图在 AN-877 应用笔记中,对 spi 的接口定义与典型 spi 接口有所不同, AN-877 使用一根线 SDIO 代替了典型 SPI 的 MISO 和 MOSI,SS 接口用 CSB 代替。图三和图 四分别是双线模式下单器件控制(主从一对一)和双线模式 下多器件控制(主从一 对多)。图三:主从一对一控制图四:主从一对多控制不管是典型

3、SPI 还是三引脚 SPI,其基本原理都是一样的,都是主SPI 通过 SDIO(或 MISO 与 MOSI)将数据传递 到从 SPI 中,通过从 SPI 控制功 能模块。一般来说 ADC 中的 SPI 指的是模块中的从 SPI 极其接口,主 SPI 可以使用 MCU 或者单片机实现。 主 SPI 不属于器件的部分,可以不用考虑, 操作起来比较简单。 从 SPI 由指令移位寄存器、指令数据缓存器、寄存器控制逻辑、寄存器 构成,如图五所示。 主 SPI 发送过来的串行数据先依次进入指令移位寄存器,指令移位寄存 器再依次将数据传送到指令缓存器。寄存器控制逻辑根据MSB 优先或 LSB 优先控制指令移

4、位寄存器的移位以及控制指令缓存器的输出,将其传送到相 应地址的寄存器当中。寄存器包括三种类型:配置寄存器、传送寄存器和编 程寄存器。寄存器存入相应数据之后,先根据配置寄存器配置串行接口,编 程寄存器再根据寄存器功能表中的定义输出相对应的控制信号,最后根据传 送寄存器指令统一输出控制信号。指令缓存器指令移位寄 存器控制逻辑 寄存器寄存器 功能模块指令图五: SPI 接口的功能模块三三、S SP PI I 协协议议(根根据据 A AN N- -8 87 77 7 应应用用笔笔记记)SPI接口有主机跟从机之分,主从机可以是一对一,也可以是一对多, 但是原理都一样。 主从机之间一般由 3个引脚组成 :

5、串行时钟引脚 (SCLK)、串行数据输入 /输出引脚( SDIO)、片选引脚( CSB)。 1 1、引引脚脚 数据输入/输出(SDIO):该引脚用作数据的输入 /输出,用作输入还 是用作输出具体取决于所发送的指令(读或写)以及时序帧中的 相对位置 (指令周期或数据周期)。在读或写的第一个阶段,该引脚用作输入,将信 息传递到内部状态机。如果该命令为读命令,状态机把该引脚(SDIO)变 为输出,然后该引脚将数据回传给外部控制器。如果该命令为写命令,该引 脚始终用作输入。 串行时钟(SCLK):SCLK 由外部控制器提供,时钟频率最高为 25MHZ。所有数据的输入输出都是与 SCLK 同步的。输入数

6、据在 SCLK 的上升 沿有效,输出数据在 SCLK 的下降沿有效。片选信号(CSB):CSB 是低电平有效的控制信号,用于选通读写周期。 当 CSB 为低电平时, SPI 才会处理 SDIO 上的数据信息。当 CSB 为高电平时, SPI 忽略 SDIO 上的数据信息。此外, CSB 还有一种特殊作用。 CSB 可以在 字节边界处停止在高电平,为外部的时序处理提供更多的时间。(见图 2)图六:带有停止时间的 MSB 优先指令和数据2 2、格格式式当内部状态机处在空闲状态且第一次在SCLK 的上升沿检测到 CSB 为低 电平时,确认为帧的开始。传输的第一个阶段为指令阶段,指令由16 位组 成,

7、之后是数据阶段,数据由一个或多个8 位组成,长度不定。 (1 1)指指令令周周期期 指令周期为传输的前 16 位,如下图所示,指令周期划分为若干位段。 A A、读读/ /写写 在 MSB 优先(参见“位序”部分)时,数据流中的第一位是读 /写指示 位。 若该位为高电平,则表示指令为读取指令。当指令周期(前16 位)完 成时,内部状态机使用所提供的信息解码要读取的内部地址。随后SDIO 由输入变为输出,由字长定义的适当数量的字从器件移位出来(参见“字 长”部分)。一旦字长所要求的所有数据均已移位输出,状态机便返回空闲 模式,等待下一个指令周期。 此时应拉高 CSB,表示一次处理结束。 若数据流中

8、的第一位为低电平,则表示指令为写入指令。指令周期完成 时,内部状态机使用所提供的信息解码要写入的内部地址。指令之后的所有 数据均将移入 SDIO 引脚并送往目标地址(当需要写入的数据为多个时,地 址将自动递增或递减)。一旦传输完所有数据,状态机便返回空闲模式,等 待下一个指令周期。 此时应拉高 CSB,表示一次结束。 无论是读取模式还是写入模式,处理过程都会持续到字长要求时或 CSB 线路拉高(在非流处理模式的字节边界处(参见 “字长”部分)除外) 时为止。如果到达存储器的末端( 0x00 或 0xFF),则会发生翻转,下一个 处理的地址为 0x00(地址递增时)或 0xFF(地址递减时)。B

9、 B、字字长长W1 和 W0 表示要读取或者写入的数据字节数。具体设置和操作如下表:表 1:W1、W0 的设置和操作(W1:W0)+1)所表示的值是要传输的字节数。如果要传输的字节数 小于等于三个( 00,01,10),则 CSB 可以在字节边界停止在高电平,而 停止在非字节边界会终止通信周期。如果这两位为11,则为流处理模式。 在此模式下,只要拉高 CSB 就会终止通信周期,任何未完成的字节均会丢失, 已完成的字节会得到正确的处理。 C C、地地址址位位 其余 13 位为所发送数据或要读取数据的起始地址位。如果需要处理的 数据不止一个字节,则会使用顺序寻址,从指定的地址开始,按照设定的模 式

10、递增或递减。 (2 2)数数据据周周期期 指令周期之后是数据周期。要处理的数据量由字长(W1、W0)指定。 所有的数据都是 8 位的,若状态机检测到数据不完整,就会复位到空闲状态, 等待下一个帧的开始。 (3 3)位位序序 发送和接收数据有两种模式: MSB 优先和 LSB 优先(参见控制寄存器 0x00)。上电时默认为 MSB 优先。可以通过对控制寄存器编程改变位序模式。 在 MSB 优先模式下,位序为从最高位到最低位。在LSB 优先模式下,位序 为从最低位到最高位。四四、S SP PI I 中中寄寄存存器器的的设设计计SPI 端口是一种由外部输入信号来配置寄存器的机制,因此需要指令移 位寄

11、存器和指令缓存器对输入进来的数据进行暂存。此外对器件进行编程, 需要定义一个结构化的寄存器空间,此结构可细分为多个地址,数据传输的 指令阶段中的地址即指向这些地址。每个地址可寻址一个8 位的字节,每 一位均有其特定的含义和作用, 具体寄存器定义见 AN-877 的表 14 或 AD9254 的表 15。1 1、配配置置寄寄存存器器(地地址址 00)配置寄存器位于地址 00,该寄存器用来配置串行接口,包含有2 个有效位,位于高半字节当中,低半字节未连接,留做备用。其功能是使芯片软复位并配置在已知状态,而与当前的数据移位方向无关,这将确保在发生故障时器件能够给予积极处理。2 2、传传送送寄寄存存器

12、器(地地址址 F FF F)W1:W0 设置操作CSB 停止 00可以传输 1 个字节数据可选 01可以传输 2 个字节数据可选 10可以传输 3 个字节数据可选 11可以传输 4 个或更多字节数据, CSB 必须 在整个操作序列中保持低电平,否则周期 即终止。不允许传送寄存器即提供软件传输信号。一般寄存器都需要采用主从触发器进行缓冲,缓冲可以增强系统的多器件同步能力,并有助于写入对存储器其他部分写入的值可能有依赖关系的配置。根据需要的不同,有些寄存器需要这样的缓冲,例如编程寄存器。有些寄存器则永远不会进行缓冲,例如配置寄存器和传送寄存器,因为出于程序和控制目的,这些寄存器要求及时获得响应。无

13、论缓冲与否,SPI 端口都要负责将信息放入寄存器中,不过对于采用缓冲的寄存器,必须启动传输以将数据移出。3 3、编编程程寄寄存存器器 本报告中所用到的编程寄存器的地址包括 (08、09、10、14、16、18)。当编程寄存器按照表 3-3 输入相对应的值 后,应产生一系列的控制信号,如表3-4 所示。这些控制信号产生后被锁 存,并在软件传输的命令下达后,才会被一起传输到后面的模块。4 4、控控制制寄寄存存器器 控制寄存器由两个寄存器组组成:主寄存器和从寄存器。主寄存器暂存 输入数据,当一个传输信号( 0xFF 寄存器的第 0 位)为高电平时,主寄存 器的内容将全部传到相应的从寄存器,随后内部电

14、路会自动把该位置为 0。从寄存器直接用来控制芯片内部其他电路的工作特性。但也有一些寄存 器不采用这种主从模式,当需要向这些寄存器写入数据时,数据不经过主寄 存器,而直接写入从寄存器,如 0x00,0xff,0x04,0x05。其中 0x00 的 bit4 和 bit3 应该始终为 1。本报告保留的控制寄存器有 (0x00、0x18、0x2A、0x2C、0xFF)一共 29 个寄存器。(细节请参考 AD9254 和 AN-877),其中控制寄存器 0x00 的高四位和低四位应该是镜像 关系(写入数据时要保证此镜像关系),位7 和位 0 恒为 0,位 4 和位 3 恒为 1。 总之,反向来看,例如

15、要实现软复位功能,从 AD9254 表 15 所示的功 能来看(如图七所示),地址为 0X00 的寄存器的第 5 位为 1 时便可以实现 软复位的功能。所以要实现软复位功能,只需要通过主SPI 向地址为 0X00 的寄存器,输入 001110000 的数据即可。图七:寄存器功能设定五五、综综述述- -S SP PI I 心心得得1、SPI 是通过配置寄存器来控制电路 2、SPI 的核心是寄存器,通过 SPI 控制电路的实质就是通过寄存器控制电路 3、电路中的 SPI 是主从 SPI 的一部分(一般是从 SPI 及其接口), 主 SPI 一般可以由单片机或者是 MCU 构建,其作用是向从 SPI 写 数据。 4、要实现电路的某一个功能,首先 定义寄存器,然后通过主 SPI 向 该寄存器写入要达到 某功能的数据即可。六六、报报告告不不足足与与后后期期计计划划1 1、对对 S SP PI I 进进行行简简单单应应用用的的设设计计。 2、对 SPI 进行时序分析 3、对已出电路进行模块分析,以及实际电路分析 4、对寄存器、指令如何控制电路功能进行简单了解参参考考文文献献:1、AN-877 应用笔记:http:/ 2、AD9254 使用说明书:http:/ 3、SPI 及其接口设计:http:/ QQ:865198143 进行交流

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号