999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ARM的大容量NAND FLASH應用

2016-04-12 00:00:00高楊管雪元
現代電子技術 2016年2期

摘 要: 針對基于ARM的大容量NAND FLASH應用中的問題進行研究,發現ARM的可變靜態存儲控制器模塊只有2個NAND FLASH片選引腳,無法直接提供大容量NAND FLASH所需的4個片選信號;NAND FLASH存儲以頁為單位,對于不足1頁的數據無法進行存儲。通過對ARM的引腳復用功能和NAND FLASH的工作特點進行研究,提出了自定義NAND FLASH片選信號解決片選不足,通過對數據進行填充解決不足1頁的數據無法存儲的問題。最終通過實驗進行驗證,保證了基于ARM的大容量NAND FLASH可以充分有效的應用。

關鍵詞: ARM處理器; 片選; 大容量存儲; NAND閃存

中圖分類號: TN710?34; TP333 文獻標識碼: A 文章編號: 1004?373X(2016)02?0065?04

Application on large capacity NAND FLASH based on ARM

GAO Yang, GUAN Xueyuan

(National Key Lab on Transient Physics, Nanjing University of Science and Technology, Nanjing 210094, China)

Abstract: The questions existing in application of the large capacity NANDFLASH based on ARM are researched, because flexible static memory controller (FSMC) module of ARM only has two pins for chip selection but can not provide four chip selection signals required by large capacity NAND FLASH, and the storage of FLASH NAND is based on the unit of page, which can not store the data of the insufficient page. By research on the multiplexing functions of ARM pin and working characteristics of NAND FLASH, the self?definition of NAND FLASH chip selection signal is proposed to solve the problem of pin insufficiency and the filling in data is adopted to settle the problem that the data insufficient as one page can not be stored. The method verified in experiments. It ensured the application of large capacity NAND FLASH based on ARM effectively.

Keywords: ARM; chip selection; large capacity memory; NAND flash

作為主流的存儲器之一,NAND FLASH以其存儲速度快、可靠性高、體積小、質量輕、功耗低、適應各種工作環境等特點,廣泛應用于各類存儲設備[1]。在處理器中,ARM具有高性能、低功耗、低價格等特點,占有很大的市場份額。隨著信息行業的發展,各類信息的數據量越來越大,為了滿足信息應用和處理的更高需求,增大相關設備的存儲容量也就尤為重要。因此,本文主要針對基于ARM的大容量NAND FLASH在應用方面的主要問題進行分析。

1 大容量NAND FLASH應用中的問題

目前市面上的NAND FLASH型號眾多,相應的容量、結構特點和操作方式上也各有差異,但每個廠商的不同型號除了容量上的差異,其余基本相同。本文以容量較大的K9MDG08U5M為例,這款NAND FLASH是三星公司的8位存儲芯片,容量高達16 GB。K9MDG08U5M內部包含4片,每片有8 192塊,每塊有128頁[2]。

1.1 NAND FLASH片選問題

在存儲系統中,通過NAND FLASH完成存儲功能,但其內部沒有獨立的控制結構,所以要實現整個存儲系統,就必須依賴其他控制芯片。類似于K9MDG08U5M這種大容量NAND FLASH,片選信號有4個,也是目前片選信號最多的。對于不同型號的ARM或者是包含ARM內核的SoC來說,其涉及NAND FLASH的FSMC(可變靜態存儲控制器)模塊只有2個片選引腳,因此無法直接提供大容量NAND FLASH所需的4個片選信號。

1.2 NAND FLASH編程操作問題

NAND FLASH的操作主要包含擦除、編程和讀取,最為關鍵的是編程操作,保證數據的可靠性和完整性是實現存儲功能的最基本要求。由于內部物理結構的特點,NAND FLASH的讀/寫以頁為單位,而擦除則以塊為單位[3]。編程操作時,一般在控制器中開辟1頁大小的緩存,待緩存中的數據收集滿后再傳輸給NAND FLASH進行存儲。在實際應用中,所采集的數據很難準確預測,更難以保證數據量正好等于頁容量的整數倍,這樣就不可避免地造成最后不夠1頁的數據無法存入NAND FLASH中,這種數據丟失對于存儲系統來說是不允許出現的。

