微机应用系统设计V.ppt
1.系统设计的原则与步骤,1.1 微机应用系统的一般构成 微机应用系统由硬件系统(计算机+控制电路)和软件系统(系统软件+应用软件)两大部分构成。1、应用系统的硬件组成 微机应用系统的硬件的一般构成框图。由图1可以看到,应用系统由如下几大部分组成。,1)微机 微机是整个应用系统的核心,其他所有设备都要在它的控制和管理下进行工作,因此称它为主机。在系统控制或监测过程中,主机能自动接收被控或被测对象送来的各种信息。在微机内,按人们事先安排好的程序,对这些信息进行加工运算、判别及分析,并做出相应的处理和控制决策,以信息形式再回送给被控或被测的对象,从而实现对被控或被测对象的自动控制与管理。微机中的程序和有关的初始数据是人们事先编排好的。在操作前,通过输入设备将其输入或事前固化在ROM中。一旦系统被引导启动,微机就会按顺序取出一条条所存贮的指令执行。而系统就会按人们预先设想的规律,一步一步地完成整个系统的控制和监测过程。应用系统中的微机可以由前面提到的8088或其他CPU构成,也可以由单板机、单片机等构成。,图1 微机应用系统硬件的一般组成,2)常规外围设备(1)输入设备:主要用于程序和数据的输入,常见的有纸带阅读机、键盘、鼠标器和光笔等。(2)输出设备:主要用于程序处理后的信息或数据的输出。它把处理过的各种信息和数据,以人们能够直观接受的外形(如字符、数字、图形)提供给操作人员,以便操作人员能及时了解微机内部及整个应用系统的工作情况。常见的输出设备有打印机、X-Y记录仪和显示器等。(3)外存贮器:主要用来存贮程序及有关的数据,如磁带机、磁盘(硬盘和软盘)、光盘等。,3)外部接口设备 外部接口设备是应用系统与被控或被测对象之间进行信息变换和信息传递的设备。它包括输入接口和输出接口。接口设备通常应具备以下功能:(1)数据通道:它能为微机提供一个输入/输出数据的通道。(2)信息格式的匹配与变换:接口应具备输入/输出信息,实现信息格式的匹配与变换功能,如A/D、D/A转换,串并、并串转换及其他信息格式的转换等。(3)输入/输出电平匹配:微机的输入/输出电平往往是TTL电平,而被控对象所要求的输入/输出电平的规格较多,为此,接口应具备电平转换功能。,(4)负载匹配:微机的输出负载能力是比较小的,为了使系统能够控制大功率的被控对象,接口也应具备驱动和功率放大的能力。(5)同步:微机的工作速度是比较高的,而一般受控对象所要求的控制速率却较低。这样,为了使微机的工作速度和外界受控对象所要求的控制速度相匹配,就要由接口设备的同步机构来实现内、外部系统的速度同步。尽管对微机接口设备要求较多,但并不是每种接口都具备上述所有功能。接口要求功能的多少往往视接口连接的对象而定。目前各器件生产厂家都生产了配套的输入/输出接口芯片,因此使接口设计变得比较容易,通常只要做少量的硬件工作就可以将微机与被控或被测对象连接起来。,4)操作控制台及监视报警设备 微机应用系统在正常工作时,并不需要人直接参与。但是无论如何,必须使人机保持密切的联系。这是因为系统在运行过程中,操作人员需要对运行状态进行监视和了解,在系统发生故障时,必须能自动报警,尔后,操作人员通过控制台上的按键干预。另外,当需要修改控制程序和控制参数时,同样也要通过控制台上的键盘或按键对系统的工作进行干预。根据上述要求,操作控制台应包含控制按键、面板显示和报警显示器等。在某些系统中,为了调试和工作方便,在控制台上还装有手动转换装置,以便在人工方式时,对被控对象进行操纵。,2、应用系统的软件构成 要使微机应用系统能正常工作,就必须在微机内存中存放一定的程序。系统管理需要程序,对某些对象进行控制和监测也需要程序。可以这么说,微机应用系统的硬件是系统的躯体,而软件(即各种程序和数据的集合)是整个系统的灵魂。不同的控制对象和不同的控制任务,在系统软件构成上会有很大区别。一般来说,只有系统硬件确定以后,才能完全确定如何配置系统的软件。但是,这并不意味着系统的软件构成是不可捉摸的。一般根据其功能,软件系统大体可以分成以下几个部分。,1)用户程序 在微机应用系统中,对每个控制对象或控制任务都一定配有相应的控制程序,这些程序用来完成对各被控对象的不同控制。例如,我们要控制一台机床,对构件进行切削加工,就必须配备一个切削加工程序。通常这种为了各种应用目的(控制、监测等)而编制的程序称为应用程序或用户程序。编写应用程序的工作一般都由用户自己开发完成。用户可以根据微机应用系统的资源配备情况,确定使用何种语言来编写用户程序,既可以用高级语言也可以用汇编语言。高级语言功能强,且比较近似于人们日常生活用语习惯,因此比较容易编写。而用汇编语言编写的程序则具有执行速度快、对硬件及端口操作灵活、占用存储器少的特点。目前,人们通常用高级语言和汇编语言混合编程的方法来编写用户程序。在微机应用系统中,用户程序是一个用于对被控对象进行直接控制的程序。因此,它将对控制对象产生决定性的影响,即用户程序的优劣,会给系统的精度、可靠性及工作效率带来致命的影响。,2)常用子程序库 一个微机应用系统的基本功能要受到硬件结构和系统拥有的资源的限制。例如,一般不能用硬件进行数制变换和数据采集等,而这样一些功能是应用系统要经常用到的。为此,我们采用子程序的方式来满足系统用户程序的要求。所谓子程序,就是将一些特定功能编成一个个专用程序段,放在子程序库中,系统需要使用时,可以随时调用。子程序库中的子程序都编成标准的形式,一般都要规定入口参数、入口地址、出口参数等。只要按其规定,即可在主程序中随意调用。,1.2 应用系统的设计原则和要求 微机应用系统的基本设计原则和要求,在不同规模和要求的系统中大体是相同的。因此,这些共同的原则和要求在设计前或设计过程中都必须予以很好的考虑。1.操作性能要好 微机应用系统的操作性能好,就是指系统的人机界面要友好,操作起来简单、方便,并且便于维护。为此,在设计整个系统的硬件和软件时,应处处为用户想到这一点。在设计系统软件时,就应该考虑配备什么样的软件和环境能降低操作人员对某些专业知识的要求。,2.通用性好,便于扩展 通常一个微机应用系统在工作时都能同时控制几台设备。但是,在大多数情况下,各个设备的控制要求往往是有差别的。另外,所控制的设备也不是一成不变的,而是要经常不断地进行更新。这样,就要求系统不仅能适应各种不同设备的要求,而且也要考虑在设备更新时,整个系统不需要做大的改动就能马上适应新的配置。因此,系统就需要有好的通用性,而且在必要时能灵活地进行扩展。微机应用系统要达到这样的要求,就必须尽可能地采用标准化设计。,3.可靠性高 对任何微机应用系统来说,尽管各种各样的要求很多,但可靠性是最突出和最重要的一个基本要求。因为,一个系统能否长时期安全可靠地正常工作,对一个工厂来说将要影响到整个装置、整个车间,乃至整个工厂的正常生产。一旦发生故障,就会造成整个生产过程的全面混乱甚至瘫痪,从而引起严重后果,所以对可靠性有很高的要求。特别是作为控制核心的微机,其可靠性要求则更高。,4.设计周期短、价格便宜 在研制微机应用系统时,应考虑的一个重要因素是设计周期短、价格便宜。目前科学技术发展十分迅速,各种新的技术和产品不断出现,这就要求所设计的微机应用系统能跟上形势的发展。如果研制周期太长,会使产品失去竞争能力和实用价值。所以,微机应用系统不能搞大而全,应考虑实际情况来确定系统的设计规模。这样既可以缩短设计周期又可以降低系统的设计费用。在进行系统设计时,要仔细核算以降低整个系统的成本,在保证功能和性能的前提下,低的价格才有竞争力。,5.对环境的适应性要好 在开发微机应用系统时,一定要考虑到其应用环境,保证在现场的环境下可靠地工作。例如,有的地方电源电压波动很大,有的地方环境温度变化剧烈,有的地方湿度很大,有的地方振动很厉害,而有的工作环境有粉尘、盐雾、腐蚀等等。这些外界因素在系统设计中必须加以考虑,采用必要的措施保证微机应用系统安全可靠地工作。,1.3 微机应用系统设计的基本内容和步骤 1.需求分析确定系统的功能 需求分析是在仔细了解用户需求的基础上进行的。因此,首先必须详细了解用户的需求。调查用户要利用微机应用系统实现的功能。例如,对于测量系统,应该了解要测量的参数是什么,采用什么传感器,信号大小与形式,放大器要求,测量精度,如何显示,如何输出结果等。对于控制系统,还要仔细调查用户的要求、工艺过程、控制精度等等。此外,在了解用户要求完成测控功能的同时,还必须认真了解未来微机应用系统的工作环境,包括电源的稳定性,干扰大小以及环境的温度、湿度等等。,总之,开发设计人员一定要非常认真仔细地进行需求调查,必须强调需求调查和分析是后续工作的依据,其后所做的一切都是以满足用户需求为目的的。针对用户的需求,仔细分析测控对象的工作过程,明确微机系统应如何去做,用时间和控制流图来描述这些工作过程。,2.选择基本微机系统硬件系统设计 在设计微机应用系统时,通常总是先选择一个最基本的微机系统,然后对它进行扩展,并配上相应的软件,从而形成一个实用的应用系统。由于微机是整个应用系统的核心,所以它的选择是否合适,将对整个系统产生决定性的影响。基本微机系统选择中应考虑的依据大致有以下四个方面。,1)微处理器的字长 微处理器的字长会直接对系统精度、指令多少、寻址能力、处理速度等产生影响,由此必然导致应用领域的不同。一般来说,微处理器的字长愈长,对数据处理愈有利,处理速度也可以进一步提高。但是,并不是字长愈长愈好,在选择时,应根据应用实际情况及性能价格比综合考虑。,2)微处理器的工作速度 微处理器的工作速度一般取决于系统的主频,目前常见的是几兆赫到上千兆赫。速度的选择应使其与被控对象的要求相适应或稍留一点余量,过高的要求会给系统的安装和调试带来不必要的困难。因为在高速工作时,引线之间的串扰及信号延时是非常令人头痛的问题。,3)系统结构对环境的适应性 不同的微机系统对环境的适应能力是不同的。例如,市面上出售的一般IBM-PC微机,通常只能适用于办公室或实验室这样的室内环境,如果将它用于工业控制环境就会产生诸多问题。在工业控制领域中,最好选用具有工业控制总线(STD总线)的工控机。因为它具有抗振、抗干扰等优良性能,能较好地适应工业领域的恶劣环境。,3.确定整个应用系统的硬件结构硬件系统设计 在基本微机系统选定以后,就可以根据被控对象的具体要求来确定系统的结构。1)通道划分及输入/输出方式的确定 根据被控对象所要求的输入/输出参数的数目,就可以确定整个系统应该有几个输出通道。当然,有的通道可以由几个被控设备共用,由硬件(或软件)来输入/选择切换。另外,根据被控对象要求,确定采用哪一种输入/输出方式更合适。一般说来,采用中断方式处理器效率较高,但硬件费用会稍高一些,而查询方式硬件价格较低,但处理器效率比较低,速度较慢。在一般小型的应用系统中,由于速度要求不高,控制的对象也较少,此时,大多采用查询方式。,2)内存分配 一般基本微机系统都对内存分配作了具体的规定。用户在使用已有的内存区时,应注意不要使用户程序占用微机系统的基本工作区。如果用户认为内存不够,需要进行扩展,那么应按说明书的要求,在空余的内存区进行扩展。根据需求分析,设计者可以估计出未来的系统大约要占多大的ROM用以存放用户程序和不变的数据,需要多少RAM用以存放经常要改变的数据。从而在留有一定余量的基础上,可以确定内存的大小。此后,根据系统设计方便,可以对选定的ROM和RAM分配内存地址。,3)确定接口和外设 除了专用外设,可以购买现成的设备。对于应用系统中所需的测控部件,如有合适的也尽量购买成品部件。若需自己设计开发,那就需要根据用户的要求仔细加以确定。例如,根据系统要求的精度,该选用多少位的A/D和D/A变换器,根据所需求的力矩大小决定选择什么样的步进电机等等。,4)选择电源 微机应用系统的故障多发点就包括电源部分。根据系统的硬件配置,可以粗略估计系统电源需要几组,各为多少伏,它们的容量是多少。同时,还要考虑对电源采用必要的可靠性措施,如滤波、稳压、防雷电、防浪涌等。,4.确定软件框架及流程软件系统设计 在硬件结构确定的基础上,考虑与之相配合的软件框架,确定软件的组成模块。例如,对于微机控制系统,主要应包括系统初始化模块、人机界面模块、参数采集模块、控制算法模块、控制信号输出模块、显示打印模块、出错及状态越限报警模块、自检诊断模块等等。根据用户的要求,将这些模块有机地联系在一起,形成粗略的系统软件流程图。同时,对软件的大致方案写出文字和流程图组成的文档。在硬件及软件方案确定之后,应对方案进行认真讨论,必要时邀请有关方面的专家对方案进行认真论证和审定,以确保方案的正确性。只有方案本身合理、正确,后面的工作才有意义。,5.硬件和软件的具体设计系统实现 1)硬件的具体设计(1)硬件规划:在硬件系统上合理地划分模块,即将硬件系统划分成若干相对独立的部件。例如,将复位信号产生、时钟、CPU及总线形成作为一个模块,将内存(ROM,RAM)作为一个模块,将接口分为几个模块,这些模块均可以采用电路板的形式实现。其他的如电源、各外设分别划分给专人负责完成设计或购置。,(2)各模块(电路板)的逻辑设计:选择具体的元器件、译码器等集成电路芯片,画出在方案中确定的总线之下的各电路原理图。在进行逻辑设计时,特别注意信号的有效性要求。例如,有的器件要求高电平(或低电平)有效,而有的要求上升沿有效或下降沿有效。其他如器件的工作电压,使用环境,驱动能力等各方面,在设计选择器件时也要仔细考虑。在进行电路的逻辑设计时,还必须仔细考虑将来电路板工作的可靠性,增加如滤波、限额控制等各种措施。同时,在进行具体设计时,就要考虑将来如何进行调试。,(3)电路板设计:现在有许多功能很强的CAD、PROTEL、EDA、PCAD等工具软件,为我们进行电路板设计创造了条件。在这些工具软件的支持下,可以很快地按电路板的尺寸大小设计出电路板的加工图。(4)加工电路板:目前国内可加工双面及多层电路板。在研制开发阶段,如果允许采用双面电路板,只要将加工图交给有关厂家就行了。甚至将逻辑图交给厂家,厂家就可以加工出合格的电路板。,(5)安装、调试:在加工好的电路板上安装元器件,并进行调试。调试单块电路板使其正常工作。(6)硬件各部件(各模块)进行联调:将构成微机应用系统的各模块,逐块连在一起进行调试,直到将所有部件全部连接在一起,并确信它们已基本正常工作。有关调试的问题,留待下一节说明。,2)软件的具体设计(1)划分模块:对于一个稍具规模的系统来说,常将软件划分成若干个相对独立的模块,分给多个软件开发人员同时研制,其目的就在于缩短研制时间。(2)确定各模块的详细要求:最基本的问题是系统的输入/输出问题,按照微机的被控对象确定哪些设备和器件应该在系统中以什么方式与主机进行信息传递。另外,最大的数据速率、平均速率、误差校验过程、输入/输出状态指示、字长、格式要求、时钟及选通脉冲等都是需要具体考虑的问题。,另一个重要问题是处理要求(或控制要求),我们必须确定对输入的数据进行怎样的处理及处理的顺序。对过程控制来说,往往工作顺序要求相当苛刻,什么时候发送数据,什么时候接收数据,对于一般硬件设备,都需要一定的时序关系,为保证微机与外部设备同步,通常要用锁存电路和定时选通电路来协调,程序长短及数据量多少都将决定内存容量和缓冲区的大小,这一切都与处理要求密切相关。剩下的一个问题是如何进行出错处理。为此,我们需要事先确定出错误处理方案,详细地列出各种错误图像以及显示错误的方法。出错处理最常用的办法是使系统重启动。概括而言,在程序开发之前要确定的问题是:输入/输出、时间限制、处理要求、精确度、内存容量、出错处理和各程序之间的关系等。,(3)确定程序设计方法:一旦与系统有关的问题已经确定,用户程序开发的下一步就是程序设计。在程序设计过程中,采用合理的程序设计结构是一个技术关键。一般程序设计采用下面几种技术:模块化设计:这种方法是把一个大程序分成若干个小的程序模块,对它们进行独立设计和编程,然后分别进行调试,最后把它们连接为一个大程序。模块是按功能加以划分的,这种划分的程序模块能够形成在以后工作中所要用到的程序库。模块化编程有许多明显优点,它缩短了查错和测试的程序长度,并且为其他程序提供了可以重复使用的基本程序。其缺点是:各模块连接时,参数传递费时并占用内存,另外,需要进行模块级和主程序级的两级调试。,自上至下的程序设计:这种方法是在程序设计时,先从系统一级的程序(主程序)开始设计,从属的程序或子程序用一些程序代号来表示。当主程序编好之后,再将各代号展开成从属的程序或子程序,最后完成整个系统程序的设计。这种设计的优点是设计、测试和连接同时按一条线索进行,所出问题可以较早地发现并解决。其测试能够完全按真实的系统环境进行,无须测试程序。它是将程序设计、手工编程和测试等几个步骤结合到一起的研制软件的方法。其缺点是这种设计方法不能充分发挥硬件在软件设计中的作用,其树形结构会使上一级错误对整个程序产生灾难性的影响。,结构程序设计:以标准的结构进行编程,就是结构程序设计。有三种逻辑简单的结构便于掌握,而且可以编出满足任何要求的程序。这三种结构是:线性结构、条件结构和循环结构。总之,在确定程序设计方法和采用合适的程序语言的基础上,可使程序的开发事半功倍。目前,在工业控制微机应用系统中,常采用高级语言与汇编语言混合编程的方法,这样可以充分发挥两种语言的优点,使编程方便且效率高。在很小的(单片机)系统中,也有只用汇编语言编程的,这种软件一般比较简单。,(4)编写代码:在确定了具体的程序设计方法之后,就可以编制用户程序了。编制用户程序可以用高级语言、汇编语言或两者混合使用。对于一个工业控制系统,由于资源有限,速度要求又较高,故实际用户程序的子功能多采用汇编程序完成,而主程序又多以C语言来设计。这样既利用了汇编语言速度快的特点以满足系统的速度要求,又利用了C语言功能强、实现容易的特点以提高程序质量。例如,用C语言可以很方便地编制出良好的用户界面,使操作者可以很快地掌握系统的使用方法。同时,在编程中,尤其是用汇编语言编程,由于是在指令级上进行的,因此,要特别注意细节,每一步都要小心谨慎,尽可能少出现错误。例如,用符号来表示地址、常数、标志等会带来方便,但尽可能不采用容易混淆的符号;应尽量使程序短小易懂;关键问题要加以注释。,(5)查错:即使是一个很熟练的程序员,在编写程序时,尤其是编写较大的程序时,都很难不出现错误。查错是解决这一问题的有效手段,同时它也是程序设计过程中所必须经过的一个步骤。对于一个微机应用系统来说,查错通常比较困难,这是因为微处理器的内部寄存器都在CPU内,程序执行时不能直接发现寄存器的内容,软件和硬件关系密切,程序执行过程有严格的定时关系,而且在实时应用中不能得到足够的数据等,这一切都增加了微机系统查错的困难。下面我们介绍几个常用的查错手段。,汇编(或编译)程序。利用汇编(MASM)程序,可以给出汇编语言源程序中的语法错误及其他明显的错误。同样,利用高级语言的编译程序也会给出一些语法方面的错误。但是,它们并不能找出程序中的逻辑错误。逻辑分析仪和在线仿真器。这两种测试仪器可以帮助我们查找软件及硬件的错误(故障)。,(6)测试:测试和查错是紧密相连的。测试的本质就是在一组特定的测试条件下,进行查错的后续步骤。测试方法和测试条件的选择关系到测试成功与否,在许多微处理机工业控制系统中,程序的实时输入很难控制和模拟,而且各部分联系都很紧密,因而选择合适的测试条件是件非常复杂的工作。有关测试手段和测试数据的选择在软件工程中学习,此处不再说明。在此特别说明,在软件开发中,无论是汇编语言还是高级语言,都可以用DEBUG(动态调试工具)进行查错和进行一般的测试。有了这个工具,将给软件及硬件开发带来一定的方便。,7.软、硬件联调系统调试 在硬件系统和软件系统分别进行设计并调试的基础上,将硬件和软件放到同一系统中进行联调,又称集成测试。在联调中往往是逐步进行的,逐个硬件模块和软件模块进入系统,使它们进入正常工作。如果某一模块有问题,则可集中注意力加以解决,直至整个系统通过测试。,8.实验室模拟运行离线仿真 将整个联调好的系统在实验室中模拟现场的运行,此步骤称为离线仿真。这时,可由人工输入模拟信号(电压),用仪表(例如万用表、示波器等)对输出进行指示,使系统连续运行。在实验室模拟运行过程中,设计人员必须仔细观察运行过程中的各种状态,对任何不正常情况必须仔细分析其原因。必要时,可人为地制造一些干扰,以便观察系统的可靠性,亦可将电源拉偏,观察系统的适应能力等等。,9.现场调试、试运行 将所研制的系统放到用户现场,接上用户的常规及专用外设,对专用外设进行逐一调试,使它们进入正常状态。然后,执行用户程序,由用户使用,完成用户提出的功能,使系统进入试运行状态。在试运行过程中,开发者与使用者需要密切配合,仔细观察并记录系统运行的状态。如发现问题,要认真分析,务求尽快解决。在试运行过程中,系统的设计开发人员要认真编写大量的文件、资料。例如,研制项目的背景、研制报告、技术报告、使用维护手册、软件资料、硬件图纸、标准化规范、用户使用报告等等。,10.验收或鉴定系统性能评估 在用户使用半年或更长时间之后,若用户和设计者均对系统的性能感到满意,即可组织验收或鉴定,使设计工作完结。否则,依据需要修改设计,重新开发。微机应用系统设计和开发步骤的简要流程如图12.3所示。,图 微机应用系统设计步骤示意图,