微控制器(MCU)架構(gòu)介紹
微控制器(MicroController)又可簡稱MCU或μC,也有人稱為單芯片微控制器(Single Chip Microcontroller),將ROM、RAM、CPU、I/O集合在同一個芯片中,為不同的應(yīng)用場合做不同組合控制。微控制器在經(jīng)過這幾年不斷地研究、發(fā)展,歷經(jīng)4位、8位,到現(xiàn)在的16位及32位,甚至64位。產(chǎn)品的成熟度,以及投入廠商之多、應(yīng)用范圍之廣,真可謂之空前。目前在國外大廠因開發(fā)較早、產(chǎn)品線廣,所以技術(shù)領(lǐng)先,而本土廠商則以多功能為產(chǎn)品導(dǎo)向取勝。但不可諱言的,本土廠商的價格戰(zhàn)是對外商造成威脅的關(guān)鍵因素。
本文引用地址:http://www.ex-cimer.com/article/148549.htm由于制程的改進,8位MCU與4位MCU價差相去無幾,8位已漸成為市場主流;針對4位MCU,大部份供貨商采接單生產(chǎn),目前4位MCU大部份應(yīng)用在計算器、車表、車用防盜裝置、呼叫器、無線電話、CD Player、LCD驅(qū)動控制器、LCD Game、兒童玩具、磅秤、充電器、胎壓計、溫濕度計、遙控器及傻瓜相機等;8位MCU大部份應(yīng)用在電表、馬達控制器、電動玩具機、變頻式冷氣機、呼叫器、傳真機、來電辨識器(Caller ID)、電話錄音機、CRT Display、鍵盤及USB等;16位MCU大部份應(yīng)用在行動電話、數(shù)字相機及攝錄放影機等;32位MCU大部份應(yīng)用在Modem、GPS、PDA、HPC、STB、Hub、Bridge、Router、工作站、ISDN電話、激光打印機與彩色傳真機;64位MCU大部份應(yīng)用在高階工作站、多媒體互動系統(tǒng)、高級電視游樂器(如SEGA的Dreamcast及Nintendo的GameBoy)及高級終端機等。
而在MCU開發(fā)方面,以架構(gòu)而言,可分為兩大主流;RISC(如HOLTEK HT48XXX系列)與CISC(如華邦W78系列). RISC (Reduced Instruction Set Computer) 代表MCU的所有指令都是利用一些簡單的指令組成的,簡單的指令代表 MCU 的線路可以盡量做到最佳化,而提高執(zhí)行速率,相對的使得一個指令所需的時間減到最短。HOLTEK的HT46XX(A/D MCU系列) HT47XX(R to F MCU系列) HT48XX(一般I/O MCU系列) HT49XX(LCD MCU系列) 便是采用 RISC 結(jié)構(gòu)來設(shè)計。不管是 RISC 或是 CISC(Complex Instruction Set Computer),設(shè)計MCU的目的便是為人類服務(wù)的,對于 RISC 來說,因為指令集的精簡,所以許多工作都必須組合簡單的指令,而針對較復(fù)雜組合的工作便需要由『編譯程序』(compiler) 來執(zhí)行,而 CISC MCU因為硬件所提供的指令集較多,所以許多工作都能夠以一個或是數(shù)個指令來代替,compiler 的工作因而減少許多。
圖 1:MCU 架構(gòu)方塊示意圖。
程序內(nèi)存
程序內(nèi)存(Program ROM)在微控制器中是只讀而不可寫入之記憶單元,此內(nèi)存主要用來放 置使用者所開發(fā)之程序,而其性質(zhì)乃屬于不常更動或永不變動之資料,微控制器之動作便是 依據(jù)儲存于此區(qū)之程序指令運作。在 8 位單芯片中常見的程序內(nèi)存容量有 0.5K、IK、2K、4K 及 8K,而通常應(yīng)用在微控制器的程序內(nèi)存有下列幾種方式,見(表一):
表 1:在微控制器的程序內(nèi)存通常有幾種方式。
另外關(guān)于程序保密部分,不論是加密或保險絲燒斷保護 ,都是為了防止程序被未授權(quán)之使 用者窺看、竊取(如反組譯程序 、修改內(nèi)容 、盜取程序等)。程序保密這個功能選擇只在提供 OTP、開窗型包裝、EEPROM 及 Flash ROM 上使用,因為這些 IC 可借由燒錄器來回讀取程序代碼,在 Mask 版本則不需要進行程序保密的步驟 。 隨機存取內(nèi)存隨機存取內(nèi)存(Random Access Memory;RAM),亦稱為讀/寫內(nèi)存(Read-Write Memory),常是被用來暫時存放資料、或是程序執(zhí)行存放資料的地方,用途相當(dāng)廣泛。以 HOLTEK 8 位 微控制器為例,其容量有 64、96、160 及 224 個 Byte 選擇。
累積器
累積器(Accumulator),是 MCU 的運作中樞 ,80%的指令都與累積器有關(guān) ;資料可以被存 放在累積器中,直到總線或其它單元準(zhǔn)備接受它、或直到程序需要它為止 。
緩存器
緩存器(Register)是 MCU 內(nèi)部用來暫時存放資料的地方,每個緩存器的功能各不相同,但 卻有一共同的特性,就是可以直接讀/寫,因其位于 MCU 的內(nèi)部,故減少了一些不必要的 等待及尋址時間,另外有些 MCU 的 I/O Port,也以緩存器型態(tài)來直接存取控制。
堆棧及堆棧指針
堆棧(Stack)及堆棧指針(Stack Pointer),堆棧就和盤子一樣,一個一個由下往上堆,而取出 時則由上一個一個往下拿,不能由中間抽出,因此又稱為后進先出隊列(Last-In-First-Out Queues)」。功能如下;
一. 暫時存放 PC(Program Count)的值,適用于子程序呼叫”,或中斷發(fā)生時將 PC 的值暫 時儲存起來;
二. 可視為緩存器使用,以 Push,Pop 來完成;
三. 有些 MCU 其 Stack Level 數(shù)是固定的(如 HOLTEK μC 系列),有些則可自定。 運算邏輯單元
運算邏輯單元(Algorithm Logic Unit;ALU),其功能在于執(zhí)行算術(shù)指令及邏輯判斷,除了產(chǎn)生 結(jié)果之外,也產(chǎn)生相關(guān)的 Flag(Zero、Carry、Borrow、Status),每一個 MCU 都不完全一 樣,尤其是 Carry Flag 一定要查看指令解說表。
輸入/輸出(I/O Port)
在單芯片微電腦應(yīng)用系統(tǒng)中,I/O 的擴充不是目的,而是為了提供外部設(shè)備一個輸入/輸出的 信道,做為外界與 MCU 間的溝通管道。例如接鍵盤、顯示器、驅(qū)動開關(guān)控制或測量等;在I/O 擴充時必須考慮與之相連接的外圍設(shè)備硬件電路特性,如:電位匹配、干擾抑制、驅(qū)動能 力(如 Source,Sink 能力)等。
微控制器在 I/O 埠方面?zhèn)溆卸喾N電路形式,其中有多端口可以經(jīng)由軟件以位單位來設(shè)定輸出/入方向。各埠附加大電流、高耐壓的緩沖器,以直接驅(qū)動 LED 與高功率晶體管,以及做模 擬訊號的輸入之用。
定時器、定時器
定時器(Time Counter)、定時器(Timer),由外加振蕩晶體,經(jīng)除頻電路來提供 MCU 數(shù)種不 同的時基(Time Base)。常應(yīng)用于:
一. 時鐘之時基(如 1sec、500ms、62.5ms、15.625ms 等);
二. PWM(Pulse Width Modulation)之 Time Base;
評論