【轉】SPI FLASH與NOR FLASH的區別 詳解SPI FLASH與NOR FLASH的不一樣


轉自:http://m.elecfans.com/article/778203.html

本文主要是關於SPI FLASH與NOR FLASH的相關介紹,並着重對SPI FLASH與NOR FLASH的區別進行了詳細的區分。

  SPI FLASH

  首先它是個Flash,Flash是什么東西就不多說了(非易失性存儲介質),分為NOR和NAND兩種(NOR和NAND的區別本篇不做介紹)。SPI一種通信接口。那么嚴格的來說SPI Flash是一種使用SPI通信的Flash,即,可能指NOR也可能是NAND。但現在大部分情況默認下人們說的SPI Flash指的是SPI NorFlash。早期Norflash的接口是parallel的形式,即把數據線和地址線並排與IC的管腳連接。但是后來發現不同容量的Norflash不能硬件上兼容(數據線和地址線的數量不一樣),並且封裝比較大,占用了較大的PCB板位置,所以后來逐漸被SPI(串行接口)Norflash所取代。同時不同容量的SPI Norflash管腳也兼容封裝也更小。,至於現在很多人說起NOR flash直接都以SPI flash來代稱。

  SPI FLASH與NOR FLASH的區別 詳解SPI FLASH與NOR FLASH的不一樣

  NorFlash根據數據傳輸的位數可以分為並行(Parallel,即地址線和數據線直接和處理器相連)NorFlash和串行(SPI,即通過SPI接口和處理器相連)NorFlash;區別主要就是:1、SPI NorFlash每次傳輸一bit位的數據,parallel連接的NorFlash每次傳輸多個bit位的數據(有x8和x16bit兩種); 2、SPI NorFlash比parallel便宜,接口簡單點,但速度慢。

  NandFlash是地址數據線復用的方式,接口標准統一(x8bit和x16bit),所以不同容量再兼容性上基本沒什么問題。但是目前對產品的需求越來越小型化以及成本要求也越來越高,所以SPI NandFlash漸漸成為主流,並且采用SPI NANDFlash方案,主控也可以不需要傳統NAND控制器,只需要有SPI接口接口操作訪問,從而降低成本。另外SPI NandFlash封裝比傳統的封裝也小很多,故節省了PCB板的空間。

  今天主要說下SPI NorFlash。

  二、有毛用啊

  節省成本,減小封裝,存儲數據。

  三、怎么用啊

  怎么用說白了對於Flash就是讀寫擦,也就是實現flash的驅動。先簡單了解下spi flash的物理連接。

  之前介紹SPI的時候說過,SPI接口目前的使用是多種方式(具體指的是物理連線有幾種方式),Dual SPI、Qual SPI和標准的SPI接口(這種方式肯定不會出現在連接外設是SPI Flash上,這玩意沒必要全雙工),對於SPI Flash來說,主要就是Dual和Qual這兩種方式。具體項目具體看了,理論上在CLK一定的情況下, 線數越多訪問速度也越快。我們項目采用的Dual SPI方式,即兩線。

  當前涉及到具體的SPI flash芯片類型了,所以必須也得參考flash的datasheet手冊了。我們以W25Q64JVSSIQ為例。

  這是基本信息的介紹,然后看下具體IO的定義

  這個是WSON封裝的管腳定義,其他詳細信息參考datasheet。

  硬件驅動的話也是和芯片強相關的,因為讀寫擦都是和硬件時序相關的,所以必須得參考硬件datasheet手冊。

  上面的datasheet都詳細說明了每個操作的時序周期發送的命令。上圖中,第一列是指令名稱,第二列是指令編碼,第三列及以后的指令功能與對應的指令有關。帶括號的字節內容為flash向主機返回的字節數據,不帶括號則是主機向flash發送字節數據。

  A0~A23:flash內部存儲器地址;MID0~MID7:制造商ID;ID0~ID15:flash芯片ID;D0~D7:flash內部存儲的數據;dummy:指任意數據。

  比如獲取deviceID:

  表示該命令由這四個字節組成,其中dummy意為任意編碼,即這三個字節必須得發數據,但這些數據是任意的,上圖命令列表中帶括號的字節數據表示由FLASH返回給主機的響應,可以看到deviceID命令的第5個字節為從機返回的響應,(ID7~ID0),即返回設備的ID號。

  代碼如下:

  uint32_t Get_Flash_DeviceID(void)

  {

  uint8_t deviceID= 0x00;

  spiflashReset();

  spi_write( 0xAB);

  spi_write( Dummy);

  spi_write( Dummy);

  spi_write( Dummy);

  deviceID = spi_write( Dummy);

  spi_write( Dummy);

  spiflashSet() ;

  return deviceID;

  }

  NOR FLASH

  NOR Flash是一種非易失閃存技術,是Intel在1988年創建。

  是現在市場上兩種主要的非易失閃存技術之一。Intel於1988年首先開發出NOR Flash 技術,徹底改變了原先由EPROM(Erasable Programmable Read-Only-Memory電可編程序只讀存儲器)和EEPROM(電可擦只讀存儲器Electrically Erasable Programmable Read - Only Memory)一統天下的局面。緊接着,1989年,東芝公司發表了NAND Flash 結構,強調降低每比特的成本,有更高的性能,並且像磁盤一樣可以通過接口輕松升級。NOR Flash 的特點是芯片內執行(XIP ,eXecute In Place),這樣應用程序可以直接在Flash閃存內運行,不必再把代碼讀到系統RAM中。NOR 的傳輸效率很高,在1~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響到它的性能。NAND的結構能提供極高的單元密度,可以達到高存儲密度,並且寫入和擦除的速度也很快。應用NAND的困難在於Flash的管理需要特殊的系統接口。通常讀取NOR的速度比NAND稍快一些,而NAND的寫入速度比NOR快很多,在設計中應該考慮這些情況。——《ARM嵌入式Linux系統開發從入門到精通》 李亞峰 歐文盛 等編著 清華大學出版社 P52 注釋 API Key

  性能比較

  flash閃存是非易失存儲器,可以對稱為塊的存儲器單元塊進行擦寫和再編程。任何flash器件的寫入操作只能在空或已擦除的單元內進行,所以大多數情況下,在進行寫入操作之前必須先執行擦除。NAND器件執行擦除操作是十分簡單的,而NOR則要求在進行擦除前先要將目標塊內所有的位都寫為0。

  由於擦除NOR器件時是以64~128KB的塊進行的,執行一個寫入/擦除操作的時間為5s,與此相反,擦除NAND器件是以8~32KB的塊進行的,執行相同的操作最多只需要4ms。

  執行擦除時塊尺寸的不同進一步拉大了NOR和NAND之間的性能差距,統計表明,對於給定的一套寫入操作(尤其是更新小文件時),更多的擦除操作必須在基於NOR的單元中進行。這樣,當選擇存儲解決方案時,設計師必須權衡以下的各項因素。

  l 、NOR的讀速度比NAND稍快一些。

  2、 NAND的寫入速度比NOR快很多。

  3 、NAND的4ms擦除速度遠比NOR的5s快。

  4 、大多數寫入操作需要先進行擦除操作。

  5 、NAND的擦除單元更小,相應的擦除電路更少。

  此外,NAND的實際應用方式要比NOR復雜的多。NOR可以直接使用,並可在上面直接運行代碼;而NAND需要I/O接口,因此使用時需要驅動程序。不過當今流行的操作系統對NAND結構的Flash都有支持。此外,Linux內核也提供了對NAND結構的Flash的支持。

  詳解

  NOR和NAND是現在市場上兩種主要的非易失閃存技術。Intel於1988年首先開發出NOR flash技術,徹底改變了原先由EPROM和EEPROM一統天下的局面。緊接着,1989年,東芝公司發表了NAND flash結構,強調降低每比特的成本,更高的性能,並且象磁盤一樣可以通過接口輕松升級。但是經過了十多年之后,仍然有相當多的硬件工程師分不清NOR和NAND閃存。

  像“flash存儲器”經常可以與相“NOR存儲器”互換使用。許多業內人士也搞不清楚NAND閃存技術相對於NOR技術的優越之處,因為大多數情況下閃存只是用來存儲少量的代碼,這時NOR閃存更適合一些。而NAND則是高數據存儲密度的理想解決方案。

  NOR的特點是芯片內執行(XIP, eXecute In Place),這樣應用程序可以直接在flash閃存內運行,不必再把代碼讀到系統RAM中。NOR的傳輸效率很高,在1~4MB的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能。

  NAND結構能提供極高的單元密度,可以達到高存儲密度,並且寫入和擦除的速度也很快。應用NAND的困難在於flash的管理需要特殊的系統接口。

  SPI FLASH與NOR FLASH的區別

  1、SPI Flash (即SPI Nor Flash)是Nor Flash的一種;

  2、NOR Flash根據數據傳輸的位數可以分為並行(Parallel)NOR Flash和串行(SPI)NOR Flash;

  3、SPI Nor Flash每次傳輸一個bit位的數據,parallel Nor Flash每次傳輸多個bit位的數據(有x8和x16bit兩種);

  4、SPI Nor Flash比parallel便宜,接口簡單點,但速度慢。

  SPI FLASH是指外接口符合SPI協議,也就是串口。

  NOR FLASH與NAND 是相對的,指的是芯片內部的串型和並行。

  SPI FLASH是NOR FLASH的一種。

  結語

  關於SPI FLASH與NOR FLASH的相關介紹就到這了,如有不足之處歡迎指正。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM