<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430單片機(jī)Flash存儲(chǔ)器的特性及應(yīng)用

          MSP430單片機(jī)Flash存儲(chǔ)器的特性及應(yīng)用

          作者: 時(shí)間:2016-11-23 來(lái)源:網(wǎng)絡(luò) 收藏
          概述

            以單片機(jī)為核心的儀表常要考慮發(fā)生突然掉電時(shí)的數(shù)據(jù)保存問(wèn)題,一般有兩種對(duì)策:一是用后備電源維持單片機(jī)持續(xù)工作,稱(chēng)為硬保護(hù);另一種是在檢測(cè)到掉電后,在電源完全失效前保護(hù)現(xiàn)場(chǎng)數(shù)據(jù),上電后再恢復(fù)工作,稱(chēng)為軟保護(hù)。本文主要討論后者。

          本文引用地址:http://www.ex-cimer.com/article/201611/320134.htm

            目前,設(shè)計(jì)掉電軟保護(hù)功能時(shí),數(shù)據(jù)存儲(chǔ)介質(zhì)常選用兩類(lèi):一類(lèi)是E2PROM,但寫(xiě)入時(shí)間較長(zhǎng),難以寫(xiě)入較多數(shù)據(jù);另一類(lèi)是帶有后備電池的小容量SRAM構(gòu)成的非易失性存儲(chǔ)器,寫(xiě)入速度快,但增加了電路的復(fù)雜性。掉電電壓的檢測(cè)電路可用分立元件構(gòu)成,也可用專(zhuān)用芯片來(lái)實(shí)現(xiàn)。前者增加了電路復(fù)雜性且降低了系統(tǒng)可靠性;后者增加了成本。

            TI公司的Flash型單片機(jī)MSP430F11x1系列、MSP430F13x系列和MSP430F14x系列具有片內(nèi)的Flash存儲(chǔ)器??梢杂糜趯?shí)現(xiàn)儀表的掉電數(shù)據(jù)保護(hù),同時(shí)可以簡(jiǎn)化系統(tǒng)結(jié)構(gòu),提高系統(tǒng)可靠性。

            本文采用TI公司的Flash型16位超低功耗單片機(jī)MSP430F1121,利用其片內(nèi)的Flash存儲(chǔ)器和模擬比較器,只需外接1組分壓電阻進(jìn)行分壓取樣,即可實(shí)現(xiàn)系統(tǒng)的掉電軟保護(hù)。

          一、 MSP430F11x1、MSP430F13x 和MSP430F14x簡(jiǎn)介

            MSP430F11x1為20引腳,采用SOWB封裝,如圖1所示。它有14位具有中斷功能的I/O端口;有1個(gè)16位的WatchDog,可用作系統(tǒng)故障復(fù)位或定時(shí)器;有1個(gè)帶有3組捕捉/比較寄存器的16位定時(shí)器Timer_A。有1個(gè)模擬電壓比較器Compare_A;它的定時(shí)器和比較器功能豐富,可以實(shí)現(xiàn)多種用途。例如,外接電阻和電容后可以構(gòu)成1個(gè)高精度的A/D轉(zhuǎn)換器。


            MSP430F13x和MSP430F14x同為64引腳,采用PQFP封裝,芯片為1cm2的正方形,如圖2所示。它有48位I/O端口;有1個(gè)16位的WatchDog;有2個(gè)帶有多組捕捉/比較寄存器的16位定時(shí)器Timer_A、Timer_B;有1個(gè)模擬比較器Compare_A;有1~2個(gè)串行接口;有1個(gè)12位的多通道A/D轉(zhuǎn)換器。F14x還具有1個(gè)硬件乘法器,可實(shí)現(xiàn)16位乘16位的操作。


          二、 Flash存儲(chǔ)器特性

            Flash型單片機(jī)的工作電壓為1.8~3.6V??赏饨?2kHz~8MHz晶振,并由內(nèi)部DCO振蕩器實(shí)現(xiàn)主時(shí)鐘。有5種低功耗模式,在2.2V、32kHz晶振、1MHz主頻、活動(dòng)模式時(shí)工作電流為160μA;當(dāng)僅保持RAM數(shù)據(jù)時(shí)為0.1μA。它的Flash存儲(chǔ)器使用尤為方便。

            F1121片內(nèi)除256B RAM外,還有4KB+256B的Falsh存儲(chǔ)器。Flash存儲(chǔ)器為分段結(jié)構(gòu),分為主存儲(chǔ)器(main memory)和信息存儲(chǔ)器(information memory),如圖3所示。F13x和F14x的片內(nèi)存儲(chǔ)容量更大,RAM在256B到2KB之間,F(xiàn)lash儲(chǔ)存器在8KB到60KB之間,也包含主存儲(chǔ)器和信息存儲(chǔ)器,分段方法及控制方法與F1121相同。

            Flash存儲(chǔ)器主要用作程序存儲(chǔ)器,可經(jīng)JTAG接口下載程序。程序運(yùn)行時(shí)能對(duì)其中的1段或多段進(jìn)行擦/寫(xiě)操作,因此兼有數(shù)據(jù)存儲(chǔ)器功能。Flash存儲(chǔ)器的擦/寫(xiě)次數(shù)為105次,數(shù)據(jù)在室溫下可保存100年。

            以下針對(duì)具體的應(yīng)用,詳細(xì)介紹F1121的Flash存儲(chǔ)器用法。


          1 F1121 Flash存儲(chǔ)器結(jié)構(gòu)

            Flash存儲(chǔ)器按段分布:主存儲(chǔ)器每段為512個(gè)字節(jié),共8段(0~7段);信息存儲(chǔ)器每段為128個(gè)字節(jié),共2段(A,B段)。最小擦除單位為1段。主存儲(chǔ)器和信息存儲(chǔ)器的特性除分段大小外基本相同。

          2 Flash存儲(chǔ)器控制寄存器

            有3個(gè)16位控制寄存器:FCTL1,F(xiàn)CTL2,F(xiàn)CTL3。為了防止誤操作,寫(xiě)入時(shí)高字節(jié)必須為0A5H,但讀出時(shí)為096H。

          (1) Flash控制寄存器1(FCTL1)

            定義對(duì)Flash存儲(chǔ)器的擦/寫(xiě)操作。

            Erase 和MEras 位控制擦除操作,置位后,往定義的區(qū)域范圍內(nèi)任一地址進(jìn)行寫(xiě)操作(寫(xiě)入任意數(shù))后該段即被擦除。前者每次只擦除一段,后者擦除所有段。

            WRT和SEG WRT位控制寫(xiě)操作:前者每次寫(xiě)1個(gè)字節(jié),后者可在段內(nèi)連續(xù)寫(xiě)入。

          (2) Flash控制寄存器2(FCTL2)

            定義Flash時(shí)鐘發(fā)生器的時(shí)鐘源和頻率,一般可取上電復(fù)位時(shí)的缺省值。

          (3) Flash控制寄存器3(FCTL3)

            指示對(duì)Flash存儲(chǔ)器操作過(guò)程中的出錯(cuò)狀態(tài)。

            其中,較重要的是BUSY位,置位表示不能對(duì)Flash存儲(chǔ)器操作;否則會(huì)出錯(cuò)。在每次進(jìn)行擦/寫(xiě)操作前都要測(cè)試該位。

          3 Flash存儲(chǔ)器擦除、讀和寫(xiě)操作

            進(jìn)行擦/寫(xiě)操作的編程電壓(VPP)由片內(nèi)產(chǎn)生;擦/寫(xiě)時(shí)鐘由Flash時(shí)鐘發(fā)生器產(chǎn)生。在擦/寫(xiě)時(shí)不能有中斷產(chǎn)生,也不能執(zhí)行位于將被擦/寫(xiě)區(qū)域的程序。如果想要保留原數(shù)據(jù),應(yīng)在擦除前先把數(shù)據(jù)轉(zhuǎn)存入RAM中,擦除后再寫(xiě)回。

            擦除時(shí),先在FCTL2中設(shè)定時(shí)鐘;如果沒(méi)有特殊要求,可用上電時(shí)的缺省值。然后測(cè)FCTL3的BUSY位。等到BUSY復(fù)位,在FCTL1中設(shè)定Erase(1段擦除)或MEras位(多段擦除),再往目標(biāo)地址范圍內(nèi)任一地址寫(xiě)入任意數(shù)據(jù)后,即完成對(duì)這一段的擦除。

            寫(xiě)入操作類(lèi)似于擦除操作,只是往目標(biāo)地址中寫(xiě)入的是實(shí)際值。

            對(duì)Flash存儲(chǔ)器的讀操作與RAM和ROM完全一樣。

          三、 掉電保護(hù)應(yīng)用實(shí)例

          1. 硬件設(shè)計(jì)

            掉電保護(hù)功能是針對(duì)一個(gè)工業(yè)時(shí)間繼電器設(shè)計(jì)的,有關(guān)部分的電路如圖4所示。電源電壓為5V,穩(wěn)壓電壓為3.3V加至F1121的VCC。比較器A的反向輸入端(P2.4)取自分壓電阻(圖中分壓值為20V);同向輸入端為參考電壓,設(shè)為內(nèi)部電壓(由軟件設(shè)定,這里為VCC/2,即1.65V)。正常工作時(shí)比較器A輸出為低,由圖中參數(shù)可算出。當(dāng)電源電壓降為4.125V時(shí),VCC仍穩(wěn)定在3.3V;但比較器A輸出將翻轉(zhuǎn),產(chǎn)生中斷。

            Flash存儲(chǔ)器寫(xiě)入時(shí)電壓必須保持在2.7~3.6V,因此2.7V是處理的下限。1段(512個(gè)字節(jié))的寫(xiě)入時(shí)間為3ms。據(jù)此,可選擇合適的電容,由RC放電電路可得:

          式中,V0= 3.3V,V(t)=2.7V,t=3ms,R=5MΩ,則:


            經(jīng)實(shí)際測(cè)試,在取C=1μF時(shí)即能正常工作。為可靠起見(jiàn),可取C=10μF。如果寫(xiě)入的數(shù)據(jù)較多,需要更長(zhǎng)的處理時(shí)間,可以加大電容容量,并在供電回路中串接二極管,以限制反向放電。

            從正常工作狀態(tài)到臨界狀態(tài),電壓有0.875V(5.0V-4.125V)的緩沖,因此,電源電壓的變動(dòng)將不會(huì)引起誤操作。

          2.軟件設(shè)計(jì)

            程序分為上電復(fù)位初始化程序和掉電中斷處理程序,如圖5及圖6所示。


            程序初始化時(shí),必須先讀取掉電保護(hù)標(biāo)志來(lái)決定程序流向,然后把掉電標(biāo)志復(fù)位。在中斷處理程序中,對(duì)Flash存儲(chǔ)器寫(xiě)入數(shù)據(jù)前都應(yīng)先擦除標(biāo)志所在區(qū)域;但為節(jié)省中斷處理時(shí)間,可在初始化時(shí)預(yù)先進(jìn)行擦除操作,以備下一次的掉電處理寫(xiě)入。

            掉電處理程序中必須完成兩件事:掉電保護(hù)標(biāo)志置位(也應(yīng)寫(xiě)在Flash存儲(chǔ)器中);將待保護(hù)數(shù)據(jù)寫(xiě)入Flash存儲(chǔ)器中。一般可把數(shù)據(jù)存入信息存儲(chǔ)器中,如果數(shù)據(jù)量大,可寫(xiě)入沒(méi)有被程序占用的主存儲(chǔ)器中。寫(xiě)入時(shí)要關(guān)閉所有中斷,同時(shí)對(duì)原系統(tǒng)當(dāng)前執(zhí)行的程序作相應(yīng)的現(xiàn)場(chǎng)保護(hù)處理。

            應(yīng)用掉電保護(hù)功能的工業(yè)時(shí)間繼電器,需保存16字節(jié)預(yù)置參數(shù)和16字節(jié)掉電瞬間運(yùn)行狀態(tài)參量以及1字節(jié)的掉電保護(hù)標(biāo)志,即總的保存數(shù)據(jù)為33字節(jié)。其中,16字節(jié)的預(yù)置參數(shù)在運(yùn)行過(guò)程中設(shè)定,同時(shí)已寫(xiě)入B段中。因此,中斷處理程序只須將17字節(jié)的狀態(tài)參量寫(xiě)入A段中。經(jīng)多次實(shí)際斷電試驗(yàn),工業(yè)時(shí)間繼電器均能在重新上電時(shí)正確恢復(fù)斷電時(shí)的保護(hù)數(shù)據(jù)。

          參考文獻(xiàn)

          1 胡大可MSP430系列超低功耗16位單片機(jī)原理與應(yīng)用.北京:北京航空航天大學(xué)出版社,2000



          評(píng)論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();