时序图讲解

  1. 用来描述对象之间动态的交互关系。着重提现对象之间消息传递的时间顺序。
  2. 顺序图将交互关系表示为一个二维图。其中,纵轴是时间轴,时间沿竖线向下延伸。横轴代表了在协作中各位独立的对象。

  时序图的组成

时序图包含了5个元素:

        ①参与者

        ②对象(Object)

        ③生命线(Lifeline)

        ④消息(Message)

        ⑤激活(Activation)

        ⑥ 约束(Constraint)

       1.对象

  1. 如果对象位于时序图的顶部,说明在交互开始之前该对象已经存在额。
  2. 如果对象是在交互的过程中创建的,那么它应当位于图的中间部分。

对象包括三种:

  • 指定类名和对象名的对象 objectName: className
  • 指定类名但没有对象名的对象 (匿名对象) :className
  • 指定对象名但不指定类名的对象 objectName

图形表示:
第一类:

第二类:

第三类:

创建对象的两种方法:

 1.1对象的撤销

  1. 如果要象的撤销一个对象,只要在其生命线终止点放置一个“X”符号即可,该点通常是对删除或取消消息的回应。

 2.生命线

  1. 生命线是对一条垂直的虚线,表示时序图中的对象在一段时间段内的存在。每个对象的底部中心的位置都带有生命线。
  2. 生命线是一个时间线,从顺序图的顶部一直延伸带底部,所用的时间取决与交互持续时间。

3.消息

  1. 消息定义的对象之间某种形式的通信,它可以激发某个操作、唤起信号或导致目标对象的创建或撤销。
  2. 消息是对两个对象之间的单路通信。
  3. 消息可以用于在对象间传递的参数。
  4. 消息可以是信号的,也可以是调用的。

4.激活 

  1.  激活表示该对象被占用以完成某个任务,去激活指的则是对象处于空闲的状态、在等待消息。
  2. 在UML中,为了表示对象是激活的,可以将该对象的生命线拓宽成为矩形。其中的矩形称为激活条或控制期。

5.消息

1. 同步消息:

  • 发送者要发送一条消息且接收者已经做好接收这个消息的准备才能传送的消息叫同步消息。实心箭头。消息的名称是被调用者的方法名。

2. 异步消息

  • 发送者不管接收者是否做好准备都可以发送的消息叫异步消息。

3. 返回消息

4. 创建对象

5. 撤销对象

6. 自关联消息

6.约束

  1. 约束条件
  • 消息前加约束条件。通常有条件约束、循环约束。
  • 条件约束:[条件],只有在符合条件时,才发送消息。

   循环约束:*[条件]

约束片段

片段类型名称说明
Opt

包含一个可能发生或可能不发生的序列。 可以在临界中指定序列发生的条件。
Alt

包含一个片段列表,这些片段包含备选消息序列。 在任何场合下只发生一个序列。可以在每个片段中设置一个临界来指示该片段可以运行的条件。 else 的临界指示其他任何临界都不为 True 时应运行的片段。 如果所有临界都为 False 并且没有 else,则不执行任何片段。
Loop

片段重复一定次数。 可以在临界中指示片段重复的条件。Loop 组合片段具有“Min”和“Max”属性,它们指示片段可以重复的最小和最大次数。 默认值是无限制。
Break

如果执行此片段,则放弃序列的其余部分。 可以使用临界来指示发生中断的条件。
Par

并行处理。 片段中的事件可以交错。
Critical

用在 Par 或 Seq 片段中。 指示此片段中的消息不得与其他消息交错。
Seq

有两个或更多操作数片段。 涉及同一生命线的消息必须以片段的顺序发生。 如果消息涉及的生命线不同,来自不同片段的消息可能会并行交错。
Strict

有两个或更多操作数片段。 这些片段必须按给定顺序发生。
Consider

指定此片段描述的消息列表。 其他消息可发生在运行的系统中,但对此描述来说意义不大。在“Messages”属性中键入该列表。
Ignore

