《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > MCU 架構(gòu)介紹

MCU 架構(gòu)介紹

2009-08-17
作者:來源:ELEXCON

?? ?Microcontroller(微控制器)又可簡(jiǎn)稱MCU或μC,也有人稱為單芯片微控制器(Single Chip Microcontroller),將ROM、RAM、CPU、I/O集合在同一個(gè)芯片中,為不同的應(yīng)用場(chǎng)合做不同組合控制.微控制器在經(jīng)過這幾年不斷地研究,發(fā)展,歷經(jīng)4位,8位,到現(xiàn)在的16位及32位,甚至6?位.產(chǎn)品的成熟度,以及投入廠商之多,應(yīng)用范圍之廣,真可謂之空前.目前在國(guó)外大廠因開發(fā)較早,產(chǎn)品線廣,所以技術(shù)領(lǐng)先,而本土廠商則以多功能為產(chǎn)品導(dǎo)向取勝.但不可諱言的,本土廠商的價(jià)格戰(zhàn)是對(duì)外商造成威脅的關(guān)鍵因素。

?

??? 由于制程的改進(jìn),8位MCU與4位MCU價(jià)差相去無幾,8位已漸成為市場(chǎng)主流;針對(duì)4位MCU,大部份供貨商采接單生產(chǎn),目前4位MCU大部份應(yīng)用在計(jì)算器、車表、車用防盜裝置、呼叫器、無線電話、CD Player、LCD驅(qū)動(dòng)控制器、LCD Game、兒童玩具、磅秤、充電器、胎壓計(jì)、溫濕度計(jì)、遙控器及傻瓜相機(jī)等;8位MCU大部份應(yīng)用在電表、馬達(dá)控制器、電動(dòng)玩具機(jī)、變頻式冷氣機(jī)、呼叫器、傳真機(jī)、來電辨識(shí)器(Caller ID)、電話錄音機(jī)、CRT Display、鍵盤及USB等;16位MCU大部份應(yīng)用在行動(dòng)電話、數(shù)字相機(jī)及攝錄放影機(jī)等;32位MCU大部份應(yīng)用在Modem、GPS、PDA、HPC、STB、Hub、Bridge、Router、工作站、ISDN電話、激光打印機(jī)與彩色傳真機(jī);6?位MCU大部份應(yīng)用在高階工作站、多媒體互動(dòng)系統(tǒng)、高級(jí)電視游樂器(如SEGA的Dreamcast及Nintendo的GameBoy)及高級(jí)終端機(jī)等。

?

??? 而在MCU開發(fā)方面,以架構(gòu)而言,可分為兩大主流;RISC(如HOLTEK HT48XXX系列)與CISC(如華邦W78系列). RISC (Reduced Instruction Set Computer) 代表MCU的所有指令都是利用一些簡(jiǎn)單的指令組成的,簡(jiǎn)單的指令代表 MCU 的線路可以盡量做到最佳化,而提高執(zhí)行速率,相對(duì)的使得一個(gè)指令所需的時(shí)間減到最短。HOLTEK的HT46XX(A/D MCU系列) HT47XX(R to F MCU系列) HT48XX(一般I/O MCU系列) HT49XX(LCD MCU系列) 便是采用 RISC 結(jié)構(gòu)來設(shè)計(jì)。不管是 RISC 或是 CISC(Complex Instruction Set Computer),設(shè)計(jì)MCU的目的便是為人類服務(wù)的,對(duì)于 RISC 來說,因?yàn)?a class="innerlink" href="http://ihrv.cn/tags/指令集" title="指令集" target="_blank">指令集的精簡(jiǎn),所以許多工作都必須組合簡(jiǎn)單的指令,而針對(duì)較復(fù)雜組合的工作便需要由『編譯程序』(compiler) 來執(zhí)行,而 CISC MCU因?yàn)橛布峁┑闹噶罴^多,所以許多工作都能夠以一個(gè)或是數(shù)個(gè)指令來代替,compiler 的工作因而減少許多。

?

??? 以一個(gè)數(shù)值運(yùn)算程序來說,使用 CISC 指令集的MCU運(yùn)算對(duì)于一個(gè)積分表達(dá)式可能只需要十個(gè)機(jī)器指令,而 RISC MCU在執(zhí)行相同的程序時(shí),卻因?yàn)镃PU 本身不提供浮點(diǎn)數(shù)乘法的指令,所以可能需要執(zhí)行上百個(gè)機(jī)器指令 (但每一個(gè)指令可能只需要 CISC 指令十分之一的時(shí)間),而由程序語言轉(zhuǎn)換成機(jī)器指令的動(dòng)作是由程序語言的 Compiler 來執(zhí)行,所以在 RISC MCU的Compiler 便會(huì)較復(fù)雜 。因?yàn)橥瑯右粋€(gè)高級(jí)語言 A=B*C 的運(yùn)算,在 RISC MCU轉(zhuǎn)換為機(jī)器指令可能有許多種組合,而每一種組合的『時(shí)間/空間』組合都不盡相同。

?

??? 所以 RISC 與 CISC 的取舍之間,似乎也是MCU硬件架構(gòu)與軟件(Compiler) 的平衡之爭(zhēng),應(yīng)該沒有絕對(duì)優(yōu)勢(shì)的一方,只能說因應(yīng)不同的需求而有不同的產(chǎn)品,例如工作單純的打印機(jī)核心 MCU,便適合使用效能穩(wěn)定,但單位指令效率較佳的 RISC MCU.

微控制器(MCU)的基本架構(gòu)

??? 微控制器產(chǎn)品架構(gòu)由早期以累積器為基礎(chǔ)的CPU,演進(jìn)至現(xiàn)今含精簡(jiǎn)指令(RISC)或同時(shí)含RISC、DSP如Motorola的68356,也有如DEC的SAIIC、與Hitachi的SH-DSP系列等之32位嵌入式微控制器 ,每一系列產(chǎn)品又因應(yīng)不同的應(yīng)用與接口需求 ,衍生出不同規(guī)格的產(chǎn)品 。微控制器產(chǎn)品以特性做為區(qū)分的標(biāo)準(zhǔn)與市場(chǎng)統(tǒng)計(jì)的依據(jù) ,區(qū)分為4位 、8位 、以及16/32位等三大類 。各廠商依其不同功能組合 ,發(fā)展出系列性的微控制器產(chǎn)品 ,如NEC供應(yīng)PD75X的4位系列 ,Toshiba供應(yīng)47CXX的4位系列 、HOLTEK供應(yīng)HT48CXX的8位系列 、及Intel之MCS-96的16位系列等。

以下就微控器的基本架構(gòu)做介紹,如下先介紹MCU架構(gòu)方塊圖。

MCU架構(gòu)方塊圖




程序內(nèi)存

程序內(nèi)存(Program ROM)在微控制器中是只讀而不可寫入之記憶單元,此內(nèi)存主要用來放置使用者所開發(fā)之程序,而其性質(zhì)乃屬于不常更動(dòng)或永不變動(dòng)之資料,微控制器之動(dòng)作便是依據(jù)儲(chǔ)存于此區(qū)之程序指令運(yùn)作。在8位單芯片中常見的程序內(nèi)存容量有0.5K、IK、2K、4K 及8K,而通常應(yīng)用在微控制器的程序內(nèi)存有下列幾種方式,見(表一):

表一


?


?

?? 另外關(guān)于程序保密部分,不論是加密或保險(xiǎn)絲燒斷保護(hù) ,都是為了防止程序被未授權(quán)之使用者窺看、竊取(如反組譯程序 、修改內(nèi)容 、盜取程序等)。程序保密這個(gè)功能選擇只在提供OTP、開窗型包裝、EEPROM 及 Flash ROM上使用,因?yàn)檫@些IC可借由燒錄器來回讀取程序代碼,在Mask版本則不需要進(jìn)行程序保密的步驟 。

隨機(jī)存取內(nèi)存

隨機(jī)存取內(nèi)存(Random Access Memory;RAM),亦稱為讀/寫內(nèi)存(Read-Write Memory),常是被用來暫時(shí)存放資料、或是程序執(zhí)行存放資料的地方,用途相當(dāng)廣泛。以HOLTEK 8位微控制器為例,其容量有6?、96、160及224個(gè)Byte選擇。

累積器

累積器(Accumulator),是MCU的運(yùn)作中樞 ,80%的指令都與累積器有關(guān) ;資料可以被存放在累積器中,直到總線或其它單元準(zhǔn)備接受它、或直到程序需要它為止 。

緩存器

緩存器(Register)是MCU內(nèi)部用來暫時(shí)存放資料的地方,每個(gè)緩存器的功能各不相同,但卻有一共同的特性,就是可以直接讀/寫,因其位于MCU的內(nèi)部,故減少了一些不必要的等待及尋址時(shí)間,另外有些MCU的I/O Port,也以緩存器型態(tài)來直接存取控制。

堆棧及堆棧指針

堆棧(Stack)及堆棧指針(Stack Pointer),堆棧就和盤子一樣,一個(gè)一個(gè)由下往上堆,而取出時(shí)則由上一個(gè)一個(gè)往下拿,不能由中間抽出,因此又稱為后進(jìn)先出隊(duì)列(Last-In-First-Out Queues)」。功能如下;

一. 暫時(shí)存放PC(Program Count)的值,適用于'子程序呼叫”,或中斷發(fā)生時(shí)將PC的值暫時(shí)儲(chǔ)存起來;

二. 可視為緩存器使用,以Push,Pop來完成;

三. 有些MCU其Stack Level數(shù)是固定的(如HOLTEK μC系列),有些則可自定。

運(yùn)算邏輯單元

? 運(yùn)算邏輯單元(Algorithm Logic Unit;ALU),其功能在于執(zhí)行算術(shù)指令及邏輯判斷,除了產(chǎn)生結(jié)果之外,也產(chǎn)生相關(guān)的Flag(Zero、Carry、Borrow、Status),每一個(gè)MCU都不完全一樣,尤其是Carry Flag一定要查看指令解說表。

輸入/輸出(I/O Port)

? 在單芯片微電腦應(yīng)用系統(tǒng)中,I/O的擴(kuò)充不是目的,而是為了提供外部設(shè)備一個(gè)輸入/輸出的信道,做為外界與MCU間的溝通管道。例如接鍵盤、顯示器、驅(qū)動(dòng)開關(guān)控制或測(cè)量等;在I/O擴(kuò)充時(shí)必須考慮與之相連接的外圍設(shè)備硬件電路特性,如:電位匹配、干擾抑制、驅(qū)動(dòng)能力(如Source,Sink能力)等。

? 微控制器在I/O埠方面?zhèn)溆卸喾N電路形式,其中有多端口可以經(jīng)由軟件以位單位來設(shè)定輸出/入方向。各埠附加大電流、高耐壓的緩沖器,以直接驅(qū)動(dòng)LED與高功率晶體管,以及做模擬訊號(hào)的輸入之用。

定時(shí)器、定時(shí)器

?? 定時(shí)器(Time Counter)、定時(shí)器(Timer),由外加振蕩晶體,經(jīng)除頻電路來提供MCU數(shù)種不同的時(shí)基(Time Base)。常應(yīng)用于:

一. 時(shí)鐘之時(shí)基(如1sec、500ms、62.5ms、15.625ms等);

二. PWM(Pulse Width Modulation)之Time Base;

三. Key Scan;

四. LED Scan;

五. Frequency output;

