1前言
SPI(Serial Peripheral Interface)是串行外设接口的缩写,SPI是一种高速、主从模式、全双工、同步的串行通信总线,由摩托罗拉公司(Motorola)于 20 世纪 80 年代提出,主要用于短距离内的芯片间通信,广泛应用于传感器、存储器、显示屏、ADC/DAC 等外设与微控制器(MCU)的连接。
2SPI协议的基本特点
串行通信:一次发送1bit数据。
同步通信:通过时钟信号(SCLK)同步数据传输,发送方和接收方基于同一时钟工作。
全双工通信:数据可以同时双向传输(主设备发送的同时接收,从设备接收的同时发送)。
单主多从架构:通常由一个主设备(如 MCU)控制多个从设备(如传感器),从设备不能主动发起通信。
无地址机制:通过片选信号(CS/NSS)选择目标从设备,而非通过地址识别。
灵活的数据长度:数据传输位数可自定义(常见 8 位,也支持 16 位、32 位等)。
高速传输:速率通常可达几 Mbps 到几十 Mbps,具体取决于器件支持的最大时钟频率。
3SPI的信号线组成
SPI从器件一般需要4根线(也有3根线的,单工,只有接收或者只有发送),分别是MISO(主设备输入从设备输出)、MOSI(主设备输出从设备输入)、SCLK(时钟)、CS(片选)。
4SPI寻址方式
当主设备要和某个从设备进行通信时,主设备需要先向对应从设备的片选线上发送使能信号(高电平或者低电平,根据从机而定)表示选中该从设备。
5SPI的通信过程
SPI总线在进行数据传送时,先传送高位,后传送低位;数据线为高电平表示逻辑"1",低电平表示逻辑"0";一个字节传送完成后无需应答即可开始下一个字节的传送;SPI总线采用同步方式工作,时钟线在上升沿或下降沿时发送器向数据线上发送数据,在紧接着的下降沿或者上升沿时接收器从数据线上读取数据,完成一位数据传送,八个时钟周期即可完成一个字节数据的传送。
如果参考了上面图片还不能明白SPI传输过程,可以继续参考如下动图:
6SPI的极性和相位
SPI总线有四种不同的工作模式,取决于时钟的极性(CPOL,Clock Polarity)和相位(CPHA,Clock Phase)这两个因素。
CPOL表示SCLK空闲时的状态:
CPOL=0,空闲时SCLK为低电平;
CPOL=1,空闲时SCLK为高电平;
CPHA表示采样时刻:
CPHA=0,每个周期的第一个时钟沿采样;
CPHA=1,每个周期的第二个时钟沿采样;
1 CPOL=0, CPHA=0
空闲时SCLK为低电平;每个周期的第一个时钟沿采样,也就是上升沿。
注:*MSB表示前一帧的MSB。
2 CPOL=0, CPHA=1
空闲时SCLK为低电平;每个周期的第二个时钟沿采样。
注:LSB*表示下一帧的LSB。
3.3 CPOL=1, CPHA=0
空闲时SCLK为高电平;每个周期的第一个时钟沿采样。
注:*MSB表示前一帧的MSB。
4 CPOL=1, CPHA=1
空闲时SCLK为高电平;每个周期的第二个时钟沿采样。
注:LSB*表示下一帧的LSB。
需要说明的是,对于一个特定的从设备来说,一般在出厂时就会将其设计为某种特定的工作模式;我们在使用该设备时就必须保证主设备的工作模式和该从设备保持一致,否则是无法进行通信的;所以一般我们需要对主设备的CPOL和CPHA进行配置。
7I2C和SPI的异同
相同点:
均采用串行、同步的方式
均采用TTL电平,传输距离和应用场景类似
均采用主从方式工作
不同点:
I2C为半双工,SPI为全双工
I2C有应答机制,SPI无应答机制
I2C通过向总线广播从机地址来寻址,SPI通过向对应从机发送使能信号来寻址
I2C的时钟极性和时钟相位固定,SPI的时钟极性和时钟相位可调
I2C速度慢,引脚少,SPI速度快,引脚多
-
FPGA
+关注
关注
1648文章
22143浏览量
622577 -
mcu
+关注
关注
147文章
18175浏览量
373343 -
数字电压表
+关注
关注
4文章
197浏览量
33696 -
SPI协议
+关注
关注
0文章
21浏览量
8662
原文标题:04-基于FPGA和LTC2308的数字电压表设计-SPI协议详解
文章出处:【微信号:友晶FPGA,微信公众号:友晶FPGA】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
数字电压表的VHDL设计与实现

数字电压表的设计

数字电压表的设计方案汇总(六款数字电压表的设计原理图详解)

评论