单片机(Microcontrollers)又称微控制器,由中央处理器、存储器、输入输出端口(包括并行I/O、串行I/O、模数转换器)、计时器和计数器等组成,具有完整数字处理功能的大规模集成电路。微控制器是一种面向控制领域嵌入式应用的集成化计算机芯片,主要用于工业控制、数据处理、信号处理、智能仪器、通信产品及民用消费产品等自动控制产品与器件中。通常也把它简称为MCU或μC,MCU配以适当的外围设备和软件就可构成一个计算机应用系统,所以也称之为单片微型计算机,简称为单片机。[1]

中文名

单片机

外文名

Microcontrollers

类别

电路芯片

拼音

dan pian ji

电子产品类别

3种

基本结构

运算器、控制器和主要寄存器

应用范围

仪器仪表

应用

工业生产,电子设备等

发展历程

MCU的发展始于20世纪70年代中期,当时主要称为单片机,由于工艺和集成度的限制,一个完整功能的MCU由两块集成电路组成。如Fairchild公司的单片机F8必须外接一块专为F8设计的程序存储单元电路3851。第二阶段为低性能MCU阶段,虽已只用一块芯片构成,但性能低,品种少。如Intel的MCS-48系列,芯片内含有中央处理器(CPU)、并行I/O口、计时器、随机存取存储器(RAM)和只读存储器(ROM)等,但其CPU功能不强,I/O的种类和数量少,存储容量小,只能应用于要求比较简单的场合。第三阶段是高性能微型计算机系统(MCS)发展阶段,此时的MCU内部具有功能很强的CPU、比较多的输入输出电路和大容量的数据存储器、程序存储器,MCU产品型号、规格多,各具特色,能满足不同领域应用需求。[1]

基本结构

单片机的结构框图如下图所示:

单片机

运算器

运算器由运算部件——算术逻辑单元(Arithmetic & Logical Unit,简称ALU)、累加器和寄存器等几部分组成。ALU的作用是把传来的数据进行算术或逻辑运算,输入来源为两个8位数据,分别来自累加器和数据寄存器。ALU能完成对这两个数据进行加、减、与、或、比较大小等操作,最后将结果存入累加器。

运算器有两个功能:

(1)执行各种算术运算。

(2)执行各种逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。

运算器所执行全部操作都是由控制器发出的控制信号来指挥的,并且,一个算术操作产生一个运算结果,一个逻辑操作产生一个判决。

控制器

控制器由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器等组成,是发布命令的“决策机构”,即协调和指挥整个微机系统的操作。其主要功能有:

(1)从内存中取出一条指令,并指出下一条指令在内存中的位置。

(2)对指令进行译码和测试,并产生相应的操作控制信号,以便于执行规定的动作。

(3)指挥并控制CPU、内存和输入输出设备之间数据流动的方向。

微处理器内通过内部总线把ALU、计数器、寄存器和控制部分互联,并通过外部总线与外部的存储器、输入输出接口电路联接。外部总线又称为系统总线,分为数据总线DB、地址总线AB和控制总线CB。通过输入输出接口电路,实现与各种外围设备连接。

主要寄存器

(1)累加器A

累加器A是微处理器中使用最频繁的寄存器。在算术和逻辑运算时它有双功能:运算前,用于保存一个操作数;运算后,用于保存所得的和、差或逻辑运算结果。

(2)数据寄存器DR

数据寄存器通过数据总线向存储器和输入/输出设备送(写)或取(读)数据的暂存单元。它可以保存一条正在译码的指令,也可以保存正在送往存储器中存储的一个数据字节等等。

(3)指令寄存器IR和指令译码器ID

指令包括操作码和操作数。

指令寄存器是用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存中取到数据寄存器中,然后再传送到指令寄存器。当系统执行给定的指令时,必须对操作码进行译码,以确定所要求的操作,指令译码器就是负责这项工作的。其中,指令寄存器中操作码字段的输出就是指令译码器的输入。

(4)程序计数器PC

PC用于确定下一条指令的地址,以保证程序能够连续地执行下去,因此通常又被称为指令地址计数器。在程序开始执行前必须将程序的第一条指令的内存单元地址(即程序的首地址)送入PC,使它总是指向下一条要执行指令的地址。

(5)地址寄存器AR

