在SIMULINK模型中建模Flash或非易失性内存活动

时间:2013-08-01 15:59:03

标签: models simulink read-write non-volatile

我试图在系统启动后检索两个1位值(即它们之前的值),或者在正常操作期间写入它,如果情况发生变化。当我说“系统启动”时,我想说明这是一个位于一个非常大的系统内的子系统。

这个想法是,如果我断开这个子系统,系统的其余部分不受影响。我将根据它们最后的已知状态保留两个1位值。在再次启动子系统时,根据我的处理,这些1位值将被新值保留或覆盖。出于保密原因,我无法深入到现在。

到目前为止我的方法

附件是执行此内存读/写的子系统部分的SIMULINK图。我相信这会奏效。但是,我并不完全确定。谁能想到更好的方法吗?我知道一个明显的答案是说“尝试从工作空间保存和加载”,但我有一个特殊情况,只允许从Flash / E2PROM加载。不幸的是,我对SIMULINK中什么都不知道会做什么。如果有人知道不同的事情,我很乐意接受全面的教育:)

enter image description here

感谢。

1 个答案:

答案 0 :(得分:1)

你基本上需要一个记忆。可能有多种方法可以做到这一点。

  1. 延迟是记忆。您可以为启动值设置其初始条件。您可以将Delay放入已启用的子系统中以写入新值,也可以使用多路复用器从延迟输出中写入新值或先前值。
  2. 您可以使用MATLAB功能块并在其中声明持久变量。您可以在检查“is empty(persistent_var_name)”中初始化它,然后读取或写入它。
  3. 另一种方法是原始问题如何使用“数据存储”实现它。