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

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 嵌入式編程之單片機(jī)的基本構(gòu)成、工作原理

          嵌入式編程之單片機(jī)的基本構(gòu)成、工作原理

          作者: 時間:2018-08-09 來源:網(wǎng)絡(luò) 收藏

          本篇講解作為嵌入式系統(tǒng)開發(fā)技術(shù)人員所必需具備的基礎(chǔ)知識。這些基礎(chǔ)知識是硬件和軟件技術(shù)人員都應(yīng)該掌握的共通技術(shù)知識。有了電子電路和數(shù)字電路的基礎(chǔ)知識,就可以開始學(xué)習(xí)嵌入式系統(tǒng)的核心元件-。本文我們將為大家介紹的基礎(chǔ)知識。

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

          入門系列講座中,首先學(xué)習(xí)單片機(jī)的基本構(gòu)成和工作原理、以及外圍功能電路,然后,挑戰(zhàn)一個實際單片機(jī)的運(yùn)行。

          單片機(jī)是控制電子產(chǎn)品的大腦

          現(xiàn)如今,我們生活中的許多電器都使用了單片機(jī)。例如:手機(jī)、電視機(jī)、冰箱、洗衣機(jī)、以及按下開關(guān),LED就閃爍的兒童玩具。那么,單片機(jī)在這些電器中究竟做了些什么呢?

          單片機(jī)是這些電器動作的關(guān)鍵,是指揮硬件運(yùn)行的。例如:接收按鈕或按鍵的輸入信號,按照事先編好的程序,指揮馬達(dá)和LCD的外圍功能電路動作。

          那么,單片機(jī)是如何構(gòu)成的呢?(圖1)

          單片機(jī)是由CPU、內(nèi)存、外圍功能等部分組成的。如果將單片機(jī)比作人,那么CPU是負(fù)責(zé)思考的,內(nèi)存是負(fù)責(zé)記憶的,外圍功能相當(dāng)于視覺的感官系統(tǒng)及控制手腳動作的神經(jīng)系統(tǒng)。

          圖1:單片機(jī)的構(gòu)成要素

          盡管我們說CPU相當(dāng)于人的大腦,但是它卻不能像人的大腦一樣,能有意識的、自發(fā)的思考。CPU只能依次讀取并執(zhí)行事先存儲在內(nèi)存中的指令組合(程序)。當(dāng)然CPU執(zhí)行的指令并不是“走路”、“講話”等高難度命令,而是一些非常簡單的指令,象從內(nèi)存的某個地方“讀取數(shù)據(jù)”或把某個數(shù)據(jù)“寫入”內(nèi)存的某個地方,或做加法、乘法和邏輯運(yùn)算等等。然而這些簡單指令的組合,卻能實現(xiàn)許多復(fù)雜的功能。

          會思考的CPU

          讓我們從CPU的構(gòu)成來了解它的作用吧。(圖2)

          圖2:CPU的作用

          ◇程序計數(shù)器

          CPU讀取指令時需要知道要執(zhí)行的指令保存在內(nèi)存的什么位置,這個位置信息稱為地址(相當(dāng)于家庭住址)。程序計數(shù)器(PC)就是存儲地址的寄存器。通常,PC是按1遞增設(shè)計的,也就是說,當(dāng)CPU執(zhí)行了0000地址中的指令后,PC會自動加1,變成0001地址。每執(zhí)行一條指令PC都會自動加1,指向下一條指令的地址??梢哉f,PC決定了程序執(zhí)行的順序。

          ◇指令解碼電路

          指令解碼電路是解讀從內(nèi)存中讀取的指令的含義。運(yùn)算電路是根據(jù)解碼結(jié)果操作的。確切地講,指令解碼電路就是我們在“數(shù)字電路入門(2)”中學(xué)過的解碼電路,只不過電路結(jié)構(gòu)稍微復(fù)雜些,所以,指令解碼電路的工作原理就是從被符號化(被加密)的指令中,還原指令。

          ◇運(yùn)算電路

          運(yùn)算電路也稱為ALU(Arithmetic and Logic Unit),是完成運(yùn)算的電路。能進(jìn)行加法、乘法等算術(shù)運(yùn)算、也能進(jìn)行AND、OR 、BIT-SHIFT等邏輯運(yùn)算。運(yùn)算是在指令解碼電路的控制下進(jìn)行的。通常運(yùn)算電路的構(gòu)成都比較復(fù)雜。

          ◇CPU內(nèi)部寄存器

          CPU內(nèi)部寄存器是存儲臨時信息的場所。有存儲運(yùn)算值和運(yùn)算結(jié)果的通用寄存器,也有一些特殊寄存器,比如存儲運(yùn)算標(biāo)志的標(biāo)志寄存器等。也就是說,運(yùn)算電路進(jìn)行運(yùn)算時,并不是在內(nèi)存中直接運(yùn)算的,而是將內(nèi)存中的數(shù)據(jù)復(fù)制到通用寄存器,在通用寄存器中進(jìn)行運(yùn)算的。

          CPU的工作原理

          讓我們通過一個具體運(yùn)算3+4,來說明CPU的操作過程吧。

          假設(shè)保存在內(nèi)存中的程序和數(shù)據(jù)如下。

          地址 指令

          (實際上指令是用二進(jìn)制碼表示的,為了方便理解,我們用文字說明)

          0000 讀取0100地址的內(nèi)存,存入寄存器1

          0001 讀取0101地址的內(nèi)存,存入寄存器2

          0002 將寄存器1與寄存器2的值相加,結(jié)果存入寄存器1

          地址 數(shù)據(jù)

          0100 3

          0101 4

          ◇步驟1:當(dāng)程序被執(zhí)行時,CPU就讀取當(dāng)前PC指向的地址0000中的指令(該操作稱為指令讀取)。經(jīng)過解碼電路解讀后,這條指令的意思是“讀取0100地址中的內(nèi)容,然后,保存到寄存器1”。于是CPU就執(zhí)行指令,從0100地址中讀取數(shù)據(jù),存入寄存器1。

          寄存器1: 0→3(由0變?yōu)?)

          由于執(zhí)行了1條指令,因此,PC的值變?yōu)?001

          ◇步驟2:由于PC的值為0001,因此CPU就讀取0001地址中的指令,經(jīng)解碼電路解碼后,CPU執(zhí)行該指令。然后PC再加1。

          寄存器2:0→4(由0變?yōu)?)

          PC:0001→0002

          ◇步驟3:由于PC的值為0002,因此CPU從0002地址中讀取指令,送給指令解碼電路。解碼結(jié)果是:將寄存器1和寄存器2相加,然后將結(jié)果存于寄存器1。

          寄存器1:3→7

          PC:2→3

          于是3+4的結(jié)果7被存于寄存器1,加法運(yùn)算結(jié)束。CPU就是這樣,依次處理每一條簡單的指令。

          能記憶的內(nèi)存

          內(nèi)存是單片機(jī)的記憶裝置,主要記憶程序和數(shù)據(jù),大體上分為ROM和RAM兩大類。

          ◇ROM

          ROM(Read Only Memory)是只讀內(nèi)存的簡稱。保存在ROM中的數(shù)據(jù)不能刪除,也不會因斷電而丟失。ROM主要用于保存用戶程序和在程序執(zhí)行中保持不變的常數(shù)。

          大多數(shù)瑞薩(Renesas)的單片機(jī)都用閃存作為ROM。這是因為閃存不僅可以象ROM一樣,即使關(guān)機(jī)也不會丟失數(shù)據(jù),而且還允許修改數(shù)據(jù)。

          ◇RAM

          RAM(Random Access Memory)是可隨機(jī)讀/寫內(nèi)存的簡稱??梢噪S時讀寫數(shù)據(jù),但關(guān)機(jī)后,保存在RAM中的數(shù)據(jù)也隨之消失。主要用于存儲程序中的變量。

          在單芯片單片機(jī)中(*1),常常用SRAM作為內(nèi)部RAM。SRAM允許高速訪問,但是,內(nèi)部結(jié)構(gòu)太復(fù)雜,很難實現(xiàn)高密度集成,不適合用作大容量內(nèi)存。

          除SRAM外,DRAM也是常見的RAM。DRAM的結(jié)構(gòu)比較容易實現(xiàn)高密度集成,因此,比SRAM的容量大。但是,將高速邏輯電路和DRAM安裝于同一個晶片上較為困難,因此,一般在單芯片單片機(jī)中很少使用,基本上都是用作外圍電路。

          (*1)單芯片單片機(jī)是指:將CPU,ROM,RAM,振蕩電路,定時器和串行I/F等集成于一個LSI的微處理器。單芯片單片機(jī)的基礎(chǔ)上再配置一些系統(tǒng)的主要外圍電路,而形成的大規(guī)模集成電路稱為系統(tǒng)LSI。

          “為何要使用單片機(jī)……”

          為什么很多電器設(shè)備都要使用單片機(jī)呢?

          讓我們用一個點亮LED的電路為例,來說明。如圖3所示,不使用單片機(jī)的電路是一個由LED,開關(guān)和電阻構(gòu)成的簡單電路。

          圖3:不安裝單片機(jī)的LED電路

          使用單片機(jī)的電路如圖4所示。

          很顯然,使用單片機(jī)的電路要復(fù)雜得多,而且設(shè)計電路還要花費(fèi)精力與財力。好象使用單片機(jī)并沒有什么優(yōu)點。但是,現(xiàn)在下結(jié)論還為時尚早。

          如果我們讓這個電路做一些比較復(fù)雜的操作,會怎么樣呢。例如:如果希望LED在按下開關(guān)后,經(jīng)過一段時間再點亮或熄滅,那么,對于安裝有單片機(jī)的電路來說,只需更改單片機(jī)中的程序就可以了,并不需更改原電路。另一方面,對于沒有單片機(jī)的電路來說,就必須在元電路中加入定時器IC,或者用標(biāo)準(zhǔn)邏輯IC和FPGA構(gòu)成邏輯電路,才能實現(xiàn)這個功能。

          也就是說,在更改和添加新功能時,帶有單片機(jī)的電路顯然更加容易實現(xiàn)。這正是電器設(shè)備使用單片機(jī)的原因。單片機(jī)可真是個方便的東西哦!

          圖4:安裝單片機(jī)的LED電路圖



          關(guān)鍵詞: 單片機(jī)

          評論


          相關(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); })();