亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

        關鍵詞: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

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

        純硬件接口所能支持的NAND FLASH命令有其局限性,因為各種型號NAND FLASH命令不盡相同,接口所能支持的命令又受其狀態(tài)機的限制。純軟件接口可以很好地解決這個問題,但很耗費時鐘周期,讀寫速度將大大下降。為了使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最基本和最常用的操作命令是整頁讀、整頁寫、讀狀態(tài)字和塊擦除。除了讀狀態(tài)字操作,系統(tǒng)總要通過I/O口先向設備發(fā)出相關的命令字,再發(fā)出相應的地址信息。NAND設備內部有命令字寄存器和地址寄存器,用來鎖存相應的命令字和地址信息。下面著重介紹基本的整頁讀操作和整頁寫操作流程,擦除操作流程與此類似。

        1.1 讀操作

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

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

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

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

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

        1.2 寫操作

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

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

        2 軟硬件劃分方案

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

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

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

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

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

        3.1 系統(tǒng)連接方案:

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

        如圖3所示,將地址線A0和A1分別接到ALE和CLE上,利用系統(tǒng)對SRAM的尋址控制ALE和CLE。SRAM的寫使能信號SMWE接WE,SRAM的讀使能信號SMOE接RE, 數據線接I/O口,這樣就完成了用SRAM接口信號控制NAND FLASH部分信號。另外系統(tǒng)對片選信號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的連接下,軟件如何完成命令字和地址的發(fā)送,其他操作的軟件編程與此類似。

        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]//寫入讀狀態(tài)字命令

        delay(50000);

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

        NAND-Finish();

        if(NAND-Data != 0xc0)

        return ;

        }

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

        4.1 硬件結構

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

        4.2 讀寫流程

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

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

        5 結 語

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

        參 考 文 獻

        [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格式閱讀原文。

        亚洲国际无码中文字幕| 日产乱码一二三区别免费l| 777米奇色狠狠俺去啦| 无码精品a∨在线观看十八禁| 久久免费精品国产72精品剧情 | 亚洲性av少妇中文字幕| 日韩av无码中文字幕| 67194熟妇在线永久免费观看| 欧美日韩性高爱潮视频| 国产剧情亚洲一区二区三区| 久久99精品久久久久麻豆| 午夜无码片在线观看影视| 亚洲av无码成人网站www| 一本之道加勒比在线观看| 少妇人妻综合久久中文字幕| 天天天天躁天天爱天天碰| 亚洲aⅴ无码日韩av无码网站| 日日噜噜夜夜久久密挑| 国产内射爽爽大片| 亚洲精品无码专区在线| 青青国产成人久久91| 亚洲人妻御姐中文字幕| 国产乱人无码伦av在线a| 伦人伦xxxx国语对白| 国产强伦姧在线观看| 区一区二区三区四视频在线观看| aa片在线观看视频在线播放| chinesefreexxxx国产麻豆| 黑人免费一区二区三区| 白白白在线视频免费播放| 国产无人区码一码二码三mba| 精品亚洲午夜久久久久| 国产一区二区三区在线av| 免费无码又爽又刺激网站直播| 1717国产精品久久| 91精品国产综合久久青草| 中文字幕丰满人妻av| 中文字幕乱码熟女人妻水蜜桃| 人妻久久999精品1024| 亚洲国产日韩综合天堂| 亚洲一区av在线观看|