单片机的状态迁移与复位操作

发布者:BlissfulSpirit最新更新时间:2007-09-06 来源: 单片机及嵌入式系统应用关键字:80C51  存储  睡眠 手机看文章 扫描二维码
随时随地手机看文章
本文以经典的80C51单片机为例,利用工作状态及其状态辽移的新概念、新观点和新方法,揭示一些单片机运作的内在规律,对于单片机学习者和应用开发者具有一定的启迪作用和实际意义。

1 单片机的工作状态及其状态迁移

80C51单片机的各种活动,可以描述成多个不同的工作状态或工作模式。这里利用笔者构思的一个单片机工作状态迁移图(如图1所示)来说明。不过,这里重点关注的是复位状态。

经过仔细分析之后,从图1中可以看出:

① 把单片机经历的所有生存状态归纳和描绘成5个状态--1个非工作状态(即无电状态)和4个工作状态。

② 只有复位状态是一个暂态,其他均为稳态;并且每次单片机进入正常运行状态时,都要经历一次复位状态。

③ 只有在正常运行状态(这里记作NORMAL)下,单片机才按照程序存储器中固化的用户程序按部就班地一步一步执行,从而完成开发者设计的各项任务。

④ 停机状态(或PD模式)和待机状态(或IDL模式),主要是为节能降耗而规划的节电状态(或称"睡眠状态")。

⑤ 从无电状态离开的唯一条件就是上电,并且唯一能够到达的是一个暂态--复位 状态。

⑥ 复位状态以外的4个状态都有迁移到复位状态的途径,只是导致迁移的条件不尽相同。

⑦ 无电状态之外的4个工作状态,都可能因为随时断电而导致单片机进入"无电状态"。

⑧ 从另外3个工作状态迁移到复位状态,基本都是依靠外部引脚RST上的复位信号。原始复位源比较单一,这是因为传统80C51的复位逻辑相对简单。如果想增加"电源欠压复位"和"看门狗复位"等其他复位源,则需要片外扩充独立电路来实现。

⑨ 标准80C51没有设计"软件复位"功能,如果需要该功能,可以通过用户程序自行实现。不同的是,软件复位不会令CPU经历一次复位状态。

2 复位源、复位操作和复位状态

像数字电路中的时序逻辑电路器件需要具备复位功能一样,各种类型的单片机也都需要具备复位功能(RESET)。复位功能按其英文原意是重新设置的意思,也就是从头开始执行程序,或者重新从头执行程序(Restart)的意思。复位是单片机的一项重要操作内容,其目标是确保单片机运行过程有一个良好的开端,确保单片机运行过程中有一个良好的状态。

需要强调的是:关于"复位"一词,它既包含复位活动的意思,又包含复位状态的意思。或者说,复位既是一个动态的概念(指复位活动、复位操作、复位处理或复位过程等),又是一个静态的概念(指复位状态或复位模式等)。

2.1 常规复位源和扩充复位源

从现今的技术高度来看,标准80C51单片机的复位功能设计得不够完善,不仅没有设置复位标志位寄存器,而且复位源的种类也很少。

所谓"复位源",就是导致或者引起单片机内部复位的源泉。对于当前市场上出现的种类比较齐全的单片机,其典型复位源大致可以归纳为以下6种:上电复位、人工复位、电源欠压复位、看门狗复位、非法地址复位和软件复位。这些复位源的特点是:

① 上电复位这一种复位源是必不可少的。因为每次给单片机加电时,其电源电压的稳定,以及时钟振荡器的起振和振幅稳定,都需要一定的延迟时间。

② 只有上电复位和人工复位这两种复位源,是讲解80C51单片机的教科书、技术文章和文献资料巾比较常见的。

③ 对于电源欠压复位、看门狗复位和非法地址复位3种复位源,标准80C51是不具备的,不过可以额外扩充,可由单片机用户根据实际需要通过附加一些软件或硬件的手段来实现。

④ 虽然电源欠压复位、看门狗复位、非法地址复位3种复位源可以额外扩充,但是都必须借助于复位引脚RST来实施复位操作或复位锁定。

⑤ 标准80C51本来不具备软件复位功能,但是可以通过纯软件方式以及虚拟手段,来实现或者部分实现其他单片机的软件复位。这种方法扩充的软件复位是一种比较特殊的复位源,一是不通过RST引脚实现复位,二是复位操作的内容与众不同。软件复位作为一种新技术,目前有越来越多的新型单片机配备了该功能。例如Philips公司的P87LPC700和P89LPC900系列、TI-BB公司的MSC1200系列、SunPlus公司的SPMC65系列等,内部都设计了专门用于实现软件复位的控制寄存器或者控制位。

2.2 复位操作的具体内容

单片机复位功能的实现过程实质上就是在单片机内部进行一系列的复位操作。在复位期间,单片机内部的复位操作究竟完成了哪些内容,是程序设计人员应该搞清的问题,因为单片机复位操作完成之后的内部状态,就是运行用户程序和进行软件处理的背景、基础和起点。 对80C51单片机来说,只有软件复位的具体内容和影响范围,是可以由用户自由定制的;而凡是直接作用于复位引脚RST上的复位源(如上电复位等),所实现的复位操作的具体内容和影响范围都应该是一样的。现在归纳如下:

① 程序计数器PC返回到原始状态0000H;

② 所有特殊功能寄存器SFR全部还原为复位值(可以查阅技术手册);

③ 所有通用并行端口(P0、P1、P2和P3)的引脚全部被设置为输入状态;

④ 清除各级中断优先级的激活触发器,以便受理各级中断请求(在标准80C51中只设置了2个中断优先级别,而在有些新型兼容产品中设置了4个级别)。

2.3 复位状态的具体表现

单片机一旦进入复位状态并且停留在复位状态下(即外接引脚RST被锁定在有效的高电平上),就会表现出如下一些具体特征:

  • CPU不再执行程序而保持静止(冻结)状态;
  • 各种片内外围模块(定时器、串行口、总线接口、中断系统等)均停止工作;
  • 各个并口(P0~P3)的所有口线均对外呈现高阻状态;
  • 各SFR的内容均恢复到复位值(即返回到知情范围);
  • 内部RAM内容维持记忆,只要电源电压不低于最低维持电压(一般为2 V)就能够保持原有内容;
  • 内部时钟源振荡器仍然会维持振荡,只要电源电压还在1 V(甚至略低于1 V),振荡器就能够维持工作;
  • 各种片外电路(如扩展存储器、扩展I/O端口或锁存器等)都应该维持原有内容和状态。

2.4 补充说明

格外值得关注的是,经历了复位操作之后的各个并行端口的状态。因为端口引脚是单片机联系外部世界的、最多的一类引脚,其复位状态(即初始化状态)将直接影响外部电路,甚至还会对外部电路构成威胁或造成损坏。为了避免这种影响或威胁,总是把各条端口引脚复位成"输人方式"。理由是,输入方式对外呈现出很高的阻抗,从而有效地防止了可能发生的过流损坏。

任何方式或任何复位源引起的复位操作,都不会改变RAM区的用户数据。甚至就连欠压复位事件的发生,只要电源电压VDD还没有跌落到连RAM内容都不能维持的地步(一般以2 V为门限),就不会丢失RAM中的用户数据。

3 几点新启示

单片机系统一旦进入PD模式(即停机模式,或掉电模式,有时也称"掉电保护模式"),系统时钟源就会停止工作,CPU以及所有的片载硬件模块一起退出运行状态,从而使功耗大幅度降低(可以到达μA级,甚至以下)。

单片机应用项目开发人员利用停机模式可以达到两种目的:

①降低单片机应用系统的总体耗能;

②抵御电源电压跌落时可能带来的CPU失控,就是一旦发现电源电压跌落、欠压或故障,则强行把单片机推入停机模 式,以免发生程序混乱。停机期间,即使电源电压降低到2 V,仍然能够维持RAM内容不丢失。