2 應用中問題解決方法

前面敘述了大容量NAND FLASH在實際應用中的兩個典型問題:一是大容量帶來的多片選,造成ARM處理器片選不足的問題;二是容量越大,最后數據不滿1頁的可能性越高,造成數據丟失的問題也越嚴重。為了使這種大容量NAND FLASH能有更廣泛的應用,就必須解決這兩個問題。

2.1 解決片選

本文ARM以意法半導體的STM32F407為例,這款微處理器具有NAND FLASH所需的FSMC。FSMC能夠連接同步、異步存儲器和 16 位 PC 存儲卡,數據總線位寬可根據需要配置成8位或16位,具有兩個支持 ECC 硬件的 NAND FLASH存儲區域,可檢查多達 8 KB 的數據[4]。FSMC定義了兩個NAND FLASH片選[5]FSMC_NCE[3:2],從FSMC的角度,外部存儲器被劃分為4個固定大小的存儲區域,其中存儲區域2和存儲區域3用于連接NAND FLASH,每個存儲區域只能連接一個器件。默認的情況下,FSMC可連接2個單片選NAND FLASH。4片選的K9MDG08U5M就需要另外定義其余片選。ARM的大多數引腳都具有復用功能,可以按照定義配置成不同的功能,但是一個引腳在同一時間只能配置成一種功能。每一個片選[CE]有效時,該片都有一個R/[B]狀態輸出,用于判斷當前NAND FLASH的狀態[6]。所以R/[B]信號與[CE]信號個數上是對應的,需要自己定義的也就是這兩組引腳。既然重新定義,那就意味著引腳的復用功能無法使用,在硬件設計時應該將[CE][4:1]和R/[B][4:1]連接至ARM的空閑引腳(該引腳的復用功能不使用),其余引腳對應復用功能正常連接。硬件連接框圖如圖1所示。

在軟件設計時,把[CE][4:1]和R/[B][4:1]相連的引腳分別配置成GPIO的輸出功能和輸入功能。由于片選低電平有效,初始化時將[CE][4:1]置高。在使用時,ARM輸出低電平至需要操作的片選,使能該片NAND FLASH后,再判斷R/[B]反饋的狀態信號,如果高電平表示NAND FLASH處于空閑狀態可以進行接下來的操作,低電平則表示NAND FLASH處于忙碌狀態,ARM等待至信號變高[7]。

圖1 連接框圖

當一個片選的容量存滿之后,需要自動切換到下一個片選,進而可以繼續工作。對NAND FLASH的每次操作都涉及到對應的操作地址,即頁地址、塊地址和片選號(從頁首開始操作,頁內地址為0)。一次操作完成后,應該更新操作地址并進行相應的判斷。前面介紹過K9MDG08U5M內部包含4片,每片包含8 192塊,每塊由128頁構成,因此最大頁地址為128,最大塊地址為8192,最大片選號為4,初始地址都是從0開始。地址更新流程圖如圖2所示。

圖2 地址更新流程圖

2.2 解決數據不夠1頁

編程操作以頁為單位,這是所有NAND FLASH共同的操作特點。由于內部物理結構,K9MDG08U5M寫入數據過程分為兩步:第一步,接收到第一周期編程命令(80H),將收集好的數據傳輸至NAND FLASH內部的緩存區,其大小與頁的大小相等;第二步,接收到第二周期編程命令(10H),該命令確認寫入,數據由緩存區真正存入至存儲區一頁中[8]。通過對數據寫入過程的分析,可以看出每一次編程操作都是針對1頁大小的數據進行的。這種操作方式可以提高寫入的速度,因為每次寫入數據都需要向NAND FLASH發送命令和操作地址,與單字節操作相比,減少了程序多次執行發送命令和地址的時間[9]。但當數據不夠1頁時,按頁操作就成為一種束縛。這是所有NAND FLASH都會存在的問題,對于大容量NAND FLASH,頁的大小也相應增加,這種問題所造成的影響就變得更加明顯。