此片段未描述的消息列表。 这些消息可发生在运行的系统中,但对此描述来说意义不大。在“Messages”属性中键入该列表。
Assert

操作数片段指定唯一有效的序列。 通常用在 Consider 或 Ignore 片段中。
Neg

此片段中显示的序列不得发生。 通常用在 Consider 或 Ignore 片段中。


  1. 循环分支属于业务流程中比较常见的特殊结构。
  • loop,也叫循环,是满足循环条件的前提下,不断地重复做某些事情;
  • alt,条件分支,是根据不同的条件选择不同的分支;
  • opt,可选分支,是满足一定条件则执行该分支,否则就跳过。

如下图:

### DS1382时序图详细讲解及工作原理 DS1382是一款高精度实时时钟芯片,具有低功耗和内置充电电路的特点。以下是关于DS1382时序图的详细讲解及其工作原理。 #### 1. DS1382时序图概述 DS1382通过串行接口与微控制器通信,支持单字节读写和突发模式操作。其时序图描述了数据传输过程中的关键信号与时序关系,包括CE(Chip Enable)、SCLK(Serial Clock)和I/O(Data Input/Output)引脚的行为[^1]。 #### 2. 数据写入时序 在数据写入过程中,CE引脚必须首先被拉高以选通DS1382芯片。随后,主设备通过SCLK信号同步地将地址和数据位逐位发送到DS1382的I/O引脚。具体时序如下: - CE引脚从低电平切换到高电平,启动通信。 - 主设备通过I/O引脚发送一个字节的地址信息,每一位由SCLK的上升沿触发采样。 - 地址发送完成后,主设备继续通过I/O引脚发送数据字节,同样由SCLK的上升沿触发采样。 - 数据完全写入后,CE引脚被拉低以结束通信。 ```python def write_data_to_ds1382(address, data): digitalWrite(CE_PIN, HIGH) # 拉高CE引脚,开始通信 delayMicroseconds(1) # 等待稳定 shiftOut(IO_PIN, SCLK_PIN, MSBFIRST, address) # 发送地址 shiftOut(IO_PIN, SCLK_PIN, MSBFIRST, data) # 发送数据 digitalWrite(CE_PIN, LOW) # 拉低CE引脚,结束通信 ``` #### 3. 数据读取时序 在数据读取过程中,CE引脚同样需要被拉高以选通DS1382芯片。主设备首先发送地址字节,然后DS1382将数据逐位发送回主设备。具体时序如下: - CE引脚从低电平切换到高电平,启动通信。 - 主设备通过I/O引脚发送一个字节的地址信息,每一位由SCLK的上升沿触发采样。 - 地址发送完成后,DS1382通过I/O引脚逐位发送数据字节,每一位由SCLK的上升沿触发输出。 - 数据完全读取后,CE引脚被拉低以结束通信。 ```python def read_data_from_ds1382(address): digitalWrite(CE_PIN, HIGH) # 拉高CE引脚,开始通信 delayMicroseconds(1) # 等待稳定 shiftOut(IO_PIN, SCLK_PIN, MSBFIRST, address) # 发送地址 data = shiftIn(IO_PIN, SCLK_PIN, MSBFIRST) # 读取数据 digitalWrite(CE_PIN, LOW) # 拉低CE引脚,结束通信 return data ``` #### 4. 突发模式时序 突发模式允许一次性连续读取或写入多个寄存器的数据。在突发模式下,CE引脚保持高电平,直到所有数据传输完成。具体时序如下: - 写入突发模式:主设备发送起始地址后,连续发送多个数据字节,每一位由SCLK的上升沿触发采样。 - 读取突发模式:主设备发送起始地址后,DS1382连续发送多个数据字节,每一位由SCLK的上升沿触发输出。 #### 5. 工作原理 DS1382的工作原理基于内部振荡器和计数器。振荡器产生精确的时钟信号,驱动计数器更新时间值。通过串行接口,用户可以读取当前时间或设置新的时间值。此外,DS1382还集成了涓流充电电路,用于为备用电池充电,确保断电时时间信息不丢失[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值