大家好,我是痞子衡,是正經搞技術的痞子,今天痞子衡給大家分享的是串行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主頁、知乎主頁、微信公眾號 平臺上,
微信搜索"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦,

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/262759.html
標籤:其他
上一篇:STM32 ADC詳解
