微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。诸如手机、PC外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等,都可见到MCU的身影。

技术原理

MCU同温度传感器之间通过I2C总线连接。I2C总线占用2条MCU输入输出口线,二者之间的通信完全依靠软件完成。温度传感器的地址可以通过2根地址引脚设定,这使得一根I2C总线上可以同时连接8个这样的传感器。本方案中,传感器的7位地址已经设定为1001000。MCU需要访问传感器时,先要发出一个8位的寄存器指针,然后再发出传感器的地址(7位地址,低位是WR信号)。传感器中有3个寄存器可供MCU使用,8位寄存器指针就是用来确定MCU究竟要使用哪个寄存器的。本方案中,主程序会不断更新传感器的配置寄存器,这会使传感器工作于单步模式,每更新一次就会测量一次温度。

要读取传感器测量值寄存器的内容,MCU必须首先发送传感器地址和寄存器指针。MCU发出一个启动信号,接着发出传感器地址,然后将RD/WR管脚设为高电平,就可以读取测量值寄存器。

为了读出传感器测量值寄存器中的16位数据,MCU必须与传感器进行两次8位数据通信。当传感器上电工作时,默认的测量精度为9位,分辨力为0.5 C/LSB(量程为-128.5 C至128.5 C)。本方案采用默认测量精度,根据需要,可以重新设置传感器,将测量精度提高到12位。如果只要求作一般的温度指示,比如自动调温器,那么分辨力达到1 C就可以满足要求了。这种情况下,传感器的低8位数据可以忽略,只用高8位数据就可以达到分辨力1 C的设计要求。由于读取寄存器时是按先高8位后低8位的顺序,所以低8位数据既可以读,也可以不读。只读取高8位数据的好处有二,第一是可以缩短MCU和传感器的工作时间,降低功耗;第二是不影响分辨力指标。

MCU读取传感器的测量值后,接下来就要进行换算并将结果显示在LCD上。整个处理过程包括:判断显示结果的正负号,进行二进制码到BCD码的转换,将数据传到LCD的相关寄存器中。

数据处理完毕并显示结果之后,MCU会向传感器发出一个单步指令。单步指令会让传感器启动一次温度测试,然后自动进入等待模式,直到模数转换完毕。MCU发出单步指令后,就进入LPM3模式,这时MCU系统时钟继续工作,产生定时中断唤醒CPU。定时的长短可以通过编程调整,以便适应具体应用的需要。

主要区别

在20世纪最值得人们称道的成就中,就有集成电路和电子计算机的发展。20世纪70年代出现的微型计算机,在科学技术界引起了影响深远的变革。在70年代中期,微型计算机家族中又分裂出一个小小的派系--单片机。随着4位单片机出现之后,又推出了8位的单片机。MCS48系列,特别是MCS51系列单片机的出现,确立了单片机作为微控制器(MCU)的地位,引起了微型计算机领域新的变革。在当今世界上,微处理器(MPU)和微控制器(MCU)形成了各具特色的两个分支。它们互相区别,但又互相融合、互相促进。与微处理器(MPU)以运算性能和速度为特征的飞速发展不同,微控制器(MCU)则是以其控制功能的不断完善为发展标志的。

CPU(Central Processing Unit,中央处理器)发展出来三个分枝,一个是DSP(Digital Signal Processing/Processor,数字信号处理),另外两个是MCU(Micro Control Unit,微控制器单元)和MPU(Micro Processor Unit,微处理器单元)。

MCU集成了片上外围器件;MPU不带外围器件(例如存储器阵列),是高度集成的通用结构的处理器,是去除了集成外设的MCU;DSP运算能力强,擅长很多的重复数据运算,而MCU则适合不同信息源的多种数据的处理诊断和运算,侧重于控制,速度并不如DSP。MCU区别于DSP的最大特点在于它的通用性,反应在指令集和寻址模式中。DSP与MCU的结合是DSC,它终将取代这两种芯片。

1.对密集的乘法运算的支持

