微控制器(MicroController)又可簡稱MCU或μC,也有人稱為單芯片微控制器(Single Chip Microcontroller),將ROM、RAM、CPU、I/O集合在同一個芯片中,為不同的應用場合做不同組合控制。微控制器在經(jīng)過這幾年不斷地研究、發(fā)展,歷經(jīng)4位、8位,到現(xiàn)在的16位及32位,甚至64位。產品的成熟度,以及投入廠商之多、應用范圍之廣,真可謂之空前。目前在國外大廠因開發(fā)較早、產品線廣,所以技術領先,而本土廠商則以多功能為產品導向取勝。但不可諱言的,本土廠商的價格戰(zhàn)是對外商造成威脅的關鍵因素。
由于制程的改進,8位MCU與4位MCU價差相去無幾,8位已漸成為市場主流;針對4位MCU,大部份供貨商采接單生產,目前4位MCU大部份應用在計算器、車表、車用防盜裝置、呼叫器、無線電話、CD Player、LCD驅動控制器、LCD Game、兒童玩具、磅秤、充電器、胎壓計、溫濕度計、遙控器及傻瓜相機等;8位MCU大部份應用在電表、馬達控制器、電動玩具機、變頻式冷氣機、呼叫器、傳真機、來電辨識器(Caller ID)、電話錄音機、CRT Display、鍵盤及USB等;16位MCU大部份應用在行動電話、數(shù)字相機及攝錄放影機等;32位MCU大部份應用在Modem、GPS、PDA、HPC、STB、Hub、Bridge、Router、工作站、ISDN電話、激光打印機與彩色傳真機;64位MCU大部份應用在高階工作站、多媒體互動系統(tǒng)、高級電視游樂器(如SEGA的Dreamcast及Nintendo的GameBoy)及高級終端機等。
而在MCU開發(fā)方面,以架構而言,可分為兩大主流;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 結構來設計。不管是 RISC 或是 CISC(Complex Instruction Set Computer),設計MCU的目的便是為人類服務的,對于 RISC 來說,因為指令集的精簡,所以許多工作都必須組合簡單的指令,而針對較復雜組合的工作便需要由『編譯程序』(compiler) 來執(zhí)行,而 CISC MCU因為硬件所提供的指令集較多,所以許多工作都能夠以一個或是數(shù)個指令來代替,compiler 的工作因而減少許多。
圖 1:MCU 架構方塊示意圖。
程序內存
程序內存(Program ROM)在微控制器中是只讀而不可寫入之記憶單元,此內存主要用來放 置使用者所開發(fā)之程序,而其性質乃屬于不常更動或永不變動之資料,微控制器之動作便是 依據(jù)儲存于此區(qū)之程序指令運作。在 8 位單芯片中常見的程序內存容量有 0.5K、IK、2K、4K 及 8K,而通常應用在微控制器的程序內存有下列幾種方式,見(表一):
表 1:在微控制器的程序內存通常有幾種方式。
另外關于程序保密部分,不論是加密或保險絲燒斷保護 ,都是為了防止程序被未授權之使 用者窺看、竊取(如反組譯程序 、修改內容 、盜取程序等)。程序保密這個功能選擇只在提供 OTP、開窗型包裝、EEPROM 及 Flash ROM 上使用,因為這些 IC 可借由燒錄器來回讀取程序代碼,在 Mask 版本則不需要進行程序保密的步驟 。 隨機存取內存隨機存取內存(Random Access Memory;RAM),亦稱為讀/寫內存(Read-Write Memory),常是被用來暫時存放資料、或是程序執(zhí)行存放資料的地方,用途相當廣泛。以 HOLTEK 8 位 微控制器為例,其容量有 64、96、160 及 224 個 Byte 選擇。
累積器
累積器(Accumulator),是 MCU 的運作中樞 ,80%的指令都與累積器有關 ;資料可以被存 放在累積器中,直到總線或其它單元準備接受它、或直到程序需要它為止 。
緩存器
緩存器(Register)是 MCU 內部用來暫時存放資料的地方,每個緩存器的功能各不相同,但 卻有一共同的特性,就是可以直接讀/寫,因其位于 MCU 的內部,故減少了一些不必要的 等待及尋址時間,另外有些 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í)行算術指令及邏輯判斷,除了產生 結果之外,也產生相關的 Flag(Zero、Carry、Borrow、Status),每一個 MCU 都不完全一 樣,尤其是 Carry Flag 一定要查看指令解說表。
輸入/輸出(I/O Port)
在單芯片微電腦應用系統(tǒng)中,I/O 的擴充不是目的,而是為了提供外部設備一個輸入/輸出的 信道,做為外界與 MCU 間的溝通管道。例如接鍵盤、顯示器、驅動開關控制或測量等;在I/O 擴充時必須考慮與之相連接的外圍設備硬件電路特性,如:電位匹配、干擾抑制、驅動能 力(如 Source,Sink 能力)等。
微控制器在 I/O 埠方面?zhèn)溆卸喾N電路形式,其中有多端口可以經(jīng)由軟件以位單位來設定輸出/入方向。各埠附加大電流、高耐壓的緩沖器,以直接驅動 LED 與高功率晶體管,以及做模 擬訊號的輸入之用。
定時器、定時器
定時器(Time Counter)、定時器(Timer),由外加振蕩晶體,經(jīng)除頻電路來提供 MCU 數(shù)種不 同的時基(Time Base)。常應用于:
一. 時鐘之時基(如 1sec、500ms、62.5ms、15.625ms 等);
二. PWM(Pulse Width Modulation)之 Time Base;
[!--empirenews.page--]三. Key Scan;
四. LED Scan;
五. Frequency output;
六. Pulse Reading;
七. APO (Auto Power OFF)等。 計數(shù)器
計數(shù)器(Event Counter)專用于累計外部的事件個數(shù),可能為 Pulse 或其它資料,也可用以 產生正確的時間延遲。常應用于:
一、另一種 Time Base,外加固定頻率; 二、計數(shù)器; 三、可規(guī)劃成另一種立即中斷輸入;
四、計速器(Speed Meter)、轉速表(Tachometer)。 中斷中斷(Interrupt)用來處理立即事件、或列為優(yōu)先處理之事件,負責時間計數(shù)器超時中斷、及 外部事件產生中斷請求等工作。大部分微控制器的中斷處理系統(tǒng)是多層的,內設有中斷優(yōu)先 級電路,以決定先后順序。常應用于:
一、MCU 呈被動 Standby 狀態(tài)(Halt-Stop),由外加信號來 Wakeup;
二、需要立即處理(傳感器、開關、警報器、電源故障預警器); 三、需要一個固定間隔來處理(Display ,Key Scan ,Read-Time Clock); 微控制器上的外圍資源
看了這么多微控制器的的基本架構后,讓我們繼續(xù)來了解微控制器還可以加掛那些外圍資 源,以擴充、延伸其功能。
串行輸出(Serial I/O)
微控制器內含 Serial I/O 是為了提供對外部外圍 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 的加強版;
◆I2C bus(lnter Integrated Circuit bus):Philips;
◆Microwire/Plus:National Semiconductor;
液晶驅動裝置(LCD Driver)
在顯示接口上,LCD(Liquid Crystal Display)是常運用的顯示裝置,例如在一些多功能的電 話、數(shù)字溫度計、呼叫器、大哥大、掌上型游戲機以上皆可以發(fā)現(xiàn)它的蹤跡。因此內含 LCD 驅動線路的微控制器運用相當廣泛,有兩種驅動方式可供選用:Segment 和 Dot Matrix, 例如:之前流行的寵物蛋是使用 Dot Matrix 的 LCD 顯示器;日系的微控制器廠商提供多樣內含 LCD 驅動裝置的微控制器可供選用,另外 HOLTEK HT49XX 系列 也提供 LCD 驅動裝置 的微控制器。
螢光管驅動裝置(VFT Driver)
LCD 顯示器在無光源或無背光的環(huán)境下,我們即無法讀取顯示器之內容,而 VFT 顯示器可提供高亮度、且色彩多變化的視覺效果,常應用于高級的家電產品上,如:碟影機、DSP 均 衡器。要求炫麗輸出效果的產品,在微控制器的選擇上 VFT(Vacuum Fluorescent Tube)Driver 是重要的資源之一。
OSD對于電視及監(jiān)視器人性化接口是不可缺少的功能之一,OSD(On Screen Display)部分顯示 回路為接收水平同步信號(H-Sync)及垂直同步信號(V-Sync),再將信號透過 RGB 及Blanking 將屏幕信息送出,其顯示顏色至多可達八種。各微控制器指令執(zhí)行速率會造成 OSD的顯示行數(shù)及字段的不同,顯示行數(shù)由二行至數(shù)十行,字段則由 15~26 個字符或更多,通 常執(zhí)行速率較快者可顯示較多的行數(shù)、字段,速率較慢者在顯示上會有直接的受限。
模擬轉換數(shù)字接口(ADC)
由于微控制器諸多應用上,需要偵測外部環(huán)境狀況,做為處理數(shù)據(jù)上的參考,如在 TV 應用 方面其調諧器(Tuner)之自動頻率控制(Auto Frequency Control)訊號,即為電壓訊號,其它 如溫度之偵測也多是轉換為電壓訊號,所以模擬/數(shù)字轉換(Analog to Digital Converter)的應 用在工業(yè)及消費電子上都很廣泛。
模擬之場合是如此頻繁,所以各廠家提供模擬/數(shù)字之轉換便成為一般之標準規(guī)格(如HOLTEK HT46XX 系列),雖然如此,對于模擬/數(shù)字之分辨率各家差異很大,由 3 位~10 位 皆有,視各不同需求而異。雖然提供的轉換信道有很多,通常內部僅有一個電路處理,靠選 擇器切換,對于時間考慮不是特別強調之應用上,不致有太大之影響。
另外還有一種模擬/數(shù)字之轉換方式,就是 R to F(Resistance to Freguency),一般運用在溫度/濕度之偵測,利用電阻/電容式 Sensor 的變化特性,轉換成頻率值,以此頻率值來計算溫度/濕 度的相對性,此類的 IC 如 HOLTEK HT47XX 系列。
數(shù)字轉換模擬接口(DAC)
在控制模擬組件需要模擬訊號,以微控制器而言,就必須內建數(shù)字/模擬轉換(Digital toAnalog Converter)來因應.其內部由數(shù)字/模擬轉換緩存器及一階梯電阻構成,數(shù)字/模擬的分 辨率各為 8 位.在一個 8 位/參考電壓為 5V 的微控制器,假設一個數(shù)字值 60 轉換成模擬值的 計算方式是(60/256x5Volts)=1.171875V例如應用在鎖相回路上,VCO(電壓控制振蕩器)即可用 DAC 做控制。另外 Voice IC 也是利用原先將語音錄制成數(shù)字資料,然后用 DAC 方式將數(shù)字資料音頻轉換還原模擬語音訊號。 脈寬調變(PWM)其目的也是以數(shù)字輸出搭配外圍回路,達到模擬的效果,其組成有前置配器(Pre-divider)、 計數(shù)器(Counter)、數(shù)據(jù)閂鎖(Data Latches)、及比較電路(Compare Circuits)等。PWM(Pulse Width Modulation)分辨率由程控,當然在一般的 I/O 埠 亦可用時間及 Duty Cycle 計算技巧來達成 PWM 之功能,但反應速度會受到限制,且以今 日各大半導體廠家皆提供其 PWM 功能之微控制器就便利性而言 (如 HOLTEK HT46XX 系 列),實在不需再將心思放在 PWM 之撰寫上,以減輕軟件的負擔。而 PWM 之功能由 6 位~14 位之分辨率,適合各種不同的需求。
DTMF 產生器、接收器電話由原來的 Pulse 演進為現(xiàn)在的 Tone 譯碼方式,不但提高了譯碼的速度,也增加了可靠 性與抗噪聲能力,DTMF(Dual Tone Multiple Frequency)顧名思義就是混合兩種頻率的音頻 訊號,所以譯碼不易出差錯。應用在電話產品的微控制器時,DTMF 這個資源常是選擇的重 要規(guī)格。
看門狗(Watchdog Timer)微控制器在產品中是不允許當機的,但受到噪聲干擾或操作不當時,需有防范措施確保微控 制器在當機的情況下能夠自動重置,讓微控制器能夠繼續(xù)運作.我們可以說看門狗
(Watchdog timer)是用來監(jiān)看微控制器是否為不正常的當機,許多微控制器都已把它列為標準配備。
看門狗定時器實際上就像一個自跑式的 RC 振蕩器,它完全不必外加零件,意即不管是芯片 的時脈振蕩接腳的時脈振蕩有沒有停止,它還是繼續(xù)計數(shù)而不隨之中斷而停止,即便是芯片 進入省電的 Halt 狀態(tài)(在 Halt 狀態(tài)下,芯片之時脈停止振蕩也一定不曾停止 Watchdog timer 之計時,當計時逾時后將使本芯片自動重置,I/O 腳輸出保持不變,耗電相當?shù)氖?,Watchdog timer 要不要致能,在 OTP 版本必須在程序燒錄時決定,以便決定要不要燒斷其保險絲,在 Mask 版本由使用者選擇是否使用這個功能。[!--empirenews.page--]
雙時脈(Dual Clock)微控制器的供應時脈愈高時 ,相對地耗電量也愈大 因此在一些使用電池供應的產品選用時 ,雙時脈常是必須考慮的功能 ,一般副時脈是以 32.768KHz 運作,主要做為計時(RealTime Clock)之用。
所以綜合上面所言,微控制器的指令集結構較單純、容易發(fā)展及修改、I/O 及中斷處理能力 強,主要發(fā)展工作集中在軟件設計上,只要透過發(fā)展系統(tǒng)(ICE:In-Circuit Emulator)及萬用板 即可進行線上仿真工作,進行設計及修改的工作。由于微控制器具備單價低、系統(tǒng)硬件架構 簡單、應用程序的發(fā)展及修改容易、芯片穩(wěn)定度佳、可靠度高,是故其應用領域極廣,幾乎 是無所不在。故在不同的場合選擇不同的配備,充份了解微控制器的內部資源將有助于產品 開發(fā)且降低成本。相信在未來會陸續(xù)增加新的外圍資源于微控制器內,應用的范圍也愈來愈 廣,也因目前已經(jīng)取代傳統(tǒng)電路設計觀念,進而成為新的設計主流。