“ 通常来说 KiCad 更建议使用层次化的设计,因为这样结构更清晰,也方便设计复用。 对于简单的系统,扁平化设计也很容易实现;但将复杂的系统设计成扁平化却并不那么容易。”
什么是扁平化设计?
在过去,特别是在计算机时代之前,大多数原理图都是这样制作的。
扁平化设计可以是单页,也可以是多页,用于容纳你的原理图。如果有多页,那么每个页面都可能包含彼此相关的内容。
对于多页设计来说,还必须有一种方法来使这些页面之间产生联系。这种交叉引用在KiCad中被称为标签(有的EDA称之为端口)。另一个重要的工具是电源符号(在过去也被称为电源端口)。典型的如GND、VDD等符号。电源符号在扁平化设计中是全局的,即所有图纸有效。
什么是层次化设计?
层次化设计是一种完全不同的设计范式。在某种意义上,它可以与面向对象的编程相媲美。它背后的主要想法是引入抽象层。这可以使人们更容易理解复杂的系统。
层次化的页面符号不止代表一页原理图,而更像是一个有定义接口的对象。
在KiCad中,这种接口通过分层化引脚与层次化标签实现。全局的标签(比如电源符号)一定程度上降低了这种设计方法的功能。
电源管理系统(BMS)的设计案例
在此示例中,展示的是一个电池管理系统的测量和平衡电路。该电路有一个用于连接电池组中每个电池的接口,一个专门的芯片,可以测量每个电池的电压、温度,并提供一种对单个电池进行放电以实现平衡的方法。它还提供了与外部控制器的接口。
3芯电池的单页扁平化设计
即使是这样简单的电路,我也需要使用A3大小的图纸,以便能够容纳所有的东西,同时让设计看起来规划合理。 请注意,我们为每个电池复制了设计的平衡部分。想象一下,如果你后来发现某些地方不太对,则需要改变每一个重复的部分。
在扁平化设计中,使用图形线和文字可以很好地帮助区分功能模块,即对系统做一个抽象的功能分割。
6芯电池的多页扁平化设计
在上一节中,我们发现一个单一的页面很快就会变得很有局限性。我们可以增加页面的大小,但即使这样也有局限性。这意味着我们可能需要添加额外的原理图页面,但这并不是KiCads的强项之一。我们可以在这里使用层次化图纸和全局标签达到类似的效果。
根页面是你的设计的索引页,它将所有其他页面实例化。如果你愿意的话,可以在这个根页面上添加一些文字或图画,以明确在图纸中可以找到什么。
12芯电池的层次化设计 查看之前的设计,我们会发现有很多重复的内容可以放置在单独的设计模块中。这样做将使我们的原理图在 KiCad 中更易于阅读和维护。上图中黄色部分展示的是这些原理图页面符的子图纸内容。对于单页图纸来说,内容并不多。 在这种情况下,我们可以多次实例化同一张子原理图。可以通过复制原理图页面符,或者创建一个新的页面符并指定同样的子原理图来实现这一目的。 现在,如果您修改这个子电路图的一部分,那么变更将传播到所有其他实例。作为测试,你可以尝试更改其中一个电阻器的值并检查它在其他实例中是否发生变化。实例之间唯一独立的是位号符。
在层次化设计的工作流程中,也可以拥有仅实例化一次的图纸。如下图所示,主机接口和菊花链过滤器表仅实例化一次;而每个电池单元都实例化了6次:
上图中的层次化设计可以非常清晰地查看、理解设计意图及每个功能模块的定义。
小结
本文介绍了扁平化设计、层次化设计的概念并给出了3个实例。对于复杂的设计,建议使用层次化设计,因为这样可以使图纸更容易被读懂,也可以让设计更清晰,且支持模块的复用。
下一章中,我们会继续介绍层次化设计中的一些注意点,以及如何在KiCad中创建层次化设计。
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !