SPI相关理论知识总结
来源:互联网 发布:数据库中的decode 编辑:程序博客网 时间:2024/05/21 10:19
SPI
1简述
SPI(SerialPeripheral Interface):串行外设接口。SPI,是一种全双工(可以同时(瞬时)进行信号的双向传输(A→B且B→A))、同步的通行总线。目前传输速度可以达到几Mbps,数据传输速度总体来说比I2C总线要快。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。
必须明白SPI接口是物理特性,是实实在在存在的接口,就像USB接口一样。SPI协议是为了使数据进行传输双方约定的一种传输协议(不然双方怎么知道什么时候该接收数据,什么时候该发数据)。如果没有SPI接口,则可以用程序模拟SPI通信(注意仅仅只是模拟)。
SPI以总(Master)从(Slave)方式工作,通常有一个主设备和若干个从设备,其中从设备是否工作由主设备通过控制片选CS(SS)来决定。
由于SPI接口是同步串行外围接口,SPI是串行通讯协议。也就是说数据是一位一位的传输的,这就是SCLK时钟线存在的原因,由SCLK提供时钟脉冲,数据的输出与输入是基于脉冲的上升沿或下降沿完成传输。
优点:
(1)由于时钟信号线(SCLK)只由主设备控制,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCLK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。也就是说,主设备通过对SCLK时钟线的控制可以完成对通讯的控制。
(2)SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效
(3)接口简单(SPI接口在内部硬件实际上是两个简单的移位寄存器),利于硬件设计与实现。
(4)相对抗干扰强,传输稳定。
缺点:
(1) 没有指定的流控制,没有应答机制确认是否接收到数据,主从器件均不对消息进行确认,且主设备无法得知从设备是否繁忙,导致增加了软件开销。
(2) 没有多主模式,必须在软件设计和外部逻辑上实现多主器件架构,比较复杂。
(3) 在多个从器件的系统中,每个从器件需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。。
2.引脚介绍
(1)MISO[Masterinput slave output](SDO) – 主设备数据输出,从设备数据输入;
(2)MOSI[Masteroutput slave input](SDI) – 主设备数据输入,从设备数据输出;
(3)SCLK– 时钟信号,由主设备产生;
(4)CS(/SS、NSS)– 从设备使能信号,由主设备控制。
3.四种工作模式及时序分析
SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换,数据按位传输,高位在前,地位在后。
4种模式完全由时钟决定,其中根据时钟的极性(CPOL)和相位(CPHA)的不同组成4种不同模式,具体见表3-1。
表3-1 4种不同的传输模式
传输模式
时钟极性(CPOL)
时钟相位(CPHA)
CPOL:定义时钟空闲时候(不工作)时候的电平
CPOL=0:空闲为低电平
CPOL=1:空闲为高电平
CPHA:定义数据在跳变沿(上升或下降沿)的采样时间。
CPHA=0:第一个跳变沿进行数据采样
CPHA=1:第二个跳变沿进行数据采样
SP0
0
0
SP1
0
1
SP2
1
0
SP3
1
1
SPI模块再与外设进行数据交换时候,根据外设工作要求,可以对CPOL和CPHA进行配置,SPI主模块和其通信外围设备的时钟相位和极性应该一致。SPI的4种工作方式中,其中引用比较广泛的是SPI0和SPI3。下面以图解的形式进行讲解,如图3-1,3-2。
图3-1 4种传输模式
图3-2 4种传输模式详解
附1:移位寄存器的工作方式
:
- SPI相关理论知识总结
- 理论知识总结
- 3D 理论知识相关
- 【ASP】相关的理论知识
- RTP理论知识相关资料
- SPI相关
- SPI相关
- 软件测试理论知识总结
- 软件测试理论知识总结
- 软件测试理论知识总结
- 数据库第一章理论知识总结
- 软件测试理论知识总结
- 软件测试理论知识总结
- 软件测试理论知识总结
- GBDT理论知识总结
- 基础会计的相关理论知识
- ASM理论知识2-相关概念
- 加密相关的一些理论知识
- python爬虫(二)--了解deque
- C语言:用链表实现一元多项式的加法
- 双向循环链表和树
- 洛谷1028 数的计算
- 动态库的动态链接(error while loading shared libraries,cannot open shared object file)
- SPI相关理论知识总结
- CSS基础-17CSS盒子模型-外边距合并
- Android设计模式系列-单例模式
- 9.谓词(Predicate)
- hdu1299
- UVA - 11020 - Efficient Solutions (multiset实现BST)
- POI-----POI操作Excel-5、公式
- SVM理解
- 【Unity3D游戏开发】GameObject.Find()、Transform.Find查找隐藏对象 (十)