怎么看什么是时序图图

下次自动登录
现在的位置:
& 综合 & 正文
【UML九种图系列】之如何利用三层来绘制类图、时序图?
UML并发视图:实体之间行为的交互,是动态。分为:时序图、协作图、状态图、活动图
一、时序图简述:
时序图(Sequence Diagram):描述对象之间的交互行为,按照时间顺序排列。
角色(Actor):人/系统
对象(Object):
生命线(Lifeline):对象存在的时间
控制焦点(FocusofControl):表示时间段的符号
消息(Message):
同步消息(SynchronousMessage):等待结果。
异步消息(AsynchronousMessage):不等待结果。
返回消息(ReturnMessage):从过程调用返回
自关联消息(Self-Message):统一的对象中方法的自身调用/相互调用。
二、如何绘制时序图?
时序图是如何绘制的呢?它和类图之间是什么关系呢?时序图的绘制和三层架构之间又是如何联系的呢?下面的内容将解答您所有的疑惑:
用一个纯三层的例子描述时序图是如何实现系统登陆的:
1、首先,绘制类图:
U层作用:输入+显示+简单判断,如:frmLogin类
B层作用:业务逻辑(理解什么是也要业务,对于时序图的绘制是很重要的!)是本系统中所特有的功能。如:LoginBLL类
D层作用:针对数据库中表的数据进行增删改查。如:UserDAL类、UserJobRecordDAL类。
2、其次,绘制时序图:(注:A向B的传递消息=A调用B的方法)
PS:图中传递的消息,解析如下:
frmLogin类属于U层,解析如下:
isEmpty:判断是否为空
isRightful:判断输入的合法性(是否含有非法字符)
LoginBLL类属于B层,解析如下:
Login(UserName,Password):登陆,并把用户输入的UserName,Password传递进去。
QueryUserByUserName(UserName):把U层传递的UserName传递至D层,以获取该系统用户的信息(密码、状态)。
isEmpty:判断获取的信息是否为空。若为空,则数据库中不存在该用户名,则登陆失败。
isPasswordRight:判断用户名和密码是都匹配。
isOnDuty:判断该用户是否处于上机状态,若已经处于上机状态,则不允许二次登陆。
UserDAL类、UserJobRecordDAL类属于D层,解析如下:
QueryUserByUserName(UserName):按照用户名查询,User表中含有UserName的信息。
ModifyUser(UserState):若登陆成功,则修改User表中,该UserName 的状态一项为“正在值班”,
AddUserJobRecord:并在UserJobRecord表中添加一条关于该UserName 的上机记录。
三、如何确定三层中应该放什么类呢?
1、Entity:数据库中有N个表,则Entity层中就有N个类,和数据库中的表一一对应。
2、D层:D层是对数据库的增删改查,则D层中有N个类,分别对应N个表均有增删改查的操作。当然您也可以增加如静态数据、枚举类型……的实体类。
3、U层:主要放窗体类,有M个窗体,U层中就有M个类
图示如下:
那么,B层中的类,该如何划分呢?有两种划分方式:
1、B层中的类,可以由该系统的功能/用例推导出。如:登陆Login用例是用户的一项功能。因此,可以在B层中写LoginBLL类。这样划分的特点是,有多少个用例,B层中就有多少个类。类的划分粒度比较细,该类的方法比较少,功能职责单一。但是数目比较多。
2、另一种方法是,由D层推导出,即D层有多少个类,B层就有多少个类,也就是说B层中的类和D层中的类是一一对应的关系。这种划分方式的特点在于:B层中的类数目比较少,相对而言方法就比较多,违背了单一职责的原则。
两种方式各有优缺点,仅供参考,如有建议欢迎指出。
&&&&推荐文章:
【上篇】【下篇】7被浏览1034分享邀请回答11 条评论分享收藏感谢收起22 条评论分享收藏感谢收起写回答查看: 7916|回复: 1
什么是单片机时序,如何看懂时序图
我们都知道在学校是通过铃声来控制所有班级的上下课时间,那个单片机是通过什么样的办法进行取指令,执行指令和其它操作的呢?在这里引入了一个时序的概念:
一、时钟电路单片机时钟电路有三种方式:1、单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端,XTAL1和XTAL2需外接上晶体和合适的电容。&&
2、有的单片机内部也自带时钟电路,用于产生时钟信号。3、单片机管脚XTAL2直接接晶振。
二、周期1、时钟周期时钟电路产生时钟信号的周期我们叫时钟周期(振荡周期)。单片机通电后就产生了固定标称值的脉冲信号,单片机就是在脉冲信号的驱动下顺序地从ROM中(程序存储器)取出指令一条一条的顺序执行,然后进行一系列的微操作控制,来完成各种指定的动作。2、机器周期单片机每访问一次存储器的时间我们把它称为一个机器周期,它是一个时间基准就象我们日常生活中使用的秒一样。单片机中一个机器周期包括12个振荡周期。振荡周期就是振荡源的周期也就是我们使用的晶振的时间周期。一个12M的晶振它的时间周期是1/12微秒,那么使用12M晶振的单片机它的一个机器周期就应该等于12*1/12微秒,也就是1微秒。3、指令周期&&单片机中有些指令只要一个机器周期而有些指令则需要两个或三个机器周期另外还有两条指令需要4个机器周期。如何衡量指令执行时间的长短我们就要用到一个新的概念:指令周期,即执行一条指令所需的机器周期。
三、时序单片机时序是指单片机执行指令时应发出的控制信号的时间序列。这些控制信号在时间上的相互关系就是CPU的时序。它是一系列具有时间顺序的脉冲信号。CPU发出的时序有两类:一类用于片内各功能部件的控制,它们是芯片设计师关注的问题,对用户没有什么意义。另一类用于片外存储器或I/O端口的控制,需要通过器件的控制引脚送到片外,这部分时序对分析硬件电路的原理至关重要,也是软件编程遵循的原则,需要认真掌握。
CPU发出的时序有两类:一类用于片内各功能部件的控制,它们是芯片设计师关注的问题,对用户没有什么意义。另一类用于单片机外部芯片的控制,这部分时序对分析硬件电路的原理至关重要,也是软件编程遵循的原则。
操作时序永远使用是任何一片IC芯片的最主要的内容。一个芯片的所有使用细节都会在它的官方器件手册上包含。所以使用一个器件事情,要充分做好的第一件事就是要把它的器件手册上有用的内容提取,掌握其工作时序。在这里我们以液晶1602为例,分析其操作时序。其基本时序有读状态,写指令,读数据和写数据。
这里,我们需要关注1602的几个管脚,分别是RS,RW,E,D0...D7。由上面的说明我们可以知道:RS:数据/命令(状态)选择端,当此脚为高电平时,可以对1602进行数据字节的传输操作,而此脚为低电平时,进行命令(状态)字节的传输操作。RW:读写选择端,当此脚为高电平可对LCD1602进行读数据操作,反之进行写数据操作。E:使能信号,其实是LCD1602的数据控制时钟信号,利用该信号的上升沿实现对LCD1602的数据传输。D0...D7:8位并行数据口。在此,我们分析两个写时序:写命令和写数据。1、当我们要写指令字,设置LCD1602的工作方式时:需要把RS置为低电平,RW置为低电平,然后将数据送到数据口D0~D7,最后E引脚一个高脉冲将数据写入。
void WriteCommandLCD(unsigned char WCLCD,BuysC) //BuysC为0时忽略忙检测& & { if (BuysC) ReadStatusLCD();& && &//根据需要检测忙&& LCD_Data = WCLCD;& && && && &//将要写的命令放在数据线上 LCD_RS = 0;& && && && && &//RS为低表明要写的为命令& && && & LCD_RW = 0;& && && && && &//RS为低表明执行的是写操作 LCD_E = 0;& && && && && && && && && & LCD_E = 0; LCD_E = 1;& && && && && &//以上三条语句引入一个高脉冲}2、当我们要写入数据字,在1602上实现显示时:需要把RS置为高电平,RW置为低电平,然后将数据送到数据口D0~D7,最后E引脚一个高脉冲将数据写入。
void WriteDataLCD(unsigned char WDLCD){ ReadStatusLCD();& && && && & //检测忙
LCD_Data = WDLCD;& && && &&&//将要写的命令放在数据线上 LCD_RS = 1;& && && && &&&//RS为高表明要写的为数据&& LCD_RW = 0;& && && && &&&//RS为低表明执行的是写操作 LCD_E = 0;& && && && && && && && && && &
LCD_E = 0;& && && && && && && && && && && && && && && &
LCD_E = 1;& && && && && &//以上三条语句引入一个高脉冲}
写指令和写数据,差别仅仅在于RS的电平不一样而已。以下是LCD1602的时序图,大家写驱动代码的时候一定要充分理解器件的时序图(配合文字说明),否则写不出合格的驱动代码,器件也就不能工作。大家可以将上面的代码对照下图,看是不是一回事。
看时序图需要注意的问题:1、注意时间轴,从左往右的方向为时间正向轴,即时间在增长。2、时序图最左边一般是某一根引脚的标识,表示此行图线体现该引脚的变化,上图分别标明了RS、R/W、E、DB0~DB7四类引脚的时序变化。3、有线交叉状的部分,表示电平在变化。4、两条平行线分别对应高低电平,如上图右上角所示。5、密封的菱形部分,表示数据有效,Valid Data这个词也显示了这点。6、时序图里各个引脚的电平变化,基于的时间轴是一致的。一定要严格按照时间轴的增长方向来精确地观察时序图。要让器件严格的遵守时序图的变化。
7、时间的标注,也是个十分重要的信息,这些时间的标注表明了某些状态所要维持的最短或最长时间。因为器件的工作速度也是有限的,一般都跟不上主控芯片的速度,所以它们直接之间要有时序配合。下面是时序参数表:
Powered by怎么看时序图_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
怎么看时序图
这两种类型的时序图有什么区别(不是同一个电路的),一种是直角边的,一种是斜的
我有更好的答案
输出数据、写入脉冲;下图是实际工作的时序图。如 CPU 把数据写入存储器的时序是:地址信号最早建立,对照输入波形与驱动方程即可,忽略了高、低电平转换所需的建立时间,一个嵌套着一个、数据输出(D7~D0),各个信号的时间配合要避开建立时间段,分析时只要抓住时钟有效时刻上图是数字电路的理想波形,此时逻辑状态是不稳定的、A),然后选通(START)、等待转换完成(OE)。下图是A/D芯片0809的转换时序,也是地址先建立(C、B,斜坡表示信号的建立时间
采纳率:84%
来自团队:
为您推荐:
其他类似问题
时序图的相关知识
换一换
回答问题,赢新手礼包非常感谢楼主
UID94190&帖子245&精华0&积分4&资产4 信元&发贴收入3180 信元&推广收入0 信元&附件收入1395 信元&下载支出4694 信元&阅读权限10&在线时间194 小时&注册时间&最后登录&
谢谢,下载了
战战兢兢,如临深渊,如履薄冰。
UID24518&帖子13&精华0&积分21&资产21 信元&发贴收入65 信元&推广收入0 信元&附件收入0 信元&下载支出145 信元&阅读权限10&在线时间1 小时&注册时间&最后登录&
很好呀,写的不错,谢谢搂住了!
UID134351&帖子8&精华0&积分0&资产0 信元&发贴收入45 信元&推广收入0 信元&附件收入0 信元&下载支出95 信元&阅读权限10&在线时间9 小时&注册时间&最后登录&
下来看看啊
UID414872&帖子13&精华0&积分35&资产35 信元&发贴收入65 信元&推广收入0 信元&附件收入0 信元&下载支出80 信元&阅读权限10&在线时间0 小时&注册时间&最后登录&
第一次接触时续图的时候,就觉得烦,结果,第一次就扫了一眼,没有细看...
UID368080&帖子169&精华0&积分88&资产88 信元&发贴收入1060 信元&推广收入0 信元&附件收入0 信元&下载支出1022 信元&阅读权限10&在线时间71 小时&注册时间&最后登录&
很好呀,写的不错,谢谢搂住了!
UID368080&帖子169&精华0&积分88&资产88 信元&发贴收入1060 信元&推广收入0 信元&附件收入0 信元&下载支出1022 信元&阅读权限10&在线时间71 小时&注册时间&最后登录&
UID368080&帖子169&精华0&积分88&资产88 信元&发贴收入1060 信元&推广收入0 信元&附件收入0 信元&下载支出1022 信元&阅读权限10&在线时间71 小时&注册时间&最后登录&
很好呀,写的不错,谢谢搂住了!
UID368080&帖子169&精华0&积分88&资产88 信元&发贴收入1060 信元&推广收入0 信元&附件收入0 信元&下载支出1022 信元&阅读权限10&在线时间71 小时&注册时间&最后登录&
上当了,什么东西啊,都没什么。。。
[通过 QQ、MSN 分享给朋友]
欢迎访问 TI SLL(信号链)专区

我要回帖

更多关于 plc时序图怎么看 的文章

 

随机推荐