微控制器

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

微控制器(microcontroller)是将计算机集成在一块集成电路上。在 20 世纪 80 年代,常使用术语单芯片微型计算机(single-chip microcomputer),即单片机。微控制器包含中央处理单元(CPU),存储器(RAM,ROM)和输入/输出外设(I/O peripheral),ROM 主要采用 NOR Flash、EEPROM,RAM 则采用 SRAM。[1]

80 引脚 TQFP 封装的 PIC18F8720 微控制器
NEC單片機78K0S

微控制器专为嵌入式应用而设计,与个人计算机中使用的微处理器形成鲜明对比,在嵌入式系统中,被称为 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 语言、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 等等。该软件还附带了一些案例和丰富的帮助文件。

参考文献

编辑
  1. ^ 1974: General-Purpose Microcontroller Family is Announced | The Silicon Engine | Computer History Museum. www.computerhistory.org. [2024-09-05]. 
  2. ^ alldatasheet.com. TMS1000NC Datasheet(PDF). www.alldatasheet.com. [2024-09-05] (英语). 
  3. ^ alldatasheet.com. MN1500 Datasheet(PDF). www.alldatasheet.com. [2024-09-05] (英语). 

外部链接

编辑

参见

编辑