地址寄存器用于保存当前CPU所要访问的内存单元或I/O设备的地址。由于内存与CPU之间存在着速度上的差异,所以必须使用地址寄存器来保持地址信息,直到内存读/写操作完成为止。

显然,当CPU向存储器存数据、CPU从内存取数据和CPU从内存读出指令时,都要用到地址寄存器和数据寄存器。同样,如果把外围设备的地址作为内存地址单元来看的话,那么当CPU和外围设备交换信息时,也需要用到地址寄存器和数据寄存器。

硬件特征

(1)单片机的体积比较小,内部芯片作为计算机系统,其结构简单,但是功能完善,使用起来十分方便,可以模块化应用。

(2)单片机有着较高的集成度,可靠性比较强,即使单片机处于长时间的工作也不会存在故障问题。

(3)单片机在应用时低电压、低能耗,是人们在日常生活中的首要选择,为生产与研发提供便利。

(4)单片机对数据的处理能力和运算能力较强,可以在各种环境中应用,且有着较强的控制能力。

未来发展

微控制器正朝着高性能和多品种的方向发展,MCU性能的提高主要体现在下述4个方面:①增强MCU内部CPU功能,即提高其数据处理速度和精度,包括扩大字长,增加乘法、除法部件,采用流水线结构等。有的MCU则将高性能16位或32位微处理器原封不动地移来,作为MCU的CPU单元,这样MCU便与相应的通用计算机系统的软件兼容,具有相同的数据处理能力,便于开发和应用。②增加MCU内部资源的集成,尽量减少外接电路,使MCU本身即是一个完整的应用系统。例如增加内部存储器种类及容量,扩大I/O端口品种和数量,I/O端口可以有串行口、并行口、多路模数转换器、计时器、定时输出和捕获输入、系统故障监视器、DMA通道及数模输出电路等。③设计和使用多功能复用引脚,使MCU内部资源的增加不会导致MCU外引脚的过多增加,从而提高应用的灵活性。④扩大外寻址范围以提高系统的扩展功能,目前外寻址空间已从典型的64K字节扩大到几兆字节,MCU品种的发展趋势是多品种和多层次。主要体现为:①发展低电压和低功耗品种,如电池供电系统和野外作业系统。②发展微型化 MCU,即利用MCU设计模块化的结构特点,在内核CPU不变的情况下根据应用目标调整内部各功能模块的规格和外引脚数,以发展新品种。

目前,一些微控制器的性能已可与主流微处理器相媲美,其应用已经渗透到工业和管理的各个方面。在机器人、机械工具、汽车、飞机、宇宙飞船医疗电子设备等许多仪器和装置上,微控制器都起着极其重要的作用。[1]

应用

节能控制

由于智能电子设备可能会被经常携带外出,因此对这些设备的能耗要求是非常高的,所以经常会设计一些节能控制模块,从而提高智能电子设备的待机时长。单片机技术在节能控制中的应用主要分为以下几个方面:第一,智能电子设备在外出状态下,大部分是处于轻负载的模式,这时候就需要通过节能控制,确保其基础功能的前提下,进一步降低电量的消耗。单片机通过对智能电子设备中数据的收集,可以大致推断当前设备处于较低的负载,这时可以降低电压及电流的输出,达到节能的目的;第二,单片机可以控制能耗的节奏,例如:在小米手环中,收集人体的心率、睡眠和运动步数等数字,这些数字收集后会在本地进行存储,然后以分钟级的频率进行上报;信息未上报时,设备处于低能耗的状态,信息上报时,会出现一些网络传输方面的消耗,单片机可以控制能耗的节奏,将手环的大部分时间控制在低能耗的状态下,可以使得待机时间长达七十二小时以上。

智能语音设备

为了更好地提高智能电子设备的智能性,可以允许人类通过简单的语言进行控制,实现语音人机交互的目的。目前,语音处理芯片已经开发完成,并开始运用到智能电子设备中。单片机在智能语音设备中的应用,主要分为以下两个部分:第一,软件设置方面,由于单片机可以通过编程的方式,处理一些业务逻辑,因此就能够对智能语音处理过程进行操作。例如:在导航智能电子设备中,可以将其中的一些道路名称、距离等进行提取,然后进行播报;同时,还可以选择不同的名人口吻进行播报,真正实现智能化的定制操作,更好地满足用户的需求;第二,硬件设计方面,由于智能语音设备对资源的消耗比较大,因此为了更好地延长产品的待机时间,会使用单片机技术动态控制产品的功率,进一步降低对电量的消耗。同时,还可以通过单片机技术,提高硬件的响应时间,进一步提高用户的体验。

