【一】FPGA实现SPI协议之SPI协议介绍

【一】FPGA实现SPI协议之SPI协议介绍

一、spi协议解析

spi协议有4根线,主机输出从机输入MOSI、主机输入从机输出MISO、时钟信号SCLK、片选信号SS\CS 。 一般用于主机和从机之间通信。由主机发起读请求和写请求,主机的权限是主动的,从机是被动的。

二、信号端口解析:

片选信号CS:当CS信号为低时,spi传输开始;cs信号为高时,则为空闲状态。

时钟信号SCK:

MOSI信号:M代表主机、O代表输出,S代表从机、I代表输入,即主机输从机输入,数据的流向是从主机到从机,数据单位bit。也称之为 SDO,S是SPI,D是data,O是output

MISO信号:M代表主机、I代表输入、S代表从机、O代表输出、即主机输入从机输出,数据的流向是从从机到主机,数据单位bit。也称之为 SDI,S是SPI,D是data,O是input

三、连接的方式

下图是一个主机一个从机的连接方式:

下图是一个主机多个从机的连接方式:

一主多从,一个主机控制多个从机。注意不允许多个主机控制一个从机。

四、时序图

从下面的时序图也可以看出来SPI是全双工的,在时钟的上升沿可以同时发送和接收数据。SSEL信号就是片选信号CS,在SSEL信号为低的时候数据有效,开始发送和接收1bytes数据,在时钟sck的上升沿发送和接收数据。SPI协议属于低速协议,时钟可以跑在10M左右,也可以跑到100M。这个图是其中一个模式下的时序图。这个图中的时钟极性是1,在第二个时钟的跳变沿开始传输数据,所以时钟相位为1。CPOL=1,CPHA=1

五、时钟极性和时钟相位

时钟极性(CPOL):时钟极性为0时,SCK信号处于低电平;时钟极性为1时,SCK信号处于高电平;

时钟相位(CPHA):时钟相位为0时,SCK第一个跳变沿传输数据;时钟相位为1时,SCK第二个跳变沿传输数据;

空闲状态时,即片选信号CS为高时,SCK信号此时可以为高电平(时钟极性为1),也可以为低电平(时钟极性为0),对应两种不同的模式。

1)空闲时,CS=1,SCK=1。

2)空闲时,CS=1,SCK=0。

SPI的模式由时钟极性和时钟相位来决定,时钟极性有2种模式,时钟相位也有2种模式,2*2=4种模式。

3)例子

在下面这个图中,在空闲的状态,SCK为低电平,时钟极性为0,在时钟的第一个跳变沿发送数据,所以始时钟相位为0。CPOL=0,CPHA=0,这种模式是我们常用的模式

再举一个例子:CPOL=1 ,CPHA=0模式

c 复制代码
---晓凡 2023年12月19日于武汉书
相关推荐
FPGA_小田老师7 小时前
FPGA调试利器:JTAG to AXI Master IP核详解与实战演练
fpga开发·jtag测试·jtag2axi ip·ddr3自动化
FPGA_小田老师10 小时前
FPGA开发入门:深入理解计数器——数字逻辑的时序基石
fpga开发·verilog·状态机·计数器·计数器设计
碎碎思10 小时前
用 FPGA 实现 PCIe 传输,开源核 LitePCIe 深度解读
fpga开发
9527华安10 小时前
FPGA纯verilog实现JESD204B协议,基于AD9625数据接收,提供2套工程源码和技术支持
fpga开发·jesd204b·ad9625
Shang1809893572614 小时前
MS2107高性能USB 2.0视频信号和音频采集,支持NTSC/PAL制式,适用于低成本视频采集设备
嵌入式硬件·fpga开发·音视频·硬件工程·信息与通信·dsp开发
学工科的皮皮志^_^15 小时前
网口学习理解
经验分享·笔记·嵌入式硬件·学习·fpga开发·以太网
博览鸿蒙21 小时前
FPGA高频面试问题整理—附答案
fpga开发
cmc10281 天前
134.FPGA常见管脚与时钟的约束方法
fpga开发
第二层皮-合肥2 天前
AD导出FPGA管脚的方法
fpga开发
ehiway2 天前
国际先进!中科亿海微国产嵌入式FPGA IP核及EDA系统设计技术通过科技成果评价
网络协议·tcp/ip·fpga开发