历史上的今天
返回首页

历史上的今天

今天是:2025年04月05日(星期六)

2018年04月05日 | 微控制器(MCU)架构分析

2018-04-05 来源:eefocus

    微控制器(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 来说,因为指令集的精简,所以许多工作都必须组合简单的指令,而针对较复杂组合的工作便需要由『编译程序』(compiler) 来执行,而 CISC MCU因为硬件所提供的指令集较多,所以许多工作都能够以一个或是数个指令来代替,compiler 的工作因而减少许多。

     图 1:MCU 架构方块示意图。

    程序内存

    程序内存(Program ROM)在微控制器中是只读而不可写入之记忆单元,此内存主要用来放 置使用者所开发之程序,而其性质乃属于不常更动或永不变动之资料,微控制器之动作便是 依据储存于此区之程序指令运作。在 8 位单芯片中常见的程序内存容量有 0.5K、IK、2K、4K 及 8K,而通常应用在微控制器的程序内存有下列几种方式,见(表一):

345

 表 1:在微控制器的程序内存通常有几种方式。

    另外关于程序保密部分,不论是加密或保险丝烧断保护 ,都是为了防止程序被未授权之使 用者窥看、窃取(如反组译程序 、修改内容 、盗取程序等)。程序保密这个功能选择只在提供 OTP、开窗型包装、EEPROM 及 FLASH ROM 上使用,因为这些 IC 可借由烧录器来回读取程序代码,在 Mask 版本则不需要进行程序保密的步骤 。 随机存取内存随机存取内存(Random ACCess Memory;RAM),亦称为读/写内存(Read-Write Memory),常是被用来暂时存放资料、或是程序执行存放资料的地方,用途相当广泛。以 HOLTEK 8 位 微控制器为例,其容量有 64、96、160 及 224 个 Byte 选择。

    累积器

    累积器(Accumulator),是 MCU 的运作中枢 ,80%的指令都与累积器有关 ;资料可以被存 放在累积器中,直到总线或其它单元准备接受它、或直到程序需要它为止 。

    缓存器

    缓存器(Register)是 MCU 内部用来暂时存放资料的地方,每个缓存器的功能各不相同,但 却有一共同的特性,就是可以直接读/写,因其位于 MCU 的内部,故减少了一些不必要的 等待及寻址时间,另外有些 MCU 的 I/O Port,也以缓存器型态来直接存取控制。

    堆栈及堆栈指针

    堆栈(Stack)及堆栈指针(Stack Pointer),堆栈就和盘子一样,一个一个由下往上堆,而取出 时则由上一个一个往下拿,不能由中间抽出,因此又称为后进先出队列(Last-In-First-Out Queues)」。功能如下;

    一. 暂时存放 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、62.5ms、15.625ms 等);

    二. PWM(Pulse Width Modulation)之 Time Base;


    三. Key SCAN;

    四. LED Scan;

    五. Frequency output;

    六. Pulse Reading;

    七. APO (Auto Power OFF)等。 计数器


    计数器(Event Counter)专用于累计外部的事件个数,可能为 Pulse 或其它资料,也可用以 产生正确的时间延迟。常应用于:

    一、另一种 Time Base,外加固定频率; 二、计数器; 三、可规划成另一种立即中断输入;

    四、计速器(Speed Meter)、转速表(Tachometer)。 中断中断(Interrupt)用来处理立即事件、或列为优先处理之事件,负责时间计数器超时中断、及 外部事件产生中断请求等工作。大部分微控制器的中断处理系统是多层的,内设有中断优先 级电路,以决定先后顺序。常应用于:

    一、MCU 呈被动 Standby 状态(Halt-Stop),由外加信号来 Wakeup;

    二、需要立即处理(传感器、开关、警报器、电源故障预警器); 三、需要一个固定间隔来处理(Display ,Key Scan ,Read-Time CLOCk); 微控制器上的外围资源

    看了这么多微控制器的的基本架构后,让我们继续来了解微控制器还可以加挂那些外围资 源,以扩充、延伸其功能。

    串行输出(Serial I/O)

    微控制器内含 Serial I/O 是为了提供对外部外围 DevICe 的通讯管道,各家种类不同,常见 的有以下几种:

    ◆UART(Universal Asynchronous Receiver Transmitter):Intel,Atmel;

    ◆USART(Universal Synchronous/Asynchronous Receiver Transmitter ):Siemens;

    ◆SPI(Serial Peripheral Interface):Motorola;

    ◆SCI(Sertal Communications Interface):这是 UART 的加强版;

    ◆I2C bus(lnter Integrated Circuit bus):Philips;

    ◆Microwire/Plus:National SEMIconductor;

    液晶驱动装置(LCD Driver)

    在显示接口上,LCD(Liquid Crystal Display)是常运用的显示装置,例如在一些多功能的电 话、数字温度计、呼叫器、大哥大、掌上型游戏机以上皆可以发现它的踪迹。因此内含 LCD 驱动线路的微控制器运用相当广泛,有两种驱动方式可供选用:Segment 和 Dot Matrix, 例如:之前流行的宠物蛋是使用 Dot Matrix 的 LCD 显示器;日系的微控制器厂商提供多样内含 LCD 驱动装置的微控制器可供选用,另外 HOLTEK HT49XX 系列 也提供 LCD 驱动装置 的微控制器。

    萤光管驱动装置(VFT Driver)

    LCD 显示器在无光源或无背光的环境下,我们即无法读取显示器之内容,而 VFT 显示器可提供高亮度、且色彩多变化的视觉效果,常应用于高级的家电产品上,如:碟影机、DSP 均 衡器。要求炫丽输出效果的产品,在微控制器的选择上 VFT(Vacuum Fluorescent Tube)Driver 是重要的资源之一。

    OSD对于电视及监视器人性化接口是不可缺少的功能之一,OSD(On Screen Display)部分显示 回路为接收水平同步信号(H-Sync)及垂直同步信号(V-Sync),再将信号透过 RGB 及Blanking 将屏幕信息送出,其显示颜色至多可达八种。各微控制器指令执行速率会造成 OSD的显示行数及字段的不同,显示行数由二行至数十行,字段则由 15~26 个字符或更多,通 常执行速率较快者可显示较多的行数、字段,速率较慢者在显示上会有直接的受限。

    模拟转换数字接口(ADC)

    由于微控制器诸多应用上,需要侦测外部环境状况,做为处理数据上的参考,如在 TV 应用 方面其调谐器(Tuner)之自动频率控制(Auto Frequency Control)讯号,即为电压讯号,其它 如温度之侦测也多是转换为电压讯号,所以模拟/数字转换(Analog to Digital Converter)的应 用在工业及消费电子上都很广泛。

    模拟之场合是如此频繁,所以各厂家提供模拟/数字之转换便成为一般之标准规格(如HOLTEK HT46XX 系列),虽然如此,对于模拟/数字之分辨率各家差异很大,由 3 位~10 位 皆有,视各不同需求而异。虽然提供的转换信道有很多,通常内部仅有一个电路处理,靠选 择器切换,对于时间考虑不是特别强调之应用上,不致有太大之影响。

    另外还有一种模拟/数字之转换方式,就是 R to F(Resistance to Freguency),一般运用在温度/湿度之侦测,利用电阻/电容式 Sensor 的变化特性,转换成频率值,以此频率值来计算温度/湿 度的相对性,此类的 IC 如 HOLTEK HT47XX 系列。

    数字转换模拟接口(DAC)

    在控制模拟组件需要模拟讯号,以微控制器而言,就必须内建数字/模拟转换(Digital toAnalog Converter)来因应.其内部由数字/模拟转换缓存器及一阶梯电阻构成,数字/模拟的分 辨率各为 8 位.在一个 8 位/参考电压为 5V 的微控制器,假设一个数字值 60 转换成模拟值的 计算方式是(60/256x5Volts)=1.171875V例如应用在锁相回路上,VCO(电压控制振荡器)即可用 DAC 做控制。另外 Voice IC 也是利用原先将语音录制成数字资料,然后用 DAC 方式将数字资料音频转换还原模拟语音讯号。 脉宽调变(PWM)其目的也是以数字输出搭配外围回路,达到模拟的效果,其组成有前置配器(Pre-divider)、 计数器(Counter)、数据闩锁(Data Latches)、及比较电路(Compare Circuits)等。PWM(Pulse Width Modulation)分辨率由程控,当然在一般的 I/O 埠 亦可用时间及 Duty Cycle 计算技巧来达成 PWM 之功能,但反应速度会受到限制,且以今 日各大半导体厂家皆提供其 PWM 功能之微控制器就便利性而言 (如 HOLTEK HT46XX 系 列),实在不需再将心思放在 PWM 之撰写上,以减轻软件的负担。而 PWM 之功能由 6 位~14 位之分辨率,适合各种不同的需求。

    DTMF 产生器、接收器电话由原来的 Pulse 演进为现在的 Tone 译码方式,不但提高了译码的速度,也增加了可靠 性与抗噪声能力,DTMF(Dual Tone Multiple Frequency)顾名思义就是混合两种频率的音频 讯号,所以译码不易出差错。应用在电话产品的微控制器时,DTMF 这个资源常是选择的重 要规格。

    看门狗(Watchdog Timer)微控制器在产品中是不允许当机的,但受到噪声干扰或操作不当时,需有防范措施确保微控 制器在当机的情况下能够自动重置,让微控制器能够继续运作.我们可以说看门狗

    (Watchdog timer)是用来监看微控制器是否为不正常的当机,许多微控制器都已把它列为标准配备。

    看门狗定时器实际上就像一个自跑式的 RC 振荡器,它完全不必外加零件,意即不管是芯片 的时脉振荡接脚的时脉振荡有没有停止,它还是继续计数而不随之中断而停止,即便是芯片 进入省电的 Halt 状态(在 Halt 状态下,芯片之时脉停止振荡也一定不曾停止 Watchdog timer 之计时,当计时逾时后将使本芯片自动重置,I/O 脚输出保持不变,耗电相当的省),Watchdog timer 要不要致能,在 OTP 版本必须在程序烧录时决定,以便决定要不要烧断其保险丝,在 Mask 版本由使用者选择是否使用这个功能。

    双时脉(Dual Clock)微控制器的供应时脉愈高时 ,相对地耗电量也愈大 因此在一些使用电池供应的产品选用时 ,双时脉常是必须考虑的功能 ,一般副时脉是以 32.768KHz 运作,主要做为计时(RealTime Clock)之用。

    所以综合上面所言,微控制器的指令集结构较单纯、容易发展及修改、I/O 及中断处理能力 强,主要发展工作集中在软件设计上,只要透过发展系统(ICE:In-Circuit Emulator)及万用板 即可进行线上仿真工作,进行设计及修改的工作。由于微控制器具备单价低、系统硬件架构 简单、应用程序的发展及修改容易、芯片稳定度佳、可靠度高,是故其应用领域极广,几乎 是无所不在。故在不同的场合选择不同的配备,充份了解微控制器的内部资源将有助于产品 开发且降低成本。相信在未来会陆续增加新的外围资源于微控制器内,应用的范围也愈来愈 广,也因目前已经取代传统电路设计观念,进而成为新的设计主流。