GPP不是设计来做密集乘法任务的,即使是一些现代的GPP,也要求多个指令周期来做一次乘法。而DSP处理器使用专门的硬件来实现单周期乘 法。DSP处理器还增加了累加器寄存器来处理多个乘积的和。累加器寄存器通常比其他寄存器宽,增加称为结果bits的额外bits来避免溢出。同时,为了 充分体现专门的乘法-累加硬件的好处,几乎所有的DSP的指令集都包含有显式的MAC指令。

2. 存储器结构

传统上,GPP使用冯。诺依曼存储器结构。这种结构中,只有一个存储器空间通过一组总线(一个地址总线和一个数据总线)连接到处理器核。通常,做一次乘法会发生4次存储器访问,用掉至少四个指令周期。

大多数DSP采用了哈佛结构,将存储器空间划分成两个,分别存储程序和数据。它们有两组总线连接到处理器核,允许同时对它们进行访问。这种安排将处理器存储器的带宽加倍,更重要的是同时为处理器核提供数据与指令。在这种布局下,DSP得以实现单周期的MAC指令。

典型的高性能GPP实际上已包含两个片内高速缓存,一个是数据,一个是指令,它们直接连接到处理器核,以加快运行时的访问速度。从物理上说,这种片内的双存储器和总线的结构几乎与哈佛结构的一样了。然而从逻辑上说,两者还是有重要的区别。

GPP使用控制逻辑来决定哪些数据和指令字存储在片内的高速缓存里,其程序员并不加以指定(也可能根本不知道)。与此相反,DSP使用多个片内存储器和多组总线来保证每个指令周期内存储器的多次访问。在使用DSP时,程序员要明确地控制哪些数据和指令要存储在片内存储器中。程序员在写程序时,必须保证处理器能够有效地使用其双总线。

此外,DSP处理器几乎都不具备数据高速缓存。这是因为DSP的典型数据是数据流。也就是说,DSP处理器对每个数据样本做计算后,就丢弃了,几乎不再重复使用。

3.零开销循环

如果了解到DSP算法的一个共同的特点,即大多数的处理时间是花在执行较小的循环上,也就容易理解,为什么大多数的DSP都有专门的硬件,用于 零开销循环。所谓零开销循环是指处理器在执行循环时,不用花时间去检查循环计数器的值、条件转移到循环的顶部、将循环计数器减1。

与此相反,GPP的循环使用软件来实现。某些高性能的GPP使用转移预报硬件,几乎达到与硬件支持的零开销循环同样的效果。

4.定点计算

大多数DSP使用定点计算,而不是使用浮点。虽然DSP的应用必须十分注意数字的精确,用浮点来做应该容易的多,但是对DSP来说,廉价也是非常重要的。定点机器比起相应的浮点机器来要便宜(而且更快)。为了不使用浮点机器而又保证数字的准确,DSP处理器在指令集和硬件方面都支持饱和计算、舍入和移位。

5.专门的寻址方式

DSP处理器往往都支持专门的寻址模式,它们对通常的信号处理操作和算法是很有用的。例如,模块(循环)寻址(对实现数字滤波器延时线很有用)、位倒序寻址(对FFT很有用)。这些非常专门的寻址模式在GPP中是不常使用的,只有用软件来实现。

6.执行时间的预测

大多数的DSP应用(如蜂窝电话和调制解调器)都是严格的实时应用,所有的处理必须在指定的时间内完成。这就要求程序员准确地确定每个样本需要多少处理时间,或者,至少要知道,在最坏的情况下,需要多少时间。如果打算用低成本的GPP去完成实时信号处理的任务,执行时间的预测大概不会成为什么问题,应为低成本GPP具有相对直接的结构,比较容易预测执行时间。然而,大多数实时DSP应用所要求的处理能力是低成本GPP所不能提供的。 这时候,DSP对高性能GPP的优势在于,即便是使用了高速缓存的DSP,哪些指令会放进去也是由程序员(而不是处理器)来决定的,因此很容易判断指令是从高速缓存还是从存储器中读取。DSP一般不使用动态特性,如转移预测和推理执行等。因此,由一段给定的代码来预测所要求的执行时间是完全直截了当的。从而使程序员得以确定芯片的性能限制。

