产品概述

mcu单片机 电子器件的“中控室”:单片机MCU详解

小编 2024-11-23 产品概述 23 0

电子器件的“中控室”:单片机MCU详解

上一篇(只有想不到,没有嵌不到,嵌入式系统科普 )文章介绍了嵌入式系统的组成部分。其中提到了单片机MCU,其实它也是一个小系统,它是控制电子产品的大脑。现如今,我们生活中的许多电器都含有单片机。例如:手机、电视机、冰箱、洗衣机、以及开关、LED等。那么,什么是单片机?它在这些电器中究竟做了些什么呢?以及是如何构成的?

它是如何诞生的

单片机诞生于1971年,经历SCM、MCU、SoC三大阶段。单片机由以前的1位、4位、8位、16位。早期的单片机都是4位或8位。其中最成功的是英特尔的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。

随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。如今已发展到32位甚至64位。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高,相继诞生了一批经过市场考验获得良好口碑的单片机制造厂商。

“神通广大”,到哪儿都有它

实际工作中并不是任何场合都要求计算机有很高的性能。应用的关键看是否够用,是否有很好的性价比。单片机是电器动作的关键,是指挥硬件运行的。例如:接收按钮或按键的输入信号,按照事先编好的程序,指挥马达和LCD的外围功能电路动作。

为什么很多电器设备都要使用单片机呢?我们用一个点亮LED电路为例来说明。

(右)无单片机的电路是一个由LED,开关和电阻构成的简单电路。很显然,使用单片机的电路要复杂得多,而且设计电路还要花费精力与财力。这样看来使用单片机并没有什么优点,其实不然。

如果我们让这个电路做一些比较复杂的操作,会怎么样呢。例如:如果希望LED在按下开关后,经过一段时间再点亮或熄灭,那么,对于安装有单片机的电路来说,只需更改单片机中的程序就可以了,并不需更改原电路。另一方面,对于没有单片机的电路来说,就必须在元电路中加入定时器IC,或者用标准逻辑IC和FPGA构成逻辑电路,才能实现这个功能。也就是说,在更改和添加新功能时,带有单片机的电路显然更加容易实现。

单片机通常用于工业生产的控制、生活与程序和控制有关领域。由于单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。据了解,一辆汽车上要配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作。这样算下来,单片机的数量已经远超过地球人口的数量了。

那么“无所不能”的单片机都由哪些器件构成的?

以PC为例,一台计算机主要有这几个部位组成:中央处理单元CPU(进行运算、控制)、随机存储器RAM(数据存储)、存储器ROM(程序存储)、输入/输出设备I/O(串行口、并行输出口等)。在个人计算机上这些部份被分成若干块芯片,安装在一个被称之为主板的印刷线路板上。而在单片机中,这些部份全部被做到一块集成电路芯片中,所以就称为单片机,而且有一些单片机中除了上述部份外,还集成了其它部份如模拟量/数字量转换(A/D)和数字量/模拟量转换(D/A)等。此外,现在的单片机绝大多数都是基于冯·诺伊曼结构。

以51单片机为例,其功能组件及作用主要有:

1、CPU主芯片(内部通过总线连接扩展的设备)

2、时钟电路(为单片机提供震荡脉冲)

3、电源电路(为单片机提供电源)

4、内部数据存储器RAM(包括通用数据寄存器和专用寄存器SFR,主要是数据存储区。)

5、程序存储器ROM(主要是存储程序,51系列有4K内部程序ROM,可以外扩64K。)

6、并行端口4*8位(P0,P1,P2,P3主要是数据交换接口。)

7、串行口(TXD,RXD用于串口通信。)

8、中断系统(外中断0,定时计数T0,外中断1,定时计数T1,串口中断。)

9、定时/计数器(16位用于外部的计数和定时功能。)

在这些组成里,内存是单片机的记忆装置,主要记忆程序和数据,但ROM与RAM有所区别:

ROM是只读内存的简称。保存在ROM中的数据不能删除,也不会因断电而丢失。ROM主要用于保存用户程序和在程序执行中保持不变的常数。

RAM是可随机读/写内存的简称。可以随时读写数据,但关机后,保存在RAM中的数据也随之消失。主要用于存储程序中的变量。在单芯片单片机中,常常用SRAM作为内部RAM。SRAM允许高速访问,但是,内部结构太复杂,很难实现高密度集成,不适合用作大容量内存。除SRAM外,DRAM也是常见的RAM。DRAM的结构比较容易实现高密度集成,因此,比SRAM的容量大。但是,将高速逻辑电路和DRAM安装于同一个晶片上较为困难,因此,一般在单芯片单片机中很少使用,基本上都是用作外围电路。

工作原理

虽说CPU相当于人的大脑,但是它却不能像人的大脑一样,能有意识的、自发的思考。CPU只能依次读取并执行事先存储在内存中的指令组合。

单片机自动完成赋予它的任务过程,即一条条执行的指令过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。

所以必须把要把问题编成一系列指令,这一系列指令的集合就成为程序,程序需要预先存放在存储器中。存储器由许多存储单元组成,你可以想像成宾馆的房间,指令就存放在这些房间里,房间里的指令取出并执行就像入住要分配房间一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。

主流单片机

现在主流单片机有:

51系列单片机——对所有兼容Intel 8031指令系统的单片机的统称,51单片机是基础入门的一个单片机,还是应用最广泛的一种。

PIC系列单片机——用来开发的去控制外围设备的集成电路,有计算和记忆功能,处理能力一般,存储器容量也很有限。

AVR系列单片机——AVR最大的优点就是哈佛结构速度快;片上资源丰富;驱动能力强;功耗低;可选择型号种类多;性价比高;保密性好;带PWM脉冲宽度调制、串行外设接口SPI,片内RC 振荡器,SRAM比51大。

这些是应用最多的三大系列单片机。其主要特点就是:51系列单片机是冯.诺依曼结构,后两种是哈佛结构。

典型玩家介绍

经多年发展,MCU厂商可谓是多种多样。简单介绍下这个圈里典型玩家

1. 恩智浦(收购飞思卡尔)

单片机是基于80C51内核的单片机,嵌入了掉电检测、模拟以及片内RC振荡器等功能,这使51LPC在高集成度、低成本、低功耗的应用设计中可以满足多方面的性能要求。NXP的MCU几乎都是采用cortex-m系列架构。

2. 瑞萨电子

NEC电子和瑞萨科技于2010年4月1日通过合并诞生了“瑞萨电子”,现为全球首屈一指的微控制器供应商,也是SoC系统晶片与各式类比及电源装置等先进半导体解决方案的领导品牌之一。他们推出的针对中国市场的MCU产品RL78系列分为通用产品和集成LCD驱动的产品,通用产品的升级款又围绕着传感器、小系统、马达驱动等具体应用领域做了相应拓展。

3. 微芯科技(Microchip)(收购爱特梅尔(Atmel))

微芯科技是全球领先的单片机和模拟半导体供应商,微芯单片机是市场份额增长最块的单片机。 他们强调节约成本的最优化设计,使用量大、档次低、价格敏感的产品。

4.三星(Samsung)

三星单片机有KS51和KS57系列4位单片机,KS86和KS88系列8位单片机,KS17系列16位单片机和KS32系列32位单片机。

5. 意法半导体(ST)

意法半导体微控制器拥有一个强大的产品阵容,从稳健的低功耗8位单片机STM8系列,到基于各种ARM Cortex-M0和M0+、 Cortex-M3、Cortex-M4、Cortex-M7内核的32位闪存微控制器STM32家族。STM32系列32位微控制器基于Arm® Cortex®-M处理器,旨在为MCU用户提供新的开发自由度。它包括一系列产品,集高性能、实时功能、数字信号处理、低功耗/低电压操作、连接性等特性于一身,同时还保持了集成度高和易于开发的特点。

6. 英飞凌(Infineon)

其前身是西门子集团的半导体部门。英飞凌8位单片机能实现高性能的电机驱动控制,在严酷环境下(高温、EMI、振动)具有极高的可靠性。英飞凌针对中国市场推出的XMC1000工业单片机,在电机控制领域拥有很高的性价比。

7. 德州仪器(TI)

TI是全球领先的模拟及数字半导体 IC 设计制造公司。除了提供模拟技术、数字信号处理 (DSP) 以外,TI 在单片机领域也涉入较深,推出一系列的32位单片机,其中Piccolo系列微处理器最具代表性,具体型号如C2000和F28x系列。

