微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > 硬件电路设计讨论 > 转贴 设计前的准备工作

转贴 设计前的准备工作

时间:10-02 整理:3721RD 点击:
研制者接到某项任务后,在进行具体设计之前,一般需先进行下列工作:?
1、可行性调研?
  可行性调研的目的,是分析完成这个项目的可能性。进行这方面的工作,可参考国内外有关资料,看是否有人进行过类似的工作。如果有,则可分析他人是如何进行这方面工作的,有什么优点和缺点,有什么是值得借鉴的;如果没有,则需作进一步的调研,此时的重点应放在能否实现这个环节,首先从理论上进行分析,探讨实现的可能性 ,所要求的客观条件是否具备 ( 如环境、测试手段、仪器设计、资金等 ) ,然后结合实际情况,再决定能否立项的问题。?

2、系统总体方案设计?
  在进行可行性调研后,如果可以立项,下一步工作就是系统总体方案的设计。工作的重点应放在该项目的技术难度上,此时可参考这一方面更详细、更具体的资料,根据系统的不同部分和要实现的功能,参考国内外同类产品的性能,提出合理而可行的技术指标,编写出设计任务书,从而完成系统总体方案设计。?
3、设计方案细化,确定软硬件功能?
  一旦总体方案决定下来,下一步的工作就是将该项目细化,即需明确哪些部分用硬件来完成 ,哪些部分用软件来完成。由于硬件结构与软件方案会相互影响,因此,从简化电路结构、降低成本、减少故障率、提高系统的灵活性与通用性方面考虑,提倡软件能实现的功能尽可能由软件来完成;但也应考虑以软件代硬件的实质是以降低系统实时性、增加处理进行为代价的,而且软件设计费用、研制周期也将增加,因此系统的软、硬件功能分配应根据系统的要求及实际情况而合理安排,统一考虑。在确定软硬件功能的基础上,设计者的工作就开始涉及到一毓的具体问题,如仪器的体积及与具体技术指标相对应的硬件实现方案,软件的总体规划等。在确定人员分工、安排工作进度、规定接口参数后,就必须考虑硬件、软件的具体设计问题了。?
  在讨论具体设计问题这前,这里还要强调一下,对于一个具体应用系统的设计,上面这几部分工作是必不可少的,否则,可能导致设计方案的整体更改,甚至可能导致方案无法实现造成人力、物力的浪费。这一点,对于设计得来讲,应加倍注意。?
  一个单片机应用系统的硬件设计包括两大部分内容:一是单片机系统的扩展部分设计。它包括存储器扩展和和接口扩展。存储器的扩展指 EPROM 、 eeprom 和 RAM 的扩展,接口扩展是指 8255 、 8155 、 8279 以及其它功能器件的扩展。二是各功能模块的设计。如信号测量功能模块、信号控制功能模块、人机对话功能模块、通诚讯功能模块等,根据系统功能要求配置相应的 A/D 、 D/A 、键盘、显示器、打印机等外围设备。?
  在进行应用系统的硬件设计时,首要问题是确定电路的总体方案,并需进行详细的技术论证。所谓硬件电路的总体设计,即是为实现该项目全部基本功能所需要的所有硬件的电气连线原理图。初次接触这方面工作的设计人员,往往急于求在设计总体方案上不愿花更多的时间,过于他促地开始制版和调试。这种方法不仅不妥当,而且往往是得不偿失效。因为就硬件系统来讲,电路的各部分都是紧密相关、互相协调的,任何一部分电路的考虑不充分,都会给其它部分带来难以预料的影响,轻则使系统整体结构受破坏,重则导致硬件总体大返工,由此造成的手果是可想而知的。所以,我们希望设计者不要吝啬在总体方案上所花时间。从时间上看,硬件设计的绝大部分工作量往往在最初方案的设计阶段,一个好的设计方案往往会有事半功倍的效果。一旦总体方案确定下来,下一步的工作就会很顺利进行,即使需要作部分修改,也只是在此基础上进行一些完善工作,而不会造成整体返工。?
  在进行硬件的总体方案设计时,所涉及到的具体电路可借鉴他人在这方面进行的工作。因为经过别人调试和考验过的电路往往具有一定的合理性 ( 尽管这些电路常与教科书和手册上提供的电路不完全一致,但这也可能正是经验所在 ) 。如果在此基础上,结合自己的设计目的进行一些修改,则是一种简便、快捷的做法。当然,有些电路还需要自己设计,完全照搬是不太可能的。?在参考别人的电路时,需对其工作原理有较透彻的分析和理解,根据其工作机理了解其适用范围,从而确定其移植的可能性和需要修改的地方;对于有些关键性和尚不完全理解的电路,需要仔细分析,在设计之前先进行试验,以确定这部分电路的正确性,并在可靠性和精度等方面进行考验,尤其是模拟电路部分,更需进行这方面的工作。?