7.定点DSP指令集

定点DSP指令集是按两个目标来设计的:使处理器能够在每个指令周期内完成多个操作,从而提高每个指令周期的计算效率。将存贮DSP程序的存储器空间减到最小(由于存储器对整个系统的成本影响甚大,该问题在对成本敏感的DSP应用中尤为重要)。为了实现这些目标,DSP处理器的指令集通常都允许程序员在一个指令内说明若干个并行的操作。例如,在一条指令包含了MAC操作,即同时的一个或两个数据移动。在典型的例子里,一条指令就包含了计算FIR滤波器的一节所需要的所有操作。这种高效率付出的代价是,其指令集既不直观,也不容易使用(与GPP的指令集相比)。 GPP的程序通常并不在意处理器的指令集是否容易使用,因为他们一般使用象C或C++等高级语言。而对于DSP的程序员来说,不幸的是主要的DSP应用程序都是用汇编语言写的(至少部分是汇编语言优化的)。这里有两个理由:首先,大多数广泛使用的高级语言,例如C,并不适合于描述典型的DSP算法。其次, DSP结构的复杂性,如多存储器空间、多总线、不规则的指令集、高度专门化的硬件等,使得难于为其编写高效率的编译器。 即便用编译器将C源代码编译成为DSP的汇编代码,优化的任务仍然很重。典型的DSP应用都具有大量计算的要求,并有严格的开销限制,使得程序的优化必不可少(至少是对程序的最关键部分)。因此,考虑选用DSP的一个关键因素是,是否存在足够的能够较好地适应DSP处理器指令集的程序员。

8.开发工具的要求

因为DSP应用要求高度优化的代码,大多数DSP厂商都提供一些开发工具,以帮助程序员完成其优化工作。例如,大多数厂商都提供处理器的仿真工具,以准确地仿真每个指令周期内处理器的活动。无论对于确保实时操作还是代码的优化,这些都是很有用的工具。 GPP厂商通常并不提供这样的工具,主要是因为GPP程序员通常并不需要详细到这一层的信息。GPP缺乏精确到指令周期的仿真工具,是DSP应用开发者所面临的的大问题:由于几乎不可能预测高性能GPP对于给定任务所需要的周期数,从而无法说明如何去改善代码的性能。

发展历史

单片机出现的历史并不长,但发展十分迅猛。 它的产生与发展和微处理器的产生与发展大体同步,自1971年美国Intel公司首先推出4位微处理器以来,它的发展到目前为止大致可分为5个阶段。下面以Intel公司的单片机发展为代表加以介绍。

1971-1976

单片机发展的初级阶段。 1971年11月Intel公司首先设计出集成度为2000只晶体管/片的4位微处理器Intel 4004,并配有RAM、 ROM和移位寄存器, 构成了第一台MCS—4微处理器, 而后又推出了8位微处理器Intel 8008, 以及其它各公司相继推出的8位微处理器。

1976-1980

低性能单片机阶段。 以1976年Intel公司推出的MCS—48系列为代表, 采用将8位CPU、 8位并行I/O接口、8位定时/计数器、RAM和ROM等集成于一块半导体芯片上的单片结构, 虽然其寻址范围有限(不大于4 KB), 也没有串行I/O, RAM、 ROM容量小, 中断系统也较简单, 但功能可满足一般工业控制和智能化仪器、仪表等的需要。

1980-1983

高性能单片机阶段。 这一阶段推出的高性能8位单片机普遍带有串行口,有多级中断处理系统, 多个16位定时器/计数器。片内RAM、 ROM的容量加大,且寻址范围可达64 KB,个别片内还带有A/D转换接口。

1983-80年代末

16位单片机阶段。 1983年Intel公司又推出了高性能的16位单片机MCS-96系列,由于其采用了最新的制造工艺, 使芯片集成度高达12万只晶体管/片。