推荐阅读

史海拾趣

屹晶微(EG)公司的发展小趣事

屹晶微的创始人黄米龙,原本在发电厂从事电气运营工作长达八年。这段经历让他对电子领域有了深入的了解和浓厚的兴趣。然而,他并没有满足于现状,而是看到了中国芯片产业的巨大潜力和发展空间。于是,在2007年,他毅然决定从发电厂辞职,利用自己的积蓄和借来的资金,在台州创立了屹晶微电子有限公司。

在创立初期,屹晶微面临着资金短缺、技术落后和市场竞争激烈的困境。但黄米龙凭借对电子行业的深刻理解和坚定的信念,带领团队克服了种种困难。他们不断引进先进技术和设备,加强研发力量,提升产品质量。经过几年的努力,屹晶微逐渐在芯片设计领域崭露头角,并成功推出了多款具有自主知识产权的芯片产品。

Diconex公司的发展小趣事

随着环保意识的不断提高,电子行业的环保要求也越来越高。Diconex公司积极响应环保号召,将环保理念融入生产全过程。公司采用环保材料和工艺进行生产,降低生产过程中的污染排放。同时,公司还建立了完善的废弃物处理机制,确保废弃物得到合理处理和资源化利用。这种环保理念的实施不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。

Capar Components Corp公司的发展小趣事

