單晶片

将微型计算机的主要部分集成在一个芯片上的单芯片控制设备

單晶片(英語:Single-chip microcomputer,中國大陸作單片機,台灣作單晶片,全稱單晶片微電腦),是把中央處理器儲存器、定時/計數器(timer/counter)、各種輸入輸出介面等都整合在一塊積體電路晶片上的微型計算機。與應用在個人電腦中的通用微處理器相比,它更強調自供應(不用外接硬件)和節約成本,整合程度更高,但因為規格已經包含,所能實現的功能也較專一。它的最大優點是體積小,可放在儀表內部,但儲存量小,輸入輸出介面簡單。由於其發展非常迅速,舊的定義已過時,所以在很多應用場合被稱為範圍更廣的微控制器(microcontroller, MCU)。

80針腳TQFP封裝的PIC18F8720 微控制器
NEC單片機78K0S

概述

絕大多數現在的單晶片都是基於馮·諾伊曼結構的,這種結構清楚地定義了嵌入式系統所必需的四個基本部分:一個中央處理器核心,程式記憶體(唯讀記憶體或者快閃記憶體)、數據記憶體(隨機存取記憶體)、一個或者更多的定時/計數器,還有用來與外圍裝置以及擴充資源進行通訊的輸入/輸出埠——所有這些都被整合在單個集成電路晶片上。

單晶片與通用型中央處理單元晶片不同在於前者一般很容易配合最小型的外部支援晶片製成工作電腦,這樣就可以很容易的把單晶片系統植入裝置內部來控制裝置了。近年來為了在指令和數據上使用不同的字寬,並提高處理器線速度,哈佛結構在微控制器和數碼訊號處理器也逐漸得到了廣泛的應用。

傳統的微處理器是不允許這麼做的。它要完成單晶片的工作,就必須連接一些其他晶片。比如說,因為晶片上沒有數據記憶體,就必須要添加一些 RAM 的記憶晶片,雖然所添加記憶體的容量很靈活,但是至少還是要添加。另外還需要添加很多連線來傳遞晶片之間的數據。與以上的情況相比,單晶片的工作則相對獨立,一個典型的微控制器只需要一個時鐘發生器和很少的 RAM (SRAM) 和 ROM (EPROM, EEPROM) 就可以在工作了。同時,微控制器具有豐富的輸入輸出裝置,例如模擬數字轉換器、定時器、序列埠,以及其他串行通訊介面,比如 I2C 匯流排序列周邊介面控制器區域網路等。通常,這些整合在內部的裝置可以通過特殊的指令來操作。

單晶片時鐘頻率通常較同時代的電腦晶片低,但它價格低廉,能夠提供充足的程式記憶體、豐富的片上介面。某些架構的單晶片生產廠商眾多,例如 8051 系列、Z80 系列。一些現代的微控制器支援一些內建的高階程式語言,比如 BASIC 語言、CC++等。

單晶片的位數

根據匯流排或資料暫存器的寬度,單晶片又分為 4 位、8 位、16 位和 32 位元單晶片。4 位單晶片多用於冰箱、洗衣機、微波爐、燈具等簡單的家電控制中;8 位、16 位單晶片主要用於一般的控制領域,例如遙控器手把、空調、發動機等,一般不使用作業系統;32 位用於網絡操作、多媒體處理等複雜處理的場合,一般要使用嵌入式作業系統,例如電視、車機、監視器等產品。

常見的單晶片

生產這種產品的供應商眾多而且技術各有所長,微芯(Microchip)的 PIC 系列出貨量居於業界領導者地位;Atmel 的 51 系列及 AVR 系列種類眾多,受支援面廣,滿足各種場景的市場需求;德州儀器MSP430 系列以低功耗聞名,常用於醫療電子產品及儀器儀表中;瑞薩單晶片在日本汽車業中使用廣泛。

 
WDC的W65C265S8PL單晶片
  • 英特爾
    • 8-bit 8051系列
      • 8XC42
      • MCS48
      • MCS51 : Intel 8051系列歷史悠久,相容產品眾多,使用廣泛
      • 8xC251
    • 16-bit
      • MCS96系列
      • MXS296
    • 32-bit
      • i960
  • ARM (Acorn RISC Machine)系列單晶片
 
兩顆Atmel牌的ATmega單晶片
  • 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(賽普拉斯微系統公司)
  • 飛思卡爾半導體(原摩托羅拉)
    • 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)
  • 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
  • 瑞薩科技系列單晶片(由原日立,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
  • 意法半導體
    • 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 等等。該軟件還附帶了一些案例和豐富的幫助檔案。

參考文獻

外部連結

參見