




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、SPI时序分析和基础知识总结时序分析和基础知识总结一、一、SPI总线的历史总线的历史二、二、SPI总线接口定义总线接口定义三、三、SPI总线的工作方式和传输时序总线的工作方式和传输时序四、四、SPI与与I2C的异同点的异同点五、五、SPI总线的优缺点总线的优缺点八、关于八、关于QSPI六、六、SPI总线的设置总线的设置七、七、SPI与与SD卡信号卡信号 SPI ( Serial Peripheral Interface )串行外设接口总线,最早由Motorola提出,出现在其M68系列单片机中,由于其简单实用,又不牵涉到专利问题,因此许多厂家的设备都支持该接口,广泛应用于外设控制领域。 SPI
2、接口是一种事实标准,并没有标准协议,大部分厂家都是参照Motorola的SPI接口定义来设计的。但正因为没有确切的版本协议,不同家产品的SPI接口在技术上存在一定的差别,容易引起歧义,有的甚至无法直接互连(需要软件进行必要的修改)。 SPI接口经常被称为4线串行总线,以主/从方式工作,数据传输过程由主机初始化。如图1所示,其使用的4条信号线分别为: 1) SCLK:串行时钟,用来同步数据传输,由主机输出; 2) MOSI:When master, out line; when slave, in line。主机输出从机输入数据线; 3) MISO:When master, in line; w
3、hen slave, out line。主机输入从机输出数据线; 比如MOSI,该线上数据一定是Master流向Slave的。因此在电路板上,Master的MOSI引脚应与Slave的MOSI引脚连接在一起。双方的MISO也应该连在一起,而不是一方的MOSI连接另一方的MISO。 Motorola的经典命名是MOSI和MISO,这是站在信号线的角度来命名的。 不过,也有一些产家(比如Microchip)是按照类似SDI,SDO的方式来命名,这是站在器件的角度根据数据流向来定义的。 SDI:串行数据输入 SDO:串行数据输出 在这种情况下,当Master与Slave连接时,就应该用一方的SDO连
4、接另一个方的SDI。 4) SS:Slave Select, 片选线,用于选择激活某Slave设备,低有效,由Master驱动输出。只有当SS-信号线为低电平时,对应Slave设备的SPI接口才处于工作状态。 SPI接口采用主从模式(Master Slave)架构;支持多slave模式应用,一般仅支持单Master。主机通过片选线来确定要通信的从机。这就要求从机的MISO口具有三态特性,使得该口线在器件未被选通时表现为高阻抗。 SPI的时钟由Master控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后(MSB first);SPI接口有2根单向数据线,为全双工通信,目前应用中的数据速率
5、可达几Mbps的水平。 SPI也支持多Slave应用。多个Slave共享时钟线、数据线,可以直接并接在一起;而各Slave的片选线SS则单独与Master连接,受Master控制。在一段时间内,Master只能通过某根SS线激活一个Slave,进行数据传输,而此时其他Slave的时钟线和数据线端口则都应保持高阻状态,以免影响当前数据传输的进行。一主多从的SPI传输模式SPI总线添加从器件:每个器件需要一个单独的从选择信号。总信号数最终为总线添加从器件:每个器件需要一个单独的从选择信号。总信号数最终为 n+3 个,其中个,其中 n 是总线上从器件的数量。在是总线上从器件的数量。在 SPI 总线上
6、添加新的从器件也不方便。总线上添加新的从器件也不方便。对于额外添加的每个从器件,都需要一条新的从器件选择线。对于额外添加的每个从器件,都需要一条新的从器件选择线。 SPI接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如下图所示,在SCLK的下降沿上数据改变,上升沿一位数据被存入移位寄存器。 在SPI操作中,最重要的两项设置就是时钟极性(CPOL或UCCKPL)和时钟相位(CPHA或UCCKPH)。时钟极性设置时钟空闲时的电平,时钟相位设置读取数据和发送数据的时钟沿。 主机和从机的发送数据是同时完成的,两者的
7、接收数据也是同时完成的。所以为了保证主从机正确通信,应使得它们的SPI具有相同的时钟极性和时钟相位。SPI总线有四种工作方式,其中使用的最为广泛的是SPI0和SPI3方式(实线表示); 在主设备这边配置SPI接口时钟的时候一定要弄清楚从设备的时钟要求,因为主设备这边的时钟极性和相位都是以从设备为基准的 。四种工作方式时序分别为:时序详解时序详解: CPOL:时钟极性选择,为0时SPI总线空闲为低电平,为1时SPI总线空闲为高电平 CPHA:时钟相位选择,为0时在SCK第一个跳变沿采样,为1时在SCK第二个跳变沿采样工作方式工作方式1: 当CPHA=0、CPOL=0时SPI总线工作在方式1。MI
8、SO引脚上的数据在第一个SPSCK沿跳变之前已经上线了,而为了保证正确传输,MOSI引脚的MSB位必须与SPSCK的第一个边沿同步,在SPI传输过程中,首先将数据上线,然后在同步时钟信号的上升沿时,SPI的接收方捕捉位信号,在时钟信号的一个周期结束时(下降沿),下一位数据信号上线,再重复上述过程,直到一个字节的8位信号传输结束。工作方式工作方式2: 当CPHA=0、CPOL=1时SPI总线工作在方式2。与前者唯一不同之处只是在同步时钟信号的下降沿时捕捉位信号,上升沿时下一位数据上线。工作方式工作方式3: 当CPHA=1、CPOL=0时SPI总线工作在方式3。MISO引脚和MOSI引脚上的数据的
9、MSB位必须与SPSCK的第一个边沿同步,在SPI传输过程中,在同步时钟信号周期开始时(上升沿)数据上线,然后在同步时钟信号的下降沿时,SPI的接收方捕捉位信号,在时钟信号的一个周期结束时(上升沿),下一位数据信号上线,再重复上述过程,直到一个字节的8位信号传输结束。工作方式工作方式4: 当CPHA=1、CPOL=1时SPI总线工作在方式4。与前者唯一不同之处只是在同步时钟信号的上升沿时捕捉位信号,下降沿时下一位数据上线。 在一个SPI时钟周期内,会完成如下操作:1) 主机通过MOSI线发送1位数据,从机通过该线读取这1位数据;2) 从机通过MISO线发送1位数据,主机通过该线读取这1位数据。
10、这是通过移位寄存器来实现的。如下图所示,主机和从机各有一个移位寄存器,且二者连接成环。随着时钟脉冲,数据按位传输,高位在前,低位在后(MSB first),依次移出主机寄存器和从机寄存器,并且依次移入从机寄存器和主机寄存器。当寄存器中的内容全部移出时,相当于完成了两个寄存器内容的交换。 如果只是进行写操作,主机只需忽略收到的字节;反过来,如果主机要读取如果只是进行写操作,主机只需忽略收到的字节;反过来,如果主机要读取外设的一个字节,就必须发送一个空字节来引发从机的传输外设的一个字节,就必须发送一个空字节来引发从机的传输。另外:另外: SPI协议没有定义寻址机制,需通过外部SS信号线选择设备,当
11、出现多slave应用时,需要多根SS信号线,实施起来较I2C要复杂。此外,SPI总线不支持总线控制权仲裁,故只能用在单Master的场合;而I2C可以支持多Master的应用。 SPI 协议相对I2C要简单,没有握手机制,数据传输效率高,速率也更快,通常应用中可达几Mbps;此外SPI是全双工通信,可同时发送和接收数据,因此, SPI比较适合用于数据传输的场合。比如需要较大批量数据传输的场合(比如MMC/SD卡的数据传输就支持SPI模式),或者无需寻址传输的场合。 而I2C协议功能较丰富,但也相对复杂,多用在传输一些控制命令字等有意义数据的场合。 SPI接口属于一种非常基本的外设接口,但是应用
12、却很广泛。SPI也有所发展,比兔NS推出的SPI的精简接口Microwire,满足通常外设的扩展需求。Motorola还推出了扩展功能的QSPI(Queued SPI)接口,应用更为广泛。SPI接口具有如下优点: 1) 支持全双工操作; 2) 操作简单; 3) 数据传输速率较高; 4) 提供频率可编程时钟 同时,它也具有如下缺点: 1) 需要占用主机较多的口线(每个从机都需要一根片选线); 2) 只支持单个主机。 3) 没有指定的流控制,没有应答机制确认是否接收到数据。 除了时钟相位CPHA和时钟极性CPOL外,在SPI总线进行通信时,还有其他需要设置的参数,如SPR-状态控制寄存器。 在从器
13、件时钟频率小于主器件时钟频率时,如果SCK的速率设得太快,将导致接收到的数据不正确(SPI接口本身难以判断收到的数据是否正确,要在软件中处理)。整个系统的速度受三个因素影响:主器件时钟CLK主、从器件时钟CLK从和同步串行时钟SCK,其中SCK是对CLK主的分频, CLK从和CLK主是异步的。要使SCK无差错无遗漏地被从器件所检测到,从器件的时钟CLK从必须要足够快。下面以SCK设置为CLK主的4分频的波形为例,分析同步串行时钟、主时钟和从时钟之间的关系。图1主从时钟和SCK的关系 如图1所示,当T从Tsck/2,即T从2T主时,无论主时钟和从时钟之间的相位关系如何,在从器件CLK从的上升沿必
14、然能够检测到SCK的低电平,即SCK0的范围内至少包含一个CLK从的上升沿。 图2中,当T从TSCK/22T主时,在从时钟的两个上升沿都检测不到SCK的低电平,这样从器件就会漏掉一个SCK。在某些相位条件下,即使CLK从侥幸能检测到SCK的低电平,也不能保证可以继续检测到下一个SCK。只要遗漏了一个SCK,就相当于串行数据漏掉了一个位,后面继续接收/发送的数据就都是错误的了。图2主从时钟和SCK的关系 根据以上的分析,SPR和主从时钟比的关系如表1所列。 在发送数据之前按照表1对SPR进行设置,SPR设定错误可以完全避免。表1 SPR的设置和主从时钟周期比值之间的关系 在SPI协议的基础上,M
15、otorola公司对其功能进行了增强,增加了队列传输机制,推出了QSPI,就是通常所谓的 Queue Serial peripheral interface ,队列串行外设接口。是对Motorola公司推出的SPI接口的扩展,比SPI应用更加广泛。 由于SPl只有1个8位的发送数据寄存器,所以CPU每次最多只能准备一个字节的待发送数据。而QSPI拥有具有16个QSPI传输控制组的传输队列,所以CPU每次最多可以准备16个待传输的数据,并且可以通过命令RAM设置每个待传输数据的长度。 与SPI相比,QSPI结构最大的特点是以80字节的RAM取代了SPI的发送和接收数据寄存器。80字节的RAM分成
16、3部分:16字的发送RAM,16字的接收RAM和16字节的命令RAM。这3部分形成了具有16个QSPI传输控制组的传输队列,每个QSPI传输控制组由1个命令RAM、1个发送RAM和1个接收RAM组成。每个QSPI传输的数据长度、片选等信息可由该QSPI传输控制组的命令RAM单独决定。在QSPI模块的QWR寄存器中,NEWQP和ENDQP域分别决定了传输队列的起始点和结束点。起始点和结束点可以是16个QSPI传输控制组的任意一个。当QSPI传输启动时,QSPI模块将从起始点开始依次发送准备好的数据直到结束点,整个过程无需CPU干预。典型的QSPI传输流程如图2所示,其中QP为传输队列指针,指向即将传输的数据。 QSPI模块具有7个引脚:QSPI_DIN为串行数据输入引脚;QSPI_DOU
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 书法碑刻临摹企业制定与实施新质生产力项目商业计划书
- 高速数据缓冲电路设计企业制定与实施新质生产力项目商业计划书
- 新高考高中物理 竞赛专题5 近代物理 50题竞赛真题强化训练原卷版
- 八年级历史期中试卷分析与反思
- 挺柱的认识项目三配气机构拆装与调整99课件
- 借名著阅读促语言实践
- 体育器材售后维修流程介绍
- 铁路信号电源设备维护铁道信号自动控制专业教学11课件
- 小学五年级上学期公共安全知识教育计划
- 学前教育游戏活动设计与实施
- 2024年生产部员工培训计划
- 校园绿化养护投标方案
- 【基于STM32厨房安全环境监测的设计与实现9400字(论文)】
- 南京玄武外国语中学英语新初一分班试卷
- 高边坡施工脚手架搭设技术
- 小学生主题班会 爱国主义教育 课件(共35张PPT)
- 农村荔枝园承包合同范本
- 免税资格申请模版
- 柴油发电机组的操作维护保养
- 特应性皮炎的诊断与治疗课件
- 中国利用外资和对外投资
评论
0/150
提交评论