详解时序图
- 格式:doc
- 大小:193.20 KB
- 文档页数:5
UML中的时序图详解时序图是UML(统一建模语言)中的一种重要图形工具,用于描述系统中对象之间的交互行为。
它以时间为轴,展示了对象之间的消息传递和交互顺序,帮助开发人员更好地理解系统的运行过程。
本文将详细介绍时序图的概念、元素和使用方法。
一、时序图的概念和作用时序图是一种静态图,主要用于描述对象之间的交互行为和消息传递顺序。
它展示了对象在特定时间段内的状态变化和交互过程,帮助开发人员更好地理解系统中对象之间的关系和通信方式。
时序图可以用于系统设计、软件开发和系统测试等阶段,是一种非常有用的工具。
二、时序图的元素和表示方法1. 对象(Object):时序图中的对象表示系统中的实体,可以是具体的类、接口或模块等。
对象通常用矩形框表示,框内写上对象的名称。
2. 生命周期(Lifeline):时序图中的生命周期表示对象的存在时间,用一条垂直的虚线表示。
生命周期从对象的创建开始,到对象的销毁结束。
3. 消息(Message):时序图中的消息表示对象之间的交互行为,包括方法调用、信号发送等。
消息可以是同步的(Synchronous)或异步的(Asynchronous),同步消息需要等待接收方的响应,而异步消息则不需要等待。
4. 激活(Activation):时序图中的激活表示对象在某个时间段内正在执行的过程,用一条垂直的虚线和一个小矩形框表示。
激活可以嵌套,表示方法的调用和返回过程。
5. 约束(Constraint):时序图中的约束表示对象之间的一些限制条件或约束,如时间限制、数据格式等。
约束通常用方括号括起来,并写在相应的消息上方。
三、时序图的使用方法1. 确定参与对象:首先要确定参与时序图的对象,包括系统的各个模块、类或接口等。
根据系统的需求和功能,选择合适的对象进行建模。
2. 绘制生命周期:根据对象的创建和销毁过程,绘制对象的生命周期。
生命周期用一条垂直的虚线表示,标记对象的创建和销毁时间点。
3. 描述交互过程:根据系统的交互需求,描述对象之间的消息传递和交互顺序。
plc时序图怎么看_plc时序图指令详解解
时序图是描述设备工作过程的时间次序图,也是用于直观分析设备工作过程的一种图形。
如电子技术中的触发器、定时器、计数器等均用时序图来描述其工作原理。
在plc顺序控制设计法编制梯形图程序时往往是先画出时序图,再根据时序图设计流程图,再按流程图编制梯形图程序。
下面让我们来看看plc时序图是怎么样的,相关指令又有什么用。
时序图的指令大致分为置位和复位指令、脉冲输出指令以及主控指令及主控复位指令。
一、置位和复位指令:1、指令符:
置位指令指令符:SET:复位指令指令符:RST:
2、梯形图符号:
置位和复位指令是一组功能指令,画梯形图时要用中括号或方框,且最少接一个接点后才能接母线。
如下图所示:
3、指令功能:
SET指令的功能:当SET指令工作的前提条件X0发生正跳变(即X0由OFF变为ON)时,SET指令使它操作的继电器Y0置位为1(状态变为ON)并保持。
RST指令的功能:当RST指令工作的前提条件X1发生正跳变(即X0由ON变为OFF)时,RST指令使它操作的继电器Y0复位为0(状态变为OFF)并保持。
SET指令的操作目标元件为Y、M、S。
而RST指令的操作元件为Y、M、S、D、V、Z、T、C。
对同一编程元件,如例中Y0等,SET、RST指令可以多次使用,且不限制使用顺序,以最后执行者有效。
RST指令可以对定时器、计数器、数据寄存器、变址寄存器的内容清零,还可用来复位积。
UML时序图的绘制指南与实例解析UML(统一建模语言)是一种用于软件开发的标准化建模语言,它提供了一种图形化的方式来描述系统的结构和行为。
在UML中,时序图(Sequence Diagram)是一种常用的建模工具,用于展示系统中各个对象之间的交互过程。
本文将为读者提供一份UML时序图的绘制指南,并通过实例解析来帮助读者更好地理解和运用时序图。
一、时序图的基本概念时序图是一种描述对象之间交互行为的图形化工具,它展示了对象之间的消息传递和时间顺序。
在时序图中,每个对象都表示为一个矩形框,框内写上对象的名称。
对象之间的交互通过箭头表示,箭头上标注的是消息的名称和参数。
时序图按照从上到下的顺序表示时间的流逝,从而展示了系统中对象之间的交互过程。
二、时序图的绘制步骤1. 确定参与者:首先,需要确定在时序图中需要包含哪些对象或者参与者。
参与者可以是系统的各个模块、用户、外部接口等。
将每个参与者表示为一个矩形框,并在框内写上其名称。
2. 确定消息:接下来,需要确定对象之间的交互过程,并将其表示为消息。
消息可以是方法调用、事件触发等。
在时序图中,消息通常用箭头表示,箭头上标注的是消息的名称和参数。
3. 确定时间顺序:在时序图中,对象之间的交互是按照时间顺序展示的,因此需要确定每个消息发生的时间顺序。
可以通过在时序图中添加垂直虚线来表示时间的流逝,从而更清晰地展示对象之间的交互过程。
4. 添加约束条件:有时候,对象之间的交互过程可能会受到一些约束条件的限制,比如并发执行、条件判断等。
在时序图中,可以使用条件框来表示这些约束条件,从而更准确地描述系统的行为。
三、时序图的实例解析为了更好地理解和运用时序图,我们以一个简单的购物系统为例进行实例解析。
在这个购物系统中,主要包含三个参与者:用户、购物车和商品。
用户可以将商品添加到购物车,并进行结算。
首先,我们将用户、购物车和商品分别表示为三个矩形框,并在框内写上其名称。
接下来,我们确定对象之间的交互过程。
visio绘图之时序图contents •时序图基本概念与作用•Visio绘制时序图准备工作•绘制基本元素及操作技巧•进阶功能应用与实例分析•常见问题解决方案与经验分享•总结回顾与展望未来发展趋势目录01时序图基本概念与作用易于理解时序图采用直观的图形表示方式,使得开发者能够轻松理解系统的动态行为。
定义时序图(Sequence Diagram )是一种详细表示对象之间以及对象与参与者实例之间交互的图,它按照时间顺序将交互关系表示为一个二维图。
强调时间顺序时序图以时间顺序为基础,清晰地表示出消息在对象间的传递顺序。
显示交互细节时序图可以详细展示对象间的交互过程,包括消息的发送、接收和处理等。
时序图定义及特点需求分析系统设计编码实现测试与验证时序图在软件开发中应用01020304在软件开发初期,时序图可以帮助开发团队明确系统需求,梳理业务流程。
在设计阶段,时序图可用于描述系统架构、模块间的交互以及接口设计。
在编码过程中,时序图可以作为开发指南,指导开发者按照设计好的交互流程进行实现。
在测试阶段,时序图可用于制定测试用例,验证系统功能的正确性。
Visio 提供了丰富的时序图符号库,方便用户快速创建高质量的时序图。
丰富的符号库用户可以根据需要自定义符号和模板,提高绘图效率。
强大的自定义功能Visio 支持多人协作编辑和在线分享功能,便于团队成员之间的沟通与协作。
易于协作与分享Visio 可以与Microsoft Office 套件无缝集成,方便用户将时序图嵌入到Word 、PowerPoint 等文档中。
与其他工具集成Visio 绘制时序图优势02Visio绘制时序图准备工作安装与启动Visio软件01下载并安装Microsoft Visio软件,确保安装过程顺利完成。
02打开Visio软件,熟悉软件界面及基本功能。
选择合适模板和形状库01在Visio软件中,选择“新建”创建一个新的绘图文件。
02在模板库中选择“软件和数据库”类别,然后选择合适的时序图模板。
SPI时序图详解SPI接口有四种不同的数据传输时序,取决于CPOL和CPHL这两位的组合。
图1中表现了这四种时序,时序与CPOL、CPHL的关系也可以从图中看出。
图1CPOL是用来决定SCK时钟信号空闲时的电平,CPOL=0,空闲电平为低电平,CPOL=1时,空闲电平为高电平。
CPHA是用来决定采样时刻的,CPHA=0,在每个周期的第一个时钟沿采样,CPHA=1,在每个周期的第二个时钟沿采样。
由于我使用的器件工作在模式0这种时序(CPOL=0,CPHA=0),所以将图1简化为图2,只关注模式0的时序。
图2我们来关注SCK的第一个时钟周期,在时钟的前沿采样数据(上升沿,第一个时钟沿),在时钟的后沿输出数据(下降沿,第二个时钟沿)。
首先来看主器件,主器件的输出口(MOSI)输出的数据bit1,在时钟的前沿被从器件采样,那主器件是在何时刻输出bit1的呢?bit1的输出时刻实际上在SCK信号有效以前,比SCK的上升沿还要早半个时钟周期。
bit1的输出时刻与SSEL 信号没有关系。
再来看从器件,主器件的输入口MISO同样是在时钟的前沿采样从器件输出的bit1的,那从器件又是在何时刻输出bit1的呢。
从器件是在SSEL信号有效后,立即输出bit1,尽管此时SCK信号还没有起效。
关于上面的主器件和从器件输出bit1位的时刻,可以从图3、4中得到验证。
图3注意图3中,CS信号有效后(低电平有效,注意CS下降沿后发生的情况),故意用延时程序延时了一段时间,之后再向数据寄存器写入了要发送的数据,来观察主器件输出bit1的情况(MOSI)。
可以看出,bit1(值为1)是在SCK信号有效之前的半个时钟周期的时刻开始输出的(与CS信号无关),到了SCK的第一个时钟周期的上升沿正好被从器件采样。
图4图4中,注意看CS和MISO信号。
我们可以看出,CS信号有效后,从器件立刻输出了bit1(值为1)。
通常我们进行的spi操作都是16位的。
中央处理单元(CPE)/电子工程师(EE)421微型计算机翻译时序图芯片6800的读周期一个简单的触发器的时序图(图(1)-(4))图(1)时序图的理想形式图(2) D触发器的实际动作图图(3)时序图的普遍形式图(4)时序图的替换形式一、计数器1.一个微处理器需要一个计数器来提供一连串的时间脉冲来来控制其内部操作。
2.一个6800存储器芯片至少有八个时钟状态,是从时钟状态S0到时钟状态S7.图1 存储器开始于状态S0,结束于状态S7图2 计数器最重要的参数就是技术周期,记为图3 在存储器开始工作的时候,CPU就会告知存储器它想读取的数据的位置地址二、地址时序1、我们感兴趣的是:芯片68000在什么时候会在存取存储器内产生一个新的地址以供使用。
2、接下来的图片表明了新地址和68000的时钟状态之间的关系。
图4 (1)起初,在状态S0时,地址总线包含了旧地址(2)在状态S1时,一个新地址对于存取存储器剩余的空间来说是有效的图5 地址总线变化的目录下的时间与计数器边沿有关3、接下来我们看控制地址总线时序的一连串顺序。
4、“旧”地址在状态S0时被移除。
5、地址总线在一个较短的时间内浮动,CPU在状态S1时产生一个新地址。
图6 在状态S0时,旧地址被移除,地址总线处于浮动状态图7 设计者对于地址首次有效的某个时间点感兴趣。
这个点就是在S0的下降沿之后的时间秒处图8 存储器需要知道来自CPU的地址何时是有效的。
地址选通器就用来预测地址的有效性三、地址和地址选通1、我们关心的是地址有效的时间和地址被选通器选定认为有效的时间之间的关系。
2、当选通器是低电平是,就表示地址是有效的。
3、下面我们来看看计数器、地址、地址选通器的时序图。
图9 当地址有效的时候,选通器就会表现出低电平;当地址改变了(无效),选通器呈现出高电平图10 在计数器状态S2时,选通器转变成低电平四、数据选通器1、芯片68000有两个数据选通器和。
时序图(序列图)⼀、什么是时序图?时序图(Sequence Diagram),亦称为序列图、循序图或顺序图,是⼀种UML交互图。
它通过描述对象之间发送消息的时间顺序显⽰多个对象之间的动态协作。
时序图是⼀个⼆维图,横轴表⽰对象,纵轴表⽰时间,消息在各对象之间横向传递,依照时间顺序纵向排列。
⼆、时序图的作⽤是什么?1、展⽰对象之间交互的顺序。
将交互⾏为建模为消息传递,通过描述消息是如何在对象间发送和接收的来动态展⽰对象之间的交互;2、相对于其他UML图,时序图更强调交互的时间顺序;3、可以直观的描述并发进程。
三、组成元素有哪些?1. ⾓⾊(Actor)系统⾓⾊,可以是⼈、机器、其他系统、⼦系统;在时序图中⽤表⽰。
2. 对象(Object)(1)对象的三种命名⽅式第⼀种⽅式包括对象名和类名,例如:直播课时:课时,在时序图中,⽤“对象:类”表⽰;第⼆种⽅式只显⽰类名,即表⽰它是⼀个匿名对象,例如: :课程;在时序图中,⽤“:类”表⽰;第三种⽅式只显⽰对象名不显⽰类名,例如:讲师;在时序图中,⽤“对象”表⽰。
(2)命名⽅式的选择三种命名⽅式均可,哪种最容易让阅读该时序图的⼈理解,就选择哪种。
(3)对象的排列顺序对象的左右顺序并不重要,但是为了作图清晰整洁,通常应遵循以下两个原则:把交互频繁的对象尽可能的靠拢;2.把初始化整个交互活动的对象放置在最左端。
3. ⽣命线(Lifeline)在时序图中表⽰为从对象图标向下延伸的⼀条虚线,表⽰对象存在的时间。
4. 控制焦点(Focus of Control)⼜称为激活期,表⽰时间段的符号,在这个时间段内对象将执⾏相应的操作。
它可以被理解成C语⾔语义中⼀对花括号{ }中的内容;⽤⼩矩形表⽰。
5. 消息(Message)消息⼀般分为同步消息(Synchronous Message),异步消息(Asynchronous Message)和返回消息(Return Message)。
除了提供一个图形化边框之外,用于图中的框架元件也有描述交互的重要的功能, 例如序列图。
在序列图上一个序列接收和发送消息(又称交互),能通过连接消息和框架元件边界,建立模型(如图2 所见到)。
这将会在后面“超越基础”的段落中被更详细地介绍。
UML 的生命线命名标准按照如下格式:除了仅仅显示序列图上的消息调用外,图4 中的图还包括返回消息。
这些返回消息是可选择的;一个返回消息画作一个带开放箭头的虚线,向后指向来源的生命线,在这条虚线上面,你放置操作的返回值。
在图 4 中,当getSecurityClearance 方法被调用时,secSystem组合碎片(变体方案,选择项,和循环)然而,在大多数的序列图中,UML 1.x“in-line”约束不足以处理一个建模序列的必需逻辑。
这个功能缺失是UML 1.x 的一个问题。
UML 2 已经通过去掉“in-line”约束,增加一个叫做组合碎片的符号元件,解决了这一个问题。
一个组合碎片用来把一套消息组合在一起,在一个序列图中显示条件分支。
UML 2 规范指明了组合碎片的11 种交互类型。
十一种中的三种将会在“基础”段落中介绍,另外两种类型将会在“超越基础”中介绍,而那剩余的六种我将会留在另一篇文章中介绍。
(嗨,这是一篇文章而不是一本书。
我希望你在一天中看完这部分!)变体变体用来指明在两个或更多的消息序列之间的、互斥的选择。
3 变体支持经典的“if then else”逻辑的建模(举例来说,如果我买三个,然后我得到我购买的20% 折扣;否则我得到我购买的10% 折扣)。
就如你将会在图8 中注意到的,一个变体的组合碎片元件使用框架来画。
单词“alt”放置在框架的namebox里。
然后较大的长方形分为UML 2 所称的操作元。
4 操作元被虚线分开。
每个操作元有一个约束进行测试,而这个约束被放置在生命线顶端的操作元的左上部。
5 如果操作元的约束等于“true”,然后那个操作元是要执行的操作元。
时序图浅析(转载)
其实显而易,见也就是背光和字体的颜色不一样罢,不过老实说,蓝色背光的1602看上去显得确实比较亮,也许是人眼视觉的关系。
接下来进入LCD1602使用的重点:操作时序。
操作时序永远使用是任何一片IC芯片的最主要的内容。
一个芯片的所有使用细节都会在它的官方器件手册上包含。
所以使用一个器件事情,要充分做好的第一件事就是要把它的器件手册上有用的内容提取,掌握。
介于中国目前的芯片设计能力有限,所以大部分的器件都是外国几个IC巨头比如TI、AT、MAXIM这些公司生产的,器件资料自然也是英文的多,所以,英文的基础要在阅读这些数据手册时得到提高哦。
即便有中文翻译版本,还是建议看英文原版,看不懂时不妨再参考中文版,这样比较利于提高。
我们首先来看1602的引脚定义,1602的引脚是很整齐的SIP单列直插封装,所以器件手册只给出了引脚的功能数据表:
我们只需要关注以下几个管脚:
3脚:VL,液晶显示偏压信号,用于调整LCD1602的显示对比度,一般会外接电位器用以调整偏压信
号,注意此脚电压为0时可以得到最强的对比度。
4脚:RS,数据/命令选择端,当此脚为高电平时,可以对1602进行数据字节的传输操作,而为电平时,则是进行命令字节的传输操作。
命令字节,即是用来对LCD1602的一些工作方式作设置的字节;数据字节,即使用以在1602上显示的字节。
值得一提的是,LCD1602的数据是8位的。
5脚:R/W,读写选择端。
当此脚为高电平可对LCD1602进行读数据操作,反之进行写数据操作。
笔者认为,此脚其实用处不大,直接接地永久置为低电平也不会影响其正常工作。
但是尚未经过复杂系统
验证,保留此意见。
6脚:E,使能信号,其实是LCD1602的数据控制时钟信号,利用该信号的上升沿实现对LCD1602的
数据传输。
7~14脚:8位并行数据口,使得对LCD1602的数据读写大为方便。
现在来看LCD1602的操作时序:
在此,我们可以先不读出它的数据的状态或者数据本身。
所以只需要看两个写时序:
①当我们要写指令字,设置LCD1602的工作方式时:需要把RS置为低电平,RW置为低电平,然后
将数据送到数据口D0~D7,最后E引脚一个高脉冲将数据写入。
②当我们要写入数据字,在1602上实现显示时:需要把RS置为高电平,RW置为低电平,然后将数
据送到数据口D0~D7,最后E引脚一个高脉冲将数据写入。
发现了么,写指令和写数据,差别仅仅在于RS的电平不一样而已。
以下是LCD1602的时序图:
大家要慢慢学会看时序图,要知道操作一个器件的精华便蕴藏在其中,看懂看准了时序,你操控这个芯片就是非常容易的事了。
1602的时序是我见过的一个最简单的时序:
1、注意时间轴,如果没有标明(其实大部分也都是不标明的),那么从左往右的方向为时间正向轴,即时间在增长。
2、上图框出并注明了看懂此图的一些常识:
(1).时序图最左边一般是某一根引脚的标识,表示此行图线体现该引脚的变化,上图分别标明了RS、R/W、E、DB0~DB7四类引脚的时序变化。
(2).有线交叉状的部分,表示电平在变化,如上所标注。
(3).应该比较容易理解,如上图右上角所示,两条平行线分别对应高低电平,也正好吻合(2)中电平变化
的说法。
(4).上图下,密封的菱形部分,注意要密封,表示数据有效,Valid Data这个词也显示了这点。
3、需要十分严重注意的是,时序图里各个引脚的电平变化,基于的时间轴是一致的。
一定要严格按照时间轴的增长方向来精确地观察时序图。
要让器件严格的遵守时序图的变化。
在类似于18B20这样的单总线器件对此要求尤为严格。
4、以上几点,并不是LCD1602的时序图所特有的,绝大部分的时序图都遵循着这样的一般规则,所以大家要慢慢的习惯于这样的规则。
也许你还注意到了上面有许多关于时间的标注,这也是个十分重要的信息,这些时间的标注表明了某些状态所要维持的最短或最长时间。
因为器件的工作速度也是有限的,一般都跟不上主控芯片的速度,所以它们直接之间要有时序配合。
话说现在各种处理器的主频也是疯狂增长,日后搞不好出现个双核单片机也不一定就是梦话。
下面是时序参数表:
大家要懂得估计主控芯片的指令时间,可以在官方数据手册上查到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显示部分原理图:
如你所见,KID画的这个也太能省了,就直接接1k电阻了事…….只有一点要说,就是这个解法,VL脚也就是偏压信号脚的电压就是不可调的了,即对比度固定。
下面附上源程序,里面做了详细注释,希望第一次接触时序图的朋友可以好好对照一下时序图来分析程序。
请点击下载附件:
作几点说明:
1、LCD1602对写进去的数据字节呢是以ASCII码识别的,所以写进去用以显示的字符数据必须是某一个ADCII码,当然如果你不想查ASCII表的话,可以用字符来代替,即用单引号包含的字符常量。
所以,也由此推出,’0’和30H(0的ASCII码)是等价的。
2、操作1602,要先对1602进行初始化,数据手册里写的比较清楚,并且对各个命令字的写入并没有先后要求。
3、1602是有自定义字符的功能的,大家熟悉基本操作之后可以尝试自行拓展
4、在每次写完数据之后,应该要将E引脚置为低电平,为下一次E的高脉冲做准备。
延伸来说,这叫释放时钟线,要养成释放时钟线的好习惯。
对配合时序大有裨益。
5、可以将所要显示的字符一次定义在一个字符数组里,以调用字符数组的形式调用显示数据,这样程序会变得简洁而高效。
6、记住时序的要求,往往是对最小时间有要求,在你严格配合时序的情况下仍然的不到理想的结果时,可以尝试插入延时。
这个并不违反时序的要求。
况且相当多的器件手册并没有详细的讲述最小时间要求。