六. Pulse Reading;

七. APO (Auto Power OFF)等。

計(jì)數(shù)器

? 計(jì)數(shù)器(Event Counter)專用于累計(jì)外部的事件個(gè)數(shù),可能為Pulse或其它資料,也可用以產(chǎn)生正確的時(shí)間延遲。常應(yīng)用于:

一、另一種Time Base,外加固定頻率;

二、計(jì)數(shù)器;

三、可規(guī)劃成另一種立即中斷輸入;

四、計(jì)速器(Speed Meter)、轉(zhuǎn)速表(Tachometer)。

中斷

??? 中斷(Interrupt)用來處理立即事件、或列為優(yōu)先處理之事件,負(fù)責(zé)時(shí)間計(jì)數(shù)器超時(shí)中斷、及外部事件產(chǎn)生中斷請(qǐng)求等工作。大部分微控制器的中斷處理系統(tǒng)是多層的,內(nèi)設(shè)有中斷優(yōu)先級(jí)電路,以決定先后順序。常應(yīng)用于:

一、MCU呈被動(dòng)Standby狀態(tài)(Halt-Stop),由外加信號(hào)來Wakeup;

二、需要立即處理(傳感器、開關(guān)、警報(bào)器、電源故障預(yù)警器);

三、需要一個(gè)固定間隔來處理(Display ,Key Scan ,Read-Time Clock);

微控制器上的外圍資源

??? 看了這么多微控制器的的基本架構(gòu)后,讓我們繼續(xù)來了解微控制器還可以加掛那些外圍資源,以擴(kuò)充、延伸其功能。

串行輸出(Serial I/O)

微控制器內(nèi)含Serial I/O是為了提供對(duì)外部外圍Device的通訊管道,各家種類不同,常見的有以下幾種:

◆UART(Universal Asynchronous Receiver Transmitter):Intel,Atmel;

◆USART(Universal Synchronous/Asynchronous Receiver

Transmitter ):Siemens;

◆SPI(Serial Peripheral Interface):Motorola;

◆SCI(Sertal Communications Interface):這是UART的加強(qiáng)版;

◆I2C bus(lnter Integrated Circuit bus):Philips;

◆Microwire/Plus:National Semiconductor;

液晶驅(qū)動(dòng)裝置(LCD Driver)

??? 在顯示接口上,LCD(Liquid Crystal Display)是常運(yùn)用的顯示裝置,例如在一些多功能的電話、數(shù)字溫度計(jì)、呼叫器、大哥大、掌上型游戲機(jī)以上皆可以發(fā)現(xiàn)它的蹤跡。因此內(nèi)含LCD驅(qū)動(dòng)線路的微控制器運(yùn)用相當(dāng)廣泛,有兩種驅(qū)動(dòng)方式可供選用:Segment和Dot Matrix,例如:之前流行的寵物蛋是使用Dot Matrix的LCD顯示器;日系的微控制器廠商提供多樣內(nèi)含LCD驅(qū)動(dòng)裝置的微控制器可供選用,另外HOLTEK HT49XX 系列 也提供LCD驅(qū)動(dòng)裝置的微控制器。

螢光管驅(qū)動(dòng)裝置(VFT Driver)

??? LCD顯示器在無光源或無背光的環(huán)境下,我們即無法讀取顯示器之內(nèi)容,而VFT顯示器可提供高亮度、且色彩多變化的視覺效果,常應(yīng)用于高級(jí)的家電產(chǎn)品上,如:碟影機(jī)、DSP均衡器。要求炫麗輸出效果的產(chǎn)品,在微控制器的選擇上VFT(Vacuum Fluorescent Tube)Driver是重要的資源之一。

OSD