通过仔细分析图1可以发现,当初Intel公司为80C51设置停机模式的主要初衷,应该是基于上述第二种目的。理由是,从图1中可以看出,常规唤醒方式可以令单片机从PD模式直接返回到NORMAL模式,一般利用特定的中断源作为唤醒源。不过对标准80C51来说,Intel公司没有设计利用中断源作为唤醒源的途径,不能不说是一种遗憾。

为了弥补这个遗憾,一些新型兼容产品(例如Atmel公司的AT89S51/52/53/8252/8253、Philips公司的P89V51RB2/RC2/RD2以及P89LPC900系列等)添加了利用被使能且被设置为用电平触发的外部中断源INT0和INT1来作为唤醒源,唤醒后的单片机能够从设置PD=1指令之后的下一条指令恢复运行。

关键字:80C51  存储  睡眠 引用地址:单片机的状态迁移与复位操作

上一篇:基于AT89C52的多超声信号融合处理系统设计
下一篇:单片机应用系统的抗干扰技术

推荐阅读最新更新时间:2024-03-16 12:22

STM32学习 存储器和总线构架
主系统由以下部分构成: 1.四个驱动单元: Cortex-M3内核,DCode总线和系统总线(S-Bus),通用DMA1和通用DMA2 2四个被动单元 内部SRAM,内部闪存存储器,FSMC,AHB到APB的桥,它链接所有的APB设备。 程序存储器,数据存储器,寄存器和输入输出端口被组织在同一个4GB的线性地址空间内。数据字节以小端格式存放在存储器中。 可访问的存储器空间被分成8个主要块,每一个块为512M。 STM32F10XX内置64K字节的静态SRAM,它可以以字节,半字,或字访问。 SRAM的起始地址是0x2000000 Cortex-M3存储器映像包括两个位段区。这两个位段区将别外存储区中的每个字映
[单片机]
Synopsys扩展VMM方法以实现更高功能性验证的生产效率
新一代VMM解决方案为成熟的VMM 方法集增加了验证计划、应用和自动控制功能 全球领先的电子设计自动化(EDA)软件工具领导厂商Synopsys日前宣布,应用其扩展的业界领先的VMM方法,帮助产品开发团队更有效地定义、测量并实现他们的验证目标。新一代VMM解决方案可通过三个新的部分实现更高的验证生产效率,即VMM Planner、VMM Applications和VMM Automation。VMM Planner有助于经理们系统地计划和跟踪验证进展,提高验证的可视性和可预测性;VMM Applications有助于架构师迅速构建有效的验证环境,缩短测试工作台的创建时间;VMM Automation则可改善工程师开发和应用先进测
[新品]
韩国将加大非存储芯片等技术投入
据韩联社报道,韩国政府高级官员表示,作为政府数字发展项目的一部分,韩国正计划加大研发投资来加快未来关键技术的发展,包括系统半导体等技术。    韩国财政部官员表示,韩国将聚焦提升一些新产业的竞争力,比如人工智能半导体和超高速计算机等。    据了解,韩国半导体产业已经具备了一定发展优势,领先企业包括三星电子和SK海力士公司等。韩联社的报道称,韩国芯片企业在包括系统半导体技术等非存储芯片研发方面相对滞后。这位财政部高级官员表示,将加大投入支持韩国芯片企业持续在这些领域内保持领先地位。    据悉,这项行动将是韩国政府关键数字发展项目中的一部分,该项目希望在2025年之前投入58.2万亿韩元(约合520亿美元)资金来支持关键技术的发展
[半导体设计/制造]
STM32内存分配解析及变量的存储位置
内存映射 在一些桌面程序中,整个内存映射是通过虚拟内存来进行管理的,使用一种称之为内存管理单元(MMU)的硬件结构来将程序的内存映射到物理RAM。在对于RAM紧缺的嵌入式系统中,是缺少MMU内存管理单元的。因此在一些嵌入式系统中,比如常用的STM32来讲,内存映射被划分为闪存段(也被称为Flash,用于存储代码和只读数据)和RAM段,用于存储读写数据。 STM32的Flash和RAM地址范围 标题中所说的内存是指STM32的Flash和RAM,下图是ARM Cortex M3的地址映射 从图中我们可以看出,RAM地址是从0x2000 0000开始的,Flash地址是从0x8000 0000开始的。 Flash 代码
[单片机]
STM32内存分配解析及变量的<font color='red'>存储</font>位置
数字存储示波器功能、带宽和使用方法
  数字储存示波器(Digital Storage Oscilloscope——DSO),先将输入的模拟信号经A/D变换为数字信号,存储在存储器RAM中;需要显示时,读出RAM中的数据,通过D/A恢复为模拟量,显示在屏幕上。其信号处理与显示功能独立。   DSO使用简单,可观测触发前的信号。使用X—Y方式观测波形时,两通道几乎没有相位差,准确度高。目前DSO基本都采用液晶显示器等平板显示器,显示图形稳定无闪烁,观测方便。      数字存储示波器功能   数字存储示波器的随机存储器RAM按功用可分为信号数据存储器、参考波形存储器、测量数据存储器和显示缓冲存储器四种。信号数据存储器存放模拟信号取样数据;参考波形存储器存放参考
