第13章应用系统的设计与调试本章学习目标:本章介绍了单片机的选型及应用系统的设计过程。通过一个综合实例,完整地介绍了89C51与外围电路的硬件接口及软件设计。通过对本章的学习,应达到以下目标:能熟悉单片机系统设计的基本要求及研发过程学会正确选择单片机的型号能看懂设计实例,并尝试对具体课题进行总体设计一、单片机系统设计的基本要求1.可靠性要高●应选用可靠性高的元器件,以防止器件的损坏影响系统的可靠运行;●选用典型电路,排除电路的不稳定因素;●采用必要的冗余设计或增加系统的故障自检测和自处理功能;●采取必要的抗干扰措施,以防止环境干扰。2.操作维修要方便●系统结构要规范化、模块化;●系统的控制开关不能太多,不能太复杂;●操作顺序简单明了,操作功能简明直观;●易于查找故障和排除故障。3.性能价格比要高优化系统设计,简化外围硬件电路,或采用硬件软化技术提高系统的性能价格比。4.具有自我保护意识应考虑软件具有加密功能,使固化到单片机内的用户程序不能被非法读出或复制。9.2.2单片机的选型原则(1)单片机的系统适应性所谓系统适应性是指能否用这个单片机完成对应用系统的控制任务。主要考虑以下几点:●是否有所需的I/O端口数●是否有所需的中断源及定时器●是否有所需的外围端口部件●是否有合适的计算处理能力●是否有足够的极限性能Q:单片机的选购(2)单片机的可开发性开发环境包括汇编程序、编译、连接程序。调试工具包括在线仿真器、逻辑分析工具、调试监控程序。在线BBS服务包括实时执行、应用案例、缺陷故障报告、实用软件、样本源码。应用支持包括是否存在专职的应用支持机构?是否存在应用工程师及销售人员的支持?支持人员的学识水平如何?是否有便利的通信工具,是否及时得到支持?(3)制造商历史及可购买性●产品的性价比以及是否可靠?●购买途径是否顺畅?●供货量是否充足稳定?●是否停产?●是否在改进之中?总结依据上述三个原则进行单片机的选型,应可以选择出最能适用于具体应用系统的单片机,同时可以保证应用系统具有高可靠性、高性价比、高使用寿命及可升级换代性。Q:抗干扰技术所谓干扰,一般是指有用信号以外的噪声,在信号输入、传输和输出过程中出现的一些有害的电气变化现象。这些变化迫使信号的传输值、指示值或输出值出现误差,出现假像。干扰对电路的影响,轻则降低信号的质量,影响系统的稳定性;重则破坏电路的正常功能,造成逻辑关系混乱,控制失灵。供电系统及过程通道的抗干扰措施在印制电路板设计中体现的抗干扰措施软件陷阱及看门狗电路(1)供电系统及过程通道的抗干扰措施供电系统的干扰电源开关的通断、电机和大的用电设备的启停会使供电电网发生波动,受这些因素的影响,电网上常常出现几百伏、甚至几千伏的尖峰脉冲干扰,这就会使同一电网供电的单片机控制系统无法正常运行。这种干扰是危害最严重也是最广泛的一种干扰形式。抗干扰措施:单片机输入电源与强电设备动力电源分开。采用具有静电屏蔽和抗电磁干扰的隔离电源变压器。交流进线端加低通滤波器,可滤掉高频干扰。安装时外壳要加屏蔽并使其良好接地,滤波器的输入、输出引线必须相互隔离,以防止感应和辐射耦合。直流输出部分采用大容量电解电容进行平滑滤波。对于功率不大的小型或微型计算机系统,为了抑制电网电压起伏的影响,可设置交流稳压器。采用独立功能块单独供电,并用集成稳压块实现两级稳压尽量提高接口器件的电源电压,提高接口的抗干扰能力。例如用光耦合器输出端驱动直流继电器,选用直流24V继电器比6V继电器效果好。过程通道的干扰过程通道是系统输入、输出以及单片机之间进行信息传输的路径。由于输入输出对象与单片机之间的连接线长,容易串入干扰。必须采用隔离技术、双绞线传输、阻抗匹配等措施抑制。在开关量输入时:采集某一状态信号时,可多次重复采集,直到连续两次或多次采集结果完全一致时才可视为有效。在开关量输出时:重复输出同一数据,只要有可能,重复周期应尽量短。外部设备接收到一个被干扰的错误信息后,还来不及作出有效的反映,一个正确的输出信息又到来,就可以及时地防止错误动作的产生。空间电磁波的干扰《单片机应用系统电磁干扰与抗干扰技术》北京航空航天大学出版社王幸之王雷钟爱琴王闪(2)在印制电路板设计中体现的抗干扰措施•印制电路板大小要适中•噪声元件与非噪声元件要离得远一些。易产生噪声的器件、小电流电路、大电流电路等应尽量远离计算机逻辑电路,如有可能,应另做电路板。•I/O驱动器件、功率放大器件尽量靠近印制电路板的边缘、靠近引出接插件。•器件的布置上也应考虑到散热。最好把ROM、RAM、时钟发生器等发热较多的器件布置在印制板的偏上方部位(当印制板竖直安装时)或易通风散热的地方•正确处理电源线根据印制线路板电流的大小,尽量加粗电源线宽度,减少环路电阻。同时,使电源线、地线的走向和数据传递的方向一致。电源线和地线最好分别设计在不同的版面上,以防杂物引起短路。•正确处理地线(3)软件陷阱及看门狗电路所谓软件陷阱,是指一些可以使混乱的程序恢复正常运行或使“跑飞“的程序恢复到初始状态的—系列指令NOPNOPLJMPERP适用范围①双字节指令和3字节指令之后②0003H~0030H地址未使用的中断区③跳转指令及子程序调用和返回指令之后④程序段之间的未用区域⑤数据表格及散转表格的最后⑥每隔一些指令(一般为十几条指令)后软件陷阱当未使用的中断因干扰而开放时,在对应的中断服务程序中设置软件陷阱,就能及时捕捉到错误的中断。未使用的中断区ORG0000HSTART:LJMPMAINORG0003HLJMPINT0_PRG;转中断服务子程序NOP;抗干扰处理NOPLJMPERR;转错误处理子程序ORG000BHLJMPT0_PRG;转T0中断服务子程序NOP;抗干扰处理NOPLJMPERR;转错误处理子程序单片机系统中使用的EPROM很少能够全部用完,这些非程序区可用0000020030或020030填满(假设ERP安排在0030开始的地方)。当程序“跑飞”进入此区后,便会迅速自动入轨。未使用的EPROM空间单片机系统寻址空间为64K。如果系统仅选用了一片2764,其地址空间为8K,那么还有56K地址空间闲置。当程序“跑飞”到这些空间时,读入数据将为FFH,这是“MOVR7,A”指令的机器码,此代码的执行将修改R7中的内容。因此,可采用图所示电路来避免。图中74LS08为四二与门,当PC落入2000H~FFFFH这段闲置空间时,定有为高电平。当执行取指令操作时,为低电平,从而引起中断,在中断服务程序中设置软件陷阱可将“跑飞”的程序迅速拉入正轨。非EPROM芯片空间由于程序是采用模块化的设计方法,因此,程序也是以模块方式运行的。此时可以将陷阱指令组分散放置在用户程序各模块之间空余的单元里。一般每1K字节有几个陷阱就够了。在正常程序中不执行这些陷阱指令,保证用户程序正常运行;但当程序“跑飞”时,一旦落入这些陷阱区,马上就可将“跑飞”的程序拉到正确轨道。运行程序区设用户主程序运行区间为add1~add2,且定时器T0产生10ms定时中断;当程序“跑飞”落入add1~add2以外的区间,此时又发生了定时中断,则可在中断服务程序中判定中断断点地址addx是否在add1~add2之间,若不在则说明发生了程序“跑飞”,应使程序返回到复位入口地址0000H,使跑飞程序纳入正轨。中断服务程序区看门狗程序运行监视系统又称“看门狗”(WATCHDOG)。“看门狗”可以用硬件电路实现,也可采用软件技术通过内部定时/计数器实现。目前,大多数单片机片内都集成有程序运行监视系统。在MAX706内部有一个定时器,它独立工作于单片机之外。若单片机正常工作,每隔一段时间就通过P1.1向“看门狗”输出一个脉冲,使“看门狗”电路复位,“看门狗”从0开始重新计数。但当单片机由于干扰等原因不能正常向“看门狗”电路输出复位脉冲时,如果“看门狗”的定时时间已到,MAX706的端就会输出一个脉冲给单片机,使单片机复位,使其从故障状态恢复正常。硬件“看门狗”软件“看门狗”基本思路是:在主程序中对定时器T0中断服务程序进行监视;在定时器T1中断服务程序中对主程序进行监视;定时器T0中断监视定时器T1中断。对T0设定一定的定时时间,当产生定时中断的时候对一个变量进行赋值,而这个变量在主程序运行的开始已经有了一个初值,在这里我们要设定的定时值要小于主程序的运行时间,这样在主程序的尾部对变量的值进行判断,如果值发生了预期的变化,就说明T0中断正常,如果没有发生变化则使程序复位。对于T1我们用来监控主程序的运行,我们给T1设定一定的定时时间,在主程序中对其进行复位,如果不能在一定的时间里对其进行复位,T1的定时中断就会使单片机复位。在这里T1的定时时间要设的大于主程序的运行时间,给主程序留有一定的的裕量。而T1的中断正常与否我们再由T0定时中断子程序来监视。任何单片机应用系统都由硬件和软件两大部分组成。1.硬件组成硬件由单片机、存储器、若干I/O接口及外围设备等组成二、单片机应用系统的组成整个系统的核心部件,能运行程序和处理数据。用于存储单片机程序(程序存储器)及数据(数据存储器)。I/O接口是单片机与外部被控对象的信息交换通道。包括以下几部分:数字量(频率、脉冲等)I/O接口开关量(继电器开关、无触点开关、电磁阀等)I/O接口模拟量I/O接口(A/D或D/A转换电路)通用外部设备是进行人—机对话的联系纽带。包括以下几部分:●键盘用于输入数据及修改系统参数等。●显示器用于显示控制系统工作状态及各种被测参数。●打印机用于打印各种待分析及处理的数据或图表。检测与执行机构检测单元用于将各种被测参数转变成电量信号,供计算机处理。一般采用传感器实现。执行机构用于驱动外部被控对象,一般有电动、气动和液压等驱动方式。2.软件组成软件主要由应用软件和开发软件两大类构成。(1)应用软件是由软件设计者提供的、针对不同单片机控制系统功能所编写的软件,专门用于对整个单片机系统的管理和控制。(2)开发软件是指在开发、调试控制系统时使用的软件,如汇编程序、编译程序、调试和仿真程序、固化程序等。开始用户需求分析及方案调研确定功能指标选机型,划分软硬件系统扩展方案设计外围电路、接口电路方案设计系统硬件电路设计硬件电路检查按功能确定软件模块软件结构设计模块化软件编制汇编硬件系统诊断测试软件硬件合格?模块化软件调试模块化软件合格?软件修改所有模块化软件均调试完?NYYNNY接开发装置三、应用系统的研制开发过程1.确定总体设计方案所有模块化软件链接运行调试程序合格?软件修改程序固化到EPROM脱机运行完成设计NY(1)硬件设计①任务:根据总体设计要求,设计系统的硬件电路原理图,并初步设计印制电路板等。②主要内容:单片机系统扩展(如存储器扩展、I/O接口扩展、中断系统扩展等);系统配置(如键盘、显示器、打印机、A/D或D/A转换等)③单片机系统扩展及配置应遵循的原则:●尽量选用典型通用的电路;●系统扩展及配置应留有余地,以便于今后的系统扩充;●硬件结构应结合软件考虑,尽可能用软件代替硬件,简化硬件结构;●应选用性能匹配且功耗低的器件;●适当考虑CPU的总线驱动能力;●注意可靠性及抗干扰设计。(2)软件设计①系统定义定义各输入/输出端口地址及工作方式,分配主程序、中断程序、表格、堆栈等存储空间;②软件结构设计常用的程序设计方法有模块化程序设计、自顶向下逐步求精程序设计、结构化程序设计三种。③建立数学模型用于描述各输入变量和输出变量之间的数学关系并确定算法。④绘制程序流程图根据系统功能、操作过程、软件结构及算法进行绘制。⑤编写程序依据流程图选择适合的语言来编写主程序及各功能模块程序。⑥汇编与调试将编写好的用户程序汇编成机器码,并利用仿真器进行调试和修改。开始系统定义软件结构设计建立数学模型绘制程序流程图编写程序汇编在线仿真调试程序有错?修改程序固化到EPROM结束YN硬件调试是利用开发系统、基本测试仪器(万用表、示波器等),通过执行开发系统有关命令或测试程序,检查用户系统硬