Altium Designer

如何使用随机数发生器来创建PCB设计的不确定性

我的高中同学知道我是一个可以预见的人,每次都是第一个随时随地出现的人。由于他们似乎并不关心保持他们的时间表和承诺,有时候我会为朋友等上好几个小时。这种不确定性会使我的日程安排变得困难,但是工程学是一个我发现不确定性的地方很少成为问题。毫不奇怪,我对物理学和工程学产生了浓厚的兴趣,其结果是可预测的,并且基于所提供的输入。

可预测性是嵌入式系统设计中的一个重要资产,特别是在关键应用程序和运行测试中。但是,可预测性一直是我的倒台一两次。具体来说,我正在一个嵌入式系统中创建一个随机数生成器,并且在我能够利用不确定性并使随机数组随机洗牌之前,我花了很多的尝试。

嵌入式系统的随机性

嵌入式系统需要平滑的通信才能使其运行,通常这种通信以二进制1和0进行。即使模拟设计也需要最小的干扰来提供稳定的信号。嵌入式系统可以通过强大的随机数发生器来生活和呼吸。这似乎违反直觉,对吗?但是这是真实的 – 在你的一些潜在的系统中,不确定性可能会更好。

我的一个项目涉及设计用于在高级零售店播放音乐的定制MP3播放器。其中一个要求就是随机播放一个播放列表,以便在每天开始播放不同的歌曲。这项要求强调,在选择正在播放的歌曲时,不得有任何模式,即使对其他MP3播放器也是如此。那么我们如何做到这一点呢?通过分配一个不确定的公式。

伪随机数发生器

使用伪随机数发生器(PRNG)可以很容易地对MP3播放器中的歌曲进行混音,这是一个用于生成随机数序列的数学公式。这是一种在嵌入式系统中引入任何形式的随机性的快速方法。

它使用一个种子编号来产生第一个序列,然后可以连续产生随机序列。但是,它不是一个纯粹的随机数发生器,因为这些序列最终会在时间上重复。而且,如果两个或多个设备共享相同的种子编号,则初始序列将是相同的。重复序列确保可预测性,因此不会产生不确定性。

在我的情况下,我使用微控制器中的各种定时器值来生成种子编号,希望歌曲混洗的结果至少对人耳是不可预知的。当听众抱怨每个MP3播放器几乎每次打开时都开始在列表中播放特定的歌曲时,我的希望就破灭了。回到绘图板。

随机性最好的不可预知的来源:白噪声

使用计时器值作为种子数字使随机化可预测;在MP3播放器的初始化期间执行随机化过程。通过扩展,预测变量(如日期或时间)作为种子数的任何用法也使得随机化是可预测的。在我的项目中,这对我来说是一个非常昂贵的监督,导致硬件设计的修改在混洗中带来了真正的随机性。我最终做了什么?

我合并了一个确定性的PRNG和一个随机的白噪声发生器,以便为我的MP3播放器的混洗创造随机性的完美解决方案。为了更好地改变随机值,使用运算放大器来放大噪声。这个随机值可以被用作伪随机数发生器算法的种子数。

无论您为满足您的不确定性需求而提出的解决方案,为您的随机性隔离源信号非常重要。否则,可能会产生干扰和制度偏差,从而产生可预测性,这只是目标。真正的随机性和信号隔离很难实现,特别是你自己难以想象。这就是在CircuitStudio等PCB设计软​​件中设置正确的设计规则检查(DRC)的时候。

Tagged ,

About Simon Wang

发表评论

电子邮件地址不会被公开。 必填项已用*标注