报警控制

对于部分电子设备来讲,会拥有自动报警的设置,报警控制也是单片机技术经常使用的领域,主要体现在以下几个方面:第一,对于一些自动报警装置来讲,例如:家里经常使用的火灾报警器,就是在外界环境达到一定条件下开启智能报警的设备,如果室内的烟雾浓度到达某种水平,或者是收集外界的数据达到某种状态时,就会自动触发报警设置,从而实现智能报警的功能;第二,对于一些智能电子设备来讲,如果外在环境超过设备的工作环境范围时,或者是设备存在一些异常情况时,就会触发自身的报警机制,让用户能够及时了解设备的运作详情,并且根据报警信息提供解决方案。例如:在一些工厂中,经常会安装一些设备,对工厂的生产环境进行监控,当出现某些异常数据时,就会发生报警,为确保设备的正常运作,设备维护人员需要及时进行处理,避免产生较大的故障。

医疗设备

随着医疗设备技术的不断提升,单片机开始在医疗设备中进行广泛的应用,主要体现在:第一,对病人的身体特征数据进行智能监控,可以将一些医疗设备安装在病人身上,并对其身体的数据进行收集,然后与后台的控制系统进行交互,如果发现病人的身体特征异常时,会及时产生报警。例如:部分医疗设备可以针对病人的心跳、脉搏、血压等进行监控,如果发现异常会及时呼叫医生进行处理;第二,在手术过程中,也会使用一些智能电子设备,例如:部分手术需要进入病人的体内进行,在避免开刀的情况下,可以通过控制智能设备完成手术的过程,进一步降低病人的痛苦,提高病人身体恢复的速度;第三,智能体检数据分析设备,可以将用户的体检数据录入进去,然后输入到分析设备后,通过与正常数据的对比,及时对用户的身体疾病进行预测和诊断。随着我国医疗技术水平的不断提高,单片机技术的应用变得越来越广泛,提高了医疗技术水平,更好地维护病人的健康。

应用特点

单片机拥有以下几种应用特点:(1)拥有良好的集成度;(2)单片机自身体积较小;(3)单片机拥有强大的控制功能,同时运行电压比较低;(4)单片机拥有简易携带等优势,同时性价比较高。单片机主要应用于下面几种领域当中,分别是:自动化办公、机电一体化、尖端武器和国防军事领域、航空航天领域、汽车电子设备、医用设备领域、商业营销设备、计算机通讯、家电领域、日常生活和实时控制领域等。

故障的排除

单片机故障的排除

1、单片机正常工作的三个条件

单片机工作的三个条件分别是电源、时钟晶振、复位。当单片机不能正常工作时,我们首先就要检查这三个条件,用电压表或者万用表检测他的电源和接地脚,检测两个引脚之间的电压是不是5V左右;对于时钟晶体振荡有没有正常工作,我们最好用示波器进行检测,看能否检测到相应频率的正弦波脉冲;复位检测比较简单,单片机的复位电平一般是高电平复位,单片机在接通电源的时候一般复位引脚上会出现5V左右的高电平,另外在按下复位按键时,复位引脚上也会出现高电平,用一般的电压表或者万用表都可以进行检测。

2、单片机内部是否正常工作的检测

单片机内部有没有正常工作,我们主要是通过写入程序的方式来进行检测和排查。这个检测需要有“烧入”代码的硬件和软件才行,检测的原理就是通过“烧入”代码的硬件和软件,将一段带有检测功能的正常代码“烧入”到单片机。检查两个方面:第一就是能不能将目标代码正常写入单片机,不能正常写入单片机时,说明单片机已经损坏,需要更换同型号的单片机;第二就是目标代码可以正常写入单片机,写入后的效果是不是就是程序设定的功能,如果是说明单片机正常。

单片机在更换时,我们最好采用同型号的单片机,然后写入公司给予的目标代码,单片机的价格目前一般比较便宜,零售价格大概5元左右。