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

基于AMBA總線的NAND FLASH控制器軟硬件劃分設計

2008-04-12 00:00:00劉新寧杜洪華
現代電子技術 2008年2期

摘 要:在AMBA AHB總線上實現NAND FLASH控制器有多種方案。為使其具有更好的兼容性,既能支持主流型號NAND FLASH的各種命令,同時又兼顧到讀寫效率,該設計根據NAND FLASH本身的操作特點,提出一種軟硬件劃分的設計方案,以軟硬件結合的方式設計出NAND FLASH控制器。該設計通過系統級仿真,功能符合NAND FLASH操作規范。

關鍵詞:NAND FLASH;AHB;控制器;軟硬件劃分

中圖分類號:TN79 文獻標識碼:B 文章編號:1004-373X(2008)02-001-03

NAND FLASH Controller Design with Software/Hardware Partition Based on AMBA General Bus

XIAO Peng,LIU Xinning,DU Honghua

(National Engineering Research Center for ASIC System,Southeast University,Nanjing,210096,China)

Abstract:There are many kinds of methods to implement the NAND FLASH controller on the AMBA AHB general bus.In order to make it has a better compatibility which can support all kinds of commands of the primary NAND FLASH in the market,at the same time it has a high access efficiency,according to the characteristic of NAND FLASH operation,here gives a kind of software/hardware partition solution of implementing the controller by both hardware and software way.This design has past the system simulation and all functions accord with the NAND FLASH specification.

Keywords:NAND FLASH;AHB;controller;software/hardware partition

隨著嵌入式系統的發展, NAND FLASH正被越來越多地應用到嵌入式系統中。而NAND FLASH與處理器的連接需要接口支持,其可以是純硬件的接口,即SoC中本身設計有NAND FLASH硬件控制器,只要根據具體信號線直接連接;也可以是純軟件接口,即SoC中本身沒有專門的NAND FLASH硬件控制器,這時可以將信號線連接到GPIO口或是外部存貯器接口上,通過軟件實現NAND FLASH的各種操作。

純硬件接口所能支持的NAND FLASH命令有其局限性,因為各種型號NAND FLASH命令不盡相同,接口所能支持的命令又受其狀態機的限制。純軟件接口可以很好地解決這個問題,但很耗費時鐘周期,讀寫速度將大大下降。為了使SoC能更好地兼容各種型號NAND FLASH并提高讀寫效率,本設計采用軟硬件結合的方法實現基于AMBA AHB總線的8位NAND FLASH控制器,以滿足上述要求。

1 NAND FLASH基本操作

NAND FLASH接口信號由1個8位的I/O數據線和6個主要的控制信號構成,其中8位I/O信號線用來傳送NAND FLASH的命令字、地址、數據信息,其他6位控制信號包括CE,WE,RE,CLE,ALE,R/B。NAND FLASH最基本和最常用的操作命令是整頁讀、整頁寫、讀狀態字和塊擦除。除了讀狀態字操作,系統總要通過I/O口先向設備發出相關的命令字,再發出相應的地址信息。NAND設備內部有命令字寄存器和地址寄存器,用來鎖存相應的命令字和地址信息。下面著重介紹基本的整頁讀操作和整頁寫操作流程,擦除操作流程與此類似。

1.1 讀操作

當發出整頁讀命令和地址后,數據從FLASH存貯體傳送到他內部的數據寄存器中,此項工作完成后(通過R/B信號線判斷是否完成),就可以通過I/O口讀出數據寄存器中的數據。時序圖如圖1所示,以下是該過程實現的步驟:

命令發送 此時CE信號有效,CLE=1,ALE=0,讀命令00h通過I/O口傳送,在WE信號的上升沿,命令字將被鎖存到NAND FLASH的命令寄存器。

地址發送 此時CE信號有效,CLE=0,ALE=1,地址信息將通過I/O口寫到地址寄存器。地址信息包括行地址和列地址信息(具體參見各NAND FLASH器件手冊),是以Byte的數據格式分幾個連續的周期寫入,在每個WE信號的上升沿,地址信息將被鎖存到NAND FLASH地址寄存器。

