单片机


单晶片,全称单晶片微电脑(英语:single-chip microcomputer),又称微控制器单元(microcontroller unit),是把中央处理器、储存器、定时/计数器(timer/counter)、各种输入输出介面等都整合在一块积体电路晶片上的微型计算机。与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬体)和节约成本。它的最大优点是体积小,可放在仪表内部,但储存量小,输入输出介面简单,功能较低。由于其发展非常迅速,旧的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;由於单晶片微电脑常用于当控制器故又名single chip microcontroller。台湾称为「单晶片」;中国大陆则主要采用「单片机」,英文缩写为MCU。
概述
绝大多数现在的单晶片都是基于冯·纽曼结构的,这种结构清楚地定义了嵌入式系统所必需的四个基本部分:一个中央处理器核心,程式记忆体(唯读记忆体或者快闪记忆体)、资料记忆体(随机存取记忆体)、一个或者更多的定时/计数器,还有用来与外围装置以及扩充资源进行通信的输入/输出埠——所有这些都被整合在单个积体电路晶片上。
单晶片与通用型中央处理单元晶片不同在于前者一般很容易配合最小型的外部支援晶片制成工作电脑,这样就可以很容易的把单晶片系统植入装置内部来控制装置了。近年来为了在指令和资料上使用不同的字宽,并提高处理器线速度,哈佛结构在微控制器(Microcontrollers)和数位讯号处理器也逐渐得到了广泛的应用。
传统的微处理器是不允许这么做的。它要完成单晶片的工作,就必须连接一些其他晶片。比如说,因为晶片上没有资料记忆体,就必须要添加一些RAM的储存晶片,虽然所添加记忆体的容量很灵活,但是至少还是要添加。另外还需要添加很多连线来传递晶片之间的资料。与以上的情况相比,单晶片的工作则相对独立,一个典型的微控制器只需要一个时钟发生器和很少的RAM和ROM(或者EPROM, E2PROM)就可以在软体和晶振下工作了。同时,微控制器具有丰富的输入输出装置,例如类比数字转换器、定时器、序列埠,以及其他串行通讯介面,比如I2C,序列周边介面,控制器区域网路等。通常,这些整合在内部的装置可以通过特殊的指令来操作。
单晶片时钟频率通常较同时代的电脑晶片低,但它价格低廉,能够提供充足的程式记忆体、丰富的片上介面。某些架构的单晶片生产厂商众多,例如8051系列、Z80系列。一些现代的微控制器支援一些内建的高阶程式语言,比如BASIC(培基)语言、C语言、C++等。
单晶片的位元数
根据汇流排或资料暂存器的宽度,单晶片又分为4位元、8位元、16位元和32位元单晶片。4位元单晶片多用于冰箱、洗衣机、微波炉等家电控制中;8位元、16位元单晶片主要用于一般的控制领域,一般不使用作业系统;32位元用于网路操作、多媒体处理等复杂处理的场合,一般要使用嵌入式作业系统。
常见的单晶片
微芯(Microchip)的PIC系列出货量居于业界领导者地位;Atmel的51系列及AVR系列种类众多,受支援面广;德州仪器的MSP430系列以低功耗闻名,常用于医疗电子产品及仪器仪表中;瑞萨单晶片在日本使用广泛。

- ARM (Acorn RISC Machine)系列单晶片

-
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
-
恩智浦半导体
- LPC2000
- LPC900
- LPC700
- Parallax, Inc.
-
瑞萨科技系列单晶片
- 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系列单晶片等。
硬体
开发板可以进一步简化程式的开发和烧制过程。开发板可能包含实际晶片或是仿真器。通过配套的下载线连接电脑与开发板,在电脑上编写程式下载到开发板。批次生产会用到编程器。
软体开发环境
一些知名的微控制器开发环境有:
- 微芯公司的 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等等。该软体还附带了一些案例和丰富的帮助档案。
参考文献
外部连结
- SDCC - Small Device C Compiler - 一个支援多种微控制器的编译器自由软体
- 一个免费提供单晶片教程的网站