AD21原理图的高级应用(二)层次原理图设计

层次原理图是大规模电路系统设计的有效工具,通过模块化将电路分解为子电路图。设计过程包括自上而下和自下而上的方法,涉及页面符、图纸入口的使用,以及利用AltiumDesigner的层次设计表来管理复杂的层次关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于大规模的电路系统,需要将其按功能分解为若干个电路模块,用户可以单独绘制好各个功能模块,再将它们组合起来继续处理,最终完成整体电路的连接。这样,电路的结构清晰,便于多人协同操作,加快工作进程。

1.层次原理图概述

层次化原理图主要包括主电路图和子电路图两大部分。它们之间是父电路与子电路的关系,在子电路图中仍可包含下一级子电路。子电路图用来描述某一电路模块的具体功能,由各种元件和导线构成,增加了一些端口,作为与主电路图和其他电路图之间进行连接的接口。主电路图主要由多个页面符组成,用来展示各个电路模块之间的系统连
接关系,描述了整体电路的功能结构。

平坦式原理图采用水平方向分割,如图所示。将总体的电路进行模块划分,各模块之间一般通过“离图连接器《offsheet”或者具有全局连接属性的网络标号来完成电气连接。

在这里插入图片描述

层次化原理图采用垂直方向分割,如图 所示。将总电路以模块划分后,模块之间一般通过“端口”“页面符”“图纸入口”来实现电气连接。

在这里插入图片描述

2.层次化原理图的应用

层次化原理图有自上而下和自下而上两种设计方式。

2.1 自上而下的层次化原理图

自上而下的设计理念是把整个电路分为多个功能模块,确定每个模块的内容,再对这些模块进行详细设计。这种方法要求用户对设计有整体的把握,对模块划分比较清楚。
我们以“1900功放”电路设计为例,演示自上而下的层次化原理图的具体步骤。本电路划分为 3 个电路模块:喇叭保护Trumpet 模块和 2 路功放模块Ambulance-L、Ambulance-R。

(1)建立工程文件。建立一个名为“1900功放.PrjPCB”的工程文件,并添加一个名为 Main.SchDoc 的原理图文件,将其作为层次化原理图的主电路图,如图所示。

在这里插入图片描述

(2)放置页面符,并设置相关参数。

①执行菜单栏中“放置”→“页面符”命令,或按快捷键P+S,或者单击工具栏的图标,光标将会附带一个页面符标识,如图 所示。
②将页面符放到合适的位置,先单击确定页面符的一个顶点,移动光标到合适的位置再次单击确定其对角顶点位置,即可得到大小适宜的页面符,如图所示。

③设置页面符属性。双击页面符,打开页面符属性面板,进行相应的参数设置,如图所示。

在这里插入图片描述

在这里插入图片描述
●Location:页面符在原理图上的坐标位置,根据页面符的移动自动设置,一般不需要设置。
●Designator:用于输入相应页面符的名称,本质与元件标识符类似,不同的页面符要有不同的标识。
●File Name:用于输入页面符所代表的下层子原理图的文件名。
●Width、Height:页面符的宽度和高度,可设置。
●Line Style:用于设置页面符的边框大小,包含“Smallest(最细)”“Small(细)”“Medium(中等)”“Large(粗)”。
●Fill Color:用于设置填充颜色。

设置好参数的页面符如图所示。

在这里插入图片描述
(3)重复上述 3 个步骤,把其他 2 个模块的页面符 U_Ambulance-L 和 U_Ambulance-R设置好,页面符的个数与子原理图(模块)数相符,如图所示。

在这里插入图片描述
(4)放置图纸入口,用于后期页面符之间的连接。执行菜单栏中“放置”→“图纸入口”命令或按快捷键 P+A,如图所示。

① 放置图纸入口到页面符内部,图纸入口只能在页面符的内部边框放置, 如图所示。
在这里插入图片描述

②设置图纸入口属性。
Name:图纸入口名称,应与子图中的端口名称对应,才能完成电气连接。
I/O Type:图纸入口的电气特性,重要的属性之一。

若不清楚具体 I/O 类型,建议选择 Unspecified。设置好的图纸入口如图 所示。
在这里插入图片描述

放置并设置好其他页面符的图纸入口,如图所示。

(5)通过导线完成页面符之间的连接。相同的图纸入口,用导线连接起来,完成主电路图 Main. SchDoc 的绘制,如图 所示。
在这里插入图片描述

注意:GND端口和电源端口具有全局连接的属性,所以不需要额外放置相应的图纸入口或端口。

(6)绘制子原理图(模块原理图)。根据主原理图的页面符将与之相对应的子原理图绘制出来。