數據傳送 此時CE信號有效,CLE=0,ALE=0,數據從存貯體中傳送到數據寄存器中,NAND FLASH處于Busy狀態,即R/B信號為低電平,當數據傳送完畢,此信號線為高電平,表示設備處于Ready狀態,數據可以從數據寄存器中讀出。

數據讀出 此時R/B[TX-]信號為高電平,CE信號有效,CLE=0,ALE=0,數據將根據RE信號的節拍通過I/O口讀出。

1.2 寫操作

當發出寫命令和地址后,數據通過I/O口寫入內部的數據寄存器中,再寫入存貯體,也是通過R/B[TX-]信號線判斷是否寫入完成。此過程實現步驟與讀操作類似,先是通過I/O口發送寫命令字80 h,然后地址發送,再將數據通過I/O口寫入NAND FLASH的數據寄存器,下面發出編程命令字10 h,存儲器進入Busy狀態,通過R/B[TX-]信號表示,并將數據從寄存器寫入存貯體,最后發出狀態讀命令字70 h,以檢查此過程是否成功完成。其時序圖與讀操作相似,下面只給出寫操作流程圖,如圖2所示。

除了以上操作,各種不同NAND FLASH還支持各種不同的命令,如ID讀取、半頁讀、兩頁寫、兩頁擦除、復制操作等,視具體NAND FLASH而定。

2 軟硬件劃分方案

系統對NAND FLASH的操作,主要包括3部分,即命令發送部分、地址發送部分和數據傳輸部分。因此普通的NAND FLASH的硬件接口設計包括命令發送邏輯、地址發送邏輯、讀數據和寫數據邏輯。這種設計的優勢是各種功能都是硬件實現,節省CPU的指令周期,速度快。但是各NAND FLASH支持的命令不盡相同,這種設計由于其狀態機對命令字的限制,只能支持特定的幾種NAND FLASH。

為了使控制器能支持更多型號NAND FLASH,本設計提出一種軟硬件劃分方案,即用軟件實現命令發送和地址發送,數據傳輸時序則由硬件完成。這種方案實現將由軟件代碼和硬件的讀寫狀態機共同工作。[GK7!]這樣,由于命令字是通過軟件發出的,將不會受到像硬件那樣被固定的限制;同時由硬件完成數據傳輸部分保證了其讀寫效率。

軟件部分的實現可以利用SRAM接口的2根地址線控制ALE和CLE,RE和WE信號利用SRAM的讀寫信號進行控制,從而實現系統對命令字和地址的寫入;另外還要用到GPIO口2根信號線分別控制CE和R/B以配合上述過程的實現。硬件部分主要包括一個讀寫時序狀態機完成數據的傳輸工作。

當然,這種設計因為命令和地址發送都是通過指令完成,會占用一定的CPU時間。但從綜合評價的角度看,在NAND FLASH的讀寫操作中數據傳輸部分的時間占絕大多數比例,而這部分是用硬件實現的;因而相對而言,軟件部分只占用很少的時間,卻換來對幾乎任何一種NAND FLASH芯片的支持,而且節約硬件面積,因此這種劃分方案是可行的。

3 NAND FLASH控制器的軟件部分設計

3.1 系統連接方案:

控制器軟件部分的任務將是發送命令和地址,負責系統對NAND FLASH除讀寫時序操作外的所有操作。以對三星K9F4G08U0M NAND FLASH的操作為例,軟件負責的操作有讀寫操作中的發送命令和地址、讀ID操作、復位操作、塊擦除操作、讀狀態字操作、讀EDC狀態操作等,因此軟件需要能控制NAND FLASH的8位的I/O總線和6個主要的控制信號。這可以通過SRAM接口信號和GPIO口的信號實現。

如圖3所示,將地址線A0和A1分別接到ALE和CLE上,利用系統對SRAM的尋址控制ALE和CLE。SRAM的寫使能信號SMWE接WE,SRAM的讀使能信號SMOE接RE, 數據線接I/O口,這樣就完成了用SRAM接口信號控制NAND FLASH部分信號。另外系統對片選信號CE的控制和對R/B信號的判斷,則利用GPIO模塊的GPA0和GPE0這2根信號線,他們分別接到NAND FLASH的CE和R/B信號線上。