[测试测量]
数字<font color='red'>存储</font>示波器功能、带宽和使用方法
美扩大对华为禁令,对存储产业的影响
根据集邦咨询半导体研究中心(DRAMeXchange)调查显示,美国商务部工业和安全局(BIS)于5月15日公布针对华为出口管制的新规范,未来使用美国半导体相关设备的外国芯片制造商必须要特别申请核准,才可对华为、海思以及其他相关公司出货。 虽然相关法条仍存有进一步解释的空间,但目前观察对于存储器的采购(含DRAM与NAND Flash)影响有限,各原厂仍可继续对华为出货。但值得注意的是,美国对于华为或其他中国品牌的规范力道会持续增强,因此对于后续存储器的供给或需求面的冲击还需要持续观察评估。 以存储器的需求面来说,主要观察重点在于禁令是否会冲击华为的终端出货表现(涵盖智能手机、笔记本电脑、服务器相关以及网通产品)。
[嵌入式]
美扩大对华为禁令,对<font color='red'>存储</font>产业的影响
存储芯片需求持续强劲 三星有望发布史上最强Q4财报
本周五,全球最大的存储芯片和智能手机制造商三星电子将发布去年第四季度财报。分析师预计,由于存储芯片需求强劲,以及代工制造利润率上升,三星电子有望公布创纪录的第四季度利润。    据Refinitiv的14位分析师分析,在截至去年12月的第四季度内,三星电子营业利润有望达到15.2万亿韩圆(约合808.5亿元人民币)。这将较上年同期的9.05万亿韩圆增长68%,略高于2017年第四季度创纪录的15.15万亿韩圆。    三星电子的股价在过去两个月里已经上涨了约12%,因为市场对三星电子的良好业绩表现已经有所预期,并且由于市场对视频、游戏、会议和其他流媒体服务的需求持续强劲,存储芯片的价格今年有望继续上涨。    KB证券分析师Jef
[半导体设计/制造]
车载CAN总线记录仪实现大容量存储系统
引言   CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。本文利用“FPGA+单片机”作为存储控制器,采用基于LZW算法的数据压缩技术,以SDRAM作为周期存储和缓存,SD卡作为最终存储载体,实现车载CAN总线记录仪实现大容量 存储系统 。   1 系统整体结构设计      如图1所示,存储系统主要包括以下模块:FPGA主控模块、CAN总线监听控制模块、数据压缩模块、SDRAM控制模块和单片机控制CH376模块。本
[模拟电子]
车载CAN总线记录仪实现大容量<font color='red'>存储</font>系统
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多每日新闻
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved