小到電話,玩具,手機,各類刷卡機,電腦鍵盤,彩電,冰箱,空調,電磁爐,大到汽車,工業自動控制,機器人,室外LED廣告板,甚至導彈導航裝置等各行業往往不需要一整台功能強勁個人電腦透過作業系統 OS (Operation System) 如視窗來操作。通常是利用單晶片微電腦來控制。單晶片微型電腦簡稱為單片機,又稱為微型控制器,是微型電腦的一個重要分支。
單片機是70年代中期發展起來的一種超大型積體電路晶片,是集成CPU、RAM、ROM、I/O介面和中斷系統於同一矽片上的電子 零件。80年代以來,單片機發展迅速,各類新產品不斷湧現,出現了許多高性能新型型號,現已逐漸成為工廠自動化和各控制領域的支柱產業之一。因消費市場大,單晶片價錢不高。
一台能夠工作的電腦要有這樣幾個部份構成:CPU(進行運算、控制)、RAM(資料存儲–記憶體)、ROM(程式存儲)、輸入/輸出設備(例如:串列口、並行輸出口等)。在個人電腦上這些部份被分成若干塊晶片,安裝在一個稱為主機板 (mother board) 的印刷線路板上。但在單片機中,這些部份,全部被造到一塊電路晶片中了,所以就稱為單片機 (single-chip microcomputer)。
單晶片具備了便宜、電路簡單、體積小與耗電低等優點,所以目前在業界極為廣泛地使用。比如要控制一個馬達就不需要使用一台PC來控制,只要一顆單晶片加上驅動電路就可以加以控制這顆馬達的運轉了 (圖 283)。
旱期開發單晶片表表者是Intel 8051。 | |
Intel P8051 |
8051是一種 8 bit 的單晶片微控制器,屬於MCS-51單晶片的一種,由英特爾公司於1981年製造。到現在,有更多的 IC 設計商,如 TI (Texas Instruments)、微芯科技 (Microchip)、芯科實驗室 (Silicon Labs) 、愛特梅爾 (Atmel)、飛利浦 (Philips)、華邦 (Winbond) 等公司,相繼開發了功能更多、更強大的兼容產品。
8051單晶片內有4平行8-bit埠,可處理地址匯流排、資料匯流排 和控制匯流排之順序邏輯運作。 整個系統的工作完全是依賴系統內部的時脈信號,用以來產生各種動作周期及同步信號。在8051單片機中已内置時鐘產生器,在使用時只需接上石英晶體 (12 MHz) 諧振器(或其它振盪子)及電容,就可以讓系統產生正確的時鐘信號。英特爾原來的8051系列的開發利用 NMOS 技術,但後來的版本中,在其名稱加入字母C(例如,80C51),確定使用 CMOS技術,這樣比NMOS節能源。這使它們更適合於電池供電設備。
8051工作原理和應用已經成為高等/職業學院電子工程系各類微型控制器的入門標準教材。
(圖 276) 8051內部流程結構
單片機基本上是硬件,需要配合軟件才可以運作。像桌上電腦,起始程式語言為組合語言或匯編語言 (Assembly Language)。隨後兼容和速度原因令C語言多被採用作程序編寫。
以下例子介紹單片機如何以組合語言編寫之簡單程式令LED閃亮:
設計之線路如 (圖277) 所示,單晶片用AT89S51 (8051系列)。全部單晶片不預置程式,要即場按需求編寫,再嵌入開發板運作。(圖278) 展示組合語言編寫之簡單程式。一般做法是先用一套模拟器 (emulator) 或模擬器作軟件測試,糾正程序錯誤後才最後嵌入開發板 (參考主題 10.2)。
(圖 277) LED閃亮線路 | (圖 278) 組合語言程式 | (圖 279) 完成裝備 |
10.1 單晶片的比特數
根據匯流排 (bus) 或資料 暫存器 (register) 的寬度,單晶片分為4 bit、8 bit、16 bit和32 bit單晶片。4 bit單晶片多用於冰箱、洗衣機、微波爐等家電控制 (圖283);8 bit、16 bit單晶片主要用於一般的控制領域,一般不使用作業系統 (OS);32 bit用於網路 操作、多媒體 處理等複雜處理的場合,一般要使用 嵌入式作業系統 (Embedded Operating System)。
英特爾 (Intel) 單晶片系列
* 8-bit 8051系列
Intel 8051系列歷史悠久,相容產品眾多,使用廣泛。
8XC42
MCS48
8xC251
* 16-bit
MCS96 系列
MXS296
* 32-bit
i960
10.2 單晶片的開發
單晶片的軟體開發中,以往多使用 組合語言 (Assembly Language),如今越來越多使用C語言,又或者使用BASIC 語言等更適合初學者的語言,部分整合式開發環境 (IDE) 支援C++。
傳統桌上電腦內置以作業系統開發軟件如微軟視窗之「Office」或網上下載之軟件如「Adobe Readers」,「Flash Player」等皆為現成的。但單晶片之軟件多數跟個人要求而編寫。一旦消除/糾正編寫錯誤,單晶片便會植入開發板,和應用設施一起保存。明顯例子是戶外大型商業視像顯示屏之單片機 (圖284)。
傳統桌上電腦內置以作業系統開發軟件如微軟視窗之「Office」或網上下載之軟件如「Adobe Readers」,「Flash Player」等皆為現成的。但單晶片之軟件多數跟個人要求而編寫。一旦消除/糾正編寫錯誤,單晶片便會植入開發板,和應用設施一起保存。明顯例子是戶外大型商業視像顯示屏之單片機 (圖284)。
ROM/EPROM for single chip microcomputer
這種安裝方法有點笨拙。千禧年後,MCU (Microcomputing Unit) 發展迅速,現時很多單晶片型號採用內置 ISP (In-System Programming) 設計 (圖282),晶片不用拔出開發板便可完成程式編寫過程。另一改良方法是用IAP (In-Application Programming),MCU 可從系統找尋程式或更新程式,目的是為了在產品發佈後可以方便地通過預留的通信口對產品中的固件程式進行更新升級。兩種方法差不多全面取代傳統之模拟器。這類模式生產有快捷、省時、簡化程序和增加成本效應優點。這類晶片型號有AT89S和AVR等系列。
(圖280) 8051 開發板 | (圖281) 8051模拟器 |
|
Video: Single chip microcontroller application commercial advertisement display board | |
(圖283) 8051 應用範圍 | (圖284) 單片機商用廣告板 |
Street scene application of single chip controller
An introduction to microcontroller
現時受消費者歡迎的單片機表表者是Arduino chip board 及其IDE (Integrated Development Environment) 之應用 (圖285, 286)。Arduino chip採用 ICSP (In-Circuit Serial Programming,線上串列編程)。這類單片機IDE廣泛用於智能機械人、航拍、3D 打印、手機 app 設計等。Arduino 單片機特性及可塑性非常適用於中小學之STEM 創意教育。
(圖285) Arduino ATMega328P | (圖286) Arduino Duemilanove |
這類單片機只容數字訊號輸入,e.g. USB 接口。化學反應實驗變數量化傳感器 (sensor),如 pH 電極和光敏電阻等皆輸出模擬訊號,因此有需要另加 A/D 變換介面 (A/D convertor interface) ,單片機才可以操作使用。
有別於學校購買之實驗數據記錄儀 (data logger) 可即時進行實驗,Arduino 單片機 IDE 則先要编寫好程式才可以使用,不宜作學校實驗儀器選項。實驗儀器目的在實驗本身,不是用來進行STEM探究。