3.2 軟件編程

如圖3所示,軟件對NAND FLASH命令字和地址的寫入是借助于SRAM接口和GPIO口而進行。處理器輸出地址0x00000002,譯碼后A0=0,A1=1,這樣可使ALE=0,CLE=1,這時處理器在數據總線上輸出想要的命令字,用SRAM的讀寫控制信號將數據通過I/O送入NAND FLASH;同樣對0x00000001的尋址可使ALE=1,CLE=0,在這個地址上寫入任意數量的8位地址信息,也將通過I/O送入NAND FLASH。另外還可在SRAM控制器中對SMWE,SOME信號的脈沖寬度進行時序配置,使之符合NAND FLASH的WE,RE時序要求。由于塊擦除操作不包括數據傳輸的過程,因此他在本設計中完全由軟件完成。下面以K9F4G08U0M NAND FLASH為例給出示意代碼,說明在圖3的連接下,軟件如何完成命令字和地址的發送,其他操作的軟件編程與此類似。

typedef unsigned char U8;

typedef volatile U8*RP8;

Block-Erase(U8 A0-A7,U8 A8-A11,U8 A12-A19,U8 A20-A27, U8 A28-A29)

{

U8NAND-Data = 0;

SET-CE(0);[JY]//通過GPA0口使CE置有效位

*(RP8)(0x00000002) = 0x60;[JY]//寫入擦除命令

*(RP8)(0x00000001) = A0-A7;[JY]//按順序寫入地址

*(RP8)(0x00000001) = A8-A11;

*(RP8)(0x00000001) = A12-A19;

*(RP8)(0x00000001) = A20-A27;

*(RP8)(0x00000001) = A28-A29;

*(RP8)(0x00000002) = 0xd0;

while(!NAND-R-B());[JY]//等待R/B信號拉高,通過GPE0口判斷

*(RP8)(0x24000002) = 0x70;[JY]//寫入讀狀態字命令

delay(50000);

NAND-Data = *(RP8)NAND-STATE-REG;[JY]//從狀態寄存器中讀出狀態字

NAND-Finish();

if(NAND-Data != 0xc0)

return ;

}

4 NAND FLASH控制器的硬件部分設計

4.1 硬件結構

該控制器硬件部分只負責對存貯器數據的讀寫及其ECC糾錯。其數據必須經過AHB總線接口才能與AHB總線傳輸。其硬件設計框圖如圖4所示。他包括1個數據FIFO,在總線和控制器間緩存數據。ECC模塊負責寫數據和讀數據的校驗。讀寫時序狀態機控制讀寫操作。寄存器組包括配置寄存器,出錯地址寄存器及狀態字寄存器,他們在總線上有統一編址,前者用來配置讀寫時序,后者用來寄存ECC糾錯后出現錯誤的地址。

4.2 讀寫流程

寫數據 先由軟件對存貯器寫入命令和地址,再由軟件對讀寫做時序配置,即通過AHB總線接口將配置信息寫入寄存器組。這樣,所要寫入的數據將通過FIFO進入位寬轉換邏輯,即由總線上來的32位數據轉換成8位數據,通過讀寫時序狀態機寫入NAND FLASH。同時,8位寫入數據也傳入ECC校驗模塊,產生校驗碼,他將隨同寫入數據一起寫入NAND FLASH。

讀數據 同樣先由軟件對存貯器寫入命令和地址,再由軟件對讀寫做時序配置,即通過AHB總線接口將配置信息寫入寄存器組。當R/B信號置高位后,啟動狀態機,從NAND FLASH讀出數據到控制器。這時讀出的數據是8位的,他將通過位寬轉換邏輯轉換成32位數據送入FIFO,最后送入AHB總線接口模塊,由他輸出給總線。與此同時,從狀態機中讀出的8位數據也將輸出給ECC模塊,該模塊將數據進行校驗產生1次檢驗碼,并與寫數據時產生的存入NAND FLASH的檢驗碼做比較。如果比較時發現錯誤,將產生一個中斷信號給系統中斷控制器,由軟件執行異常中斷服務程序;同時計算出錯的地址,送入寄存器組,這樣軟件可以讀出這個出錯地址。

