e-works数字化企业网  »  文章频道  »  产品创新数字化(PLM)  »  EDA

单片机时序及周期含义分析

2013/10/14    来源:e-works    作者:刘涛      
关键字:单片机时序  单片机周期含义  
本文首先介绍了单片机时序的概念,接着通过单片机的时钟电路对单片机各种周期的含义进行了详细解释。最后通过一个实例对单片机时钟周期、状态周期、机器周期、指令周期进行了总结。

一、概述

    单片机工作时,是在统一的时钟脉冲控制下一拍一拍地进行的。这个脉冲是由单片机控制器中的时序电路发出的。单片机的时序就是CPU在执行指令时所需控制信号的时间顺序。

    CPU控制器实际上是复杂的同步时序电路,所有的工作都是在时钟信号的控制下进行的。每执行一条指令,CPU控制器都要发出一系列特定的控制信号,这些控制信号在时间上的相互关系就是CPU的时序。一个单片机系统要想正常工作,除了要做到电平匹配、功率匹配外,还要做到时序匹配。

二、单片机时钟电路

    单片机执行指令的过程可分为取指令、分析指令和执行指令三个步骤,每个步骤又有许多微操作组成,这些微操作必须在一个统一时钟控制下才能正确的顺序执行。时钟电路是计算机的心脏,它控制着计算机的工作节奏。

    MCS-51的时钟信号可以由两种方式产生:一种是内部方式,利用芯片内部的振荡电路,产生时钟信号;另一种为外部方式,时钟信号由外部引入。

    2.1 内部时钟方式

    MCS-51内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为放大器的输入端和输出端。该放大器与作为反馈元件的片外晶体或陶瓷谐振器(简称晶振)一起构成自激振荡器。常用调节C1或C2的容量大小对频率进行微调,电容容量通常为20-100pF,当时钟频率为12MHz时典型值为30pF。

    2.2 外部时钟方式

    在由多片单片机组成的系统中,为使各单片机之间的时钟信号严格同步,应当采用公用外部脉冲信号作为各单片机振荡脉冲。这时,外部方波脉冲信号经XTAL2引脚接入。

三、各时间周期含义及其分析

    为了保证各部件间的同步工作,单片机内部电路应在唯一的时钟信号下严格地控时序进行工作。为了便于对CPU时序进行分析,一般按指令的执行过程规定了几种周期,即时钟周期、机器周期和指令周期,下文将分别予以介绍。

    3.1 时钟周期

    时钟周期也称为振荡周期,定义为时钟脉冲的倒数,在单片机中也就等于晶振的倒数。是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。时钟周期是单片机的基本时间单位。51单片机振荡脉冲经十二分频成为时钟信号。若时钟晶振的振荡频率为Fosc,则时钟周期Tosc=(1/Fosc)*12。(即为振荡频率的倒数的12倍)。如:晶振频率为12MHZ,则时钟周期Tosc=(1/12μs)12=1μs。

    由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。

    3.2 状态周期与节拍

    CPU从一个状态转换到另一个状态所需要的时间称为状态周期。单片机的一个状态周期由两个时钟周期组成,又称为由两个节拍组成,每个节拍需要一个时钟周期。振荡脉冲的周期定义为节拍(为方便描述,用P表示),这样一个状态就有两个节拍,前半周期相应的节拍我们定义为1(P1),后半周期对应的节拍定义为2(P2)。

    3.3 机器周期

    在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由6个S周期(状态周期)组成,依次表示为S1、S2、…、S6。

    由于一个状态又包括两个节拍,因此一个机器周期共12个节拍,分别记作:S1P1、S1P2、…、S6P2。也就是一个机器周期等于12个振荡周期。

    3.4 指令周期

    CPU 的工作是不断地取指令和执行指令,以完成数据的运算、传送和输入/输出等操作。CPU从取指令开始至该指令执行完所需的时间称为一个指令周期。它是MCS-51最大的时序单位,一条指令周期应在1-4个机器周期范围内。不同指令的指令周期也是不相同的。指令周期以机器周期为单位,而机器周期是完成一个规定操作所需的时间。

    如果单片机执行一条指令占用一个机器周期,则这条指令为单周期指令,如简单的数据传输指令;如果执行一条指令需要两个机器周期,称为双周期指令,如乘法运算指令。单片机的运算速度与程序执行所需的指令周期有关,占用机器周期数越少的指令则单片机运行速度越快。在51系列单片机的汇编指令中,共有单周期指令、双周期指令和四周期指令三种。四周期指令只有乘法和除法指令两条,其余均为单周期和双周期指令。

    单字节和双字节指令都在S1P1期间由CPU读取指令,将指令码读入指令寄存器,同时程序计数器PC加一。在S4P2期间,单字节指令读取的下一条指令会丢弃不用,但程序计数器PC值也加一;如果是双字节指令,CPU在S4P2期间读取指令的第二字节,同时程序计数器PC值也加一。两种指令都在S6P2时序结束时完成。

    单片机执行单字节双机器周期指令的时序见图4(c)所示,双周期指令在两个机器周期内产生四次读操作码操作,第一次读取操作码,PC自动加一,后三次读取都无效,自然丢弃,程序计数器PC的值不会变化。

四、总结

    若单片机外接晶振频率为Fosc=12MHZ,根据上文论述各周期之间的关系,得出四个基本周期的具体数值为:

    (1)时钟周期=1/12μs。

    (2)状态周期=1/6μs。

    (3)机器周期=1μs。

    (4)指令周期=1~4μs

    准确理解单片机时序、时钟周期、机器周期、指令周期这些概念的含义,对正确地设定定时器/计数器工作参数、按照时序对外围芯片读写操作,设计出相对稳定可靠、精度较高的单片机控制系统具有十分重要的意义。

责任编辑:程玥
本文为e-works原创投稿文章,未经e-works书面许可,任何人不得复制、转载、摘编等任何方式进行使用。如已是e-works授权合作伙伴,应在授权范围内使用。e-works内容合作伙伴申请热线:editor@e-works.net.cn tel:027-87592219/20/21。
相关资料
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