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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 基于單片機設(shè)計微功耗中文人機界面

          基于單片機設(shè)計微功耗中文人機界面

          作者: 時間:2013-07-03 來源:網(wǎng)絡 收藏
          在現(xiàn)代便攜式智能儀器或手持設(shè)備中,中文成為一種事實上的行業(yè)標準。能顯示漢字的圖形點陣液晶和可輸入數(shù)字的小鍵盤已成為智能設(shè)備必不可少的組成部分。同時作為便攜式設(shè)備基本要求的低功耗特性也貫穿于中文的設(shè)計始終。

            這種低功耗中文人機交互界面需要設(shè)計者在選取MCU和具體元器件上有特殊考慮。微功耗、小體積應作為選擇相關(guān)器件的首要要求。

            設(shè)計中,筆者采用F149作為系統(tǒng)的MCU,通過選擇合適的液晶顯示模塊在3V電平構(gòu)建了一個低功耗的中文。此中文人機界面構(gòu)成了微功耗數(shù)據(jù)采集系統(tǒng)的重要組成部分。

          一、系列FLASH型的微功耗特點
            德州儀器公司(TI)推出的F14x系列是超低功耗Flash型16位RISC指令集。它采用"馮-紐曼"結(jié)構(gòu),RAM、ROM和全部外圍模塊都位于同一個地址空間內(nèi)。其具有豐富的片內(nèi)外圍,性價比極高。

            MSP430F14x系列是TI的MSP430F1x系列(FLASH存儲器型)單片機中功能最強大的子系列。F14x具有更大的程序和數(shù)據(jù)存儲區(qū)、更多的外圍模塊,其片內(nèi)甚至還包括一個硬件乘法器。同時F14x系列單片機開發(fā)工具簡便,固化于FLASH存儲器內(nèi)的程序易于在線升級和調(diào)試,非常適合于開發(fā)消費類便攜式電子產(chǎn)品。

            MSP430F14x單片機集中體現(xiàn)了現(xiàn)代單片機先進的低功耗設(shè)計理念。其設(shè)計結(jié)構(gòu)完全以系統(tǒng)低功耗運行為核心。

            這種低功耗結(jié)構(gòu)具體體現(xiàn)在以下四點:

          (1)高集成度的完全單片化設(shè)計。
            將很多外圍模塊集成到了MCU芯片中,增大硬件冗余。內(nèi)部以低功耗、低電壓的原則設(shè)計,這樣系統(tǒng)不僅功能強、性能可靠、成本降低,而且便于進一步微型化和便攜化。

          (2)內(nèi)部電路可選擇性工作。
            F14x單片機可以通過特殊功能寄存器選擇使用不同的功能電路,即依靠軟件選擇其中不同的外圍功能模塊,對于不使用的模塊使其停止工作,以減少無效功耗。

          (3)具有高速和低速兩套時鐘。
            系統(tǒng)運行頻率越高,電源功耗就會相應增大。為更好地降低功耗,F14x單片機可采用三套獨立的時鐘源:高速的主時鐘、低頻時鐘(如32.768kHz)以及DCO片內(nèi)時鐘??稍跐M足功能需要的情況下按一定比例降低MCU主時鐘頻率,以降低電源功耗。在不需要高速運行的情況下,可選用副時鐘低速運行,進一步降低功耗。通過軟件對特殊功能寄存器賦值可改變CPU的時鐘頻率,或進行主時鐘和副時鐘切換。

          (4)具有多種節(jié)能工作模式。
            F14x單片機具有五種節(jié)能模式:LPM0、LPM1、LPM2、LPM3、LPM4。這五種模式為其功耗管理提供了極好的性能保證。圖1顯示了活動狀態(tài)(AM)與各種節(jié)能模式下消耗的實際工作電流大小。


          圖1 F14x的工作模式與工作電流關(guān)系

            由于MSP430F14x系列是專為超低功耗的便攜式應用開發(fā)的。利用先進的集成電路技術(shù)和生產(chǎn)工藝,其功耗已經(jīng)跨越了毫安級,真正進軍到了微安級。

            不僅如此,F14x的軟件結(jié)構(gòu)也針對低功耗而設(shè)計。如從備用模式喚醒MCU僅需6μS。其中斷和子程序調(diào)用無層次限制,這種豐富的中斷能力減少了系統(tǒng)查詢的需要,可以方便地設(shè)計出中斷程序結(jié)構(gòu)的控制程序。

            利用F14x系列單片機,可以方便地構(gòu)建一個低電壓的工作平臺。通過各功能模塊的智能運行管理和MCU的節(jié)能模式相結(jié)合,可以解決運行速度、數(shù)據(jù)流量與低功耗設(shè)計的矛盾,將各功能模塊的電流消耗降至最低狀態(tài),限制活動狀態(tài)至最低要求。經(jīng)過這樣優(yōu)化,可以實現(xiàn)單片機的極低功耗。如在1MHz工作頻率下,F14x只消耗0.1~400μA電流(1.8~3.6V供電),如1.8V供電時,執(zhí)行時僅消耗160uA的電流,備用時0.1uA,這時RAM中的數(shù)據(jù)還能有效保持。

            概括來說,MSP430F14x單片機具有極低的功耗、強大的處理能力、豐富的片上外圍模塊,方便高效的開發(fā)方式。

            本系統(tǒng)采用的MSP430F149單片機,是F14x系列中功能最強大的一款。它具有一個硬件乘法器、6個I/O端口(每個有8個I/O口)、1個精確的模擬比較器、2個具有捕捉/比較寄存器的定時器、8路12位A/D轉(zhuǎn)換器、片內(nèi)看門狗定時器、2個串行通信接口和60KB的FlashROM,2KB RAM。

            F149還具有強大的擴展功能,其具有48個I/O引腳,每個I/O口分別對應輸入、輸出、功能選擇、中斷等多個寄存器,使得功能口和通用I/O口可以復用,大大增強了端口功能和靈活性,提高了對外圍設(shè)備的開發(fā)能力。

            MSP430F149的以上特點,使其非常適合于構(gòu)成一個全功能的便攜式單片機應用系統(tǒng)。

          二、液晶顯示模塊與接口電路
            圖形點陣式液晶可顯示用戶自定義的任意符號和圖形,并可卷動顯示,它作為便攜式單片機系統(tǒng)人機交互界面的重要組成部分被廣泛應用于實時檢測和顯示的儀器儀表中。支持漢字顯示的圖形點陣液晶在現(xiàn)代單片機應用系統(tǒng)中是一種十分常用的顯示設(shè)備,漢字BP機、手機上的顯示屏就是圖形點陣液晶。它與行列式小鍵盤組成了現(xiàn)代單片機應用系統(tǒng)中最常用的人機交互界面。

            采用圖形點陣式液晶顯示較之其它顯示方式主要有以下優(yōu)點:
          (1)工作電壓低、功耗極低。工作電壓3~5V,工作電流≤10uA/cm2,特別適用于便攜式的儀器儀表中。
          (2)液晶顯示屬被動顯示,受外界光線干擾小。
          (3)圖形點陣式液晶可顯示的信息量大,分辨率高。
          (4)不產(chǎn)生電磁干擾。
          (5)可靠性高。使用壽命長。

            在設(shè)計中,筆者采用了信利(TRULY)公司的MG-12232液晶顯示模塊。MG-12232模塊供電電壓的典型值為3V,工作電流的典型值為0.3mA,很適合本系統(tǒng)3V電平的低功耗環(huán)境。其可顯示范圍為122×32點陣,即能實現(xiàn)所謂的"雙排漢顯"。MG-12232采用的控制器是兩片SED1520,一片SED1520控制器可以驅(qū)動16行×80列。SED1520控制器可以在3V邏輯下正常工作,因而避免了與MSP430單片機邏輯電平不匹配的問題。其具體結(jié)構(gòu)框圖見圖2。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: MSP430 單片機 人機界面

          評論


          相關(guān)推薦

          技術(shù)專區(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); })();