第8章单片机应用系统设计与开发【学习目标】掌握单片机应用系统设计与开发的方法、步骤、技巧了解单片机仿真系统的种类、功能掌握设计单片机应用系统的基本思路灵活掌握常用外围电路以及传感器的设计和使用技术掌握单片机应用系统软、硬件的设计、调试方法了解单片机应用系统抗干扰的方法、措施【引例】在工业自动化控制及生产、生活过程中,我们为了测量物体或环境温度,可以应用单片机技术和新型半导体感温元件热敏电阻制成数字式热敏电阻温度计。还有在工业过程控制及某些仪器设备中,常常要用到步进电机。其精度高,且具有快速起/停能力,可对位移量、旋转角度和转动速度等进行高精度控制。例如:在仪器仪表、机床设备以及计算机的外围设备(如打印机和绘图仪等)中,常有对可控制精度的回转源的需要,在这种情况下使用步进电机最为理想。再有就是繁华街道两旁或广场周围的各种各样霓虹灯闪烁控制,变幻出五颜六色、形状各异的造型。另外还有电子时钟、广场上的音乐喷泉等等。这些都是单片机应用系统设计、开发实例。在这些应用系统中是如何完成系统硬件设计和软件设计的呢?硬件设计包括哪些方面?软件设计包括哪些方面?应用系统设计、开发的一般步骤、方法、原则有哪些?这些都是在单片机应用系统设计、开发过程中要面临的,也是本章内容所要解决的问题。在本章中通过对数字式热敏电阻温度计、步进电机控制和电子时钟设计这三个单片机应用系统开发实例来具体说明单片机设计、开发的相关内容。【正文】目前,MCS-51系列单片机以其独特的优越性,在智能仪表、工业测控、数据采集、计算机通信等各个领域得到了极为广泛的应用。可以说,单片机的应用已经渗透到人类生活、工作的每一个角落,这说明它和我们每一个人的工作、生活都密切相关。由于单片机的应用领域广泛,且技术要求各不相同,因此,应用系统的硬件与软件设计均不同,但它们的总体设计方法和研制步骤却基本相同。本章针对大多数应用场合,简要介绍单片机应用系统的一般开发、设计方法及其开发工具。8.1单片机应用系统的设计过程所谓应用系统,就是利用单片机为某应用目的所设计的专门的单片机系统(在调试过程中通常称作“目标系统”)。与一般的计算机系统一样,单片机的应用系统也是由硬件和软件两部分构成。硬件部分指单片机、扩展的存储器、外围器件及输入/输出设备等硬件设备组成的系统;软件部分是指各种工作程序的总称。硬件和软件只有密切配合,协调一致,才能构成高性能的单片机应用系统。在系统的研制过程中,软、硬件的功能总是在不断地调整,以相互适应,相互配合,达到最佳性价比。硬件设计和软件设计不能截然分开,硬件设计时应考虑软件设计方法,而软件设计时应了解硬件的工作原理,在整个设计过程中相互协调,以利于提高工作效率。单片机应用系统的设计过程包括总体设计、硬件设计、软件设计、在线调试、产品化等几个阶段,但它们不是绝对分开的,有时是交叉进行的。图8.1描述了单片机应用系统设计的一般过程。单片机应用系统设计主要包括以下几方面内容。1.应用系统总体方案设计。包括系统的要求,应用方案的选择,以及工艺参数的测量范围等。2.选择各参数检测元件及变送器。3.建立数学模型及确定控制算法。4.选择单片机,并决定是自行设计还是购买成套设备。5.系统硬件设计,包括接口电路、逻辑电路及操作面板。6.系统软件设计,包括管理、监控程序以及应用程序的设计。7.系统的调试与实验。图8.1单片机应用系统设计的一般过程8.1.1总体设计确定单片机应用系统总体方案,是进行系统设计最重要、最关键的一步,总体方案的好坏,直接影响整个应用系统的投资、调节品质及实施细则。1.确定功能技术指标如同任何新产品的设计一样,单片机应用系统的设计是从确定目标任务开始的。在着手进行系统设计之前,必须根据系统的应用场合、工作环境、具体用途提出合理的、详尽的功能技术指标,这是系统设计的依据和出发点,也是决定产品前途的关键。所以必须认真做好这个工作。不管是老产品的改造还是新产品的设计,应对产品的可靠性、通用性、可维护性、先进性及成本等进行综合的考虑,参考国内外同类产品的有关资料,使确定的技术指标合理而且符合有关标准。2.机型选择选择单片机机型的出发点有以下几个方面。(1)市场货源系统设计者只能在市场上能提供的单片机中选择,特别是作为产品生产的应用系统,所选机型必须有稳定、充足的货源。(2)单片机性能应根据系统的要求和各种单片机的性能,选择最容易实现产品技术指标的机型,而且能达到较高的性能价格比。单片机的性能包括片内的资源、扩展能力、运算速度、可靠性等几个方面。(3)研制周期在设计任务重、时间紧的情况下,还需要考虑对所选择的机型是否熟悉,是否能马上着手进行系统的设计。与研制周期有关的另一个重要因素是单片机的开发工具,性能优良的开发工具,能加快系统设计的速度,考虑能否得到性能价格比很高的开发工具。3.器件选择除了单片机以外,系统中还可能需要传感器、模拟电路、输入/输出电路、存储器以及键盘、显示器等器件和设备,这些部件的选择应符合系统的精度、速度和可靠性等方面要求。在总体设计阶段,应对市场情况有个大体的了解,对器件的选择提出具体规定。4.硬件和软件的功能划分系统硬件的配置和软件的设计是紧密联系在一起的,而且在某些场合,硬件和软件具有一定的互换性。有些硬件电路的功能可用软件来实现,反之亦然。例如:系统日历时钟的产生可以使用时钟电路(如5832芯片),也可以由定时器中断服务程序来控制时钟计数。多用硬件完成一些功能,可以提高工作速度,减少软件设计的工作量,但增加了硬件成本;若用软件代替某些硬件的功能,可以节省硬件开支,但增加了软件的复杂性。由于软件是一次性投资,因此在一般情况下,如果所研制的产品生产批量比较大,则能够用软件实现的功能都由软件来完成,以便简化硬件结构、降低生产成本。在总体设计时,必须权衡利弊,仔细划分好硬件和软件的功能。8.1.2硬件设计一个单片机应用系统的硬件设计包括两大部分内容:一是单片机系统的扩展部分设计,它包括存储器扩展和接口扩展;二是各功能模块的设计。如信号测量功能模块、信号控制功能模块、人机对话功能模块、通信功能模块等,根据系统功能要求配置相应的A/D、D/A、键盘、显示器、打印机等外围设备。在进行应用系统的硬件设计时,首要问题是确定电路的总体方案,并需要进行详细的技术论证。所谓硬件电路的总体设计,即是为实现该项目全部功能所需要的所有硬件的电气连线原理图。初次接触这方面工作的设计人员,往往急于求成,在设计总体方案上不愿花时间,过于仓促地开始制板和调试。这种方法不仅不妥当,而且常常得不偿失。因为就硬件系统来讲,电路的各部分都是紧密相关、互相协调的,任何一部分电路的考虑不充分,都会给其他部分带来难以预料的影响,轻则使系统整体结构受破坏,重则导致硬件总体大返工,由此造成的后果是可想而知的。因此,希望设计者不要吝啬在硬件总体方案上花的时间。从时间上看,硬件设计的绝大部分工作量往往是在最初方案的设计阶段,一个好的设计方案常常会有事半功倍的效果。一旦硬件总体方案确定下来,下一步工作就能很顺利进行,即使需要做部分修改,也只是在此基础上进行一些完善工作,不会造成整体返工。在进行硬件的总体方案设计时,所涉及到的具体电路可借鉴他人在这方面进行的工作。因为经过别人调试和实验过的电路往往具有一定的合理性(尽管这些电路常与书籍或手册上提供的电路不完全一致,但这也可能正是经验所在)。如果在此基础上,结合自己的设计目的进行一些修改,则是一种简便、快捷的做法。当然,有些电路还需自己设计,完全照搬是不太可能的。在参考别人的电路时,需对其工作原理有较透彻的分析和理解,根据其工作机理了解其适用范围,从而确定其移植的可能性和需要修改的地方。对于有些关键和尚不完全理解的电路,需要仔细分析,在设计之前先进行试验,以确定这部分电路的正确性和需要,并在可靠性和精度等方面进行试验,尤其是模拟电路部分,更需要进行这方面的工作。为使硬件设计尽可能合理,根据经验,系统的电路设计应注意以下几个方面。1.尽可能选择标准化、模块化的典型电路,提高设计的成功率和结构的灵活性。2.在条件允许的情况下,尽可能选用功能强、集成度高的电路或芯片。因为采用这种器件可能代替某一部分电路,不仅元件数量、接插件和相互连线减少,体积减小,使系统可靠性增加,而且成本往往比用多个元件实现的电路要低。3.注意选择通用性强、市场货源充足的器件,尤其对需大批量生产的场合,更应注意这方面的问题。其优点是:一旦某种元器件无法获得,也能用其他元器件直接替换或对电路稍作改动后用其他器件代替。4.在对硬件系统总体结构考虑时,同样要注意通用性的问题。对于一个较复杂的系统,设计者常常希望将其模块化,即对中央控制单元,输入接口、输出接口、人机接口等分块进行设计,然后采用一定的连接方式将其组合成一个完整的系统。在这种情况下,连接方式就显得非常重要,有时可选用通用接口方式,因为对于这些总线结构的连接目前应用比较广泛,不少厂家已开发出适合于这些总线结构的接口板,如输入板、输出板、A/D板等。在必要的情况下,选用现成的模板作为系统的一部分,尽管成本有些偏高,但会大大缩短研制周期,提高工作效率。当然,在有些特殊情况和小系统的场合,用户必须自行设计接口,定义连线方式。此时要注意接口协议,一旦接口方式确定下来,各个模块的设计都应遵守该接口方式。5.系统的扩展及各功能模块的设计在满足应用系统功能要求的基础上,应适当留有余地,以备将来修改、扩展之需。实际上,电路设计一次成功而不做任何修改的情况是很少的,如果在设计之初未留有任何余地,后期很可能因为一点小小的改动或扩展而被迫进行全面返工。举例来说,在进行ROM扩展时,尽量选用2764以上的芯片,这样不仅将来升级方便,成本也会降低;在进行RAM扩展时,为使系统升级或增加内存方便,系统的RAM空间应留足位置,哪怕多设计一个RAM插座,不插芯片也好;在进行I/O接口扩展时,也应给出一定的余量,这样对临时增加一些测量通道或被控对象就极为方便了。另外在电路板设计时,可适当安排一些机动布线区,在此区域中安排若干集成芯片插座和金属化孔,但不布线,这样在样机研制过程中,若发现硬件电路有不足之处,需增加元器件时,可在机动布线区临时连线完成,从而避免整个系统返工。在进行模拟信号处理电路设计时,尤其要注意这一点。因为在调试这类电路时,经常会增加一些电容、电阻等元器件。当然,一旦试验完成,制作电路板时,可以去掉机动布线区。6.设计时应尽可能多做些调研,采用最新的技术。因为电子技术发展迅速,器件更新换代很快,市场上不断推出性能更优、功能更强的芯片,只有时刻注意这方面的发展动态,采用新技术、新工艺,才能使产品具有最先进的性能,不落后于时代发展的潮流。7.在电路设计时,要充分考虑应用系统各部分的驱动能力。一些经验欠缺者往往忽视电路的驱动能力及时序问题,认为原理上可行就行了,其实不然。因为不同的电路有不同的驱动能力,对后级系统的输入阻抗要求也不一样。如果阻抗匹配不当,系统驱动能力不够,将导致系统工作不可靠甚至无法工作。值得注意的是,这种不可靠很难通过一般的测试手段确定,而排除这种故障往往需要对系统做较大地调整。因此,在电路设计时,要注意增加系统驱动能力或减少系统的功耗。8.工艺设计,包括机箱、面板、配线、接插件等,这也是一个实际进行系统设计人员容易疏忽但又十分重要的问题。在设计时要充分考虑到安装、调试、维修的方便。9.系统的抗干扰设计。这个问题在硬件设计中也是十分重要的。根据系统的复杂程度,MCS-51应用系统有3种典型结构。(1)最小应用系统。(2)小规模扩展系统:只扩展少量的RAM和I/O接口,地址在00H~0FFH之间。(3)大规模扩展系统:需要扩展较大量的ROM、RAM和I/O接口,连接多片扩展芯片。硬件和软件是单片机控制系统的两个重要方面,硬件是基础,软件是关键,但两者又是可以相互转化的。硬件设计时,应考虑留有充分余量,电路设计力求正确无误,因为在系统调试中不易修改硬件结构。硬件设计的任务是根据总体