微控制器
![本頁使用了標題或全文手工轉換](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 - 一個支持多種微控制器的編譯器自由軟件
- 一個免費提供單片機教程的網站
參見
|
|
|
|
|