關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 大容量閃存芯片與DSP接口設計

        大容量閃存芯片與DSP接口設計

        作者: 時間:2008-01-17 來源:網絡 收藏
        摘要:K9K2G08U0M是三星公司的,它的單片容量高達256MB。文中介紹了K9K2G08U0M的特性和使用方法,重點說明了與TI的TMS320F2812的硬件接口和軟件編程。
        關鍵詞:接口;閃存;TMS320F2812

        在有些智能儀器中,需要實時存儲大量的采樣數據,以提供歷史數據查詢。這需要采用、低功耗、可以快速重復擦寫的非易失性存儲器,因此選擇閃存作為數據存儲介質, 即使系統掉電,而所采集到的數據仍能長時間的保持,不丟失。

        在本文的設計中采用的是TI的TMS320F2812和三星的閃存K9K2G08U0M。K9K2G080M是三星公司的,它的單片容量高達256MB,屬于NAND FLASH結構。傳統存儲器結構及引腳信號定義方式難以解決存儲容量增加的矛盾,即存儲容量的增加使得系統的連線復雜并且可靠性降低。NAND FLASH存儲器將數據線與地址線復用為8 條I/O線, 另外還分別提供了命令控制信號線, 命令、地址和數據信息均通過8 條I/O 線傳輸,因此, NAND FLASH存儲器不會因為存儲容量的增加而增加引腳數目,從而極大方便了系統設計和產品升級,升級到更大容量而無需更改外部連接。因此,本文討論的NAND FLASH存儲器在單片機應用系統中的硬件連接和軟件編程方法具有較大的參考價值。

        1 K9K2G08U0M 簡介

        電源電壓為2.7 -3.6V,讀速度為80ns;

        具有指令/地址/ 數據復用的I/ O 口;

        NAND FLASH 的存儲結構以頁面為單位,能使芯片的讀取速度更快。由2048個大小相同的存儲塊組成,每個塊由64頁組成,每頁2K字節和64個空閑字節;

        1.2 K9K2G08U0M的引腳說明

        圖1 為引腳功能圖,各引腳的功能如下:

        圖1 K9K2G08U0M引腳描述

        I/ O0~I/ O7 : 三態,輸入命令、地址和數據以及讀操作時輸出數據。當芯片沒有被選中或不能輸出時, I/ O 口處于高阻態。

        CLE: 命令鎖存使能。為高電平時,命令通過I/O 口線在WE 信號的上升沿被鎖入命令寄存器。

        ALE: 地址鎖存端,在WE 上升沿且ALE 為高電平時,地址鎖存。

        CE: 片選端, 用于控制芯片的選擇。當芯片忙時, CE 為高電平而被忽略, 此時芯片不能回到備用狀態。

        RE: 讀使能端。在RE的下降沿,輸出數據有效, 并且它還可以對內部數據地址進行累加。

        WE: 寫使能端,通過該端口可以在WE 脈沖的上升沿將指令、地址和數據進行鎖存。

        WP: 寫保護端,在電源電壓變化期間,在WP 為低電平時,可產生寫/ 擦除保護。

        R/ B : 就緒/ 忙輸出, R/ B 的輸出能夠顯示芯片的狀態。R/ B 處于低電平時,表示有編程、擦除或隨機讀操作正在進行。操作完成后, R/ B 會自動返回高電平。

        2 與FLASH的硬件接口

        TI的TMS320F2812采用統一尋址方式,擴展的外部存儲器K9K2G08U0M既可以作為程序存儲器,也可以作為數據存儲器。具體接口如圖2所示。

        圖2 與閃存接口

        TMS320F2812的外部存儲器接口包括:19位地址線,16位數據線,3個片選控制線及讀寫控制線。這3個片選線映射到5個存儲區域,Zone0,Zone1,Zone2,Zone6和Zone7,其中Zone2的片選線是CS2,存儲區域是:0x080000-0x0FFFFF,512K*16位。當對存儲區域Zone2訪問時,Zone2的片選線CS2低有效。

        K9K2G08U0M 沒有地址線,命令、地址和數據信息均是通過閃存的I/O0-I/O7傳輸,另外,雖然K9K2G08U0M的容量達到了256MB,遠遠大于了TMS320F2812的存儲區域Zone2的容量1MB,但由于訪問flash的地址是通過I/ O 口輸入,不需要通過地址線尋址,因此無需考慮采用頁面技術解決邏輯存儲空間與物理空間的映射問題,大大簡化了與FLASH的硬件接口。

        由于K9K2G08U0M本身具有功能管腳較少的優點,因此跟DSP的連接也相對簡單。DSP和FLASH的工作電壓均是3.3V,因此兩者的引腳可以直接連接,不需要進行電平轉換。K9K2G08U0M 的ALE、CLE分別由DSP 的A1 和A0 控制。DSP的低8位數據線直接與閃存的I/O0-I/O7 相連,實現命令、地址和數據的傳輸; DSP的通用I/O口IOA2 接R/B,監測存儲器的工作狀態,當R/ B 處于低電平時,表示有編程、擦除或隨機讀操作正在進行;操作完成后, R/ B 會自動返回高電平。DSP的W E 、R D 分別接FLASH的W E 、R E , 控制讀、寫操作。CS2接閃存的片選線CE。

        3 FLASH操作的軟件設計

        本系統的DSP 編程采用了C 語言,首先定義了三個變量FLASH_D,FLASH_A,FLASH_C作為數據,地址和命令寄存器用來對FLASH讀寫數據,地址和命令。

        #define FLASH_D 0x08fff0 #define FLASH_A 0x08fff2 #define FLASH_C 0x08fff1

        因為K9K2G08U0M 的ALE、CLE分別由DSP 的A1 和A0 控制,所以當向命令寄存器FLASH_C寫數據的時候,訪問的是DSP的存儲區域Zone2, 此時Zone2的片選線低有效,FLASH被選中,地址線A0變高,而引腳CLE高電平有效,此時寫到FLASH_C的數據(FLASH命令)通過I/O寫到閃存。同理,向FLASH_A和FLASH_D寫可分別實現向FLASH寫地址和數據。這樣設計時,通過簡單的寫三個存儲器即可分別實現命令,地址和數據鎖存,符合操作時序。

        對FLASH的操作主要包括:按頁讀操作,頁編程,緩存編程,塊擦除,讀狀態,復位等。FLASH芯片的讀寫有其特點,讀寫操作都要以扇區為單位進行,擦除操作是以塊為單位,由于對FLASH寫數據時,位數據只能由1變為0,因而對FLASH進行寫操作前必須把寫單元所在塊擦除;因此寫操作時,所要擦除塊的數據必須事先保存,然后再對該塊進行擦除,并把數據寫到指定單元,最后把其余部分恢復過來。因此FLASH芯片的寫操作比較復雜,需要開辟一定的緩沖區對要擦除的塊進行保存。

        圖 4 頁編程流程

        下面僅以頁編程為例簡要介紹對FLASH的操作過程,頁編程時序如圖3,圖4為其流程框圖,函數為void page _ program();

        頁編程時,首先寫頁編程命令80H,可將數據寫入到FLASH緩沖區, 然后順序輸入待編程存儲器的地址共5字節,2字節Column Address 和3字節Row Address,以及待寫入的數據。頁編程命令10H用于實現數據從緩沖區到FLASH的編程操作。待R/ B 變為高后,系統將讀狀態寄存器,以判斷寫操作是否成功。寫命令時,CLE 要有效;寫入地址時,ALE 要有效;寫入數據時,CLE、ALE都必須無效。I/ O0~I/ O7 上的命令、地址、數據通常是在WE 的上升沿鎖存的。I/ O0等于0表示頁編程成功,否則頁編程錯誤。

        void page_program_flash()

        { unsigned char *Flash_E;

        unsigned char temp;

        unsigned int i;

        Flash_E=FLASH_C;

        *Flash_E=0x80;

        Flash_E=FLASH_A;

        *Flash_E=coladdr1;

        *Flash_E=coladdr2;

        *Flash_E=rowaddr1;

        *Flash_E=rowaddr2;

        *Flash_E=rowaddr3;

        Flash_E=FLASH_D;

        for(i=0;i2048;i++)

        { *Flash_E=i; }

        Flash_E=FLASH_C;

        *Flash_E=0x10;

        flash_delay();

        do{ Flash_E=FLASH_C;

        *Flash_E=0x70;

        Flash_E=FLASH_D;

        temp=*Flash_E;

        temp=temp0x41;

        }while(temp!=0x40);

        }

        }

        4 結束語

        本文詳細介紹了閃存K9K2G08U0M與DSP 的硬件接口技術和軟件編程。由于NAND FLASH具有的優點使得硬件和軟件編程比較簡單,升級也比較容易。NAND FLASH 具有非易失性、大容量、低成本等優點,在數碼相機,MP3等數碼電子產品和智能儀器得到越來越廣泛的應用。本文作者創新點:直接用DSP地址線A0、A1分別控制FLASH的命令鎖存CLE和地址鎖存ALE,并在此基礎上定義了數據,地址和命令寄存器用來對FLASH讀寫數據,地址和命令,這相當于間接對CLE和ALE進行操作,簡化了軟件編程設計。

        參考文獻

        [1] 蘇奎峰. TMS320F2812原理與開發. 北京:電子工業出版社,2005.4

        [2] SUMSUNG ELETRONICS. K9K2G08U0M / Flash Memory.

        [3] 谷葆春 K9F56XXXOB系列FlashMemory的存儲組織與操作實現.微計算機信息.2004年4期 115―117頁



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 奉节县| 天长市| 山阳县| 嘉禾县| 杭锦后旗| 深州市| 麻江县| 南充市| 宜阳县| 崇信县| 太康县| 百色市| 泸溪县| 屯昌县| 九龙坡区| 武威市| 清水县| 凤庆县| 咸丰县| 宁国市| 调兵山市| 铅山县| 安新县| 惠水县| 东海县| 玉门市| 东阿县| 青冈县| 昌宁县| 五河县| 若尔盖县| 嘉定区| 盐边县| 循化| 泗水县| 民丰县| 容城县| 鄂伦春自治旗| 文水县| 土默特右旗| 梧州市|