1990年代

单片机在集成度、功能、速度、可靠性、应用领域等全方位向更高水平发展。

按照单片机的特点,单片机的应用分为单机应用与多机应用。在一个应用系统中,只使用一片单片机称为单机应用。单片机的单机应用的范围包括:

(1) 测控系统。 用单片机可以构成各种不太复杂的工业控制系统、自适应控制系统、数据采集系统等,达到测量与控制的目的。

(2) 智能仪表。 用单片机改造原有的测量、控制仪表,促进仪表向数字化、智能化、多功能化、综合化、柔性化方向发展。

(3) 机电一体化产品。单片机与传统的机械产品相结合,使传统机械产品结构简化, 控制智能化。

(4) 智能接口。 在计算机控制系统, 特别是在较大型的工业测、控系统中,用单片机进行接口的控制与管理, 加之单片机与主机的并行工作, 大大提高了系统的运行速度。

(5) 智能民用产品。 如在家用电器、玩具、游戏机、声像设备、电子秤、收银机、办公设备、厨房设备等许多产品中,单片机控制器的引入, 不仅使产品的功能大大增强, 性能得到提高, 而且获得了良好的使用效果。

单片机的多机应用系统可分为功能集散系统、并行多机处理及局部网络系统。

(1) 功能集散系统。 多功能集散系统是为了满足工程系统多种外围功能的要求而设置的多机系统。

(2) 并行多机控制系统。 并行多机控制系统主要解决工程应用系统的快速性问题,以便构成大型实时工程应用系统。

(3) 局部网络系统。

单片机按应用范围又可分成通用型和专用型。专用型是针对某种特定产品而设计的,例如用于体温计的单片机、用于洗衣机的单片机等等。在通用型的单片机中,又可按字长分为4位、8位、16/32位,虽然计算机的微处理器现在几乎是32/64位的天下,8位、16位的微处理器已趋于萎缩,但单片机情况却不同,8位单片机成本低,价格廉,便于开发,其性能能满足大部分的需要,只有在航天、汽车、机器人等高技术领域,需要高速处理大量数据时,才需要选用16/32位,而在一般工业领域,8位通用型单片机,仍然是目前应用最广的单片机。

到目前为止,中国的单片机应用和嵌入式系统开发走过了二十余年的历程,随着嵌入式系统逐渐深入社会生活各个方面,单片机课程的教学也有从传统的8位处理器平台向32位高级RISC处理器平台转变的趋势,但8位机依然难以被取代。国民经济建设、军事及家用电器等各个领域,尤其是手机、汽车自动导航设备、PDA、智能玩具、智能家电、医疗设备等行业都是国内急需单片机人才的行业。行业高端目前有超过10余万名从事单片机开发应用的工程师,但面对嵌入式系统工业化的潮流和我国大力推动建设“嵌入式软件工厂”的机遇,我国的嵌入式产品要溶入国际市场,形成产业,则必将急需大批单片机应用型人才,这为高职类学生从事这类高技术行业提供了巨大机会。