在这里插入图片描述
①执行菜单栏中“设计”→“从页面符创建图纸”命令,或按快捷键D+R,如图所示。或在页面符上右击,从弹出的快捷菜单中执行“页面符操作”→“从页面符创建图纸”命令,如图 所示。鼠标点击要创建的页面符。

在这里插入图片描述
在这里插入图片描述
②若采用指令1,则光标变为十字,将光标放到页面符单击即可弹出对应的子原理图文件。若采用指令 2,则直接弹出。弹出的子原理图如图 1-31 所示。此时可以看到,在弹出的原理图中已经自动生成相应的端口。

③ 保存弹出的原理图,按普通原理图的设置方法,放置所需的元件并进行电气连接,完成Trumpet. SchDoc,如图 所示。
④ 绘制完成其他子原理图,由主电路图的其他两个页面符 U_Ambulance-L 和 U_Ambulance-R 创建 Ambulance-L.SchDoc 和 Ambulance-R. SchDoc,完成子电路的绘制。绘制完后,对整个工程进行位号标注并保存好。最终工程中包含的文件如图所示。

(7)在工作区中选择“1900 功放.PrjPCB”,右击,编译整个工程,如图所示。通过 Messages 面板查看是否存在错误,是则修改好。

2.2 自下而上的层次化原理图

自下而上的层次化原理图设计理念是用户先绘制原理图子图,再根据原理图子图生成页面符,进而生成主原理图,达到整个设计要求。这种方法比较适合对整体设计不太熟悉的用户,对初学者也是一个很好的选择。

依旧以“1900功放”电路设计为例,演示自下而上的层次化原理图的具体步骤。本电路划分为 3 个电路模块:喇叭保护Trumpet 模块和 2 路功放模块Ambulance -L、Ambulance-R。

在这里插入图片描述
(1)新建一个工程,将每一个子电路画好,需要进行跨页连接的网络用端口连上(这里直接复制上一个
工程已画好的原理图),如图 所示。

(2)给工程添加一个主原理图 main.SchDoc。在原理图空白处右击,从弹出的快捷菜单中执行“图纸操作”→Create Sheet Symbol From Sheet 命令,如图 所示。随之弹出“选择文件设置”对话框,如图所示。

在这里插入图片描述
在这里插入图片描述
(3)依次单击生成子原理图相应的页面符,最终如图所示。原理图绘制完成之后,图中包含的端口会同步到相应的页面符中。(此处没有绘制原理图,只做演示作用)

在这里插入图片描述
(4)用导线连接各个页面符,页面符可以移动,内部图纸入口也可以移动,以便于连接。

3.生成层次设计表

设计的层次原理图在层次较少的情况下,结构相对简单,用户能很快理解。但是对于层次较多的电路图,其层次关系复杂,用户不容易看懂。Altium Designer 软件提供了层次设计表的功能,作为辅助用户查看复杂层次关系的工具。借助层次设计表,用户可以清晰地把握层次结构,进一步明确设计内容。

建立层次设计表的步骤如下:
(1)执行菜单栏中“报告”→Report Project Hierarchy 命令,如图 1-43 所示,即可生成相关的层次设计表。
在这里插入图片描述

(2)层次设计表会添加到工程下的 Generated→Text Documents 文件夹中,后缀是REP 的一个文件。位置如图 所示,内容如图所示。

在这里插入图片描述

### 如何在 Altium Designer 20 中从层次原理图生成 BOM 文件 #### 导出BOM文件的具体操作流程 在完成层次原理图设计之后,为了方便后续的采购和组装工作,可以按照如下方式来导出物料清单(BOM): 打开Altium Designer 20软件,在原理图编辑器内,通过菜单栏选择 `Reports`(报告)>> `Bill of Materials` (材料清单)[^1]。 此时会弹出一个对话框用于配置BOM的各项参数设置。在这个窗口里可以选择要包含的信息字段以及输出格式等选项。对于层次设计而言,确保选择了合适的顶层文档作为根节点,并确认所有子页都被正确识别并纳入统计范围之内[^2]。 完成上述设定后,点击“Generate/View”按钮即可预览即将生成的BOM列表。如果一切正常,则可进一步指定保存路径与文件名,最后单击“Save As…”命令将其另存为CSV、Excel或其他支持的形式以便于分享给相关人员查阅处理。 ```python # Python伪代码示意如何自动化部分过程(仅作概念展示) import altium_api def export_bom(project_path, output_format='csv'): project = altium_api.open_project(project_path) bom_data = project.generate_bom() file_name = f"{project.name}_bom.{output_format}" with open(file_name, 'w') as file: writer = csv.writer(file) if output_format == 'csv' else excel_writer(file) writer.writerow(bom_data.headers()) for item in bom_data.items(): writer.writerow(item.values()) export_bom('C:\\Projects\\MyHierarchicalDesign.PrjPcb', 'xlsx') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小幽余生不加糖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值