微控制器與微處理器到底有啥差別?看完這3點(diǎn)就夠了
微控制器是將微型計(jì)算機(jī)的主要部分集成在一個(gè)芯片上的單芯片微型計(jì)算機(jī)。微控制器誕生于20世紀(jì)70年代中期,經(jīng)過20多年的發(fā)展,其成本越來越低,而性能越來越強(qiáng)大,這使其應(yīng)用已經(jīng)無處不在,遍及各個(gè)領(lǐng)域。例如電機(jī)控制、條碼閱讀器/掃描器、消費(fèi)類電子、游戲設(shè)備、電話、HVAC、樓宇安全與門禁控制、工業(yè)控制與自動(dòng)化和白色家電(洗衣機(jī)、微波爐)等。
本文引用地址:http://2s4d.com/article/201712/373013.htm
微控制器的作用
在工業(yè)應(yīng)用中,微控制器的作用是控制和協(xié)調(diào)整個(gè)設(shè)備的動(dòng)作,通常需要程序計(jì)數(shù)器(PC)、指令寄存器(IR)、指令譯碼器(ID)、定時(shí)與控制電路,以及脈沖源、中斷等共同完成。
根據(jù)控制器在工作中發(fā)揮的作用來看,微控制器主要有以下幾種:
1、 指令控制器
指令控制器是控制器中相當(dāng)重要的部分,它要完成取指令、分析指令等操作,然后交給執(zhí)行單元(ALU或FPU)來執(zhí)行,同時(shí)還要形成下一條指令的地址。
2、 時(shí)序控制器
時(shí)序控制器的作用是為每條指令按時(shí)間順序提供控制信號(hào)。時(shí)序控制器包括時(shí)鐘發(fā)生器和倍頻定義單元,其中時(shí)鐘發(fā)生器由石英晶體振蕩器發(fā)出非常穩(wěn)定的脈沖信號(hào),就是CPU的主頻;而倍頻定義單元?jiǎng)t定義了CPU主頻是存儲(chǔ)器頻率(總線頻率)的幾倍。
3、 總線控制器
總線控制器主要用于控制CPU的內(nèi)外部總線,包括地址總線、數(shù)據(jù)總線、控制總線等等。
4、中斷控制器
中斷控制器用于控制各種各樣的中斷請(qǐng)求,并根據(jù)優(yōu)先級(jí)的高低對(duì)中斷請(qǐng)求進(jìn)行排隊(duì),逐個(gè)交給CPU處理 控制器的基本功能 設(shè)備控制器的基本功能
目前就為控制領(lǐng)域來看,主要有以下幾種功能:
1、數(shù)據(jù)緩沖
緩沖器常常內(nèi)置在控制器中,在輸出時(shí),緩沖器常用來暫存由主機(jī)高速傳來的數(shù)據(jù),然后才以I/O設(shè)備所具有的速率將緩沖器中的數(shù)據(jù)傳送給I/O設(shè)備;在輸入時(shí),緩沖器則用于暫存從I/O設(shè)備送來的數(shù)據(jù),待接收到一批數(shù)據(jù)后,再將緩沖器中的數(shù)據(jù)高速地傳送給主機(jī)。
2、差錯(cuò)控制
設(shè)備控制器還兼管對(duì)由I/O設(shè)備傳送來的數(shù)據(jù)進(jìn)行差錯(cuò)檢測。若發(fā)現(xiàn)傳送中出現(xiàn)了錯(cuò)誤,通常是將差錯(cuò)檢測碼置位,并向 CPU報(bào)告,于是CPU將本次傳送來的數(shù)據(jù)作廢,并重新進(jìn)行一次傳送。這樣便可保證數(shù)據(jù)輸入的正確性。
3、數(shù)據(jù)交換
這是指實(shí)現(xiàn)CPU與控制器之間、控制器與設(shè)備之間的數(shù)據(jù)交換。對(duì)于前者,是通過數(shù)據(jù)總線,由CPU并行地把數(shù)據(jù)寫入控制器,或從控制器中并行地讀出數(shù)據(jù);對(duì)于后者,是設(shè)備將數(shù)據(jù)輸入到控制器,或從控制器傳送給設(shè)備。為此,在控制器中須設(shè)置數(shù)據(jù)寄存器。
4、標(biāo)識(shí)和報(bào)告設(shè)備的狀態(tài)
控制器應(yīng)記下設(shè)備的狀態(tài)供CPU了解。例如,僅當(dāng)該設(shè)備處于發(fā)送就緒狀態(tài)時(shí),CPU才能啟動(dòng)控制器從設(shè)備中讀出數(shù)據(jù)。為此,在控制器中應(yīng)設(shè)置一狀態(tài)寄存器,用其中的每一位來反映設(shè)備的某一種狀態(tài)。當(dāng)CPU將該寄存器的內(nèi)容讀入后,便可了解該設(shè)備的狀態(tài)。
5、接收和識(shí)別命令
CPU可以向控制器發(fā)送多種不同的命令,設(shè)備控制器應(yīng)能接收并識(shí)別這些命令。為此,在控制器中應(yīng)具有相應(yīng)的控制寄存器,用來存放接收的命令和參數(shù),并對(duì)所接收的命令進(jìn)行譯碼。例如,磁盤控制器可以接收 CPU發(fā)來的Read、Write、Format等15條不同的命令,而且有些命令還帶有參數(shù);相應(yīng)地,在磁盤控制器中有多個(gè)寄存器和命令譯碼器等。
6、地址識(shí)別
就像內(nèi)存中的每一個(gè)單元都有一個(gè)地址一樣,系統(tǒng)中的每一個(gè)設(shè)備也都有一個(gè)地址,而設(shè)備控制器又必須能夠識(shí)別它所控制的每個(gè)設(shè)備的地址。此外,為使CPU能向(或從)寄存器中寫入(或讀出)數(shù)據(jù),這些寄存器都應(yīng)具有唯一的地址。例如,在IB-MPC機(jī)中規(guī)定,硬盤控制器中各寄存器的地址分別為320~32F之一??刂破鲬?yīng)能正確識(shí)別這些地址,為此,在控制器中應(yīng)配置地址譯碼器。
微處理器和微控制器的區(qū)別
這樣的區(qū)別主要集中在硬件結(jié)構(gòu)、應(yīng)用領(lǐng)域和指令集特征3個(gè)方面:
1)硬件結(jié)構(gòu)
微處理器是一個(gè)單芯片CPU,而微控制器則在一塊集成電路芯片中集成了CPU和其他電路,構(gòu)成了一個(gè)完整的微型計(jì)算機(jī)系統(tǒng)。圖1-6虛線框中所示是大多數(shù)微控制器的完整結(jié)構(gòu)。除了CPU,微控制器還包括RAM、ROM、一個(gè)串行接口、一個(gè)并行接口,計(jì)時(shí)器和中斷調(diào)度電路。這些都集成在一塊集成電路上。雖然片上RAM的容量比普通微型計(jì)算機(jī)系統(tǒng)還要小,但是這并未限制微控制器的使用。在后面可以了解到,微控制器的應(yīng)用范圍非常廣泛。
微控制器的一個(gè)重要的特征是內(nèi)建的中斷系統(tǒng)。作為面向控制的設(shè)備,微控制器經(jīng)常要實(shí)時(shí)響應(yīng)外界的激勵(lì)(中斷)。微控制器必須執(zhí)行快速上下文切換,掛起一個(gè)進(jìn)程去執(zhí)行另一個(gè)進(jìn)程以響應(yīng)一個(gè)“事件”。例如,打開微波爐的門就是一個(gè)事件,在基于微控制器的產(chǎn)品中這個(gè)事件將觸發(fā)一個(gè)中斷。微處理器也能擁有強(qiáng)大的中斷功能,但是通常需要外部元件的配合,而微控制器在片上集成了所有處理中斷必需的電路。
2)應(yīng)用領(lǐng)域
微處理器通常作為微型計(jì)算機(jī)系統(tǒng)中的CPU使用。其設(shè)計(jì)正是針對(duì)這樣的應(yīng)用,這也是微處理器的優(yōu)勢所在。然而,微控制器通常用于面向控制的應(yīng)用。其系統(tǒng)設(shè)計(jì)追求小型化,盡可能減少元器件數(shù)量。在過去,這些應(yīng)用通常需要用數(shù)十個(gè)甚至數(shù)百個(gè)數(shù)字集成電路來實(shí)現(xiàn)。使用微控制器可以減少元器件的使用數(shù)量,只需一個(gè)微控制器、少量的外部元件和存儲(chǔ)在ROM中的控制程序就能夠?qū)崿F(xiàn)同樣的功能。微控制器適用于那些以極少的元件實(shí)現(xiàn)對(duì)輸入/輸出設(shè)備進(jìn)行控制的場合,而微處理器適用于計(jì)算機(jī)系統(tǒng)中進(jìn)行信息處理。
3)指令集特征
由于應(yīng)用場合不同,微控制器和微處理器的指令集也有所不同。微處理器的指令集增強(qiáng)了處理功能,使其擁有強(qiáng)大的尋址模式和適于操作大規(guī)模數(shù)據(jù)的指令。微處理器的指令可以對(duì)半字節(jié)、字節(jié)、字,甚至雙字進(jìn)行操作。通過使用地址指針和地址偏移,微處理器提供了可以訪問大批數(shù)據(jù)的尋址模式。自增和自減模式使得以字節(jié)、字或雙字為單位訪問數(shù)據(jù)變得非常容易。另外,微處理器還具有其他的特點(diǎn),如用戶程序中無法使用特權(quán)指 令等。
微控制器的指令集適用于輸入/輸出控制。許多輸入/輸出的接口是單/位的。例如,電磁鐵控制著馬達(dá)的開關(guān),而電磁鐵由一個(gè)1位的輸出端口控制。微控制器具有設(shè)置和清除單位的指令,也能執(zhí)行其他面向位的操作,如對(duì)“位”進(jìn)行邏輯與、或和異或的運(yùn)算,根據(jù)標(biāo)志位跳轉(zhuǎn)等。很少有微處理器具備這些強(qiáng)大的位操作能力,因?yàn)樵O(shè)計(jì)者在設(shè)計(jì)微處理器時(shí),僅考慮以字節(jié)或更大的單位來操作數(shù)據(jù)。
在對(duì)設(shè)備的控制和監(jiān)視方面(可能是通過一個(gè)1位的接口),微控制器具有專門的內(nèi)部電路和指令用于輸入/輸出、計(jì)時(shí)和外部中斷的優(yōu)先權(quán)分配。微處理器一般需要配合附加的電路(串行接口芯片、中斷控制器、定時(shí)器等)才能執(zhí)行相同的任務(wù)。不過,單純就處理能力而言,微控制器永遠(yuǎn)達(dá)不到微處理器的水平(在其他條件相同的情況下),因?yàn)槲⒖刂破餍酒械募呻娐返暮艽笠徊糠钟糜趯?shí)現(xiàn)其他的片上功能,代價(jià)就是犧牲掉一部分處理能力。
由于微控制器芯片上的資源非常緊張,它的指令必須非常精簡,大部分指令的長度都短于1個(gè)字節(jié)。控制程序的設(shè)計(jì)原則通常是要求程序能夠裝入片上的ROM,因?yàn)榧词怪辉黾?片外部ROM也將顯著提高產(chǎn)品的硬件成本。微控制器指令集的基本特點(diǎn)就是具有精簡的編碼方案。微處理器不具備這樣的特點(diǎn),因?yàn)樗鼈儚?qiáng)大的尋址模式使得指令編碼不夠簡潔。
評(píng)論