大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是串行NOR Flash的DQS信號功能。
串行NOR Flash在嵌入式里的應(yīng)用相當(dāng)廣泛,既可用作數(shù)據(jù)存儲也可以用作代碼(XiP)存儲,串行NOR Flash種類很多,最早期有Standard SPI(一線),后來發(fā)展到QuadSPI(四線),到現(xiàn)在OctalSPI或者HyperBus SPI(八線),I/O管腳越來越多,數(shù)據(jù)吞吐率也越來越高。但到八線Flash的時候,你會發(fā)現(xiàn)多了一個特殊的控制信號DQS,DQS是Data Strobe Signal縮寫,中文直譯叫數(shù)據(jù)選通信號,這個DQS信號有什么作用呢?今天痞子衡帶大家分析一下:
一、回顧DDR中DQS
我們對DQS信號更深的印象應(yīng)該來源于DDR,DDR是DDR SDRAM的簡稱,其本身也是Double Data Rate(雙倍數(shù)據(jù)速率)的縮寫。從RAM分類來看,DDR是DRAM范疇內(nèi)的重要組成,DDR已經(jīng)發(fā)展到了第n代了。
在DDR中,DQS信號主要作用是用來在一個時鐘周期內(nèi)準(zhǔn)確的區(qū)分出每個數(shù)據(jù)傳輸周期,從而便于接收方準(zhǔn)確接收數(shù)據(jù)。DQS信號是雙向的,在寫入DDR時它用來傳送由主設(shè)備發(fā)來的DQS信號,讀取DDR時則由DDR生成DQS向主設(shè)備發(fā)送,所以DQS其實就是數(shù)據(jù)的同步信號。關(guān)于DQS以及DDR原理可以參看網(wǎng)上一篇很好的文章《DDR工作原理》。
那么Flash上的DQS功能與DDR上DQS是不是一樣呢?有相同點也有不同點,咱們繼續(xù)往下看:
二、DQS之Octal Flash篇
我們來看一款典型的Octal Flash,來自MXIC的MX25UM51345G。這款Flash包含DQS引腳(I/O屬性為輸出),從芯片數(shù)據(jù)手冊里找到跟DQS信號相關(guān)的主要是下面這張輸出時序圖,DQS信號僅在DTR模式(SCLK雙邊沿采樣)時生效,并且只在Flash輸出數(shù)據(jù)時起作用(主設(shè)備寫Flash時,DQS不起作用),即DQS信號是Flash發(fā)出的用于通知讀取Flash的主設(shè)備SIO[7:0]數(shù)據(jù)線開始更新的標(biāo)志。
讓我們結(jié)合AC特性表里的Symbol再來進一步分析,SCLK信號邊沿用于觸發(fā)Flash數(shù)據(jù)更新,但是SIO[7:0]數(shù)據(jù)線并不是在SCLK邊沿就立刻更新并且穩(wěn)定的,這里有一定的時延(tCHQV),在tCHQV時間內(nèi),F(xiàn)lash核心收到SCLK觸發(fā)信號,開始準(zhǔn)備數(shù)據(jù),并陸續(xù)放到SIO[7:0]線上。由于tCHQV時間相對較長,主設(shè)備僅根據(jù)SCLK信號邊沿不知道應(yīng)該什么時候去拿數(shù)據(jù),因此誕生了DQS,DQS信號邊沿標(biāo)志著SIO數(shù)據(jù)線開始更新,但是SIO[7:0]一共8根數(shù)據(jù)線,這8根數(shù)據(jù)線更新不是完全同步的,這就有一個硬性規(guī)定,即tDQSQ時間,各數(shù)據(jù)線SIO[x]在DQS信號跳變開始后不得超過tDQSQ最大時間必須把數(shù)據(jù)更新完畢。
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往往是差分的,差分信號因為其補償糾正特性,使得時鐘跳變間隔比較穩(wěn)定,因此數(shù)據(jù)傳輸從CK與CK#交叉點開始進行。Hyper Flash天然是DTR傳輸模式,RWDS作用與Octal Flash上的DQS是完全一致的。
同樣結(jié)合AC特性表里的Symbol來進一步分析,CK差分信號跳變用于觸發(fā)Flash數(shù)據(jù)更新,在tCKD時間內(nèi),F(xiàn)lash核心收到CK觸發(fā)信號,開始準(zhǔn)備數(shù)據(jù),并陸續(xù)放到DQ[7:0]線上。RWDS信號邊沿標(biāo)志著DQ數(shù)據(jù)線開始更新,各數(shù)據(jù)線DQ[x]在RWDS信號跳變開始后不得超過tDSS最大時間必須把數(shù)據(jù)更新完畢。
tCKD - 從CK差分信號跳變到DQ[7:0]輸出有效的時間
tCKDS - 從CK差分信號跳變到RWDS信號跳變的時間
tDSS - 從RWDS信號跳變到DQ[7:0]輸出有效的時間
至此,串行NOR Flash的DQS信號功能痞子衡便介紹完畢了,掌聲在哪里~~~