痞子衡嵌入式:串行NOR Flash的DQS信號功能簡介


  你們好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給你們分享的是串行NOR Flash的DQS信號功能html

  串行NOR Flash在嵌入式裏的應用至關普遍,既可用做數據存儲也能夠用做代碼(XiP)存儲,串行NOR Flash種類不少,最先期有Standard SPI(一線),後來發展到QuadSPI(四線),到如今OctalSPI或者HyperBus SPI(八線),I/O管腳愈來愈多,數據吞吐率也愈來愈高。但到八線Flash的時候,你會發現多了一個特殊的控制信號DQS,DQS是Data Strobe Signal縮寫,中文直譯叫數據選通訊號,這個DQS信號有什麼做用呢?今天痞子衡帶你們分析一下:微信

1、回顧DDR中DQS

  咱們對DQS信號更深的印象應該來源於DDR,DDR是DDR SDRAM的簡稱,其自己也是Double Data Rate(雙倍數據速率)的縮寫。從RAM分類來看,DDR是DRAM範疇內的重要組成,DDR已經發展到了第n代了。.net

  在DDR中,DQS信號主要做用是用來在一個時鐘週期內準確的區分出每一個數據傳輸週期,從而便於接收方準確接收數據。DQS信號是雙向的,在寫入DDR時它用來傳送由主設備發來的DQS信號,讀取DDR時則由DDR生成DQS向主設備發送,因此DQS其實就是數據的同步信號。關於DQS以及DDR原理能夠參看網上一篇很好的文章《DDR工做原理》code

  那麼Flash上的DQS功能與DDR上DQS是否是同樣呢?有相同點也有不一樣點,我們繼續往下看:htm

2、DQS之Octal Flash篇

  咱們來看一款典型的Octal Flash,來自MXIC的MX25UM51345G。這款Flash包含DQS引腳(I/O屬性爲輸出),從芯片數據手冊裏找到跟DQS信號相關的主要是下面這張輸出時序圖,DQS信號僅在DTR模式(SCLK雙邊沿採樣)時生效,而且只在Flash輸出數據時起做用(主設備寫Flash時,DQS不起做用),即DQS信號是Flash發出的用於通知讀取Flash的主設備SIO[7:0]數據線開始更新的標誌。blog

  讓咱們結合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最大時間必須把數據更新完畢。get

tCHQV - 從SCLK信號跳變到SIO[7:0]輸出有效的時間
tQSV  - 從SCLK信號跳變到DQS信號跳變的時間
tDQSQ - 從DQS信號跳變到SIO[7:0]輸出有效的時間
tQH   - SIO[7:0]輸出保持時間

3、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信號功能痞子衡便介紹完畢了,掌聲在哪裏~~~flash

歡迎訂閱

文章會同時發佈到個人 博客園主頁CSDN主頁知乎主頁微信公衆號 平臺上。

微信搜索"痞子衡嵌入式"或者掃描下面二維碼,就能夠在手機上第一時間看了哦。

相關文章
相關標籤/搜索