微控制器
![本頁使用了標題或全文手工轉換](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
![](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/1/18/PIC18F8720.jpg/220px-PIC18F8720.jpg)
![](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/b/ba/78K0S_Do-It.jpg/220px-78K0S_Do-It.jpg)
微控制器(microcontroller)是將電腦整合在一塊積體電路上。在 20 世紀 80 年代,常使用術語單晶片微型電腦(single-chip microcomputer),即單晶片。微控制器包含中央處理單元(CPU),記憶體(RAM,ROM)和輸入/輸出外設(I/O peripheral),ROM 主要採用 NOR Flash、EEPROM,RAM 則採用 SRAM。[1]
微控制器專為嵌入式應用而設計,與個人電腦中使用的微處理器形成鮮明對比,在嵌入式系統中,被稱為 MCU (microcontroller unit)。
微控制器用於自動控制的產品和裝置,如汽車發動機控制系統、植入式醫療裝置、遙控器、辦公機器、電器、電動工具、玩具和其他嵌入式系統。與使用單獨的微處理器、記憶體和輸入/輸出裝置的設計相比,通過減小尺寸和成本,微控制器使更多裝置和過程的數字控制變得切實可行。混合訊號微控制器很常見,整合了控制非數字電子系統所需的模擬組件。在物聯網的背景下,微控制器是一種經濟且流行的數據收集、傳感和驅動物理世界的邊緣裝置。
歷史
背景
1969 年的 Four-Phase Systems AL1 和 1970 年的 Garrett AiResearch MP944 是首批使用多個 MOS LSI 晶片的多晶片微處理器。第一款商用微處理器是 1971 年發佈的 Intel 4004,它由 Federico Faggin 開發,並由 Marcian Hoff、Stan Mazor 和 Masatoshi Shima 等工程師共同完成。Intel 4004 使用了 Faggin 的矽柵 MOS 技術,並在一塊單一的晶片上實現。緊隨其後的是 4 位的 Intel 4040、8 位的 Intel 8008 和 Intel 8080。然而,這些早期微處理器需要額外的晶片來實現記憶體和外設介面,導致完整的系統價格昂貴(在 1970 年代,在美國售價數百美元)。因此,在小型家用電器中使用電腦化技術並不經濟。
MOS Technology 於 1975 年推出了價格低於 100 美元的微處理器 6501 和 6502。他們的主要目標是降低這一成本壁壘,但這些微處理器仍然需要外部支援、主記憶體和外圍晶片,這使得系統總成本保持在數百美元左右。
發展
1971 年,TI 工程師 Gary Boone 和 Michael Cochran 將唯讀記憶體、讀/寫記憶體、處理器和時鐘組合在一個晶片上,並稱作一晶片微型電腦(one-chip microcomputer),產品名為 TMS 1000,並於1974 年投入商業使用。這可能就是世界上第一個微控制器。[2]
在 20 世紀 70 年代初至中期,日本電子製造商開始生產嵌入式晶片,它們給這種晶片命名為單晶片微型電腦(single-chip microcomputer),包括用於車載娛樂、自動雨刷、電子鎖和儀錶板的 4-bit 單晶片,以及用於發動機控制的 8-bit 單晶片。[3]
為了應對 TMS 1000,Intel 開發了一種針對控制應用進行最佳化的片上電腦系統,即 Intel 8048,並於 1977 年首次發貨,命名為微控制器(microcontroller)。
概述
絕大多數現在的單晶片都是基於馮·諾伊曼結構的,這種結構清楚地定義了嵌入式系統所必需的四個基本部分:一個中央處理器核心,程式記憶體(唯讀記憶體或者快閃記憶體)、數據記憶體(隨機存取記憶體)、一個或者更多的定時/計數器,還有用來與外圍裝置以及擴充資源進行通訊的輸入/輸出埠——所有這些都被整合在單個集成電路晶片上。
單晶片與通用型中央處理單元晶片不同在於前者一般很容易配合最小型的外部支援晶片製成工作電腦,這樣就可以很容易的把單晶片系統植入裝置內部來控制裝置了。近年來為了在指令和數據上使用不同的字寬,並提高處理器線速度,哈佛結構在微控制器和數碼訊號處理器也逐漸得到了廣泛的應用。
傳統的微處理器是不允許這麼做的。它要完成單晶片的工作,就必須連接一些其他晶片。比如說,因為晶片上沒有數據記憶體,就必須要添加一些 RAM 的記憶晶片,雖然所添加記憶體的容量很靈活,但是至少還是要添加。另外還需要添加很多連線來傳遞晶片之間的數據。與以上的情況相比,單晶片的工作則相對獨立,一個典型的微控制器只需要一個時鐘發生器和很少的 RAM (SRAM) 和 ROM (EPROM, EEPROM) 就可以在工作了。同時,微控制器具有豐富的輸入輸出裝置,例如模擬數字轉換器、定時器、序列埠,以及其他串行通訊介面,比如 I2C 匯流排,序列周邊介面,控制器區域網路等。通常,這些整合在內部的裝置可以通過特殊的指令來操作。
單晶片時鐘頻率通常較同時代的電腦晶片低,但它價格低廉,能夠提供充足的程式記憶體、豐富的片上介面。某些架構的單晶片生產廠商眾多,例如 8051 系列、Z80 系列。一些現代的微控制器支援一些內建的高階程式語言,比如 BASIC 語言、C、C++等。
單晶片的位數
根據匯流排或資料暫存器的寬度,單晶片又分為 4 位、8 位、16 位和 32 位元單晶片。4 位單晶片多用於冰箱、洗衣機、微波爐、燈具等簡單的家電控制中;8 位、16 位單晶片主要用於一般的控制領域,例如遙控器手把、空調、發動機等,一般不使用作業系統;32 位用於網絡操作、多媒體處理等複雜處理的場合,一般要使用嵌入式作業系統,例如電視、車機、監視器等產品。
常見的單晶片
生產這種產品的供應商眾多而且技術各有所長,微芯(Microchip)的 PIC 系列出貨量居於業界領導者地位;Atmel 的 51 系列及 AVR 系列種類眾多,受支援面廣,滿足各種場景的市場需求;德州儀器的 MSP430 系列以低功耗聞名,常用於醫療電子產品及儀器儀表中;瑞薩單晶片在日本汽車業中使用廣泛。
![](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/a/ad/W65C265S8PL-8_lg.jpg/220px-W65C265S8PL-8_lg.jpg)
- ARM (Acorn RISC Machine)系列單晶片
![](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/c8/Microcontrollers_Atmega32_Atmega8.jpg/220px-Microcontrollers_Atmega32_Atmega8.jpg)
- AVR系列(愛特梅爾公司)
- Atmel AT91 series (ARM 處理器等)
- AT90 series – AVR (Atmel 的高效能RISC 8位元單晶片,老產品)
- ATmega series – AVR (Atmel 的高效能RISC 8 位單晶片,新產品)
- ATXmega series – AVR (Atmel 的高效能RISC 32 位單晶片,新產品)
- Atmel AT89 series (Intel 8051/MCS51 架構8位元單晶片)
- MARC4
- Cypress MicroSystems(賽普拉斯微系統公司)
- CY8C2xxxx (PSoC)
- 飛思卡爾半導體(原摩托羅拉)
- 8-bit
- 68HC05 (CPU05)
- 68HC08 (CPU08)
- 68HC11 (CPU11)
- 16-bit
- 68HC12 (CPU12)
- 68HC16 (CPU16)
- Freescale DSP56800 (DSPcontroller)
- 32-bit
- Freescale 683XX (CPU32)
- MPC500
- MPC 860 (PowerQUICC)
- MPC 8240/8250 (PowerQUICC II)
- MPC 8540/8555/8560 (PowerQUICC III)
- 8-bit
- Holtek(盛群半導體)
- HT48FXX Flash I/O type
- HT48RXX I/O type
- HT46RXX A/D type
- HT49RXX LCD type
- 微晶片科技(微芯公司)的PIC微控制器系列
- 8-bit : PIC10 PIC12 PIC16 PIC18
- 16-bit : PIC24F PIC24H dsPIC30 dsPIC33
- 32bit : PIC32 (採用MIPS M4K 核心架構)
- NEC
- 78K
- Parallax, Inc.
- 瑞薩科技系列單晶片(由原日立,NEC,三菱合併)
- Renesas 16-bits
- Renesas M16C Series
- Renesas M32C Series
- Renesas R8C Series
- Renesas M16C/Tiny Series
- Renesas R8C/Tiny Series
- Renesas H8/Tiny Series
- Renesas 16-bits
- 意法半導體
- STM32 series (ARM Cortex-M3 系列,32位元)
- STM8 series (自主RISC指令集,8位元)
- SyncMOS 新茂國際科技全系列單晶片
- SM59RXXA2 8-bits 1T(RISC)
- SM59DXXG2 8-bits 6T(ISP)
- SM59XX 8-bits 12T(ISP)
- SM89XX 8-bits 12T(Traditional 8051)
- SM79XX 8-bits 12T(Customization)
- PADAUK 應廣科技全系列單晶片(多核心單晶片)
- P201CS/CD 8-bits
- P211CS/CD 8-bits
- p232CS/CD 8-bits
- P234CS/CD 8-bits
- ZiLOG
- Z8
- Z86E02
- STC 宏晶系列單晶片
- STC89C series 6T/12T 增強性單晶片 (Intel 8051架構,有外部匯流排)
- STC11F/11L series 2T 增強性單晶片 (Intel 8051增強架構,無外部匯流排程式支援)
- STC12C/12LE series 2T 增強性單晶片 (Intel 8051增強架構,無外部匯流排程式支援)
- STC15C/15LE series 2T 增強性單晶片 (Intel 8051增強架構,無外部匯流排程式支援,正在開發中)
- Kernel-IC 華芯單晶片 LS系列
- LSx051 series 12T 雙核單晶片(Intel 8051架構,無外部匯流排)
- LSx151 series 12T 三核單晶片(Intel 8051架構,無外部匯流排)
- LS052A series 6T 三核單晶片(Intel 8051架構,無外部匯流排)
- 新唐科技 Nuvoton NuMicro Family
- 8051 單晶片 (8-bits)
- ARM Cortex-M0 單晶片 (32-bits)
- ARM Cortex-M4 單晶片 (32-bits)
其他系列的單晶片
- MSP430系列單晶片
- LM3S系列單晶片
- 北京君正 JZ系列單晶片
- 8098、80196系列單晶片
- AT8P5X系列單晶片
- CZG8000系列單晶片
單晶片的開發
單晶片的軟件開發中,以往多使用匯編語言,如今越來越多的使用 C 語言,又或者使用 BASIC語言 等更適合初學者的語言,部分整合式開發環境支援C++。單晶片的軟件測試需要使用單晶片開發器或模擬器。
隨着技術的發展,2000年後已經有很多單晶片內建了ISP(線上編程設計)或支援IAP,徹底地改變了傳統的開發模式,使得開發單晶片系統時不會損壞晶片的引腳,加速了產品的上市並降低了研發成本,縮短了從設計、製造到現場除錯的時間,簡化了生產流程,大大提高了工作效率。這類單晶片包括AT89S系列單晶片、AVR系列單晶片等。
硬件
開發板可以進一步簡化程式的開發和燒制過程。開發板可能包含實際晶片或是仿真器。通過配套的下載線連接電腦與開發板,在電腦上編寫程式下載到開發板。批次生產會用到編程器,或是掩膜印刷方式(Mask ROM),後者是晶片本身終身搭載固定程式(不可重新編程),意味着僅適用於特定成品。
軟件開發環境
一些知名的微控制器開發環境有:
- 微芯公司的 MPLAB IDE 可用於該公司全系列微控制器的開發與除錯,除支援該公司的 ASM組譯器 C語言編譯器外,也支援許多第三方的編譯器。
- ARM公司的 μVision 整合開發環境(原為 Keil 公司產品,2005年該公司已由 ARM 購併),包含組譯器與 C編譯器,可用於51單晶片及ARM開發。
- ARM公司的Mbed,可以使用線上IDE來開發。
Proteus
Proteus 軟件是初學者入門的首選軟件,它是 Labcenter Electronics 公司的一款商業版電路設計與仿真軟件。內包括 ISIS、ARES 等軟件模組。ARES 模組主要用來完成 PCB 的設計,ISIS 模組用來完成電路原理圖的布圖與仿真。
Proteus 的軟件仿真基於 VSM 技術,它與其他軟件最大的不同也是最大的優勢就在於能仿真大量的單晶片晶片,比如 MCS-51 系列、PIC 系列等等,甚至 ARM 處理器,以及單晶片外圍電路,比如鍵盤、LED、LCD 等等。該軟件還附帶了一些案例和豐富的幫助檔案。
參考文獻
- ^ 1974: General-Purpose Microcontroller Family is Announced | The Silicon Engine | Computer History Museum. www.computerhistory.org. [2024-09-05].
- ^ alldatasheet.com. TMS1000NC Datasheet(PDF). www.alldatasheet.com. [2024-09-05] (英語).
- ^ alldatasheet.com. MN1500 Datasheet(PDF). www.alldatasheet.com. [2024-09-05] (英語).
外部連結
- SDCC - Small Device C Compiler - 一個支援多種微控制器的編譯器自由軟件
- 一個免費提供單晶片教程的網站
參見
|
|
|
|
|