大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是串行NOR Flash的DQS信号功能

  串行NOR Flash在嵌入式里的应用相当广泛,既可用作数据存储也可以用作代码(XiP)存储,串行NOR Flash种类很多,最早期有Standard SPI(一线),后来发展到QuadSPI(四线),到现在OctalSPI或者HyperBus SPI(八线),I/O管脚越来越多,数据吞吐率也越来越高。但到八线Flash的时候,你会发现多了一个特殊的控制信号DQS,DQS是Data Strobe Signal缩写,中文直译叫数据选通信号,这个DQS信号有什么作用呢?今天痞子衡带大家分析一下:

一、回顾DDR中DQS

  我们对DQS信号更深的印象应该来源于DDR,DDR是DDR SDRAM的简称,其本身也是Double Data Rate(双倍数据速率)的缩写。从RAM分类来看,DDR是DRAM范畴内的重要组成,DDR已经发展到了第n代了。

  在DDR中,DQS信号主要作用是用来在一个时钟周期内准确的区分出每个数据传输周期,从而便于接收方准确接收数据。DQS信号是双向的,在写入DDR时它用来传送由主设备发来的DQS信号,读取DDR时则由DDR生成DQS向主设备发送,所以DQS其实就是数据的同步信号。关于DQS以及DDR原理可以参看网上一篇很好的文章《DDR工作原理》

  那么Flash上的DQS功能与DDR上DQS是不是一样呢?有相同点也有不同点,咱们继续往下看:

二、DQS之Octal Flash篇

  我们来看一款典型的Octal Flash,来自MXIC的MX25UM51345G。这款Flash包含DQS引脚(I/O属性为输出),从芯片数据手册里找到跟DQS信号相关的主要是下面这张输出时序图,DQS信号仅在DTR模式(SCLK双边沿采样)时生效,并且只在Flash输出数据时起作用(主设备写Flash时,DQS不起作用),即DQS信号是Flash发出的用于通知读取Flash的主设备SIO[7:0]数据线开始更新的标志。

  让我们结合AC特性表里的Symbol再来进一步分析,SCLK信号边沿用于触发Flash数据更新,但是SIO[7:0]数据线并不是在SCLK边沿就立刻更新并且稳定的,这里有一定的时延(tCHQV),在tCHQV时间内,Flash核心收到SCLK触发信号,开始准备数据,并陆续放到SIO[7:0]线上。由于tCHQV时间相对较长,主设备仅根据SCLK信号边沿不知道应该什么时候去拿数据,因此诞生了DQS,DQS信号边沿标志着SIO数据线开始更新,但是SIO[7:0]一共8根数据线,这8根数据线更新不是完全同步的,这就有一个硬性规定,即tDQSQ时间,各数据线SIO[x]在DQS信号跳变开始后不得超过tDQSQ最大时间必须把数据更新完毕。

tCHQV - 从SCLK信号跳变到SIO[7:0]输出有效的时间
tQSV - 从SCLK信号跳变到DQS信号跳变的时间
tDQSQ - 从DQS信号跳变到SIO[7:0]输出有效的时间
tQH - SIO[7:0]输出保持时间

三、DQS之Hyper Flash篇

  再来看一款典型的Hyper Flash,来自Cypress的S26KS512S。这款Flash包含RWDS引脚(I/O属性为输出),RWDS就是DQS信号。与Octal Flash不同的是,Hyper Flash的时钟信号CK往往是差分的,差分信号因为其补偿纠正特性,使得时钟跳变间隔比较稳定,因此数据传输从CK与CK#交叉点开始进行。Hyper Flash天然是DTR传输模式,RWDS作用与Octal Flash上的DQS是完全一致的。

  同样结合AC特性表里的Symbol来进一步分析,CK差分信号跳变用于触发Flash数据更新,在tCKD时间内,Flash核心收到CK触发信号,开始准备数据,并陆续放到DQ[7:0]线上。RWDS信号边沿标志着DQ数据线开始更新,各数据线DQ[x]在RWDS信号跳变开始后不得超过tDSS最大时间必须把数据更新完毕。

tCKD  - 从CK差分信号跳变到DQ[7:0]输出有效的时间
tCKDS - 从CK差分信号跳变到RWDS信号跳变的时间
tDSS - 从RWDS信号跳变到DQ[7:0]输出有效的时间

  至此,串行NOR Flash的DQS信号功能痞子衡便介绍完毕了,掌声在哪里~~~

欢迎订阅

文章会同时发布到我的 博客园主页CSDN主页知乎主页微信公众号 平台上。

微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