一文读懂MCU的技术原理、区别及发展历史相关推荐

  1. 一文读懂无线充电技术(附方案选型及原理分析)

    一文读懂无线充电技术(附方案选型及原理分析) 标签: 无线充电 技术 电子 解决方案 2017年09月02日 10:27:12 5807人阅读 评论(1) 收藏 举报 (function () {   ...

  2. 一文读懂视频编解码原理[通俗易懂]

    一文读懂视频编解码原理[通俗易懂] 引子 谈到视频的编解码,我们会自然地想到H.264.HEVC/H.265这些权威的视频编解码标准:谈到标准,有人觉得这个是有专门机构去研究的,我们关心应用就好:即使 ...

  3. 一文读懂数据中台技术架构

    一文读懂数据中台技术架构 https://www.toutiao.com/i6836923386560512516/?tt_from=weixin&utm_campaign=client_sh ...

  4. 一文看懂RPA的技术原理、产品形态、设计与构建

    一文看懂RPA的技术原理.产品形态.设计与构建 过去的一年,RPA机器人流程自动化行业迎来了一个快速发展的机遇.RPA创业者得到了国内投资人的认可,一些RPA公司也接连拿到千万美金级别的融资,这在当下 ...

  5. 一文读懂RRU关键技术

    RRU单元作为无线通信的最后一环.最关键设备,犹如空中的一座桥,为用户的信息交流提供稳定可靠的通道,保证了信息的精准.实时送达.RRU将一组组基带数字信号,通过复杂.精巧的电路变换,转化成无线电波,通 ...

  6. 从实验室走向大众,一文读懂Nanopore测序技术的发展及应用

    关键词/Nanopore测序技术    文/基因慧 随着基因测序技术不断突破,二代测序的发展也将基因检测成本大幅降低.理想的测序方法,是对原始DNA模板进行直接.准确的测序,消除PCR扩增带来的偏差, ...

  7. 【一文读懂】Mysql索引原理之环环相扣

    MySQL为什么要使用索引? MySQL读写比例一般是10:1,大部分性能瓶颈在查询,所有优化性能的关键点都在查询,而索引可以有效的提升MySQL的查询性能. 为什么索引能提升查询性能? 索引通过特殊 ...

  8. 一文读懂视频编解码原理

    引子 谈到视频的编解码,我们会自然地想到H.264.HEVC/H.265这些权威的视频编解码标准:谈到标准,有人觉得这个是有专门机构去研究的,我们关心应用就好:即使有兴趣读了标准和相关技术,面对更多的 ...

  9. 一文读懂PCA分析 (原理、算法、解释和可视化)

    生物信息学习的正确姿势 NGS系列文章包括NGS基础.高颜值在线绘图和分析.转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这).ChIP-seq分析 (ChIP-seq基本分析流 ...

最新文章

  1. 3.11 TensorFlow-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  2. windows Service循环任务.服务启动后无法停止重启的解决办法
  3. Ubuntu在vmware虚拟机无法上网的解决方法
  4. TortoiseSVN的安装和使用
  5. 用css和js写表单验证,使用javascript及正则表达式实现表单验证(CSS,js练习)
  6. 蓝桥杯——黑色星期五
  7. 50 岁的他笑谈码农真相,看完清醒了!| 人物志
  8. 【Mac】789uiojklm键失效、启用小键盘(数字键盘)鼠标键的解决方法
  9. python break和continue语句
  10. 黑色的php编辑器,五款常用的免费php编辑器推荐
  11. C语言基础练习题初学者可参考
  12. dnf喇叭怎么设置不显示服务器,《DNF》屏蔽广告喇叭方法 广告喇叭怎么关掉
  13. docker image 重命名
  14. 键盘按键开关种类简介
  15. IDEA 反编译失败 提示/*compiled code*/的解决方法
  16. 小程序源码:修复登录接口版最新知识付费变现小程序源码下载-独立后台版本
  17. 详解java的垃圾清理机制
  18. mysql搜索所有符合 条件的列名
  19. 一个很赞的ecshop微信商城系统!
  20. 如何修改textfield的 return 键的类型

热门文章

  1. python股票量化交易(1)---K线图、均线与成交量绘制
  2. 翻译连载 |《你不知道的JS》姊妹篇 |《JavaScript 轻量级函数式编程》- 第 4 章:组合函数...
  3. 三步下载有3D封装的Altium designer官方库
  4. [AT89C51 ]用汇编语言实现流水灯仿真(含keil与Proteus)
  5. 是的,奈学教育一周年了!
  6. 移动固态硬盘删除分区(包括EFI分区)
  7. 织梦Dedecms错误警告:连接数据库失败,可能数据库密码不对
  8. 发动机、发电机、电动机、电机、马达傻傻分不清?一张图恍然大悟!
  9. git配置姓名和邮箱
  10. UDP通讯之字节流与protobuf转换(C++版)