對于這個問題,首先想到的方法就是對數據進行填充,將不足1頁的數據填充滿1頁,再完成接下來的存儲操作。本文用到的也就是這種方法,填充數據需要考慮兩個問題:一是什么時候填充;二是填充什么數據。

什么時候填充主要根據外圍設備的數據傳輸間隔來判斷,可以定義一個最大容忍時間。最大容忍時間可以根據實際情況適當的大些,因為過小會造成沒有必要的填充,從而浪費存儲資源,而容忍時間適當大些不會帶來任何負面影響,定義的標準就是大于外圍設備的最大傳輸間隔。

關于填充什么數據并沒有特殊的限制,只需要不會對有效數據產生干擾即可。本文主要根據NAND FLASH內部特點來選擇填充數據。由于NAND FLASH存儲單元的物理特性,編程操作時存儲單元的數據只能從1變成0,無法從0變成1,擦除的目的就是將所有存儲位變為1。因此存儲數據時,沒有存入有效數據的空間內數據[10]應該都是0xFF。根據這一點,本文選擇的填充數據就是0xFF,同時也滿足不會對有效數據產生干擾的要求。

在實際設計中,可以使用計時器進行判斷,當時間達到了最大容忍時間,即認為不再有數據進入,將緩存填充0xFF至1頁。計時器的初值并不等于零,而是定義為大于最大容忍時間的值。因為考慮到程序啟動之后外圍設備不一定立刻就產生數據,為了避免剛開始沒有數據進入時也進行填充,所以計時器選擇從較大的值開始計時。串口采用中斷方式接收數據,當有數據進入時,串口產生中斷,程序執行中斷服務函數,同時計時器歸零。當下一幀數據進入,串口再次產生中斷,計時器再次歸零。如果一定時間內沒有數據進入,計時器的值達到最大容忍時間,即認為數據接受完畢,若緩存不夠1頁大小則填充數據至1頁。具體流程圖如圖3所示。

圖3 填充流程圖

3 實驗驗證

通過串口調試助手循環發送abcdefg至下位機,隨機發送若干個字節后停止發送,將接收到的數據存入NAND FLASH第3片第2塊第1頁,最終再讀出并通過串口助手顯示。由圖4和圖5可知,循環發送出273 B,接收緩存最小編號為0,停止發送后,緩存中數據從第274個字節處開始填充為0xFF,顯示出的4 096 B(1頁大小)中,abcdefg后全為0xFF。實驗結果達到預期效果,上述解決方法具有可行性。

圖4 串口助手收發界面

4 結 語

本文主要分析解決了大容量NAND FLASH應用于ARM的兩個主要問題。首先對于片選不足的問題,可以通過ARM自身引腳的復用功能進行解決,只需對片選及相應的狀態信號重新定義,并注意操作地址的更新以保證NAND FLASH可以連續正常工作。其次解決了數據不夠1頁無法滿足按頁存儲的問題,通過定義最大容忍時間來判斷是否還有數據進入,當達到最大容忍時間即認為數據采集完成,如果數據不足1頁則進行填充,從而保證有效數據完全存入NAND FLASH。這兩個問題的解決,保證了基于ARM的大容量NAND FLASH可以充分有效的應用。尤其對于第二個問題,解決方法適用于所有由NAND FLASH構成的存儲系統。

圖5 Keil調試界面

參考文獻

[1] 陳國,高楊.NAND FLASH在大容量存儲技術中的應用[J].航空計算技術,2009,39(2):113?116.

