层次原理图
层次原理图的设计
内容提示:
前面介绍了使用Protel 99 SE进行具体电路设计的方法,包括基本操作和高阶技巧,通过这些内容的学习读者应该已经具备良好的原理图设计的本领。但在实际设计中有时会遇到较大规模电路的设计,这时就不仅需要设计者能够实现电路功能的设计,而且还需要进行设计方法方面的考虑。
对于大规模电路的设计,往往不是单个设计者能在短期内完成的,为了适应长期设计的需要,或者为缩短周期组织多人共同设计的需要,Protel 99 SE 提供了层次原理图的设计功能。这一功能就是通过合理的规划,将整个电路系统分解为若干个相对独立的功能子模块,然后分别对每个子模块进行具体的电路设计,这样就实现了设计任务的分解,可以在不同的时间完成不同模块的设计而相互之间有没有过多的干扰,也可以将各个模块的设计任务分配给不同的设计者同时进行设计,从而大大提高了大规模电路设计的效率。
本章中将对层次原理图设计的基本思想、具体的设计方法以及管理方法进行介绍。对层次原理图中涉及到的自上而下和自下而上的设计方法都有详细的讨论。
学习要点:
层次原理图设计的基本概念及其优点
如何绘制层次原理图
自上而下的设计方法
自下而上的设计方法
层次原理图的管理
层次电路图的设计思路是这样的:
将复杂系统按照功能要求分解为若干个子模块,如果需要,对于子模块还可以分解为更小的基本模块,各个模块之间设计好模块接口,上层原理图只负责根据功能需要对各个模块的接口进行合适的连接,而不关心电路细节,具体的电路设计在底层模块电路图中实现,底层模块的电路设计要能够满足接口要求,这样通过组合就能够得到完整并且符合功能要求的电路设计了。从设计思路中可以清楚地看到层次电路图的优点:电路结构清晰、便于任务分配。层次电路图的设计过程如图7.1所示。
7.1 层次原理图的概念
(1) 在开始设计之前,要明确电路需要实现的功能以及总体要求,规划好电路的整体框架。
(2) 根据功能要求将电路分解为多个可单独实现的子模块,规定好每个模块之间的接口规范,实现设计任务的分解。
(3) 对各个子模块进行独立设计,设计结果要保证接口要求。
(4) 将各个子模块的设计整合为完整的电路,这时要充分考虑电路整体的要求,对各子模块进行必要的修改。
7.1.2 层次原理图的优点
从前面介绍的层次电路图设计的基本思路中,能够很清楚地看到采用层次原理图设计方法的一些优点。
(1) 电路结构清晰。
(2) 便于对项目的管理。
(3) 利于分工合作。
(4) 能够提高效率,缩短项目设计时间。
7.2 绘制层次原理图
前面提到了在层次电路图设计方法中要涉及模块、接口等概念,在Protel 99 SE中这些概念是通过方块图、方块图接口以及I/O端口等来实现的,如图7.2所示,下面就对其在原理图中的具体绘制方法进行介绍。
在布线工具栏上有一个按钮
,对应于Place →Sheet Symbol菜单命令,即是用来
绘制方块图的。具体操作步骤如下。
(1)用鼠标左键单击
按钮,进入放置方块图状态,如图7.3所示。可以看到光标变为十字形,并带有一个尚未确定的方块,这是默认形状或是上次绘制的方块图的形状。
(2)通过单击鼠标左键确定方块图的左上角点,如图7.4所示。
(3) 此时光标会跳至默认形状的右下角点位置,移动光标到合适大小的方块,通过单击鼠标左键确定右下角点,如图7.5所示。
(4) 此时仍处在放置方块图的状态,重复上述操作可以绘制下一个方块图,单击鼠标右键或按键盘Esc 键退出放置状态,完成方块图的绘制。
在放置方块图的过程中按键盘Tab 键或在放置完后用鼠标左键双击方块图,可以打开如图
7.6所示的属性设置对话框。
在由方块电路图作为模块电路的上层电路中,接口是用绘制方块图接口来实现的。在布线工具栏上有一个按钮 ,对应于选择Place →Add Sheet Entry菜单命令,即是用来在方块图上放置方块图接口的,下面对其具体的操作过程进行介绍。
(1)用鼠标左键单击 按钮,进入放置方块图接口状态,如图7.7所示,此时光标变为十字形。
(2)在需要放置方块图接口的方块图区域内单击鼠标左键,选定该方块图,此时光标会带有一个未确定的接口,并会自动与方块图的边界相接,如图7.8所示。
在绘制好各个模块的方块图及其接口后,就可以将对应接口按照功能要求进行连接,来组成整体框架。连线过程与原理图中的连线方式相同,对于方块图接口,其在方块图边线的一端具有电气节点特性,能够进行电气捕捉,如图7.15所示。
完成连线后的电路如图7.16所示。
在布线工具栏上有一个 按钮,对应于选择Place →Port 命令,即是用来在下层原理图中放置I/O端口。下面以Motor Controller.sch文件中的原理图为例,具体介绍其操作的步骤。
(1)打开Motor Controller.sch文件。
(2)用鼠标左键单击 按钮,进入I/O端口放置状态。
(3)单击鼠标左键确定I/O端口的一端,如图7.17所示。
(4) 移动鼠标使I/O端口大小合适,单击鼠标左键确定另一端。
(5) 重复上述操作绘制下一个I/O端口,通过单击鼠标右键或按键盘Esc 键退出绘制状态。绘制好的I/O端口如图7.18所示。
在放置过程中按键盘Tab 键或放置后双击该I/O端口,可以打开如图7.19所示的属性设置对话框。
层次原理图有两种设计方法
即自上而下的设计方法与自下而上的设计方法。顾名思义,自上而下的设计方法就是要先绘制顶层原理图,首先确定整个系统有哪些模块组成,各个模块的功能是怎样的,并尽可能地确定接口规范,然后由最顶层的原理图开始,从上往下逐级进行模块设计,最后完成电路设计;
而自下而上的设计方法与其相反,开始并不专注于整个系统框架的构建,而是首先根据功能设计的要求完成各个功能模块的具体设计,每个模块都引出相应的接口,然后自下而上地通过各个底层功能模块逐级生成上层系统并确定各个模块之间的连接关系,最终汇总成系统的整体设计。两种方法仅仅在实现过程上有所不同,设计结果应该是相同的,而且即使对于自下而上的设计方法,在设计之前也需要对系统电路有一个大体的规划,不能盲目地进行设计。下面分别对其进行具体的介绍。
1.设计思路
自上而下设计方法的设计流程如图7.20所示。
2.绘制顶层电路原理图
规划系统电路,将电路按照功能划分模块,如图7.21所示。
7.3.1 自上而下的设计方法
3.绘制下层电路原理图
设计好顶层原理图后就可以进行子功能模块的具体实现了,此时可以在文件夹管理界面中直接创建与方块图中名称一致的原理图文件,然后进行设计,也可以直接从顶层原理图中生成下层模块文件。
选择Design →Create Sheet from Symbol菜单命令,如图7.29所示。
此时光标变为十字形,在需要创建文件的模块的方块图区域单击鼠标左键,如图7.30所示,此时会弹出如图7.31所示的对话框,提示用户是否反转接口输入输出类型,用鼠标左键单击Yes 按钮,即可生成以方块图中设置的名称为文件名的原理图文件。
在生成的原理图文件中自动绘制了与顶层原理图中相对应I/O端口(见图7.32) ,在这里进行该模块的具体电路设计,最后将需要与其他模块进行交互的输入输出量接到这些I/O端口上,即可实现与其他模块对应接口的电气连接。
1.设计思路
设计流程如图7.38所示。
2.上层电路原理图的设计
仍以上一节中的Step Motor Driver为例,比如现在已经绘制好了各个模块的电路原理图,上层电路的设计可以采用如下步骤进行。
(1)创建上层原理图文件,将其扩展名改为.prj ,表示这是一个项目文档,这里以“Stepper Motor Driver.prj ”命名。
(2)打开该文件
7.3.2 自下而上的设计方法
(3) 选择Design →Create Symbol From Sheet菜单命令,如图7.39所示。此时会弹出如图7.40所示的对话框,选择一个模块原理图文件,这里选择第一个Motor Controller.sch文件,用鼠标左键单击OK 按钮。
(4) 这时会弹出如图7.41所示的反转接口输入输出类型的确认窗口,用鼠标左键单击Yes 按钮。
(5) 在原理图中就会出现如图7.42所示的放置方块图的状态,通过单击鼠标左键确认放置,就可以将由模块原理图文件生成的方块图放置到上层原理图中了,如图7.43所示。在这里可以根据需要调整方块图的大小以及其中接口的位置等属性。
(6) 重复以上步骤3~5的操作,将所有用到的模块都生成方块图,放置到上层原理图中来,即可得到如图7.44所示的原理图。
(7) 根据电路功能将各个模块的对应接口相连,即可完成整个原理图的绘制。此时需要对整体原理图进行电气规则检查,并对各部分的原理图进行必要的修改。
7.4 管理层次电路图
7.4.1 层次电路图的结构
由图7.44可以看出,层次电路图在文档管理器中也是分层次显示的,最顶层原理图显示为根文件,其左边有一个“+”号,用鼠标左键单击即可察看属于该原理图的下层原理图文件,在这里可以很清楚地看到整个电路设计的结构,同时也可以进行不同电路图之间的切换。
7.4.2 不同层次电路图之间的切换
在主工具栏上有一个按钮,对应于选择Tools →Up/Down Hierarchy菜单命令,即是用于在不同层次电路图之间进行切换的。用鼠标左键单击该按钮,即进入选择切换状态,此时光标变为十字形,如图7.45所示,在需要进行切换的方块图上单击鼠标左键,即可进入到该方块图所对应的文档中,如图7.46所示。