01 什么是SPI?
SPI 的英文全称为 Serial Peripheral Interface,顾名思义为串行外设接口。
SPI 是一种高速的、全双工的、同步的通信总线,并且至多仅需使用 4 根线,节约了芯片的管脚,SPI主要应用于EEPROM、FLASH、ADC、DAC等芯片,还有数字信号处理器和数字信号解码器之间。
SPI 设备之间采用全双工模式通信,是一个主机和一个或者多个从机的主从模式。主机负责初始化帧,这个数据传输帧可以用于读与写两种操作,片选线可以从多个从机选择一个来响应主机的请求。
来自主机或从机的数据在时钟上升沿或下降沿同步。主机和从机可以同时传输数据。SPI接口可以是 3 线式或 4 线式。
MISO ( Master Input Slave Output ) : 主设备数据输入,从设备数据输出;
MOSI ( Master Output Slave Input ) : 主设备数据输出,从设备数据输入;
SCLK ( Serial Clock ) : 时钟信号,由主设备产生;
CS/SS ( Chip Select/Slave Select ) : 从设备片选信号,由主设备控制,通常低电平有效。
02 时钟极性和时钟相位
SPI 通信协议具备 4 种工作模式,在讲这 4 种工作模式前,先介绍一下 CPOL 和 CPHA。
CPOL(Clock Polarity,时钟极性),当主从机没有数据传输的时候即空闲状态,SCL 线的电平状态。假如空闲状态是高电平,
CPOL=1;若空闲状态时低电平,那么 CPOL = 0。
CPHA(Clock Phase,时钟相位)。实质指的是数据的采样时刻,CPHA = 0 的情况就表示数据的采样是从第 1 个边沿信号上即奇数边沿,具体是上升沿还是下降沿的问题,是由 CPOL 决定的。这里就存在一个问题:当开始传输第一个 bit 的时候,第 1 个时钟边沿就采集该数据了,那数据是什么时候输出来的呢?那么就有两种情况:
一是 CS 使能的边沿。二是上一帧数据的最后一个时钟沿
CPHA=1 的情况就是表示数据采样是从第 2 个边沿即偶数边沿,它的边沿极性要注意一点,不是和上面 CPHA=0 一样的边沿情况。前面的是奇数边沿采样数据,从 SCL 空闲状态的直接跳变,空闲状态是高电平,那么它就是下降沿,反之就是上升沿。由于 CPHA=1 是偶数边沿采样,所以需要根据偶数边沿判断,假如第一个边沿即奇数边沿是下降沿,那么偶数边沿的边沿极性就是上升沿。
03 实时时钟(RTC)
设计要求:本次需设计一个同步半双工串行通信接口(三线),利用DS1302芯片来实现实时时钟的功能。先向SPI器件写入初始时钟,之后不断从SPI中读取对应的时钟数据。单工、半双工、全双工。
设计框图:
04 线性序列机
就是根据时序图来写代码,根据不同的时间来进行具体的操作。其中不同的时间主要是依靠计数器来进行计时。
05 三态门
三态门有输入端、输出端和控制端三端,它的输出不但取决于输入,还与控制端有关。若控制端 EN=1,输出端与输入端反相,即如果 A=1 时,输出端 Y=0;若 EN=0,输入端与输出端之间相当于开路,三态门处于高阻状态(又称悬浮状态或禁止状态),输入信号无法通过三态门。
希望我的分享能给正在学习和准备就业的同学们一些启发!
扫码了解 FPGA 入行问题,同时可以获取学习资料。
到此这篇console线(console线引脚定义)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/cjjbc/13183.html