精华内容
下载资源
问答
  • 如何看时序图

    2011-12-27 10:26:42
    包含:MCU如何根据LCD的时序来写底层驱动.pdf 如何看时序图.pdf 如何读单片机的时序图.pdf。 针对嵌入式初级学习者,详细介绍如何读懂时序图
  • 如何看时序图,经典。

    热门讨论 2009-11-14 14:41:01
    一份教你时序图的经典之作。 后决不后悔。我也是这以后才完全理解时序图的。
  • 最近在用S5PV210,涉及到nand flash,需要看时序图,原来对于时序图的使用就一知半解的,这次狠心好好学一下,网上看到这篇,讲的巨详细,谢谢原博主http://blog.chinaunix.net/uid-28852942-id-3992727.html ...

    最近在用S5PV210,涉及到nand flash,需要看时序图,原来对于时序图的使用就一知半解的,这次狠心好好学一下,网上看到这篇,讲的巨详细,谢谢原博主http://blog.chinaunix.net/uid-28852942-id-3992727.html

    正文开始:

    这篇文章不是介绍 nand flash的物理结构和关于nand flash的一些基本知识的。你需要至少了解 你手上的 nand flash的物理结构和一些诸如读写命令

    操作的大概印象,你至少也需要看过 s3c2440中关于nand flash控制寄存器的说明。

    由于本人也没有专门学过这方面的知识,下面的介绍也是经验之谈。

    这里 我用的 K9F2G08-SCB0 这款nand flash 来介绍时序图的阅读。不同的芯片操作时序可能不同,读的命令也会有一些差别

    当然其实有时候像nand flash这种 s3c2440内部集成了他的控制器的外设。具体到读写操作的细节时序(比如 CLE/ALE的建立时间,写脉冲的宽度。数据的建立和保持时间等),不明白前期也没有多大的问题。

    因为s3c2440内部的nand flash控制器 做了大部分的工作,你需要做的基本就是设置 几个时间参数而已。然后nand flash会自动进行这些细节操作。

    当然如果处理器上没有集成 nand flash的控制器 那么久必须要自己来写时序操作了。所以了解最底层的时序操作总是好的

     

    但是上层一点的,比如读写操作的步骤时序(比如读操作,你要片选使能,然后发命令,然后发地址,需要的话还需发一个命令,然后需要等待操作完成,然后再读书数据)。

    是必须要明白的。这都不明白的话,怎么进行器件的操作呢

     

    也就是说 s3c2440 可以说在你设置很少的几个时间参数后,将每一个步骤中 细微的操作都替你做好了。(比如写命令,你只要写个命令到相应寄存器中,cpu内部就会协各个引脚发出

    适应的信号来实现写命令的操作)。

    而我们所需要做的 就是 把这些写命令,写地址,等待操作完成。等步骤组合起来 。从而完成一个 读操作

     

    就像上面说的,虽然我们不会需要去编写每个 步骤中的最细微的时序。 但是了解下。会让你对每个操作步骤的底层细节更加明了

     

    先来看一个命令锁存的时序。也就是上面说的  nand flash操作中不是有一个 写命令步骤吗。那么这个步骤具体是怎么实现的。

    首先 我们肯定是要片选 nand flash。只有选中芯片才能让他工作啊

    nand flash是通过 ALE/CLE (高电平有效)来区分数据线上的数据时命令(CLE有效),地址(ALE有效)还是数据(CLE/ALE都无效)。

    那么这里既然是写命令 那么就一定是 CLE有效(高电平) ALE无效(低电平)

    同样命令既然是写给nand flash的那么 肯定有一个写周期。我们需要注意的是,写是在上升沿有效还是下降沿有效

    时序图如下:

    这里是命令锁存是时序,那么我们要注意的其实就只有 CLE 为高电平期间这段时序。(写命令啊,CLE有效时(高电平)指示现在的数据其实命令)ALE此时一定为低电平我们可以不关心他

    所以,CLE 低电平的时期,其他大部分引脚上都是 灰色的阴影,这代表我们不需要关心这段时期这些引脚的电平

    那么 这个数据是什么时候被nand flash读取到的呢, 注意到 nWE信号 在上升沿有一个贯穿所有其他引脚时序的竖线(这好像是叫生命线?我也不清楚)

           这就是说明,写入的数据(命令也是数据啊,只是可以通过CLE有效来区分)是在 WE的上升沿有效。

           也就是说,虽然 WE是在低电平有效,但并不是说 WE一变成低电平,命令就被锁存了(即真正获得命令)而是在 WE 的上升沿,命令才真正被锁存

     

    知道了上面这三点,也就知道了一个大概,那么剩下的图中也只剩那些 txx 的标号。明显它指的是时间,但是具体指什么时间呢。

    指的就是箭头两边所指的两条 竖线之间的时间。(在每个信号的跳变沿,都有小竖线)

     

    剩下的就是这些时间到底是代表什么了。这里没什么难的,刚接触的觉得看不懂。是因为之前从来没接触过。(就像单片机刚学的时候不也是各种不懂,原因就是我们从没接触过)。
    这些时间标号,在数据手册的前面都有
     说明

    比如  tCLS   tCLH 从数据手册中我们可以看到 分表代表的 CLE建立时间,和CLE信号保持时间。

    简单点你可以理解为,我让 CLE引脚  变成高电平,总得给人间一点时间去变成高电平吧。总不能瞬间就变成高电平

    不过从 时序图中我们能看到更多的端倪,之前不是说过 WE 的上升沿上不是有一个最长贯穿其他信号线的 竖线吗。我们说他指示了,数据(命令也是数据)

           是在上升沿被锁存的,在 WE 的上升沿,我写到数据线上的命令数据才真正被锁存(接收),但是 我们注意到 CLE 信号在WE上升沿之前有就有效了。

           所以我们说, 在命令数据真正被锁存之前,CLE 有效的那段 tCLS 时间叫做 CLE信号建立时间。

           WE上升沿后。命令已经被接受了,但这时候 CLE 其实可以变为无效了,因为已经获取到命令了

           但是他并没有立刻结束,而是 Tclh时间之后才结束。那么我们 称这段 时间 tCLH  CLE 保持时间


    那么再根据手册中的说明
      tCS 表示 片选信号建立时间,tCH表示片选信号保持时间

           tDS表示数据建立时间,tDH表示数据保持时间

     

    这里我们看到一个小规律,在数据手册中  S 结尾的时间通常指的是建立时间,  H 结尾的时间指的是保持时间

          

          

    这里命令锁存的时序就分析完了。我们再来看看  地址锁存时序图,这个图有点复杂,

    因为nand flash 特性是 地址周期通常需要好几个,就是一个地址是分几次发送的

     

    再给出数据手册中对应时间标号的说明


    同样我们按照上面分析的步骤

    这里是地址锁存是时序,那么我们要注意的其实就只有 ALE 为高电平期间这段时序。(写命令啊,ALE有效时(高电平)指示现在的数据其实是地址)CLE此时一定为低电平,可以不用管


    所以,ALE 为低电平的时期,其他大部分引脚上都是 灰色的阴影,这代表我们不需要关心这段时期这些引脚的电平


    同样 WE 的上升沿有一个贯穿其他信号线的长竖线,这也是代表数据(这里其实是地址)在上升沿被锁存

     

    那么剩下的也好理解

    tCLS 这个我们不需要关心,因为 CLE 压根就是无效的。

    tCS 就像之前分析的,它是指 CE片选信号在 WE上升沿也就是锁存地址之前的有效时间,也就是 CE 建立时间

    tWC 不知道? 不知道 看手册啊,前面也说过这些时间标号在手册中都会给出。

           从上面手册的解释我们看到,它指的是一个写周期的时间

    tWP 写脉冲宽度(也就是 WE是低电平有限,twp指低电平持续时间,就是有效时间)

    tWH 好理解了,就是高电平时间

    ALS    这不就是 地址信号  ALE 建立时间嘛

    ALH   ALE信号有效保持时间啊

    TDS TDH 数据建立和保持时间

    就像上面对 命令时序的分析,这里 信号的 建立  保持时间都是以 数据被 锁存分界点(WE上升沿)

     

    看到这里相信仔细看的人,应该大致该如何看一个时序图了,但是这里 我们牵涉到的 无非都是一些 上面 建立/保持时间。

    复杂点的呢。

     

    下面就来看一个复杂点的时序图,其实也不复杂,主要是说明如何在不看手册就能知道 txx指的是什么时间 

     


     

    这个时序其实并不复杂,只是他不是像上面分析的那样都是一些 建立时间和保持时间。这里牵涉到跟多的时间标号

    不过就像前面说的看手册! 手册里对每个时间参数都有说明。不过初学者通常即使看手册,对这些时间参数也是不知道是什么意思。

    这里我们看手册前,先来自己分析下。方法会了,手册就成了验证你对不对的东西了,而不是你寻找答案的东西。

     

    TRC 这个参数有点简单。看他的范围  一个 RE周期 的时间,那么就跟前面的 tWC 应该是一样的。那它应该代表的就是 RE信号的一个周期时间(读信号的一个周期)

    TREA 呢?看标号看不出所以然,那么我们就看他的起始和结束时间从时序图能看到,这个指的是从RE有效(变低)到数据出现之间的时间。

    那么tREA 可想而知就应该是 读信号有效到数据被读之间的时间

    后面的都是这个同样的分析方法

    比如最后的那个 tRHZ 是从 RE 无效(高电平)到数据线变成高阻态 之间的时间(数据线画在中间表示的是高阻态)

    看下手册中的解释 也基本就是这个意思

     

    到这里 对于时序图怎么看,相信大家都应该能理解了。甚至可能连手册都不用看,就知道他是什么意思了。因为我们能从 时间的起始地址来推测时间标号的意思

     

     

    上面这些分析,都是很底层的操作,如果我们使用 s3c2440 这种高级的处理器 这些时序操作我们根本不需要去实现,顶多也就往几个寄存器中

    设置一下上面说的一些时间 然后,CPU 中的 nand flash控制器会自动完成上面所的所有操作。但是还需要了解的原因是,如果你碰到一个没有

    nand flash 控制器的处理器 怎么办,那你只能亲自实现这些 具体的 写命令,写地址。等等 单元操作。

    然后才能将这些单元操作组合成 读数据,写数据等操作(上面说过 比如读操作 他并不是一个简单的命令而是一系列操作,你要片选使能,然后发命令(读命令)

    然后发地址(要读的数据的地址),需要的话还需发一个命令,然后需要等待操作完成,然后读书数据)

     

    说完了 这些具体的单元操作,那么我们再来看看一个 读操作 具体需要哪些步骤。也就是我们需要真正必须掌握的时序操作

    对于我这款 nand flash 读操作时序如下

    我们要注意的主要是 最下面一行  I/Ox 信号线的状态,他指示了 读操作需要哪些,单元步骤。

    首先 我们看到 有一个 0x00 是什么?数据?地址?命令?  ALE/CLE线啊,这两根线不是决定了现在的数据的类型嘛

           顺着往上看,我们知道0x00是在 CLE有效期间的数据那么它就是一个命令

    然后是 address(5Cycle) 即五个地址序列(这款nand flash 指定读数据的地址时要发送五个地址序列),往上看,是在ALE有效期间的数据,那么应该就是地址了

           (对于这五个地址,前面两个是列地址,后面三个是行地址。在nand flash的物理结构中 行地址对应的某一页,列地址就对应这一页中的某一列)

     

    接着又是 0x30,此时 CLE有效,那么就是命令了(也就是说这款nand flash的读操作需要两个命令)。

           但是之后数据并未立刻出来,我们看到在到 DATA Output即数据输出之前还有一段时间,为什么有这段时间?

           往上看 R/nB 这个数据线上说明了原因,这段时间内它是低电平 即指示现在 处于 忙碌状态,还未准备好数据输出。为什么会这样?

           因为你 写了 一个命令,写了要读数据的地址,又写了一个命令。 你总要给 cpu一些时间去处理这些命令吧,

           R/nB为低电平这段时间就是 在处理这些命令(实际上是根据命令将你定位的那一页数据读到内部寄存器中),

            R/nB变成高电平了,就指示命令处理完毕,现在数据也就可以读出来了

     

    综上我们从手册中我们就知道了读操作的具体步骤,

    首先nand flash 也是一个外设,要访问他就需要片选它,所以在执行时序图上的步骤之前需要片选nand flash.

    看后面就是安装时序图来了,看时序图第一步先是发送一个命令 0x00.

    看时序图! 然后发送五个地址序列(先发送两个列地址,在发送三个行地址(即页地址))

    看时序图! 接着再是一个命令 0x30.

    看时序图!  R/nB 引脚为低表示现在正忙,正在处理这些命令,那就要等待 R/nB 引脚变为高电平

    看时序图! 这个时候就可以读数据了

    一次读操作结束了 nand flash 暂时是不需要使用了,那么别忘了应该 取消片选信号。

     

    至于这每一个步骤中具体的时序,cpu中的nand flash控制器会帮我们完成。我们要做就是设置几个时间参数

     

    这里我们反复强调了要看时序图。其实学嵌入式前期对数据手册一定要多看,看多了你就回知道,什么东西的你重点要看的,什么是和你的编程操作无关的你不需要关心。这样后面你才能,拿到一个外设 就能写出他的操作。而不用跟着书背步骤。只要手册在就行了。

     

    上面的步骤,是一个具体的读操作的步骤,不过在使用一个器件之前我们需要初始化一下它。至于初始化也就是设置我们上面多次提到的

    我们说过 s3c2440已经帮我做了很多底层的单元操作,我们只需设置几个时间参数 片内的 nand flash就会自动发出相应操作的时序操作

    那么到底设置那几个时间呢。 

    s3c2440 手册上给出了 需要我们设置的几个参数。


     

    从中我们可以看出 第一幅时序图是 命令和地址锁存的时序,第二幅是 数据读取和写入的时序。
    可以看出,他们要设置的时间都是一样的。
    前面分析了那么多,这里应该不难 看出


    1 TACLS 
    很明表示的是 CLE/ALE 的建立时间(这里并不准确,其实是 CLE/ALE有效到 WE 变成低电平之间的时间,但 WE 却是在上升沿才锁存命令/地址)

    2 TWRPH0 代表的是 WE 的脉冲宽度,即有效时间

    3 TWRPH1 代表的是 CLE/ALE 的保持时间


    那到底设置成什么数字呢。既然
     上图中读//命令/地址 操作需要的时间参数都是一样的

    那么我们从 nand flash中随便找一个 命令时序来对照不就行了

    就拿上面我们说过的 命令锁存时序来对比


    那么我们就能得到下面的关系

    TWRPH0 = tWP 

    TWRPH1 = tCLH

    TACLS  = tCLS - tWP

     
    然后设置成多少呢? 看手册啊,手册中对 tWP  tCLH  tCLS 都会至少给出 需要的最小时间


    这款芯片nand flash
    手册中这三个参数要求是

     

    所以 TWRPH0 = tWP  >=12ns

            TWRPH1 = tCLH >=5ns

            TACLS  = tCLS - tWP >=0

    而这三个参数在s3c2440的数据手册中说明为

     

    当然这里的时间都是以 HCLK 为单位的,这几个参数 是在 nand flash控制寄存器中的 NFCONF中设置的

    这里我没用使用MPLL 所以HCLK 12MHZ

     

    所以 TWRPH0 = 0 TWRPH1 =0 TACLS =0; (如果你的时钟频率比较高,那就要设别的数了。当然有是有你真不知道,设置大点总没错,只不过速度可能会慢点。)

           所以 NFCONF =0;NOFCONF其他位数据手册中有说明,这里只是简单读操作,其他位可以不设置)

     

    然后是初始化一下 ECC 使能nand flash控制器(我们只是设置了几个时间参数,时序的具体操作就是靠他来完成的,所以要使能他)

    然后先 取消片选nand flash 因为我们现在还没有操作它啊,只是初始化一下。所以还是应该先取消片选,等真正读的时候再使能片选信号

     

    NFCONT = (1<<4) | (1<<1) (1<<0);

    (数据手册中有对应位的说明)

    最后,第一次使用nand flash 我们需要复位操作一下。

    综上,nand flash 的初始化代码如下

    void nand_init(void){

            NFCONF =0;

            NFCONT = (1<<4) | (1<<1) | (1<<0);

            nand_reset();  //nand reset代码在后面

    }

     

    下面代码一些地址的写法是与 nand flash 型号有关的。具体需要参考芯片手册

          

     

    void select_chip(void){

            NFCONT  &= (~(1<<1)) ;   

            int i;

            for(i=10;i>0;i--);

    }

    void deselect_chip(void){

            NFCONT |= (1<<1);

            int i;

            for(i=10;i>0;i--);

    }

     

    void write_command(unsigned char command){

            NFCMMD = command;

            int i;

            for(i=10;i>0;i--);

    }

     

    /*

           这款nand flash 的页大小是 2K

           五个地址周期  (2个列地址 3和行地址(页地址))

    */

    void write_address(unsigned int address){

            unsigned int page = address/2048;

            unsigned int col  = address&2048;

     

            int i;

            NFADDR = col & 0xff;

            for(i=5;i>0;i--);

            NFADDR = (col >>8) & 0x0f;

            for(i=5;i>0;i--);

            NFADDR = page & 0xff;

            for(i=5;i>0;i--);

            NFADDR = (page >>8)& 0xff;

            for(i=5;i>0;i--);

            NFADDR = (page >>16)&0x01;

            for(i=5;i>0;i--);

    }

     

    unsigned char read_one_data(void){

            return NFDATA;

            int i;

            for(i=10;i>0;i--);

    }

     

    void wait_ready(void){

            while(!(NFSTAT & 1));

            int i;

            for(i=10;i>0;i--);

    }

     

     

    static void nand_reset(void){

            select_chip();

            write_command(0xff);

            wait_ready();

            deselect_chip();

    }

    void nand_init(void){

            NFCONF =0;

            NFCONT = (1<<4) | (1<<1) | (1<<0);

     

            nand_reset();

    }

     

    /*

    nand flash 的读操作是以页为单位的。

     des: nand flash中读出的数据放到哪

     start_addr 从哪里开始读

     size: 读多大

    */

    void nand_read(unsigned char *des,unsigned int start_addr,unsigned int size){

            unsigned int col  = start_addr & 2048;

     

            select_chip();

            unsigned int start = start_addr;

            unsigned int end   = start_addr + size;

            while(start < end){                             //每读一页需要发一次命令

                    write_command(0x00);

                    write_address(start);

                    write_command(0x30);

                    wait_ready();

     

                    while((col<2048) && (start<end)){  //在一页中读,我用的型号一页大小为2K

                            *des = read_one_data();

                            des++;

                            col++;

                            start++;

                    }

                    col =0;

            }

            deselect_chip();

    }

    展开全文
  • 看时序图写程序

    千次阅读 2017-09-20 21:23:19
    1602时序图 单片机是一种微控制器,本身内部集成了数种资源比如CPU、内存、内部和外部总线系统,目前大部分还会具有外存。他的主要任务是利用各种资源实现电平控制,可以以此控制与它相连的下级系统,广泛用于...
    1602时序图
    

    单片机是一种微控制器,本身内部集成了数种资源比如CPU、内存、内部和外部总线系统,目前大部分还会具有外存。他的主要任务是利用各种资源实现电平控制,可以以此控制与它相连的下级系统,广泛用于工业自动控制领域。
    我们就从这句话出发,首先单片机用来做控制用的,而且是利用的是本身的内部资源。但是,它的功能再强大,资源再丰富也总有一个上限,总有枯竭的一天。所以我们常常利用单片机外接芯片来弥补或者增强单片机的功能来完成我们所需功能的电路。比如程序存储器不足,可以外接外部存储器,比如单片机内部中断级不足,可以外接中断控制器等等。大家可以从这个角度来理解芯片控制的意义罢。
    今天我们用AVR单片机来实现对LCD1602液晶显示芯片的控制。
    首先从这个名字讲起,LCD:英文全称为Liquid Crystal Display,即为液态晶体显示,也就是我们常说的液晶显示了。(平时老说LCDLCD,可能大家也都不怎么注意过这个全称吧,呵呵,当增加词汇量了)1602则是表示这个液晶一共能显示2行数据,每一行显示16个字符。这个就是LCD1602的全部来由。
    液晶显示的使用有多广泛我就不多说了,LCD1602好像10元左右就可以拿到了的,不算贵。我们来看看现在市面都有哪些样子的1602,下面从网上搜罗了几个(我手上的这个是蓝色背光白色字体的):
               
    1602时序图 - ZZ - 狂风悟浪  1602时序图 - ZZ - 狂风悟浪 
    其实显而易,见也就是背光和字体的颜色不一样罢,不过老实说,蓝色背光的1602看上去显得确实比较亮,也许是人眼视觉的关系。
    接下来进入LCD1602使用的重点:操作时序。操作时序永远使用是任何一片IC芯片的最主要的内容。一个芯片的所有使用细节都会在它的官方器件手册上包含。所以使用一个器件事情,要充分做好的第一件事就是要把它的器件手册上有用的内容提取,掌握。介于中国目前的芯片设计能力有限,所以大部分的器件都是外国几个IC巨头比如TI、AT、MAXIM这些公司生产的,器件资料自然也是英文的多,所以,英文的基础要在阅读这些数据手册时得到提高哦。即便有中文翻译版本,还是建议看英文原版,看不懂时不妨再参考中文版,这样比较利于提高。
    我们首先来看1602的引脚定义,1602的引脚是很整齐的SIP单列直插封装,所以器件手册只给出了引脚的功能数据表:
     

    1602时序图 - ZZ - 狂风悟浪 
    我们只需要关注以下几个管脚:
    3脚:VL,液晶显示偏压信号,用于调整LCD1602的显示对比度,一般会外接电位器用以调整偏压信号,注意此脚电压为0时可以得到最强的对比度。
    4脚:RS,数据/命令选择端,当此脚为高电平时,可以对1602进行数据字节的传输操作,而为电平时,则是进行命令字节的传输操作。命令字节,即是用来对LCD1602的一些工作方式作设置的字节;数据字节,即使用以在1602上显示的字节。值得一提的是,LCD1602的数据是8位的。
    5脚:R/W,读写选择端。当此脚为高电平可对LCD1602进行读数据操作,反之进行写数据操作。笔者认为,此脚其实用处不大,直接接地永久置为低电平也不会影响其正常工作。但是尚未经过复杂系统验证,保留此意见。
    6脚:E,使能信号,其实是LCD1602的数据控制时钟信号,利用该信号的上升沿实现对LCD1602的数据传输。
    7~14脚:8位并行数据口,使得对LCD1602的数据读写大为方便。
    现在来看LCD1602的操作时序:
    1602时序图 - ZZ - 狂风悟浪 
    在此,我们可以先不读出它的数据的状态或者数据本身。所以只需要看两个写时序:
    ① 当我们要写指令字,设置LCD1602的工作方式时:需要把RS置为低电平,RW置为低电平,然后将数据送到数据口D0~D7,最后E引脚一个高脉冲将数据写入。
    ② 当我们要写入数据字,在1602上实现显示时:需要把RS置为高电平,RW置为低电平,然后将数据送到数据口D0~D7,最后E引脚一个高脉冲将数据写入。
    发现了么,写指令和写数据,差别仅仅在于RS的电平不一样而已。以下是LCD1602的时序图:
    1602时序图 - ZZ - 狂风悟浪 
    大家要慢慢学会看时序图,要知道操作一个器件的精华便蕴藏在其中,看懂看准了时序,你操控这个芯片就是非常容易的事了。1602的时序是我见过的一个最简单的时序:

     
    1、注意时间轴,如果没有标明(其实大部分也都是不标明的),那么从左往右的方向为时间正向轴,即时间在增长。
    2、上图框出并注明了看懂此图的一些常识:
    (1).时序图最左边一般是某一根引脚的标识,表示此行图线体现该引脚的变化,上图分别标明了RS、R/W、E、DB0~DB7四类引脚的时序变化。 
    (2).有线交叉状的部分,表示电平在变化,如上所标注。 
    (3).应该比较容易理解,如上图右上角所示,两条平行线分别对应高低电平,也正好吻合(2)中电平变化的说法。
    (4).上图下,密封的菱形部分,注意要密封,表示数据有效,Valid Data这个词也显示了这点。
    3、需要十分严重注意的是,时序图里各个引脚的电平变化,基于的时间轴是一致的。一定要严格按照时间轴的增长方向来精确地观察时序图。要让器件严格的遵守时序图的变化。在类似于18B20这样的单总线器件对此要求尤为严格。
    4、以上几点,并不是LCD1602的时序图所特有的,绝大部分的时序图都遵循着这样的一般规则,所以大家要慢慢的习惯于这样的规则。
    也许你还注意到了上面有许多关于时间的标注,这也是个十分重要的信息,这些时间的标注表明了某些状态所要维持的最短或最长时间。因为器件的工作速度也是有限的,一般都跟不上主控芯片的速度,所以它们直接之间要有时序配合。话说现在各种处理器的主频也是疯狂增长,日后搞不好出现个双核单片机也不一定就是梦话。下面是时序参数表:

     
    1602时序图 - ZZ - 狂风悟浪 
    大家要懂得估计主控芯片的指令时间,可以在官方数据手册上查到MCU的一些级别参数。比如我们现在用AVR M16做为主控芯片,外部12MHz晶振,指令周期就是一个时钟周期为(1/12MHz)us,所以至少确定了它执行一条指令的时间是us级别的。我们看到,以上给的时间参数全部是ns级别的,所以即便我们在程序里不加延时程序,也应该可以很好的配合LCD1602的时序要求了。怎么看这个表呢?很简单,我们在时序图里可以找到TR1,对应时序参数表,可以查到这个是E上升沿/下降沿时间,最大值为25ns,表示E引脚上的电平变化,必须在最大为25ns之内的时间完成。大家看是不是这个意思?
    现在我来解读我对这个时序图的理解:
    当要写命令字节的时候,时间由左往右,RS变为低电平,R/W变为低电平,注意看是RS的状态先变化完成。然后这时,DB0~DB7上数据进入有效阶段,接着E引脚有一个整脉冲的跳变,接着要维持时间最小值为tpw=400ns的E脉冲宽度。然后E引脚负跳变,RS电平变化,R/W电平变化。这样便是一个完整的LCD1602写命令的时序。
    下面来看看CEPARK AVR开发板的1602显示部分原理图:

     
    1602时序图 - ZZ - 狂风悟浪 
    如你所见,KID画的这个也太能省了,就直接接1k电阻了事…….只有一点要说,就是这个解法,VL脚也就是偏压信号脚的电压就是不可调的了,即对比度固定。
    下面附上源程序,里面做了详细注释,希望第一次接触时序图的朋友可以好好对照一下时序图来分析程序。请点击下载附件:
    作几点说明:
    1、 LCD1602对写进去的数据字节呢是以ASCII码识别的,所以写进去用以显示的字符数据必须是某一个ADCII码,当然如果你不想查ASCII表的话,可以用字符来代替,即用单引号包含的字符常量。所以,也由此推出,’0’和30H(0的ASCII码)是等价的。
    2、 操作1602,要先对1602进行初始化,数据手册里写的比较清楚,并且对各个命令字的写入并没有先后要求。
    3、 1602是有自定义字符的功能的,大家熟悉基本操作之后可以尝试自行拓展
    4、 在每次写完数据之后,应该要将E引脚置为低电平,为下一次E的高脉冲做准备。延伸来说,这叫释放时钟线,要养成释放时钟线的好习惯。对配合时序大有裨益。
    5、 可以将所要显示的字符一次定义在一个字符数组里,以调用字符数组的形式调用显示数据,这样程序会变得简洁而高效。
    6、 记住时序的要求,往往是对最小时间有要求,在你严格配合时序的情况下仍然的不到理想的结果时,可以尝试插入延时。这个并不违反时序的要求。况且相当多的器件手册并没有详细的讲述最小时间要求。
    展开全文
  • 这篇文章不是介绍 nand...操作的大概印象,你至少也需要过 s3c2440中关于nand flash控制寄存器的说明。 由于本人也没有专门学过这方面的知识,下面的介绍也是经验之谈。 这里 我用的 K9F2G08-SCB0 这款na

    这篇文章不是介绍 nandflash的物理结构和关于nandflash的一些基本知识的。你需要至少了解 你手上的 nand flash的物理结构和一些诸如读写命令

    操作的大概印象,你至少也需要看过 s3c2440中关于nand flash控制寄存器的说明。


    由于本人也没有专门学过这方面的知识,下面的介绍也是经验之谈。

    这里 我用的 K9F2G08-SCB0 这款nand flash 来介绍时序图的阅读。不同的芯片操作时序可能不同,读的命令也会有一些差别

    当然其实有时候像nandflash这种 s3c2440内部集成了他的控制器的外设。具体到读写操作的细节时序(比如 CLE/ALE的建立时间,写脉冲的宽度。数据的建立和保持时间等),不明白前期也没有多大的问题。

    因为s3c2440内部的nand flash控制器 做了大部分的工作,你需要做的基本就是设置 几个时间参数而已。然后nand flash会自动进行这些细节操作。

    当然如果处理器上没有集成 nand flash的控制器 那么久必须要自己来写时序操作了。所以了解最底层的时序操作总是好的

     

    但是上层一点的,比如读写操作的步骤时序(比如读操作,你要片选使能,然后发命令,然后发地址,需要的话还需发一个命令,然后需要等待操作完成,然后再读书数据)。

    是必须要明白的。这都不明白的话,怎么进行器件的操作呢

     

    也就是说 s3c2440 可以说在你设置很少的几个时间参数后,将每一个步骤中 细微的操作都替你做好了。(比如写命令,你只要写个命令到相应寄存器中,cpu内部就会协各个引脚发出

    适应的信号来实现写命令的操作)。

    而我们所需要做的 就是 把这些写命令,写地址,等待操作完成。等步骤组合起来 。从而完成一个 读操作

     

    就像上面说的,虽然我们不会需要去编写每个 步骤中的最细微的时序。 但是了解下。会让你对每个操作步骤的底层细节更加明了

     

    先来看一个命令锁存的时序。也就是上面说的 nand flash操作中不是有一个 写命令步骤吗。那么这个步骤具体是怎么实现的。

    首先 我们肯定是要片选 nand flash。只有选中芯片才能让他工作啊

    nand flash是通过 ALE/CLE (高电平有效)来区分数据线上的数据时命令(CLE有效),地址(ALE有效)还是数据(CLE/ALE都无效)。

    那么这里既然是写命令 那么就一定是 CLE有效(高电平) ALE无效(低电平)

    同样命令既然是写给nandflash的那么 肯定有一个写周期。我们需要注意的是,写是在上升沿有效还是下降沿有效

    时序图如下:

    1 这里是命令锁存是时序,那么我们要注意的其实就只有 CLE 为高电平期间这段时序。(写命令啊,CLE有效时(高电平)指示现在的数据其实命令)ALE此时一定为低电平我们可以不关心他

    2 所以,CLE 低电平的时期,其他大部分引脚上都是 灰色的阴影,这代表我们不需要关心这段时期这些引脚的电平

    3 那么 这个数据是什么时候被nand flash读取到的呢, 注意到 nWE信号 在上升沿有一个贯穿所有其他引脚时序的竖线(这好像是叫生命线?我也不清楚)

           这就是说明,写入的数据(命令也是数据啊,只是可以通过CLE有效来区分)是在 WE的上升沿有效。

           也就是说,虽然 WE是在低电平有效,但并不是说 WE一变成低电平,命令就被锁存了(即真正获得命令)而是在 WE 的上升沿,命令才真正被锁存

     

    知道了上面这三点,也就知道了一个大概,那么剩下的图中也只剩那些 txx 的标号。明显它指的是时间,但是具体指什么时间呢。

    指的就是箭头两边所指的两条 竖线之间的时间。(在每个信号的跳变沿,都有小竖线)

     

    剩下的就是这些时间到底是代表什么了。这里没什么难的,刚接触的觉得看不懂。是因为之前从来没接触过。(就像单片机刚学的时候不也是各种不懂,原因就是我们从没接触过)。
    这些时间标号,在数据手册的前面都有
    说明

    比如  tCLS  tCLH 从数据手册中我们可以看到 分表代表的 CLE建立时间,和CLE信号保持时间。

    简单点你可以理解为,我让 CLE引脚  变成高电平,总得给人间一点时间去变成高电平吧。总不能瞬间就变成高电平

    不过从 时序图中我们能看到更多的端倪,之前不是说过 WE 的上升沿上不是有一个最长贯穿其他信号线的 竖线吗。我们说他指示了,数据(命令也是数据)

           是在上升沿被锁存的,在 WE 的上升沿,我写到数据线上的命令数据才真正被锁存(接收),但是 我们注意到 CLE 信号在WE上升沿之前有就有效了。

           所以我们说, 在命令数据真正被锁存之前,CLE 有效的那段 tCLS 时间叫做 CLE信号建立时间。

           WE上升沿后。命令已经被接受了,但这时候 CLE 其实可以变为无效了,因为已经获取到命令了

           但是他并没有立刻结束,而是 Tclh时间之后才结束。那么我们 称这段 时间 tCLH CLE 保持时间


    那么再根据手册中的说明
      tCS 表示 片选信号建立时间,tCH表示片选信号保持时间

           tDS表示数据建立时间,tDH表示数据保持时间

     

    这里我们看到一个小规律,在数据手册中 S 结尾的时间通常指的是建立时间, H 结尾的时间指的是保持时间

          

          

    这里命令锁存的时序就分析完了。我们再来看看  地址锁存时序图,这个图有点复杂,

    因为nand flash 特性是 地址周期通常需要好几个,就是一个地址是分几次发送的

     

    再给出数据手册中对应时间标号的说明


    同样我们按照上面分析的步骤

    1 这里是地址锁存是时序,那么我们要注意的其实就只有 ALE 为高电平期间这段时序。(写命令啊,ALE有效时(高电平)指示现在的数据其实是地址)CLE此时一定为低电平,可以不用管


    2
    所以,ALE 为低电平的时期,其他大部分引脚上都是 灰色的阴影,这代表我们不需要关心这段时期这些引脚的电平


    3
    同样 WE 的上升沿有一个贯穿其他信号线的长竖线,这也是代表数据(这里其实是地址)在上升沿被锁存

     

    那么剩下的也好理解

    tCLS 这个我们不需要关心,因为 CLE 压根就是无效的。

    tCS 就像之前分析的,它是指 CE片选信号在 WE上升沿也就是锁存地址之前的有效时间,也就是 CE 建立时间

    tWC ? 不知道? 不知道 看手册啊,前面也说过这些时间标号在手册中都会给出。

           从上面手册的解释我们看到,它指的是一个写周期的时间

    tWP 写脉冲宽度(也就是 WE是低电平有限,twp指低电平持续时间,就是有效时间)

    tWH 好理解了,就是高电平时间

    ALS    这不就是 地址信号 ALE 建立时间嘛

    ALH   ALE信号有效保持时间啊

    TDS TDH 数据建立和保持时间

    就像上面对 命令时序的分析,这里 信号的 建立 保持时间都是以 数据被 锁存分界点(WE上升沿)

     

    看到这里相信仔细看的人,应该大致该如何看一个时序图了,但是这里 我们牵涉到的 无非都是一些 上面 建立/保持时间。

    复杂点的呢。

     

    下面就来看一个复杂点的时序图,其实也不复杂,主要是说明如何在不看手册就能知道 txx指的是什么时间 

     


     

    这个时序其实并不复杂,只是他不是像上面分析的那样都是一些 建立时间和保持时间。这里牵涉到跟多的时间标号

    不过就像前面说的. 看手册! 手册里对每个时间参数都有说明。不过初学者通常即使看手册,对这些时间参数也是不知道是什么意思。

    这里我们看手册前,先来自己分析下。方法会了,手册就成了验证你对不对的东西了,而不是你寻找答案的东西。

     

    TRC 这个参数有点简单。看他的范围 一个 RE周期 的时间,那么就跟前面的 tWC 应该是一样的。那它应该代表的就是 RE信号的一个周期时间(读信号的一个周期)

    TREA 呢? 看标号看不出所以然,那么我们就看他的起始和结束时间 从时序图能看到,这个指的是从 RE有效(变低) 到数据出现 之间的时间。

    那么tREA 可想而知就应该是 读信号有效到数据被读之间的时间

    后面的都是这个同样的分析方法

    比如最后的那个 tRHZ 是从 RE 无效(高电平)到数据线变成高阻态 之间的时间(数据线画在中间表示的是高阻态)

    看下手册中的解释 也基本就是这个意思

     

    到这里 对于时序图怎么看,相信大家都应该能理解了。甚至可能连手册都不用看,就知道他是什么意思了。因为我们能从 时间的起始地址来推测时间标号的意思

     

     

    上面这些分析,都是很底层的操作,如果我们使用 s3c2440 这种高级的处理器 这些时序操作我们根本不需要去实现,顶多也就往几个寄存器中

    设置一下上面说的一些时间 然后,CPU 中的 nand flash控制器会自动完成上面所的所有操作。但是还需要了解的原因是,如果你碰到一个没有

    nand flash 控制器的处理器 怎么办,那你只能亲自实现这些 具体的 写命令,写地址。等等 单元操作。

    然后才能将这些单元操作组合成 读数据,写数据等操作(上面说过 比如读操作 他并不是一个简单的命令而是一系列操作,你要片选使能,然后发命令(读命令)

    然后发地址(要读的数据的地址),需要的话还需发一个命令,然后需要等待操作完成,然后读书数据)

     

    说完了 这些具体的单元操作,那么我们再来看看一个 读操作 具体需要哪些步骤。也就是我们需要真正必须掌握的时序操作

    对于我这款 nandflash 读操作时序如下

    我们要注意的主要是 最下面一行 I/Ox 信号线的状态,他指示了 读操作需要哪些,单元步骤。

    1 首先 我们看到 有一个 0x00 是什么?数据?地址?命令? ALE/CLE线啊,这两根线不是决定了现在的数据的类型嘛

           顺着往上看,我们知道0x00是在 CLE有效期间的数据那么它就是一个命令

    2 然后是 address(5Cycle) 即五个地址序列(这款nand flash 指定读数据的地址时要发送五个地址序列),往上看,是在ALE有效期间的数据,那么应该就是地址了

           (对于这五个地址,前面两个是列地址,后面三个是行地址。在nandflash的物理结构中 行地址对应的某一页,列地址就对应这一页中的某一列)

     

    3 接着又是 0x30,此时 CLE有效,那么就是命令了(也就是说这款nand flash的读操作需要两个命令)。

           但是之后数据并未立刻出来,我们看到在到 DATA Output即数据输出之前还有一段时间,为什么有这段时间?

           往上看 R/nB 这个数据线上说明了原因,这段时间内它是低电平 即指示现在 处于 忙碌状态,还未准备好数据输出。为什么会这样?

           因为你 写了 一个命令,写了要读数据的地址,又写了一个命令。 你总要给 cpu一些时间去处理这些命令吧,

           R/nB为低电平这段时间就是 在处理这些命令(实际上是根据命令将你定位的那一页数据读到内部寄存器中),

           R/nB变成高电平了,就指示命令处理完毕,现在数据也就可以读出来了

     

    综上我们从手册中我们就知道了读操作的具体步骤,

    1 首先nand flash 也是一个外设,要访问他就需要片选它,所以在执行时序图上的步骤之前需要片选nand flash.

    2 看后面就是安装时序图来了,看时序图! 第一步先是发送一个命令 0x00.

    3 看时序图! 然后发送五个地址序列(先发送两个列地址,在发送三个行地址(即页地址))

    4 看时序图! 接着再是一个命令 0x30.

    5 看时序图!  R/nB 引脚为低表示现在正忙,正在处理这些命令,那就要等待 R/nB 引脚变为高电平

    6 看时序图! 这个时候就可以读数据了

    7 一次读操作结束了 nand flash 暂时是不需要使用了,那么别忘了应该 取消片选信号。

     

    至于这每一个步骤中具体的时序,cpu中的nand flash控制器会帮我们完成。我们要做就是设置几个时间参数

     

    这里我们反复强调了要看时序图。其实学嵌入式前期对数据手册一定要多看,看多了你就回知道,什么东西的你重点要看的,什么是和你的编程操作无关的你不需要关心。这样后面你才能,拿到一个外设 就能写出他的操作。而不用跟着书背步骤。只要手册在就行了。

     

    上面的步骤,是一个具体的读操作的步骤,不过在使用一个器件之前我们需要初始化一下它。至于初始化也就是设置我们上面多次提到的

    我们说过 s3c2440已经帮我做了很多底层的单元操作,我们只需设置几个时间参数 片内的 nand flash就会自动发出相应操作的时序操作

    那么到底设置那几个时间呢。 

    s3c2440 手册上给出了 需要我们设置的几个参数。


     

    从中我们可以看出 第一幅时序图是 命令和地址锁存的时序,第二幅是 数据读取和写入的时序。
    可以看出,他们要设置的时间都是一样的。
    前面分析了那么多,这里应该不难 看出


    1 TACLS
    很明表示的是 CLE/ALE 的建立时间(这里并不准确,其实是 CLE/ALE有效到 WE 变成低电平之间的时间,但 WE 却是在上升沿才锁存命令/地址)

    2 TWRPH0 代表的是 WE 的脉冲宽度,即有效时间

    3 TWRPH1 代表的是 CLE/ALE 的保持时间


    那到底设置成什么数字呢。既然
    上图中读//命令/地址 操作需要的时间参数都是一样的

    那么我们从 nandflash中随便找一个 命令时序来对照不就行了

    就拿上面我们说过的 命令锁存时序来对比


    那么我们就能得到下面的关系

    TWRPH0 = tWP 

    TWRPH1 = tCLH

    TACLS = tCLS - tWP

     
    然后设置成多少呢? 看手册啊,手册中对 tWP  tCLH  tCLS 都会至少给出 需要的最小时间


    这款芯片nand flash
    手册中这三个参数要求是

     

    所以 TWRPH0 =tWP  >=12ns

            TWRPH1 = tCLH >=5ns

            TACLS  =tCLS - tWP >=0

    而这三个参数在s3c2440的数据手册中说明为

     

    当然这里的时间都是以 HCLK 为单位的,这几个参数 是在 nand flash控制寄存器中的 NFCONF中设置的

    这里我没用使用MPLL 所以HCLK 12MHZ

     

    所以 TWRPH0 = 0TWRPH1 =0 TACLS =0; (如果你的时钟频率比较高,那就要设别的数了。当然有是有你真不知道,设置大点总没错,只不过速度可能会慢点。)

           所以 NFCONF =0;NOFCONF其他位数据手册中有说明,这里只是简单读操作,其他位可以不设置)

     

    然后是初始化一下 ECC 使能nand flash控制器(我们只是设置了几个时间参数,时序的具体操作就是靠他来完成的,所以要使能他)

    然后先 取消片选nandflash 因为我们现在还没有操作它啊,只是初始化一下。所以还是应该先取消片选,等真正读的时候再使能片选信号

     

    NFCONT = (1<<4) | (1<<1)(1<<0);

    (数据手册中有对应位的说明)

    最后,第一次使用nandflash 我们需要复位操作一下。

    综上,nand flash 的初始化代码如下

    void nand_init(void){

           NFCONF =0;

           NFCONT = (1<<4) | (1<<1) | (1<<0);

           nand_reset();  //nand reset代码在后面

    }

     

    下面代码一些地址的写法是与 nand flash 型号有关的。具体需要参考芯片手册

          

     

    void select_chip(void){

           NFCONT  &= (~(1<<1));   

           int i;

           for(i=10;i>0;i--);

    }

    void deselect_chip(void){

           NFCONT |= (1<<1);

           int i;

           for(i=10;i>0;i--);

    }

     

    void write_command(unsigned char command){

           NFCMMD = command;

           int i;

           for(i=10;i>0;i--);

    }

     

    /*

           这款nand flash 的页大小是 2K

           五个地址周期  (2个列地址 3和行地址(页地址))

    */

    void write_address(unsigned int address){

           unsigned int page = address/2048;

           unsigned int col  =address&2048;

     

           int i;

           NFADDR = col & 0xff;

           for(i=5;i>0;i--);

           NFADDR = (col >>8) & 0x0f;

            for(i=5;i>0;i--);

           NFADDR = page & 0xff;

           for(i=5;i>0;i--);

           NFADDR = (page >>8)& 0xff;

           for(i=5;i>0;i--);

           NFADDR = (page >>16)&0x01;

           for(i=5;i>0;i--);

    }

     

    unsigned char read_one_data(void){

           return NFDATA;

           int i;

           for(i=10;i>0;i--);

    }

     

    void wait_ready(void){

           while(!(NFSTAT & 1));

           int i;

           for(i=10;i>0;i--);

    }

     

     

    static void nand_reset(void){

           select_chip();

           write_command(0xff);

           wait_ready();

            deselect_chip();

    }

    void nand_init(void){

           NFCONF =0;

           NFCONT = (1<<4) | (1<<1) | (1<<0);

     

           nand_reset();

    }

     

    /*

    nand flash 的读操作是以页为单位的。

     des:nand flash中读出的数据放到哪

     start_addr 从哪里开始读

     size: 读多大

    */

    void nand_read(unsigned char *des,unsignedint start_addr,unsigned int size){

           unsigned int col  = start_addr& 2048;

     

           select_chip();

           unsigned int start = start_addr;

           unsigned int end   = start_addr +size;

           while(start < end){                             //每读一页需要发一次命令

                    write_command(0x00);

                    write_address(start);

                    write_command(0x30);

                    wait_ready();

     

                    while((col<2048) &&(start在一页中读,我用的型号一页大小为2K

                            *des = read_one_data();

                           des++;

                            col++;

                            start++;

                    }

                    col =0;

           }

           deselect_chip();

    }

    展开全文
  • 如果时序图真的不容易懂,可以先找些简单的时序图,再找些现成的程序,对应起来,这样的话往往事半功倍,更容易理解。单片机中对于液晶(如LCD1602)的控制时序图相对容易,适合初学入门,认真理解是很有好处的...

    片选:动词,单片机学科词汇,可以理解成选片。很多芯片挂在同一总线上的时候,有一个信号来区别总线上的数据和地址由哪个芯片来处理,这个信号就叫做片选信号CS(chip select)。片选这个词即由此而来,指通过设置跳线,利用与门、或门、非门的组合来决定到底是哪几部分进入工作状态。

    片选信号一般是在划分地址空间时,由逻辑电路产生的。在数字电路设计中,一般开路输入管脚呈现为高电平,因此片选信号绝大多数情况下是一个低电平。

     所谓时序图,可以理解为按照时间顺序进行的图解,在时序图上可以反应出某一时刻各信号的取值情况。时序图可以这样看:按照从上到下,从左到右的顺序,每到一个突变点(从0变为1,或从1变为0)时,记录各信号的值,就可获得一张真值表,进而分析可知其相应的功能。

    对于单片机,看懂时序图的最终目标是要用编程实现时序图的功能,进而得到所需的实际功能。如果时序图真的不容易看懂,可以先找些简单的时序图,再找些现成的程序,对应起来看,这样的话往往事半功倍,更容易理解。单片机中对于液晶(如LCD1602)的控制时序图相对容易,适合初学入门,认真理解是很有好处的!

     

     读图就是要看懂一个电原理图,即弄清电路由哪几部分组成及它们之间的联系和总的性能(如有可能,还要粗略估算性能指标)。电子电路的主要任务是对信号进行处理,只是处理的方式(如放大、滤波、变换等)及效果不同而已,因此读图时,应以所处理的信号流向为主线,沿信号的主要通路,以基本单元电路为依据,将整个电路分成若干具有独立功能的部分,并进行分析。具体步骤可归纳为:了解用途、找出通路、化整为零、分析功能、统观整体。

    通常主板上为单BIOS芯片,因此CE始终为低电平,也就是一直为选中;

    OE是输出允许,也是低电平时有效,当OE为低电平时,允许数据输出,也就是可以读取芯片中的内容,当OE是高电平时,输出被禁止,无法读取内容;

    WE为编程允许,也是低电平有效,当WE为低电平时可以对芯片进行编程(写入),当WE为高电平时不能对芯片进行编程(我们可将此脚接为高电平,那么芯片就无法写入,无敌锁即是将此脚升为高电平,来保护芯片的.)

    CE  chip select

    OE  output enable

    WE  write enable

     ns(nanosecond):纳秒,时间单位。一秒的10亿分之一,即等于10的负9次方秒。常用作内存读写速度的单位,其前面数字越小表示速度越快。

    展开全文
  • 片选,怎么看时序图,电路原理图

    千次阅读 2010-01-24 21:06:00
    如果时序图真的不容易懂,可以先找些简单的时序图,再找些现成的程序,对应起来,这样的话往往事半功倍,更容易理解。单片机中对于液晶(如LCD1602)的控制时序图相对容易,适合初学入门,认真理解是很有好处的...
  • 1.MCU如何根据LCD时序图来写底层驱动.pdf 2.如何看时序图.pdf 3.如何读单片机的时序图.pdf
  • spi时序图怎么分析,怎么懂spi时序图.pdf
  • 很好的画时序图工具,IC工程师必备
  • 时序图怎么时序图、活动图、状态图、协作图的区别详解 2019-12-16 10:05:32 燚智能物联网 简介 时序图时序图用于描述对象之间的传递消息的时间顺序, 即用例中的行为顺序.当执行一个用例时, 时序图中的每条...
  • 时序图图片

    2009-04-04 16:37:40
    这个就是那个时序图的图片
  • 时序图

    万次阅读 2018-10-08 11:16:56
    一、时序图  时序图是一种强调时间顺序的交互图,在时序图中,首先把参与交互的对象放在图的上方,沿X轴方向排列。通常把发起交互的对象放在左边,较下级对象依次放在 右边,然后把这些对象发送和接受的消息沿Y轴...
  • 时序图讲义

    2018-02-23 15:38:03
    时序图讲解 第八章 时序图(顺序图) (sequence diagram)
  • UML时序图(Sequence Diagram)学习笔记

    万次阅读 多人点赞 2018-07-04 14:37:25
    什么是时序图时序图(Sequence Diagram),又名序列图、循序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。时序图的元素我们在画时序图时会涉及7种元素:角色(Actor)、对象...
  • 时序图 类图 绘图软件
  • 时序图

    千次阅读 2020-12-15 14:26:32
    一、时序图简介(Brief introduction) 时序图(Sequence Diagram)是显示对象之间交互的图,这些对象是按时间顺序排列的。 顺序图中显示的是参与交互的对象及其对象之间消息交互的顺序。 时序图中包括的建模...
  • 时序图示例

    千次阅读 2018-06-13 11:36:56
    时序图看法
  • 支付时序图

    2016-05-09 16:47:50
    支付时序图 
  • 时序图(SequenceDiagram),亦称为序列图、循序图或顺序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在各对象...
  • 广达时序图

    2019-02-20 11:23:56
    广达维修时序图,维修笔记本电脑的重要时序 ,需要的下载
  • UML—时序图

    2021-01-07 21:07:05
    时序图 描述了对象之间传递消息的时间顺序,它用来表示用例中的行为顺序,是强调消息时间顺序的交互图 时序图包括了4个元素:对象(Object),生命线(Lifeline),激活(Activation),消息(Message) 1.对象 对象...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 134,297
精华内容 53,718
关键字:

如何看时序图