8. 东芝(Toshiba)

东芝单片机的特点从4位机到64位,门类齐全。4位机在家电领域仍有较大的市场。8位机主要有870系列、90系列等,该类单片机允许使用慢模式,采用32K时钟时功耗低至10uA数量级。CPU内部多组寄存器的使用,使得中断响应与处理更加快捷。东芝的32位单片机采用MIPS3000ARISC的 CPU结构,面向VCD、数字相机、图像处理等市场。

9. Silicon Laboratories(芯科实验室)

Silicon Laboratories成立于1996年,位于美国德州奥斯汀市,是一家专业研发设计类比电路及混合信号IC的公司,为成长快速的通信产业设计等提供广大应用。在8051系列MCU领域居于领先军团行列。这家公司2013收购了一家叫Energy Micro的节能型MCU公司,所以产品有两个型号。

10. Maxim

Maxim的超低功耗32 位 Arm® Cortex®-M4 FPU微控制器(单片机),可以帮助您在任意地方收发其他超低功耗MCU的产品。超低功耗MCU系列产品既智能又省电。他们在去年发布了一款名为MAX78000的革命性芯片。这颗低功耗神经网络加速微控制器能将人工智能(AI)推向边缘端,更重要的是,因为其低功耗特性,那就意味着即使在将其应用在电池供电的物联网(IoT)设备里,芯片性能并未受到影响。

11. ADI

ADI提供日渐增多的DSP、混合信号控制处理器、嵌入式处理器和模拟微控制器产品,适合广泛的通用和专用需求。例如产品包括:带有微处理器的模数转换芯片ADuC844和ADuC846,用于IoT超低功耗MCU ADuCM4050。

12. 高通(Qualcomm)

高通的MCU主要应用于智能手机、平板电脑、无线调制解调器等等,功能非常强大。主要提供16位,32位MCU。

其余厂商见图片。

MCU作为微型计算机的一个重要分支,应用面很广,发展很快。自MCU诞生至今,已发展为上百种系列的近千个机种。而且随着半导体集成工艺的不断发展,MCU的集成度将更高、体积将更小、功能将更强。

MCU程序的编写方式,以及各型号单片机的区别和用途

MCU程序的编写方式,以及各型号单片机的区别和用途

单片机的程序编写

MCU的程序的编写与PC下的程序的编写存在很大的区别,虽然现在基于C的MCU开发工具越来越流行,但对于一个高效的程序代码和喜欢使用汇编的设计者来讲,汇编语言仍然是最简洁、最有效的编程语言。

对于MCU的程序编写,其基本的框架可以说是大体一致的,一般分为初始化部分(这是MCU程序设计与PC最大的不同),主程序循环体和中断处理程序三大部分,其分别说明如下:

初始化:对于所有的MCU程序的设计来讲,出世化是最基本也是最重要的一步,一般包括如下内容:

屏蔽所有中断并初始化堆栈指针:初始化部分一般不希望有任何中断发生。

清除系统的RAM区域和显示Memory:虽然有时可能没有完全的必要,但从可靠性及一致性的角度出发,特别是对于防止意外的错误,还是建议养成良好的编程习惯。

阅读累了可以先关注我,不迷路,打开头像关注查看个人主页以及简介,更多优秀内容,叫“林老师”分享给大家

IO口的初始化:根据项目的应用的要求,设定相关IO口的输入输出方式,对与输入口,需要设定其上拉或下拉电阻;对于输出口,则必须设定其出世的电平输出,以防出现不必要的错误。

中断的设置:对于所有项目需要用到的中断源,应该给予开启并设定中断的触发条件,而对于不使用的多余的中断,则必须给予关闭。

其他功能模块的初始化:对于所有需要用到的MCU的外围功能模块,必须按项目的应用的要求进行相应的设置,如UART的通讯,需要设定Baud Rate,数据长度,校验方式和Stop Bit的长度等,而对于Programmer Timer,则必须设置其时钟源,分频数及Reload Data等。

