网站首页 > 技术教程 正文
【QSPI概述】
QSPI接口,是Queued SPI的缩写。和之前谈到的SPI一样都是出自Motorola。QSPI在SPI基础上做了一些增强,且向下兼容SPI。QSPI相对SPI最显著的差异就是增加了发送接收数据队列,Queued的称呼就是这么来的。这样做的好处就是,无需每次数据传输都需要CPU参与,可以降低CPU的资源占用。
【QSPI应用框图】
图1为QSPI应用框图,同SPI最明显的区别就是多了队列Buffer和片选变为4个。QSPI通过片选直连的方式,最多可接4个外设,如果外挂4-16译码器可以扩展至16个外设。
【QSPI接口信号】
如表1所示,QSPI在SPI原有4根信号基础上增加了4个外设片选信号PCS0~3,其中PCS0同SSn复用。因此QSPI总共7根信号线。
【QSPI新增功能】
QSPI是在SPI基础上进行扩展,其包含了SPI所有特性。其和SPI相同的特性,本文不再赘述,感兴趣的同学请点链接(常用数字接口(2) SPI )。QSPI相对于SPI新增如下功能:
1, 可编程Buffer
如图2所示,QSPI提供总共80字节的可编程Buffer。其中Tx Data Buffer 32字节,Tx CMD Buffer 16字节,Rx Data Buffer 32字节。Rx Data buffer存储接收数据, Tx Data buffe存储发送数据,Buffer深度均为16深度,数据位宽取决于单次访问位宽配置,配置范围8~16bit。Tx CMD Buffer存储发送命令,Buffer深度为16,位宽8bit。
Tx CMD Buffer每条命令格式如图3所示。
CONT:片选保持使能。1’b1,本次传输完成后PCS[3:0]输出保持本次传输时的状态;1’b0,PCS[3:0]输出与之复用的GPIO输出配置值。
BITSE:传输长度控制。1’b1,根据配置长度传输(可配置8~16bit);1’b0,固定传输8bit长度。
DT:每次传输完成后是否等待。1’b1,本次传输完成后等待一个可配置的时间;1’b0,不等待。
DSCK:PCS和SCK相对相位调整。1’b1,从PCS有效到SCK延迟一定时间(时间可配置);1’b0,固定为1/2SCK延迟。
PCS[3:0]: QSPI外设片选信号状态。当PCS0~3一对一连接至从设备时, QSPI Master通过该命令可以选择访问4个外设中的哪个。当PCS0~3外接4-16译码器时,QSPI Master可以管理最多16个从设备。
Tx CMD Buffer和Tx Data Buffer共享指针,即Tx CMD Buffer中的命令和Tx Data Buffer中的数据一一对应。通过配置Tx CMD Buffer可以定义了每一次发送数据的行为,如发送数据长度、发送间隔进行定制。这种针对每次数据传输定义不同访问间隔、访问长度的方式,在访问不同类型外设时可以大大提高访问效率。
2, 队列指针可编程
如图2所示,QSPI依据ENDQP(队列尾指针)和NEWQP(队列首指针)的配置,从NEWQP指定的行开始,按照Tx CMD Buffer对应行中指定的行为发送Tx DATA Buffer中对应行的数据,直到发送/执行到ENDQP指定的行结束。该过程中,CPU仅需在发送开始前对Buffer中内容进行编辑,之后无需占用CPU资源由QSPI自动完成。当ENDQP比NEWQP小时,QSPI先从NEWQP对应的行开始执行,当执行到第15行时卷绕至第0行,然后再递增执行到ENDQP行停止。
3, 自动回卷(Wraparound)功能
该功能使能后,QSPI按照EDNQP,NEWQP确定的传输队列重复发送数据。这种功能在对外设进行定时扫描时非常有用。
4, 连续传输模式
该模式使能时,QSPI可在一次数据传输中,进行多达256bit的数据传输。
从上述4条增强功能可以看出,QSPI所有新增功能都是围绕尽量降低CPU资源占用的理念进行的。
【后记】
在写这篇文章时,顺手在网上搜了一下QSPI,发现大部分提到Queued SPI的文章讲的都是Quad SPI。Quad SPI是SPI的四线模式,一般用于SPI Flash的访问,而Queued SPI是队列SPI,这俩不是一回事儿。
猜你喜欢
- 2024-10-30 读写锁,你难道不需要了解一下吗?
- 2024-10-30 谷歌云故障14个小时,系“队列突变大量积压”引起
- 2024-10-30 什么是AQS及其原理(aqs作用)
- 2024-10-30 码仔漫画:怎么给女朋友讲明白线程池?
- 2024-10-30 面试官:谈谈这4种磁盘IO调度算法--CFQ、NOOP、Deadline、AS
- 2024-10-30 QT的信号槽机制简介(qt信号槽优缺点)
- 2024-10-30 Java AQS(AbstractQueuedSynchronizer)详解
- 2024-10-30 AQS是什么(AQS是什么药品)
- 2024-10-30 详解磁盘IO调度算法--CFQ、NOOP、Deadline、AS
- 2024-10-30 基于AbstractQueuedSynchronizer的并发类实现
你 发表评论:
欢迎- 最近发表
-
- linux CentOS检查见后门程序的shell
- 网络安全工程师演示:黑客是如何使用Nmap网络扫描工具的?
- Linux中ftp服务修改默认21端口等(linux修改ftp配置文件)
- Linux系统下使用Iptables配置端口转发,运维实战收藏!
- 谈谈TCP和UDP源端口的确定(tcp和udp的端口号相同吗)
- Linux 系统 通过端口号找到对应的服务及相应安装位置
- 快速查找NAS未占用端口!Docker端口秒级排查+可视化占坑双杀技
- 【知识杂谈#2】如何查看Linux的(本地与公网)IP地址与SSH端口号
- 如何在Linux中查询 DNS 记录,这三个命令可谓是最常用、最经典的
- 【Linux系统编程】特殊进程之守护进程
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)