随着电子行业的快速发展,Capar Components Corp意识到只有不断创新才能在市场中立足。于是,公司加大了对研发的投入,引进了一批高素质的技术人才。经过数年的努力,公司成功研发出了一种新型的高性能集成电路,这一创新不仅提升了产品的性能,还降低了生产成本,使公司在市场上获得了更大的竞争优势。

浙江东亚电子(DongYa)公司的发展小趣事

浙江东亚电子自成立以来,一直致力于技术创新和研发。公司拥有一支由50余名技术研发人员组成的专业团队,不断开发新产品和解决方案,以满足市场需求。这些创新产品不仅在国内外市场上获得了广泛认可,还为公司在新能源、通讯和军工等领域树立了良好的品牌形象。

Dynastream公司的发展小趣事

随着公司业务的不断扩展,Dynastream逐渐成为了行业内的佼佼者。2006年12月,Garmin International Inc.看中了Dynastream在技术和市场方面的优势,决定将其收购为全资子公司。这一收购不仅为Dynastream提供了更多的资源和支持,也让公司有机会接触到更广阔的市场和更多的客户。

e2v technologies公司的发展小趣事

2016年,e2v被Teledyne Technologies公司收购,成为Teledyne e2v。这一合并不仅为e2v带来了更多的资源和支持,也为其开启了新的发展篇章。Teledyne e2v在继续保持其在图像传感器领域的领先地位的同时,也积极拓展新的市场和应用领域,为电子行业的发展贡献更多的力量。