参数的出世化:完成了MCU的硬件和资源的出世化后,接下来就是对程序中使用到的一些变量和数据的初始化设置,这一部分的初始化需要根据具体的项目及程序的总体安排来设计。对于一些用EEPROM来保存项目预制数的应用来讲,建议在初始化时将相关的数据拷贝到MCU的RAM,以提高程序对数据的访问速度,同时降低系统的功耗(原则上,访问外部EEPROM都会增加电源的功耗)。

主程序循环体:大多数MCU是属于长时间不间断运行的,因此其主程序体基本上都是以循环的方式来设计,对于存在多种工作模式的应用来讲,则可能存在多个循环体,相互之间通过状态标志来进行转换。对于主程序体,一般情况下主要安排如下的模块:

计算程序:计算程序一般比较耗时,因此坚决反对放在任何中断中处理,特别是乘除法运算。

显示传输程序:主要针对存在外部LED、LCD Driver的应用。

中断处理程序:中断程序主要用于处理实时性要求较高的任务和事件,如,外部突发性信号的检测,按键的检测和处理,定时计数,LED显示扫描等。

一般情况下,中断程序应尽可能保证代码的简洁和短小,对于不需要实时去处理的功能,可以在中断中设置触发的标志,然后由主程序来执行具体的事务――这一点非常重要,特别是对于低功耗、低速的MCU来讲,必须保证所有中断的及时响应。

对于不同任务体的安排,不同的MCU其处理的方法也有所不同。

例如,对于低速、低功耗的MCU(Fosc=32768Hz)应用,考虑到此类项目均为手持式设备和采用普通的LCD显示,对按键的反应和显示的反应要求实时性较高,应此一般采用定时中断的方式来处理按键的动作和数据的显示;而对于高速的MCU,如Fosc》1MHz的应用,由于此时MCU有足够的时间来执行主程序循环体,因此可以只在相应的中断中设置各种触发标志,并将所有的任务放在主程序体中来执行。

在MCU的程序设计中,还需要特别注意的一点就是:要防止在中断和主程序体中同时访问或设置同一个变量或数据的情况。有效的预防方法是,将此类数据的处理安排在一个模块中,通过判断触发标志来决定是否执行该数据的相关操作;而在其他的程序体中(主要是中断),对需要进行该数据的处理的地方只设置触发的标志。――这可以保证数据的执行是可预知和唯一的。

在学校里学了这些知识,并没有时间思考这些之间概念之间的区别,一直注重渴望技术的提升,却忘了这些基础才是根本。蹭着在家的这一段时间,准备好好梳理一下之间的关系,这是一个宏大的框架,写下这些,也是因为在求职的时候对于这些涉及到了,加深一下自己的印象吧。不说了,直接入主题吧。

ARM

在嵌入式领域里,ARM本意是微处理器行业的一家知名企业,英国ARM公司是全球领先的半导体知识产权提供商。全球超过95%的智能手机采用ARM架构,ARM设计了大量的高性价比、耗能低的精简指令集计算(RISC)处理器。这里的ARM指的是处理器。处理器也是CPU的意思,所以ARM处理器就是CPU的意思。ARM公司不生产芯片、生产CPU.是一个32位精简指令集处理器架构,ARM处理器包含以下几个系列的处理器产品以及其它厂商实现的基于ARM体系结构的处理器。如ARM7 系列、ARM9系列、ARM9E系列、ARM10E系列等等。这些处理器广泛应用于实时嵌入式应用,如存储设备、汽车、工业和网络设备。

STM32

上面说了ARM处理器核当前ARM7、ARM9、ARM9E、ARM10E、SecurCore以及最新的ARM11系列。而STM32使用的其中的Cortex-M3内核。当时由于arm7能效低,arm9的硬件和编程过于复杂。为了满足消费电子的需求而改进arm7,代号为cortex -m,这样st或nxp等产家以这个新的核心来加自己的外设就得到了stm32或lpc系列的单片机了。可以清楚得到stm32是基于ARM Cortex-M3内核的,但不属于ARM。因为ARM公司只提供了处理器,st(意法半导体)还有nxp(恩智浦半导体)厂家以此内核为核心添加外设得到了stm32或lpc系列单片机。只能说stm32是基于ARM Cortex -M3内核的,但是不属于ARM。ARM Cortex-M3内核具有高性能、低成本、低功耗等特点,属于ARM7架构中的一员。

51单片机