5 結 語

在SoC中實現NAND FLASH控制器,兼容性很重要。SoC并不是專用芯片,而是為某一類應用而設計的,兼容性強才會有好的市場。本文提出一種效率兼顧的軟硬件設計方法實現NAND FLASH控制器,并通過系統級仿真,能很好地滿足兼容性的要求。

參 考 文 獻

[1]Ke Zhan,Daniel Zhao.Interfacing ADSP-BF53x Blackfin Processors to NAND FLASH Memory.Analog Device,Inc,2006,EE-302.

[2]Aseem Vasudev Prabhugaonkar.Interfacing NAND FLASH Memory with ADSP-2126x SHARC Processors.Analog Devices,Inc,2005,EE-279.

[3]Samsung Electronics Corporation.K9F4G08U0M 512M×8 Bits / 1G×8 Bits NAND FLASH Memory Data Sheet[S].2004.

[4]Kreidl H.嵌入式FLASH微控制器簡介(上)(Embedded FLASH MCU)[J].世界電子元器件,2002(9):32-33.

[5]Kreidl H.嵌入式FLASH微控制器簡介(下)(Embedded FLASH MCU)[J].世界電子元器件,2002(10):40-41.

注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。

主站蜘蛛池模板: 亚洲精品在线91| 国产成人a在线观看视频| 色噜噜久久| 最新精品久久精品| 日韩欧美成人高清在线观看| 国产精品护士| 国产96在线 | 色婷婷综合激情视频免费看| 国产农村精品一级毛片视频| 99re热精品视频国产免费| 幺女国产一级毛片| 青青操国产| 国产剧情国内精品原创| 久久精品无码专区免费| 尤物精品国产福利网站| 国产成年女人特黄特色毛片免| 中文成人在线| 强乱中文字幕在线播放不卡| 高清大学生毛片一级| 久久77777| 高潮爽到爆的喷水女主播视频 | 色综合久久无码网| 国产激情无码一区二区APP| 欧美伊人色综合久久天天| 狼友av永久网站免费观看| 丝袜久久剧情精品国产| 精品国产一二三区| 色屁屁一区二区三区视频国产| 国产亚洲欧美日韩在线一区二区三区| 欧美.成人.综合在线| 亚洲av日韩av制服丝袜| 狠狠干综合| 欧亚日韩Av| 免费a在线观看播放| 99ri精品视频在线观看播放| 久草视频中文| 久久综合丝袜日本网| 日韩精品亚洲人旧成在线| 日韩经典精品无码一区二区| 日本五区在线不卡精品| 国产欧美视频一区二区三区| 青青青国产视频| 国产偷倩视频| 国产成人精品高清不卡在线 | 亚洲精品天堂在线观看| 狠狠做深爱婷婷久久一区| a毛片在线| 强乱中文字幕在线播放不卡| 欧美不卡二区| 91在线国内在线播放老师| 97在线免费| 免费一级毛片在线观看| 亚洲国产天堂久久九九九| 午夜在线不卡| 天天色天天综合| 国产亚洲一区二区三区在线| 国内熟女少妇一线天| 国产精品香蕉在线观看不卡| 国产亚洲欧美另类一区二区| 特黄日韩免费一区二区三区| 国产成人一区二区| 亚洲一区网站| 精品人妻一区二区三区蜜桃AⅤ| 精品久久久久无码| 午夜免费视频网站| 久久无码av三级| 亚洲愉拍一区二区精品| 国产精品第一区| 在线综合亚洲欧美网站| 小说区 亚洲 自拍 另类| 成人综合在线观看| 国产99视频在线| 91视频区| 日韩欧美国产三级| 一级毛片免费不卡在线视频| 99久久精品视香蕉蕉| av一区二区三区高清久久| 亚洲人成在线精品| 免费观看亚洲人成网站| 国产国拍精品视频免费看| 一区二区三区高清视频国产女人| 亚洲天堂视频在线观看|