折腾来折腾去

pikipity的blog

第九章 时序

时序在设计电路中很重要,在仿真软件中仿真正常,但是在实际中却出现各种各样奇怪的问题,例如LED应该亮的时候不亮,不应该亮的时候乱亮,导致整个LED矩阵一片混乱,如果接脚一切正常的话,一般就是时序不符合要求,更换芯片或是减少过程中的芯片数量一般就可以解决,但是这些并不是应该在完成产品之后再调整的,否则成本会大大增加,所以时序问题在设计初期就应该考虑进去,来保证最终产品的稳定运行。

每个芯片的说明书上一般会配有大量的时序图,下面是一张 AT89C51 读取外部程序寄存器时候的时序图。

AT89C51 读取外部程序寄存器时的时序图

为了方便后面的讲解,我们在这里将时序图上的各个元素进行重新命名:

  • 时序图中每一行对应一个接脚,我们在这里管这些接脚叫“对象”
  • 对于单片机或是芯片的时序图很简单,对于一个对象的一个时间下,此对象只有两种可能的状态:0或者1。我们管1叫“事件”,从0到1叫“事件发生”,从1到0叫“事件结束”。
  • 时序图上标出的各种各样的时间,例如$$t{LHLL}$$、$$t{PLPH}$$,我们管他们叫“要求”

接下来的问题就是我们如何知道自己练的电路是否满足时序要求呢?我们可以按照下面的步骤,一步一步来确定1

  1. 对于每一个元件时序图上的“事件”明确哪一个是“输入事件”2、哪一个是“输出事件”3。在这一步我们其实就可以确定接脚连法的逻辑是否正确了,如果两个“输入事件”对联那肯定就不对了。
  2. 根据上面找到的“输入事件”,找到并标出停止于“输入事件”的“要求”。对于时序图所指示的这个元件来说,这些“要求”是需要外部元件来配合自己的,我管它们叫“真要求”,而其他“要求”是自己用来配合其他元件的,我管他们叫“假要求”。
  3. 然后对于每一个元件的每一个“真要求”,根据接脚的连法,看对应的“假要求”是否满足就可以了。重点是看这个“真要求”起于何时止于何时,这样就可以找到对应的“假要求”了,然后对应大小关系,就可以了。

脚标


  1. 我这里忽略掉了导线产生的信号延迟,如果需要,直接加入就可以了

  2. 如果这个信号对于时序图所指示的这个元件是一个输入信号的话,我管它叫“输入事件”

  3. 如果这个信号对于时序图所指示的这个元件是一个输出信号的话,我管它叫“输出事件”



Comments