微控制器(MCU)架构介绍
- 格式:doc
- 大小:147.50 KB
- 文档页数:10
微控制器(MCU)架构介绍
微控制器(Microcontroller)又可简称MCU或μC,也有人称为单芯片微控制器(Single Chip Microcontroller),将ROM、RAM、CPU、I/O集合在同一个芯片中,为不同的应用场合做不同组合控制。微控制器在经过这几年不断地研究、发展,历经4位、8位,到现在的16位及32位,甚至64位。产品的成熟度,以及投入厂商之多、应用范围之广,真可谓之空前。目前在国外大厂因开发较早、产品线广,所以技术领先,而本土厂商则以多功能为产品导向取胜。但不可讳言的,本土厂商的价格战是对外商造成威胁的关键因素。
由于制程的改进,8位MCU与4位MCU价差相去无几,8位已渐成为市场主流;针对4位MCU,大部份供货商采接单生产,目前4位MCU大部份应用在计算器、车表、车用防盗装置、呼叫器、无线电话、CD Player、LCD驱动控制器、LCD Game、儿童玩具、磅秤、充电器、胎压计、温湿度计、遥控器及傻瓜相机等;8位MCU大部份应用在电表、马达控制器、电动玩具机、变频式冷气机、呼叫器、传真机、来电辨识器(Caller ID)、电话录音机、CRT Display、键盘及USB等;16位MCU大部份应用在行动电话、数字相机及摄录放影机等;32位MCU大部份应用在Modem、GPS、PDA、HPC、STB、Hub、Bridge、Router、工作站、ISDN电话、激光打印机与彩色传真机;64位MCU大部份应用在高阶工作站、多媒体互动系统、高级电视游乐器(如SEGA的Dreamcast及Nintendo 的GameBoy)及高级终端机等。
而在MCU开发方面,以架构而言,可分为两大主流;RISC(如HOLTEK HT48XXX系列)与CISC(如华邦W78系列). RISC (Reduced Instruction Set Computer) 代表MCU的所有指令都是利用一些简单的指令组成的,简单的指令代表MCU 的线路可以尽量做到最佳化,而提高执行速率,相对的使得一个指令所需的时间减到最短。HOLTEK的HT46XX(A/D MCU系列) HT47XX(R to F MCU系列) HT48XX(一般I/O MCU系列) HT49XX(LCD MCU系列) 便是采用RISC 结构来设计。不管是RISC 或是CISC(Complex Instruction Set Computer),设计MCU的目的便是为人类服务的,对于RISC 来说,因为指令集的精简,所以许多工作都必须组合简单的指令,而针对较复杂组合的工作便需要由『编译程序』(co mpi ler) 来执行,而CISC MCU因为硬件所提供的指令集较多,所以许多工作都能够以一个或是数个指令来代替,compiler 的工作因而减少许多。
<
图1:MCU 架构方块示意图。
程序内存
程序内存(Program ROM)在微控制器中是只读而不可写入之记忆单元,此内存主要用来放置使用者所开发之程序,而其性质乃属于不常更动或永不变动之资料,微控制器之动作便是依据储存于此区之程序指令运作。在8 位单芯片中常见的程序内存容量有、IK、2K、4K 及 8K,而通常应用在微控制器的程序内存有下列几种方式,见(表一):
)
表1:在微控制器的程序内存通常有几种方式。
另外关于程序保密部分,不论是加密或保险丝烧断保护,都是为了防止程序被未授权之使用者窥看、窃取(如反组译程序、修改内容、盗取程序等)。程序保密这个功能选择只在提供 OTP、开窗型包装、EEPROM 及 Flash ROM 上使用,因为这些 IC 可借由烧录器来回读取程序代码,在Mask 版本则不需要进行程序保密的步骤。随机存取内存随机存取内存(Random Access Memory;RAM),亦称为读/写内存(Read-Write Memory),常是被用来暂时存放资料、或是程序执行存放资料的地方,用途相当广泛。以HOLTEK 8位微控制器为例,其容量有64、96、160 及224 个Byte 选择。
累积器
累积器(Accumul at or),是MCU 的运作中枢,80%的指令都与累积器有关 ;资料可以被存放在累积器中,直到总线或其它单元准备接受它、或直到程序需要它为止。
》
缓存器
缓存器(Register)是MCU 内部用来暂时存放资料的地方,每个缓存器的功能各不相同,但却有一共同的特性,就是可以直接读/写,因其位于MCU的内部,故减少了一些不必要的等待及寻址时间,另外有些MCU的I/O Port,也以缓存器型态来直接存取控制。
堆栈及堆栈指针
@
堆栈(Stack)及堆栈指针(Stack Pointer),堆栈就和盘子一样,一个一个由下往上堆,而取出时则由上一个一个往下拿,不能由中间抽出,因此又称为后进先出队列(Last-In-First-Out Queues)—LIFO。功能如下:
一. 暂时存放PC(Program Count)的值,适用于"子程序呼叫”,或中断发生时将PC 的值暂时储存起来;
二. 可视为缓存器使用,以Push,Pop来完成;
三. 有些MCU其Stack Level 数是固定的(如HOLTEK μC 系列),有些则可自定。运算逻辑单元。
运算逻辑单元(Algorithm Logic Unit;ALU),其功能在于执行算术指令及逻辑判断,除了产生结果之外,也产生相关的Flag(Zero、Carry、Borrow、Status),每一个MCU 都不完全一样,尤其是Carry Flag 一定要查看指令解说表。
)
输入/输出(I/O Port)
在单芯片微电脑应用系统中,I/O的扩充不是目的,而是为了提供外部设备一个输入/输出的信道,作为外界与MCU间的沟通管道。例如接键盘、显示器、驱动开关控制
或测量等,在I/O扩充时必须考虑与之相连接的外围设备硬件电路特性,如:电位匹配、干扰抑制、驱动能力(如Source,Sink能力)等。
微控制器在I/O 埠方面备有多种电路形式,其中有多端口可以经由软件以位单位来设定输出/入方向。各埠附加大电流、高耐压的缓冲器,以直接驱动LED与高功率晶体管,以及做模拟讯号的输入之用。
定时器、定时器
定时器(Time Counter)、定时器(Timer),由外加振荡晶体,经分频电路来提供MCU 数种不同的时基(Time Base)。常应用于:
!
一. 时钟之时基(如1sec、500ms、、等);
二. PWM(Pulse Width Modul at ion)之Time Base;
三. Key S can;
四. LED Scan;
五. Frequency output;
…
六. Pulse Reading;
七. APO (Auto Power OFF)等。计数器
计数器(Event Counter)专用于累计外部的事件个数,可能为Pulse 或其它资料,也可用以产生正确的时间延迟。常应用于:
一、另一种Time Base,外加固定频率; 二、计数器; 三、可规划成另一种立即中断输入;四、计速器(Speed Meter)、转速表(Tachometer)。
中断