??? 對(duì)于電視及監(jiān)視器人性化接口是不可缺少的功能之一,OSD(On Screen Display)部分顯示回路為接收水平同步信號(hào)(H-Sync)及垂直同步信號(hào)(V-Sync),再將信號(hào)透過RGB及Blanking將屏幕信息送出,其顯示顏色至多可達(dá)八種。各微控制器指令執(zhí)行速率會(huì)造成OSD的顯示行數(shù)及字段的不同,顯示行數(shù)由二行至數(shù)十行,字段則由15~26個(gè)字符或更多,通常執(zhí)行速率較快者可顯示較多的行數(shù)、字段,速率較慢者在顯示上會(huì)有直接的受限。

模擬轉(zhuǎn)換數(shù)字接口(ADC)

??? 由于微控制器諸多應(yīng)用上,需要偵測(cè)外部環(huán)境狀況,做為處理數(shù)據(jù)上的參考,如在TV應(yīng)用方面其調(diào)諧器(Tuner)之自動(dòng)頻率控制(Auto Frequency Control)訊號(hào),即為電壓訊號(hào),其它如溫度之偵測(cè)也多是轉(zhuǎn)換為電壓訊號(hào),所以模擬/數(shù)字轉(zhuǎn)換(Analog to Digital Converter)的應(yīng)用在工業(yè)及消費(fèi)電子上都很廣泛。

??? 模擬之場(chǎng)合是如此頻繁,所以各廠家提供模擬/數(shù)字之轉(zhuǎn)換便成為一般之標(biāo)準(zhǔn)規(guī)格(如HOLTEK HT46XX系列),雖然如此,對(duì)于模擬/數(shù)字之分辨率各家差異很大,由3位~10位皆有,視各不同需求而異。雖然提供的轉(zhuǎn)換信道有很多,通常內(nèi)部?jī)H有一個(gè)電路處理,靠選擇器切換,對(duì)于時(shí)間考慮不是特別強(qiáng)調(diào)之應(yīng)用上,不致有太大之影響。

??? 另外還有一種模擬/數(shù)字之轉(zhuǎn)換方式,就是R to F(Resistance to Freguency),一般運(yùn)用在溫度/濕度之偵測(cè),利用電阻/電容式Sensor的變化特性,轉(zhuǎn)換成頻率值,以此頻率值來計(jì)算溫度/濕度的相對(duì)性,此類的IC如HOLTEK HT47XX系列。

數(shù)字轉(zhuǎn)換模擬接口(DAC)

??? 在控制模擬組件需要模擬訊號(hào),以微控制器而言,就必須內(nèi)建數(shù)字/模擬轉(zhuǎn)換(Digital to Analog Converter)來因應(yīng).其內(nèi)部由數(shù)字/模擬轉(zhuǎn)換緩存器及一階梯電阻構(gòu)成,數(shù)字/模擬的分辨率各為8位.在一個(gè)8位/參考電壓為5V的微控制器,假設(shè)一個(gè)數(shù)字值60轉(zhuǎn)換成模擬值的計(jì)算方式是(60/256x5Volts)=1.171875 V 例如應(yīng)用在鎖相回路上,VCO(電壓控制振蕩器)即可用DAC做控制。另外Voice IC也是利用原先將語音錄制成數(shù)字資料,然后用DAC 方式將數(shù)字資料音頻轉(zhuǎn)換還原模擬語音訊號(hào)。

脈寬調(diào)變(PWM)

??? 其目的也是以數(shù)字輸出搭配外圍回路,達(dá)到模擬的效果,其組成有前置配器(Pre-divider)、計(jì)數(shù)器(Counter)、數(shù)據(jù)閂鎖(Data Latches)、及比較電路(Compare Circuits)等。PWM(Pulse Width Modulation)分辨率由程控,當(dāng)然在一般的I/O埠亦可用時(shí)間及Duty Cycle計(jì)算技巧來達(dá)成PWM之功能,但反應(yīng)速度會(huì)受到限制,且以今日各大半導(dǎo)體廠家皆提供其PWM功能之微控制器就便利性而言 (如HOLTEK HT46XX系列),實(shí)在不需再將心思放在PWM之撰寫上,以減輕軟件的負(fù)擔(dān)。而PWM之功能由6位~14位之分辨率,適合各種不同的需求。