谈谈51单片机与stm32单片机的区别,先介绍一下,什么是单片机。单片机全称单片微型计算机,简单来说就是集CPU(运算、控制)、RAM(数据存储-内存)、ROM(程序存储)、输入输出设备(串口、并口等)和中断系统处于同一芯片的器件。在我们个人电脑中CPU、RAM、ROM、I/O这些都是单独的芯片,然后这个芯片被安装一个主板上,这样就构成了我们的PC主板,进而组装成电脑,而单片机只是将这所有的集中在一个芯片上而已。

51单片机是对所有兼容Intel8031指令系统的单片机的统称,这一系列的单片机的始祖是Intel的8031单片机,后来随着flash ROM技术的发展,8031单片机取得了长足的进展成为了应用最广泛的8bit单片机之一,他的代表型号是ATMEL公司的AT89系列。STM32单片机则是ST(意法半导体)公司使用arm公司的cortex-M为核心生产的32bit系列的单片机,它的内部资源(寄存器和外设功能)较8051、AVR和PIC都要多的多,基本接近于计算机的CPU了,适用于手机、路由器等等。

开发板与单片机的区别

经过之前的总结,ARM处理器内核加上外设模块(如UART、IIC)组成了芯片(如STM32),也就是单片机,单片机芯片再加上

一些常用的电子器件构成的电路板便是开发板。方便初学者使用,上面常用的外设有led灯、数码管、独立按键、矩阵按键、液晶显示屏、红外线接收头等。而单片机只是上面的核心芯片。

相关问答

mcu 单片机 的区别?

mcu与单片机有什么区别吗区别如下所示:1、原理不同。mcu又称单片微型计算机(SingleChipMicrocomputer)或者单片机。而单片机则是把一个计算机系统集成到...

mcu 和cpu和 单片机 的区别?

mcu又称单片微型计算机(SingleChipMicrocomputer)或者单片机,是把中央处理器(CentralProcessUnit;CPU)的频率与规格做适当缩减,并将内存(memo...

有人知道 MCU单片机 有什么特征吗?

[回答]MCU单片机具有可编程特性,我们可以通过编写C语言或者汇编程序,下载到单片机里面。让它按照我们的程序逻辑去控制电路。结构简单,体积小内部芯片作...

MCU单片机 的主要特点是什么?

[回答]价格好,性价之比高:目前国内MCU单片机市场内卷颇为严重,让原本价格就不高的单片机芯片降低到几块钱,有的甚至只有几毛钱就能购买到。再加上少量外围...

单片机 里的程序能读出来吗?能复制到其它空片里吗?具体怎么做?

汇编的...你可以这样理解:你先利用烧录软件把你烧好的软件给读出来,然后反汇编就可以看到源程序代码了,不过在这个地方要注意了,如果你的源程序是汇编的话,那...

单片机 的sci模块和spi模块分别指的什么啊?

单片机的SCI模块和SPI模块分别指串行通信接口和同步串行外设接口。SCI模块是一种串行通信接口模块,用于实现单片机和外部设备进行串行通信。常用于单片机和PC...

8051 单片机 定时器有哪几种工作模式?有何区别?

首先四中模式的前三种,t0和t1完全相同。而模式3只适合定时器t0,t0在该模式下被拆成两个独立的8位计数器th0,tl0,其中tl0可以为8为定时器或计数器,并且使用...

12位adc 单片机 有哪些?

1.C8051F020,集成了一个12bit的ADC和8bit的ADC,飞思卡尔十六位的单片机MSP430F5系列单片机;2.stm32f系列单片机;3.picf18系列单片机;等等。在使用的时...

飞思卡尔 单片机 SCI串口通信,如何设置两个 MCU 之间通信的主从关系,不设置是否能通信?

飞思卡尔单片机SCI是个全双工异步通讯接口,不设置主从也可以通讯,但一般用在点对点通讯;在多机系统中,考虑通讯的可靠、准确,在线路上只有发送时只有一个单...

芯片程序丢失的原因?

现在的单片机大多采用FLASH作为程序存放介质,而FLASH一是有擦写寿命,二是有一定的数据丢失率,虽然很少见,所以遇到FLASH保存的数据丢失问题,单片机的程序就...

猜你喜欢