为使硬件设计尽可能合理,根据经验,系统的电路设计应注意以下几个方面:?
  1 、尽可能选择标准化、模块化的典型电路,提高设计的成功率和结构的灵活性;?
  2 、在条件允许的情况下,尽可能选用功能强、集成度高的电路或芯片。因为采用这种器件可能代替某一部分电路,不仅元件数量、接插件和相互连线减少,使系统可靠性增加,而且成本往往比用多个元件实现的电路要低。?
  3 、注意选择通用性强、市场货源充足的元器件,尤其对需大批量生产的场合,更应注意这方面的问题。其优点是:一旦某种元器件无法获得,也能用其它元器件直接替换或对电路稍作改动后用其它器件代替。?
  4 、在对硬件系统总体结构考虑时,同样要注意通用性的问题。对于一个较复杂的系统,设计者往往希望将其模块化,即对中曲控制单元、输入接口、输出接口、人机接口等分块进行设计,然后采用一定的边接方式将其组合成一个完整的系统。在这种情况下,连接方式就显得非常重要,有时可选用通用接口方式,如采用 STD 总线结构、 PC 总线结构、 GPIB 总线结构等。因为对于这些总线结构的边接目前应用比较广泛,不少厂家已开发出适合于这些总线结构的接口板,如输入板、输出板、 A/D 板等。在必要的情况下,选用现成的模块板作为系统的一部分,尽管成本有些偏高,但会大大缩短研制周期,提高工作效率。当然,在有些特殊情况和小系统的场合,用户必须自行设计接口,定义连线方式。此时要注意接口协议,一旦接口方式确定下来,各个模块的设计者应遵守该接口方式。?
  5 、系统的扩展及各功能模块的设计在满足应用系统功能要求的基础上,应适当留有余地,以备将来修改、扩展之需。实际上,电路设计一次成功而不作任何修改的情况是很少的,如果在设计之初未留有任何余地,后期很可能因为一点小小的改动或扩展而被迫进行全面返工。举例来说,在进行 ROM 扩展时,尽量选用 2764 以上的芯片,这样不仅将来升级方便,成本也会降低;在进行 RAM 扩展时,为使系统升级或增加内存方便,系统的 RAM 空间应留足位置,哪怕多设计一个 RAM 插座,不插芯片好;在进行 IO 口扩展时,也应给出一定的余量,这样对临时增加一些测量通道或被控对象就极为方便了。辑外在电路板设计时,可适当安排一些机动布线区,在此区域中安排若干集成芯片插座和金属化孔,但不布线,这样的样机研制过程中,若发现硬件电路有不足之处,需增加元器件时,可在机动布线区临时连线来完成,从而避免整个系统返工。在进行模拟信号处理电路设计时,尤其要注意这一点。因为在设计这类电路时,经常会增加一些电容、电阻等元器件。当然,一旦试验完成,制作正式电路板时,可以去掉机动布线区。?
  6 、设计时应尽可能地作些调研,采用最新的技术。因为电子技术发展迅速,器件更新换代很快,市场上不断推出性能更优、功能更强的芯片,只有时刻注意这方面的发展动态,采用新技术、新工艺,才能使产品具有最先进的性能,不落后于时代发展的潮流。?
  7 、在电路设计时,要充分考虑应用系统各部分的驱动能力。一些经验欠缺者往往忽视电路的驱动能力及时序问题,认为原理上通就行了,其实不然。因为不同的电路有不同的驱动能力,对后级系统的输入阻抗要求也不一样。如果阻抗匹配不当,系统驱动能力不够,将导致系统工作不可靠甚至无法工作。值得注意的是,这种不可靠很难通过一般的测试手段来确定而排除这种故障往往需要对系统作较大的调整。因此,在电路设计时,要注意增加系统的驱动能力或减少系统的功耗。?
  8 、工艺设计,包括机箱、面板、配线、接插件等,这也是一个初次进行系统设计人员容易疏忽但又十分重要的问题。在设计时要充分考虑到安装、调试、维修的方便。
  由于应用系统种类繁多,程序编制者风格不一,因此应用软件因系统而异,因人而异。尽管如此,作为优秀的系统软件还是有其共同特点及其规律的。设计人员在进行程序设计时应从以下几个方面加以考虑:?
  1 、根据软件功能要求,将系统软件分成若干个相对独立的部分。根据它们之间的联系和时间上的关系,设计出合理的软件总体结构,使其清晰、简捷、流程合理。?
  2 、培养结构化程序设计风格,各功能程序实行模块化、子程序化。既便于调试、连接,又便于移植、修改。?
  3 、建立正确的数学模型。即根据功能要求,描述出各个输入和输出变量之间的数学关系,它是关系到系统性能好坏的重要因素。?
  4 、为提高软件设计的总体效率,以简明、直观的方法对任务进行描述,在编写应用软件之前,应绘制出程序流程图。这不仅是程序设计的一个重要组成部分,而且是决定成败的关键部分。从某种意义上讲,多花一份时间来设计程序流程图,就可以节约几倍源程序编辑调试时间。?
  5 、要合理分配系统资源,包括 ROM 、 RAM 、定时器 / 计数器、中断源等。其中最关键的是片内 RAM 分配。对 8031 来讲,片内 RAM 指 00H ~ 7FH 单元,这 128 个字节的功能不完全相同,分配时应充分发挥其特长,做到物尽其用。例如在工作寄存器的 8 个单元中, R0 和 R1 具有指针功能,是编程的重要角色,避免作为它用; 20H ~ 2FH 这 16 个字节具有位寻址功能,用来存放各种标志位、逻辑变量、状态变量等;设置堆栈区时应事先估算出子程序和中断嵌套的级数及程序中栈操作指令使用情况,其大小应留有余量。若系统中扩展了 RAM 存储器,应把使用频率最高的数据缓冲器安排在片内 RAM 中,以提高处理速度。当 RAM 资源规划好后,应列出一张 RAM 资源详细分配表,以备编程查用方便。
  6 、注意在程序的有关位置处写上功能注释,提高程序的可读性。?
  7 、加强软件抗干扰设计,它是提高计算机应用系统可靠性的有力措施。?
  通过编辑软件编辑出的源程序,必须用编译程序汇编后生成目标代码。如果源程序有语法错误则返回编辑过程,修改源文件后再继续编译,直到无语法错误为止。这之后就是利用目标码进行程序调试了,在运行中发现设计上的错误再重新修改源程序,如此反复直到成功。

谢谢分享 感觉概念更明晰了一些

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top