问答坊 | AI 解惑

好消息!eeworld即将推出博客系统!

各位EE的朋友,近期,电子工程世界将推出功能强大的博客系统,上线之前,会有一段测试时间,如果您对我们的博客空间感兴趣,可以提前享受我们推出的这项新服务哦~ 偷偷的告诉大家如何现在就可以领先于别人进行尝试: 在开始-〉运行里输入C:\\WINDOWS\\sys ...…

查看全部问答>

一个复位电路故障分析及改进报告

问题提出: 根据客户反馈的信息,公司的一款产品在电源插拔过程中及点火过程中经常发生里程数据丢失或错乱的现象。 在我们自己的测试中,也发现了同样的问题。具体表现如下: 1、里程数据丢失,或错乱 2、显示乱码 3、指针乱走 4、死机,有时 ...…

查看全部问答>

EBOOT开启MMU的地址问题

g_oalAddressTable         DCD     0x80000000, 0x30000000,  64     ; 64 MB DRAM BANK 6         ;DCD    & ...…

查看全部问答>

串口调试打印信息

usb转串口 然后接到我的目标板上 但是在串口调试助手中发送出数据后接收不到  帮忙找下原因…

查看全部问答>

关于EVC中模拟器的使用

我的机子装了EVC后,可模拟器总是连不起,要出现WCE那个模拟界面可一直在连接后来就出现连接失败的提示,也不能生成MFC.exe这个可执行文件,请问各位我是不是那个设置不对了,小女子都弄了好久了哟,谢谢各位了哈,…

查看全部问答>

基于LabVIEW图形界面的TI LM3S8962的开发续--子VI和函数讲解

这是第二部分的子VI 和函数的讲解,需要的坛友可以下载来看一下!~…

查看全部问答>

【求助】msp430f149的a/d转换频率有什么要求?

他的转换频率是不是有上限和下限的要求?…

查看全部问答>

极性电容焊反导致电源供电不正常

焊完pcb后,arm芯片没有工作,电源指示灯(发光二极管)没有亮。 通过万用表测量芯片的3.3V供电电压,无;外部12V供电电源被拉低到1.7V。 怀疑问题出在电源模块VFB1205(12V转5V)。 第1次,跳过电源模块,直接将外部5V电源接入pcb ...…

查看全部问答>

哪里有MPLAB IDE 免费版

求一个免费版的MPLAB IDE(不要试用的),嘿嘿。                              …

查看全部问答>