痞子衡嵌入式:串行NOR Flash的DQS信号功能简介的更多相关文章

  1. 痞子衡嵌入式:开启NXP-MCUBootUtility工具的HAB签名功能 - CST(中英双语)

    1 Reason for enabling HAB signature function 为什么要开启HAB签名功能 NXP-MCUBootUtility is a tool designed for ...

  2. 痞子衡嵌入式:开启NXP-MCUBootUtility工具的HAB加密功能 - CST(中英双语)

    1 Reason for enabling HAB encryption function 为什么要开启HAB加密功能 NXP-MCUBootUtility is a tool designed fo ...

  3. 痞子衡嵌入式:导致串行NOR Flash在i.MXRT下无法正常下载/启动的常见因素之SFDP

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是导致串行NOR Flash在i.MXRT下无法正常下载/启动的常见因素之SFDP. i.MXRT系列MCU发布已两年多了,基于i.MXR ...

  4. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.3)- 串行NOR Flash下载算法(J-Link工具篇)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是J-Link工具下i.MXRT的串行NOR Flash下载算法设计. 在i.MXRT硬件那些事系列之<在串行NOR Flash X ...

  5. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.4)- 串行NOR Flash下载算法(Keil MDK工具篇)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是Keil MDK工具下i.MXRT的串行NOR Flash下载算法设计. 在i.MXRT硬件那些事系列之<在串行NOR Flash ...

  6. 痞子衡嵌入式:飞思卡尔i.MX RTyyyy系列MCU硬件那些事(2.2)- 在串行NOR Flash XIP调试原理

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RTyyyy系列EVK在串行NOR Flash调试的原理. 本文是i.MXRT硬件那些事系列第二篇的续集,在第二篇首集 ...

  7. 痞子衡嵌入式:一种i.MXRT下从App中进入ROM串行下载模式的方法

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT下在App中利用ROM API进ISP/SDP模式的方法. 我们知道i.MXRT系列分为两大阵营:CM33内核的i.MXRT ...

  8. 痞子衡嵌入式:串行EEPROM接口事实标准及SPI EEPROM简介

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是EEPROM接口标准及SPI EEPROM. 痞子衡之前写过一篇文章 <SLC Parallel NOR简介>,介绍过并行N ...

  9. 痞子衡嵌入式:16MB以上NOR Flash使用不当可能会造成软复位后i.MXRT无法正常启动

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT上使用16MB以上NOR Flash软复位无法正常启动问题的分析解决经验. 痞子衡这几天在支持一个i.MXRT1050客户项 ...

  10. 痞子衡嵌入式:MCUBootUtility v2.3发布,这次不再放过任何一款Flash

    -- 痞子衡的 NXP-MCUBootUtility 开源项目自2018年8月27日第一笔提交至今已有21个月,目前累计代码已近50000行.相信这个工具为大家开发 i.MXRT 项目提供了一些便利, ...

随机推荐

  1. SQL SERVER 2008 中三种分页方法与总结

    建立表: CREATE TABLE [TestTable] ( , ) NOT NULL , ) COLLATE Chinese_PRC_CI_AS NULL , ) COLLATE Chinese_ ...

  2. Altium Designer /DXP无网络铺铜:

    有的设计者在PCB加工的时候会删除网络以便为了保护.但如果后续在无网络PCB上进行修改时就不叫麻烦,没有网络连铺铜都无法进行.一般手动添加网络只对要铺铜的地网络进行,其它的要修改者自己确保版图的正确性 ...

  3. Delphi 线程的处理

    http://www.cnblogs.com/doit8791/archive/2012/05/16/2502671.html

  4. 省市区(县)三级联动代码(js 数据源)

    ylbtech-JavaScript-Utility:省市区(县)三级联动代码(js 数据源) 省市区(县)三级联动代码(js 数据源) 1.A,源代码(Source Code)返回顶部 1.A.1, ...

  5. 让 QtWebkit 支持跨域CROS - nowboy的CSDN博客 - 博客频道 - CSDN.NET

    让 QtWebkit 支持跨域CROS - nowboy的CSDN博客 - 博客频道 - CSDN.NET 让 QtWebkit 支持跨域CROS 2013-05-23 22:05 450人阅读 评论 ...

  6. MVVM之旅(1)创建一个最简单的MVVM程序

    这是MVVM之旅系列文章的第一篇,许多文章和书喜欢在开篇介绍某种技术的诞生背景和意义,但是我觉得对于程序员来说,一个能直接运行起来的程序或许能够更直观的让他们了解这种技术.在这篇文章里,我将带领大家一 ...

  7. AP INVOICES IMPORT API(NOT request)

    PROCEDURE process_cux_to_ap(x_return_status OUT NOCOPY VARCHAR2, x_msg_count OUT NOCOPY NUMBER, x_ms ...

  8. WebStorm过期解决方法

    第一步:先删除C:\Users\本机用户名\.WebStorm2016.3\config文件中eval文件. 第二步:打开webstrom 如图,填写许可证激活码:http://idea.imsxm. ...

  9. Sql Server数据库之约束

    一.约束的分类 实体约束:关于行的约束,比如某一行出现的值就不允许别的行出现,如主键 域约束:关于列的约束,对表中所有行的某些列进行约束,如check约束 参照完整性约束:如果某列的值必须与其他列的值 ...

  10. Linux 正则表达式详解

    正则表达式(REGULAR):为处理大量的字符串而定义的一套规则和方法,为了处理大量字符串而生 常见命令参数 基础正则表达式 . :有且只有任意一个字符(包括空格) * :重复前面任意0或者多个字符 ...