[2] Samsung Corp. K9MDG08U5M?PCB0M datasheet [EB/OL]. [2011?02?28]. http://www.samsung.com.

[3] 邢亮,黃暉,田丹.機載系統NAND FLASH存儲技術[J].航空計算技術,2014,44(1):123?125.

[4] 廖義奎.ARM Cortex?M4嵌入式實戰開發精解:基于STM32F4[M].北京:北京航空航天大學出版社,2013.

[5] ST Corp. STM32F407xx datasheet[ EB/OL]. [2013?10?22].http://www.st.com.

[6] 舒文麗,吳云峰,孫長勝,等.基于NAND FLASH的海量存儲器的設計[J].電子器件,2012,35(1):107?110.

[7] 朱知博.基于NAND FLASH的高速大容量存儲系統設計[J].現代電子技術,2011,34(8):170?173.

[8] 雷磊,謝民,李先楚.基于NAND 型FLASH的海量存儲板的設計與實現[J].測控技術,2007(z1):196?202.

[9] 鄭文靜,李明強,舒繼武.FLASH存儲技術[J].計算機研究與發展,2010,47(4):716?726.

[10] 晏敏,龍小奇,章兢,等.開放式大容量NAND FLASH數據存儲系統設計與實現[J].微電子學與計算機,2009,26(11):13?16.

主站蜘蛛池模板: 成人国产免费| 欧美国产日韩在线| 成人va亚洲va欧美天堂| 亚洲欧洲日产无码AV| 18禁影院亚洲专区| 国产精品美女网站| 国产精品久久久久久久久久98| 久久精品亚洲中文字幕乱码| 97综合久久| 国产资源免费观看| 亚洲大学生视频在线播放 | 欧美yw精品日本国产精品| 一级一级一片免费| 国内毛片视频| 国产探花在线视频| 免费一级毛片在线观看| 国产激爽大片在线播放| 国产XXXX做受性欧美88| 夜夜操天天摸| 色综合热无码热国产| 无码人中文字幕| 亚洲国产成人无码AV在线影院L| 国内精品视频| 美女无遮挡拍拍拍免费视频| 免费人成网站在线观看欧美| 日韩av高清无码一区二区三区| 日本高清免费不卡视频| 一级毛片免费的| 欧美人人干| 亚洲人成亚洲精品| 久久久无码人妻精品无码| 欧美a在线视频| 国产三级视频网站| 在线不卡免费视频| 中文字幕在线永久在线视频2020| 中文字幕无码制服中字| 午夜视频www| 国产99欧美精品久久精品久久| 刘亦菲一区二区在线观看| 91免费国产高清观看| 日韩毛片免费| 国产成人精品无码一区二| 久久青草热| 久久99国产综合精品女同| 亚洲中文字幕av无码区| 日韩国产高清无码| 国产91九色在线播放| a毛片免费观看| 亚洲精品男人天堂| 国产日韩丝袜一二三区| 亚洲视频免| 91人人妻人人做人人爽男同| 国产午夜一级淫片| 久久香蕉国产线看精品| 日韩精品无码免费专网站| 欧美黑人欧美精品刺激| 国产一区二区网站| 久久亚洲国产视频| 国产在线八区| 国产99久久亚洲综合精品西瓜tv| 欧美成人精品在线| 日韩欧美中文字幕在线韩免费| 九色综合伊人久久富二代| 天堂岛国av无码免费无禁网站| 99草精品视频| 国产小视频免费| 凹凸精品免费精品视频| 欧美一级高清片久久99| 国产色婷婷| 国产电话自拍伊人| 欧美日本视频在线观看| 福利在线不卡| 精品欧美视频| 午夜老司机永久免费看片| 伦精品一区二区三区视频| 欧美日韩在线亚洲国产人| 色欲不卡无码一区二区| 免费在线色| 乱码国产乱码精品精在线播放| 在线国产你懂的| 成人在线观看一区| 亚洲天堂在线视频|