1-1 微電腦系統單元 1-2 微電腦系統架構 1-3 微控制器(單晶片微電腦) 1-4 類比與數位訊號介面 第1章 微電腦系統概論 1-1 微電腦系統單元 1-2 微電腦系統架構 1-3 微控制器(單晶片微電腦) 1-4 類比與數位訊號介面
1-1 微電腦系統單元 隨著科技的進步,自動化產品越來越多,已大幅改善人們的生活品質。 自動化的核心是微控制器(micro-controller unit, MCU),它就像是人的大腦一般,由有經驗的專家設計了它,並準確有效地擔任人們所賦予的工作而達到自動化目的。 微控制器無所不在,舉凡手機、遊戲機、家電(冰箱、冷氣、洗衣機、攝錄影機等)、健康醫療儀器、電腦及電視周邊、照明節能、汽車行車電腦、交通號誌控制等,皆可看到微控制器的蹤跡。 本章透過介紹傳統的微電腦系統五大單元,了解微控制器的內部概況,並透過各種微控制器家族的介紹,了解本書學習之Arduino 微控制器的特性。
1-1 微電腦系統單元 微電腦是由硬體(hardware)和軟體(software)所組成: 硬體是指有形的機器。 軟體則指用來控制微電腦工作的指令和程式。 本節先針對微電腦的硬體結構加以介紹。 微電腦的硬體結構包括了五個主要單元(unit),分別是輸入單元、輸出單元、記憶單元、算術邏輯單元和控制單元,其中算術邏輯單元和控制單元又可合併成為一個單元,稱為中央處理單元(central processing unit),就是所稱的CPU,這五個單元的關係如圖 1-1 所示。
1-1 微電腦系統單元
1-1 微電腦系統單元 CPU 是微電腦最重要的部分,它就像是人類的大腦一般,控制著各個單元的運作。以下簡介各單元的功用。 1. 輸入單元(input unit, IU) 輸入單元的工作是將外來的資訊送到CPU 處理或直接存入記憶單元 個人電腦(personal computer,PC)上常用的輸入設備有讀卡機、磁碟機、鍵盤、光筆、滑鼠和掃描器等。 在實習上常見的輸入元件有指撥開關(DIP Switch)、按鈕開關、微動開關、極限開關、磁簧開關(Reed Switch)、鍵盤,還有可感測光(光電晶體)、溫度(溫度感測器)、濕度(濕度感測器)、聲音(麥克風)、磁場(霍爾元件)的各種物理量感測器等。
1-1 微電腦系統單元 2. 輸出單元(output unit, OU) 輸出單元負責將CPU 處理過的資料,以人類或機器可以看懂的形態輸出或儲存。 PC 上常用的輸出設備有顯示器(monitor)、列表機(printer)和繪圖機(plotter)等。 在實習上常見的輸出元件有發光二極體LED、液晶顯示器LCD、七段顯示器、步進馬達、直流馬達、喇叭、蜂鳴器等。 3. 記憶單元(memory unit, MU) 記憶單元是用來存放系統運作所需的程式(code)或資料(data),一般來說,程式是儲存在唯讀記憶體(read only memory, ROM)中,資料儲存在隨機存取記憶體(random access memory, RAM)中。
1-1 微電腦系統單元 4. 算術邏輯單元(arithmetic logic unit, ALU) 顧名思義,算術邏輯單元可執行算術運算(如加、減、乘、除等)及邏輯運算(如AND、OR、NOT、XOR 等),也可將資料或輸入單元送來的資訊,送到ALU 以執行各種運算;在運算完成後,再由控制單元將資料送回記憶單元存放,或直接送到輸出單元。 5. 控制單元(control unit, CU) 控制單元是微電腦的指揮中心,負責協調和指揮各單元之間的資料傳送及運作,使得微電腦可以按照人們的要求完成工作。執行一個程式時,控制單元: (1)先從程式讀取第一個指令。 (2)加以解碼(decode),瞭解指令的動作意義。 (3)執行(execute)這個指令。 然後再重複讀取下一個指令、解碼、執行,一步一步往下做,直到程式做完為止。
1-1 微電腦系統單元 由上述的五大單元說明可知,一套完整的微電腦系統,需由許多的控制晶片(chip)或IC 組成,一般稱這樣的系統為多晶片微電腦控制系統,主要用來設計較為複雜的控制系統,例如個人電腦就屬此類型。 由於此種系統使用的晶片數眾多、硬體成本高、體積大、電路除錯(debug)不容易,並不適合簡易的控制系統及互動裝置,因此就有了單晶片微控制器的需求。
1-2 微電腦系統架構 硬體上,微電腦各單元都是靠排線所組成的匯流排(bus)做溝通,是CPU 與各單元、周邊設備溝通不可或缺的管道,微電腦的匯流排依功能不同分為底下三種: 1. 資料匯流排(data bus): 資料匯流排為傳送或接收資料的通道,為雙向,其寬度(資料匯流排的線數)代表CPU 一次能處理資料的位元數,一般稱為字組(word)。所謂的64 位元個人電腦指的是電腦的資料匯流排寬度為64 位元。
1-2 微電腦系統架構 2. 位址匯流排(address bus): 位址匯流排可決定微電腦可定址的空間大小,為單向。每筆記憶體都需要有獨一無二的控制位址,才能正確存取,例如1條位址匯流排,接邏輯0 或1 時各可存取1byte 資料,因此能定址的記憶體大小為2bytes,同理,n 條位址匯流排,則可存取2n bytes 的記憶體。 3. 控制匯流排(control bus): 控制匯流排為控制微電腦各大單元,進出微處理機之資料流向與時序的接腳,例如CPU 的讀寫 R/W 、中斷 INT 、重置RESET、致能腳 E 等。
1-2 微電腦系統架構 圖 1-2 所示為微電腦系統的硬體架構圖,從圖中可看出匯流排銜接各單元,透過CPU 發號司令,可有效的存取記憶體資料,也可控制周邊I/O 的讀入與輸出控制。
1-2 微電腦系統架構 有三個因素會影響到微電腦系統執行的速度與效能,分別是: 位元數:16 位元的微電腦在處理資料時,可同一時間處理2bytes,而32位元可處理4 bytes,所以32 位元的微電腦比16 位元的快,16 位元的微電腦比8 位元快。 時脈頻率:執行指令的速度與微電腦時脈產生器的頻率相關,時脈頻率愈高,指令執行速度愈快,例如MCS51 時脈頻率為12MHz,Arduino UNO板時脈為16MHz,ARM 則更快可達3GHz。
1-2 微電腦系統架構 指令集架構:微電腦的指令集架構可分為二種 複雜指令集CISC(complex instruction set computer) 精簡指令集RISC(reduced instruction set computer) 一般而言,指令集愈多則功能愈強,但過多指令集,會因解碼電路變多(或採用微指令碼設計)而影響效能,也因核心過大導致CPU 的時脈頻率不能太高;而RISC 指令數少,結構簡單,故速度較快,在體積、造價、功耗、散熱上都有優勢,缺點是因指令精簡化後造成程式碼變大,需要較大的程式記憶體空間。
1-2 微電腦系統架構 一般衡量CPU 速度的計量單位為 MIPS(millions instructions per second),是指CPU 每秒可執行多少百萬個指令,能執行的指令越多,代表電腦的工作能力越強。不過MIPS 並不是固定數值,常會因軟體不同而有不同,故需在某些固定的環境標準下運作才能採用此指標比較。
1-3 微控制器(單晶片微電腦) 微控制器(MCU)是將上述五大單元、以及一些周邊電路(定時/ 計數器、燒錄介面、類比/數位信號轉換)都整合在一塊晶片上的微型電腦,具有體積小、耗電低、外接少許零件即可工作的特點,可節約成本,十分適合當作微電腦控制實務、專題製作課程的主控元件,一般也稱為單晶片微電腦(single-chip microcomputer)。
1-3 微控制器(單晶片微電腦) 微控制器種類繁多,包含 歷史悠久, 相容產品眾多且使用廣泛的MCS51系列 (8051、89S51) Microchip 公司的PIC 系列 Atmel 的AVR 系列 盛群半導體的HT48F/HT16F/HT32F 系列 安謀的ARM 註:ARM 稱為進階精簡指令集機器(Advanced RISC Machine),是一個32位元精簡指令集(RISC)的處理器架構
1-3 微控制器(單晶片微電腦) 將MCU、USB 燒錄介面都整合在一塊基板上的微型電腦,雖然不是晶片型態,但其功能屬性與微控制器相同,故仍歸類為微控制器,一般稱為單板電腦,像是美國Parallax 的BASIC Stamp、臺灣利基的BASIC Commander、義大利的Arduino Nano皆是,其外觀如圖 1-3 所示。
1-3 微控制器(單晶片微電腦) 根據處理能力的不同,MCU 可分為8 位元、16 位元及32 位元,其中位元數是指MCU 資料暫存器的寬度,而8 位元、16 位元多應用於家電及一般的控制領域,32 位元用於網路操作、多媒體處理、影像辨識處理的場合。 另外各開發商MCU 的輸出入I/O(Input/Output)接腳控制能力、A/D(類比/ 數位)信號處理能力不同,也會影響到使用者的系統開發與使用方便性。 表 1-1 為常用MCU 的比較表,本書以AVR 為核心的Arduino 為主。
1-3 微控制器(單晶片微電腦)
1-4 類比與數位訊號介面 微電腦系統是以圖 1-4(b) 數位的方式儲存或運算資料,它只認識邏輯「0」與「1」,其訊號變化是非連續性的(不會隨時間變化而變化的量);但是環顧生活四周,自然界的物理量例如溫度、壓力、光、熱、重量及電流等都是連續性變化的量,所有的訊號都是以圖 1-4(a) 類比的方式呈現。
1-4 類比與數位訊號介面 物理量不是微電腦系統能直接使用的資料,所以要使用微電腦系統處理這些量,除了需要感測器(sensor)感應輸出類比訊號外,還必須經過類比對數位轉換電路(analog to digital converter, ADC),將一連串的類比信號轉換成數位信號後,微電腦系統才能將資料進行處理或儲存,整個微電腦物理訊號處理架構圖如圖 1-5 所示。
1-4 類比與數位訊號介面 圖 1-5 所示為一般微電腦進行訊號處理的架構圖,主要分成輸入、訊號處理、核心及輸出四部分,其中受控體會有回授訊號接至輸入,形成完整的閉迴路控制。以下針對圖 1-5 中一些重要的方塊進行說明。 感測器是指能將待測物理量或化學量轉換成電氣訊號的裝置或元件,有時也稱為感應器、察覺器、傳感器或轉換器,其中轉換後的電氣訊號可包含是位移變化、電阻變化、電壓變化、電流變化等,表 1-2 所示為實務上常見的幾種感測器,及其轉換後電氣訊號型態,無論何種,皆可透過電子電路取得,輸入至微控制器中處理。
1-4 類比與數位訊號介面
1-4 類比與數位訊號介面 放大電路的功能有二個: 進行阻抗匹配 放大輸出振幅 說明:由於感測器的輸出型態可能是電阻、電壓或電流的變化,因有些訊號非常微弱,故需要電路進行阻抗匹配,以避免負載效應,最後透過放大電路增加輸出振幅。
1-4 類比與數位訊號介面 簡介:ADC 電路可將放大電路送來的類比訊號,轉換成可供MCU 處理的數位訊號, 有些微控制器例如PIC、AVR、Arduino 內建ADC 電路, 使用上非常方便, 至於沒有內建ADC 的MCU,例如MCS51、BASIC Stamp、BASIC Commander, 則需要外接ADC專用IC(例如ADC0804)。
1-4 類比與數位訊號介面
1-4 類比與數位訊號介面
1-4 類比與數位訊號介面
1-4 類比與數位訊號介面
1-4 類比與數位訊號介面 圖 1-8 所示為不同工作週期的示意圖,紅線代表該波形的平均值,將工作週期為25% 的PWM 波形接至LED,則LED 的亮度會只有全亮時的1/4, 同理, 工作週期50% 接至LED,LED 呈現半亮狀態; 若將PWM 接至直流馬達,則可透過不同的工作週期控制馬達轉速。
1-4 類比與數位訊號介面 受控體是指受控制的設備或物體,例如冷氣、洗衣機,或是一些簡單的機電元件,例如LED、馬達、伺服機、電熱絲等。