小到电话,玩具,手机,各类刷卡机,计算机键盘,彩电,冰箱,空调,电磁炉,大到汽车,工业自动控制,机器人,室外LED广告板,甚至导弹导航装置等各行业往往不需要一整台功能强劲个人计算机透过操作系统 OS (Operation System) 如窗口来操作。通常是利用单芯片微电脑来控制。单芯片微型计算机简称为单片机,又称为微型控制器,是微型计算机的一个重要分支。
单片机是70年代中期发展起来的一种超大规模集成电路芯片,是集成CPU、RAM、ROM、I/O界面和中断系统于同一硅片上的电子 零件。80年代以来,单片机发展迅速,各类新产品不断涌现,出现了许多高性能新型型号,现已逐渐成为工厂自动化和各控制领域的支柱产业之一。因消费市场大,单芯片价钱不高。
一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM(数据存储-内存)、ROM(程序存储)、输入/输出设备(例如:串行口、并行输出口等)。在个人计算机上这些部份被分成若干块芯片,安装在一个称为主板 (mother board) 的印刷线路板上。但在单片机中,这些部份,全部被造到一块电路芯片中了,所以就称为单片机 (single-chip microcomputer)。
单芯片具备了便宜、电路简单、体积小与耗电低等优点,所以目前在业界极为广泛地使用。比如要控制一个马达就不需要使用一台PC来控制,只要一颗单芯片加上驱动电路就可以加以控制这颗马达的运转了 (图 283)。
旱期开发单芯片表表者是Intel 8051。 | |
Intel P8051 |
8051是一种 8 bit 的单芯片微控制器,属于MCS-51单芯片的一种,由英特尔公司于1981年制造。到现在,有更多的 IC 设计商,如 TI (Texas Instruments)、微芯科技 (Microchip)、芯科实验室 (Silicon Labs) 、爱特梅尔 (Atmel)、飞利浦 (Philips)、华邦 (Winbond) 等公司,相继开发了功能更多、更强大的兼容产品
8051单芯片内有4平行8-bit端口,可处理地址总线、数据总线 和控制总线之顺序逻辑运作。 整个系统的工作完全是依赖系统内部的频率讯号,用以来产生各种动作周期及同步讯号。在8051单片机中已内置时钟产生器,在使用时只需接上石英晶体 (12 MHz) 谐振器(或其它振荡子)及电容,就可以让系统产生正确的时钟讯号。英特尔原来的8051系列的开发利用 NMOS 技术,但后来的版本中,在其名称加入字母C(例如,80C51),确定使用 CMOS技术,这样比NMOS节能源。这使它们更适合于电池供电设备。
8051工作原理和应用已经成为高等/职业学院电子工程系各类微型控制器的入门标准教材。
(图 276) 8051内部流程结构
单片机基本上是硬件,需要配合软件才可以运作。像桌上计算机,起始程序语言为汇编语言或汇编语言 (Assembly Language)。随后兼容和速度原因令C语言多被采用作程序编写。
以下例子介绍单片机如何以汇编语言编写之简单程序令LED闪亮:
设计:闪亮LED
设计之线路如 (图277) 所示,单芯片用AT89S51 (8051系列)。全部单芯片不预置程序,要即场按需求编写,再嵌入开发板运作。(图278) 展示汇编语言编写之简单程序。一般做法是先用一套模拟器 (emulator) 或模拟器作软件测试,纠正程序错误后才最后嵌入开发板 (参考主题 10.2)。
(图 277) LED闪亮线路 | (图 278) 汇编程序 | (图 279) 完成装备 |
10.1 单芯片的比特数
根据 总线 (bus) 或资料 缓存器 (register) 的宽度,单芯片分为4 bit、8 bit、16 bit和32 bit单芯片。4 bit单芯片多用于冰箱、洗衣机、微波炉等家电控制 (图283);8 bit、16 bit单芯片主要用于一般的控制领域,一般不使用操作系统 (OS);32 bit用于网络 操作、多媒体 处理等复杂处理的场合,一般要使用 嵌入式操作系统 (Embedded Operating System)。
英特尔 (Intel) 单芯片系列
* 8-bit 8051系列
Intel 8051系列历史悠久,兼容产品众多,使用广泛。
8XC42
MCS48
8xC251
* 16-bit
MCS96 系列
MXS296
* 32-bit
i960
10.2 单芯片的开发
单芯片的软件开发中,以往多使用 汇编语言 (Assembly Language),如今越来越多使用C语言,又或者使用BASIC 语言等更适合初学者的语言,部分集成开发环境 (IDE) 支援C++。
传统桌上计算机内置以操作系统开发软件如微软窗口之「Office」或网上下载之软件如「Adobe Readers」,「Flash Player」等皆为现成的。但单芯片之软件多数跟个人要求而编写。一旦消除/纠正编写错误,单芯片便会植入开发板,和应用设施一起保存。明显例子是户外大型商业视像显示屏之单片机 (图284)。
单芯片和外围设备可视作一完整开发硬件 (图280)。单芯片如8051必需被编写程序才可执行指令。传统做法是从开发板拔去单芯片,插入一模拟器 (emulator, simulator) (图281) 进行程序编写和审查。模拟器连接计算机,编写程序,继而下载回模拟器,检查和纠正错误,再用编程器编写完整程序。编写好之单芯片再植入开发板,检视成绩,最后批量生产。用已刻录成ROM 之单芯片可作大规模生产,也有用 EPROM (可消除程序设计只读存储器) 作原型试用或少量应用。
ROM/EPROM for single chip microcomputer
这种安装方法有点笨拙。千禧年后,MCU (Microcomputing Unit) 发展迅速,现时很多单芯片型号采用内置 ISP (In-System Programming) 设计 (图282),芯片不用拔出开发板便可完成程序编写过程。另一改良方法是用IAP (In-Application Programming),MCU 可从系统找寻程序或更新程序,目的是为了在产品发布后可以方便地通过预留的通讯口对产品中的固件程序进行更新升级。两种方法差不多全面取代传统之模拟器。这类模式生产有快捷、省时、简化程序和增加成本效应优点。这类芯片型号有AT89S和AVR等系列。
(图280) 8051 开发板 | (图281) 8051模拟器 | (图282) AVR ISP开发板 |
(图283) 8051 应用范围 | (图284) 单片机商用广告板 |
Video: Single chip microcontroller application commercial advertisement display board
An introduction to microcontroller
现时受消费者欢迎的单片机表表者是Arduino chip board 及其IDE (Intergrated Development Environment) 之应用 (图285, 286)。Arduino chip采用 ICSP (In-Circuit Serial Programming,在线串行编程)。这类单片机IDE广泛用于智能机械人、航拍、3D 打印、手机 app 设计等。Arduino 单片机特性及可塑性非常适用于中小学之STEM 创意教育。
(图285) Arduino ATMega328P | (图286) Arduino Duemilanove |
这类单片机只容数字讯号输入,e.g. USB 接口。化学反应实验变数量化传感器 (sensor),如 pH 电极和光敏电阻等皆输出模拟讯号,因此有需要另加 A/D 变换接口 (A/D convertor interface) ,单片机才可以操作使用。
有别于学校购买之实验数据记录仪 (data logger) 可实时进行实验,Arduino 单片机 IDE 则先要编写好程序才可以使用,不宜作学校实验仪器选项。实验仪器目的在实验本身,不是用来进行STEM探究。