DTMF產(chǎn)生器、接收器

???? 電話由原來的Pulse演進(jìn)為現(xiàn)在的Tone譯碼方式,不但提高了譯碼的速度,也增加了可靠性與抗噪聲能力,DTMF(Dual Tone Multiple Frequency)顧名思義就是混合兩種頻率的音頻訊號(hào),所以譯碼不易出差錯(cuò)。應(yīng)用在電話產(chǎn)品的微控制器時(shí),DTMF這個(gè)資源常是選擇的重要規(guī)格。

看門狗(Watchdog Timer)

??? 微控制器在產(chǎn)品中是不允許當(dāng)機(jī)的,但受到噪聲干擾或操作不當(dāng)時(shí),需有防范措施確保微控制器在當(dāng)機(jī)的情況下能夠自動(dòng)重置,讓微控制器能夠繼續(xù)運(yùn)作.我們可以說看門狗(Watchdog timer)是用來監(jiān)看微控制器是否為不正常的當(dāng)機(jī),許多微控制器都已把它列為標(biāo)準(zhǔn)配備。

??? 看門狗定時(shí)器實(shí)際上就像一個(gè)自跑式的RC振蕩器,它完全不必外加零件,意即不管是芯片的時(shí)脈振蕩接腳的時(shí)脈振蕩有沒有停止,它還是繼續(xù)計(jì)數(shù)而不隨之中斷而停止,即便是芯片進(jìn)入省電的Halt狀態(tài)(在Halt狀態(tài)下,芯片之時(shí)脈停止振蕩也一定不曾停止Watchdog timer之計(jì)時(shí),當(dāng)計(jì)時(shí)逾時(shí)后將使本芯片自動(dòng)重置,I/O腳輸出保持不變,耗電相當(dāng)?shù)氖?,Watchdog timer要不要致能,在OTP版本必須在程序燒錄時(shí)決定,以便決定要不要燒斷其保險(xiǎn)絲,在Mask版本由使用者選擇是否使用這個(gè)功能。

雙時(shí)脈(Dual Clock)

??? 微控制器的供應(yīng)時(shí)脈愈高時(shí) ,相對(duì)地耗電量也愈大 因此在一些使用電池供應(yīng)的產(chǎn)品選用時(shí) ,雙時(shí)脈常是必須考慮的功能 ,一般副時(shí)脈是以32.768KHz運(yùn)作,主要做為計(jì)時(shí)(Real Time Clock)之用。

???? 所以綜合上面所言,微控制器的指令集結(jié)構(gòu)較單純、容易發(fā)展及修改、I/O及中斷處理能力強(qiáng),主要發(fā)展工作集中在軟件設(shè)計(jì)上,只要透過發(fā)展系統(tǒng)(ICE:In-Circuit Emulator)及萬用板即可進(jìn)行線上仿真工作,進(jìn)行設(shè)計(jì)及修改的工作。由于微控制器具備單價(jià)低、系統(tǒng)硬件架構(gòu)簡(jiǎn)單、應(yīng)用程序的發(fā)展及修改容易、芯片穩(wěn)定度佳、可靠度高,是故其應(yīng)用領(lǐng)域極廣,幾乎是無所不在。故在不同的場(chǎng)合選擇不同的配備,充份了解微控制器的內(nèi)部資源將有助于產(chǎn)品開發(fā)且降低成本。相信在未來會(huì)陸續(xù)增加新的外圍資源于微控制器內(nèi),應(yīng)用的范圍也愈來愈廣,也因目前已經(jīng)取代傳統(tǒng)電路設(shè)計(jì)觀念,進(jìn)而成為新的設(shè)計(jì)主流。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。