新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > NAND Flash 在MSP430嵌入式系統(tǒng)中的應(yīng)用

        NAND Flash 在MSP430嵌入式系統(tǒng)中的應(yīng)用

        作者: 時(shí)間:2012-01-19 來(lái)源:網(wǎng)絡(luò) 收藏

        NAND 是采用NAND結(jié)構(gòu)技術(shù)的非易失存儲(chǔ)器,具有ROM存儲(chǔ)器的特點(diǎn),存儲(chǔ)在該芯片中的數(shù)據(jù)可在斷電情況下維持10年不丟失,而芯片的引腳與訪(fǎng)問(wèn)又具有類(lèi)似于RAM的特點(diǎn)。NAND FLASH 存儲(chǔ)器將數(shù)據(jù)線(xiàn)與地址線(xiàn)復(fù)用為8條線(xiàn),另外還分別提供了命令控制信號(hào)線(xiàn),因此,NAND FLASH 存儲(chǔ)器不會(huì)因?yàn)榇鎯?chǔ)容量的增加而增加引腳數(shù)目。從而極大方便了系統(tǒng)設(shè)計(jì)和產(chǎn)品升級(jí)。

        1 元件介紹

        1.1 MSP430芯片

        MSP430系列單片機(jī)是TI公司推出的16位RISC系列單片機(jī),該系列是一組超低功耗微控制器,供電電壓范圍為 1.8V—3.6V。考慮到本系統(tǒng)有微體積、低功耗的要求,在此選用,它具有60KB 、2kb RAM、有8個(gè)通道采樣率為200K的12位A/D轉(zhuǎn)換器、硬件乘法器、2個(gè)帶有大量捕獲/比較寄存器的16位定時(shí)器、看門(mén)狗等,為系統(tǒng)的進(jìn)一步開(kāi)發(fā)擴(kuò)展提供了良好的基礎(chǔ),特別適用于較復(fù)雜的系統(tǒng)開(kāi)發(fā)。

        1.2 NAND

        NAND結(jié)構(gòu)Flash是Sumsung公司隆重推出并著力開(kāi)發(fā)的新一代數(shù)據(jù)存儲(chǔ)器件,在此選用芯片K9F1G08U0M,電源電壓2.7V— 3.6V,與一致,功耗低,容量可達(dá)128M×8Bit,按頁(yè)進(jìn)行讀寫(xiě),按塊擦除,通過(guò)I/O口分時(shí)復(fù)用作為命令引腳/地址引腳/數(shù)據(jù)引腳。有很高的可靠性。

        2 硬件設(shè)計(jì)

        本系統(tǒng)中,K9F1G08U0M的數(shù)據(jù)輸入輸出口與單片機(jī)的P6端口相連。片選信號(hào)與單片機(jī)的P2.4相連, CLE(命令鎖存控制端)、ALE(地址鎖存控制端)、WE(寫(xiě)操作控制端)、RE(讀操作控制端)分別通過(guò)控制單片機(jī)P3.3、P2.3、P2.6、 P2.5引腳的電平,決定對(duì)FLASH

        進(jìn)行控制字操作、地址操作、寫(xiě)操作還是讀操作。在此不使用寫(xiě)保護(hù)功能,所以WP接高電平。FLASH與單片機(jī)的部分連接組成電路如圖1所示。



        圖1 與K9F1G08U0M的連接


        3 軟件設(shè)計(jì)

        MSP430的開(kāi)發(fā)軟件較多,本文采用IAR公司的集成開(kāi)發(fā)環(huán)境—IAR Embedded workbench 嵌入式工作臺(tái),利用C430(MSP430系列的C語(yǔ)言)編寫(xiě)調(diào)試。單片機(jī)對(duì)FLASH的操作主要有寫(xiě)、讀、擦除。

        3.1 寫(xiě)操作

        向FLASH內(nèi)部寫(xiě)數(shù)據(jù)是基于頁(yè)的,K9F1G08U0M的命令字、地址和數(shù)據(jù)都是通過(guò)并行口線(xiàn)I/O0—I/O7在控制信號(hào)的作用下分時(shí)操作。地址A0—A10,A11—A26通過(guò)I/O0—I/O7分4次送入。同時(shí)K9F1G08U0M芯片提供了一根狀態(tài)指示信號(hào)線(xiàn),當(dāng)該信號(hào)為低電平時(shí),表示FLASH可能正處于擦除、編程或讀操作的忙狀態(tài);而當(dāng)其為高電平時(shí),則表示為準(zhǔn)備好狀態(tài),此時(shí)可以對(duì)芯片進(jìn)行各種操作。本系統(tǒng)須寫(xiě)入126M數(shù)據(jù)寫(xiě)操作流程圖如圖2。

        3.2 讀操作

        讀操作有串行頁(yè)讀、連續(xù)行讀、隨機(jī)讀3種類(lèi)型。在此選用串行頁(yè)讀取。首先將讀操作控制字00h輸入,再寫(xiě)入地址,寫(xiě)入控制字30h,待 信號(hào)變高后,將本頁(yè)數(shù)據(jù)依次讀出。隨后再改變頁(yè)地址讀出其它頁(yè)內(nèi)數(shù)據(jù)。操作流程圖如圖3。

        圖2 寫(xiě)操作流程圖

        圖3 讀FLASH數(shù)據(jù)程序流程圖

        3.3 擦除操作

        任何FLASH器件的寫(xiě)入操作都必須在空的或已擦除的單元內(nèi)進(jìn)行,因此在進(jìn)行下一次存儲(chǔ)數(shù)據(jù)之前都必須對(duì)FLASH進(jìn)行擦除操作。

        擦除操作基于塊,K9F1G08U0M內(nèi)有1024塊,塊地址的輸入需要兩個(gè)周期,塊操作的地址只有A18—A27有效,A12—A17備忽略。在地址后被送入的塊擦除命令(D0h)啟動(dòng)塊擦除操作,待 信號(hào)變高后,送入命令字70h,讀出I/O0的值來(lái)判斷數(shù)據(jù)擦除是否成功。圖4為塊擦除流程圖。

        圖4 擦除FLASH程序流程圖

        4 程序設(shè)計(jì)

        在此給出寫(xiě)操作部分程序,讀操作和擦除操作均可參考文中流程圖來(lái)編程,值得注意的是其它具體寫(xiě)地址操作應(yīng)仔細(xì)閱讀

        K9F1G08U0M芯片資料。

        #include MSP430x14x.h>

        #define CLE BIT3

        #define ALE BIT3

        #define WE BIT6

        #define CE BIT4

        #define RE BIT5

        #define RB BIT7

        void ReadFlash(); //讀FLASH子程序

        void WriteFlash(); //寫(xiě)FLASH子程序

        void inituart(void); //初始化異步串行通信

        void Write10h(); //寫(xiě)控制字10h子程序

        void WriteCommand(); //寫(xiě)命令字寫(xiě)地址

        void ClrFlash(); //擦除FLASH子程序

        unsigned int k,i,a

        void main ()

        {

        WDTCTL = WDTPW + WDTHOLD;

        BCSCTL1 = ~XT2OFF;

        do

        {

        IFG1 = ~OFIFG;

        for (iq0=0x05; iq0>0; iq0--);

        } //檢驗(yàn)晶振是否起振

        while ((IFG1 OFIFG)!= 0);

        BCSCTL2 = SELM_2 + SELS + DIVS0;

        //SMCLK選擇2分頻后的4M

        While(k0xFC00) //頁(yè)數(shù)64512時(shí)執(zhí)行

        {

        WriteCommand(); //調(diào)用寫(xiě)控制字寫(xiě)地址子程序

        While(i2048) //字節(jié)數(shù)2048時(shí)執(zhí)行循環(huán)

        {

        WriteFlash(); //調(diào)用寫(xiě)數(shù)據(jù)子程序,

        32個(gè)字節(jié)

        i=i+32; //字節(jié)數(shù)+32

        }

        i=0; //一頁(yè)寫(xiě)完后,字節(jié)數(shù)置0

        Write10h(); //調(diào)用寫(xiě)10h子程序

        while(!(P2IN RB)); //等待RB信號(hào)變高

        k++; //頁(yè)數(shù)+1

        }

        k=0; //頁(yè)數(shù)置0

        LPM4; //全部寫(xiě)完后,MSP430進(jìn)入低功耗模式4

        5 結(jié)束語(yǔ)

        MSP430系列單片機(jī)具有實(shí)時(shí)處理能力強(qiáng)、運(yùn)行速度快、性?xún)r(jià)比高等特點(diǎn)。本文介紹了FLASH K9F1G08U0M在由MSP430F149組成的嵌入式系統(tǒng)中的應(yīng)用,實(shí)驗(yàn)表明:整個(gè)系統(tǒng)簡(jiǎn)單可靠、功能完善、運(yùn)行穩(wěn)定,具有實(shí)用價(jià)值。本文作者創(chuàng)新點(diǎn):實(shí)現(xiàn)了MSP430單片機(jī)和NAND Flash兩種低功耗芯片在嵌入式系統(tǒng)中的應(yīng)用,完成了對(duì)FLASH的寫(xiě)操作、讀操作及擦除操作,達(dá)到了系統(tǒng)的微體積和低功耗特性。

        參考文獻(xiàn)

        [1] 沈建華. MSP430系列16位超低功耗單片機(jī)原理與應(yīng)用. 北京:清華大學(xué)出版社,2004

        [2] 胡大可. MSP430系列FLASH型超低功耗16位單片機(jī).北京:北京航空航天大學(xué)出版社,20012

        [3] 胡大可. MSP430系列單片機(jī)C語(yǔ)言程序設(shè)計(jì)與開(kāi)發(fā). 北京:北京航空航天大學(xué)出版社,2002

        [4] 陳茂勇,基于MSP430單片機(jī)的智能無(wú)功補(bǔ)償控制器的設(shè)計(jì),微機(jī)算計(jì)信息,2005年,第5期,32—33頁(yè)

        [5]http://www.intl.samsungsemi.com//Flash/datasheets.html.



        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 沁源县| 确山县| 高邮市| 昌宁县| 安阳市| 桦川县| 惠东县| 华坪县| 台南市| 秀山| 怀安县| 集贤县| 苏尼特右旗| 平远县| 建始县| 巫溪县| 金川县| 安远县| 江阴市| 唐山市| 石棉县| 登封市| 翁牛特旗| 沁源县| 湖北省| 呼玛县| 石棉县| 乾安县| 呼图壁县| 德钦县| 锡林郭勒盟| 措美县| 阿荣旗| 荥阳市| 泾阳县| 蒙阴县| 泾源县| 肇州县| 孟州市| 凤山县| 岗巴县|