单片机应用系统是硬件电路和软件编程相结合的系统。调试就是验证硬件电路设计和软件编程是否正确的过程,因此调试包括硬件调试和软件调试。硬件调试的任务是排除单片机系统中的电路故障,包括设计错误和工艺性故障。软件调试的任务是排除程序缺陷及错误,并发现硬件故障。
单片机应用系统的硬件调试和软件调试是分不开的,许多硬件故障是在调试软件时才发现的,但一般情况下是先排除系统中明显的硬件故障后才和软件结合起来调试。
1.常见的硬件故障
(1)逻辑错误。
硬件的逻辑错误是由于设计错误和加工过程中的工艺性错误所造成的。这类错误包括开路、短路、错线等情况,其中短路是最常见的故障。在印刷电路板布线密度高的情况下,极易因工艺原因造成短路。
(2)器件失效。
造成元器件失效的原因有两个:一是由于组装错误造成的元器件失效,如电解电容、二极管极性错误、集成块安装方向错误等;二是元器件本身已损坏或性能不符合要求。
(3)可靠性差。
引起系统不可靠的因素很多,如内外部的干扰、电源纹波系数过大、器件负载过大、插件接触不良等;另外布局和走线不合理也会引起系统可靠性变差。
(4)电源故障。
电源故障包括电压值不符合设计要求、电源功率不足、负载能力差等,若存在电源故障,则加电后将造成器件损坏。
2.硬件调试方法
(1)脱机调试。
脱机调试是在样机加电之前,先用万用表等工具,根据硬件电气原理图和装配图仔细检查样机线路的正确性,并核对元器件的型号、规格和安装是否符合要求。应特别注意电源的走线,防止电源之间的短路和极性错误,并重点检查扩展系统总线是否存在相互间的短路或其它信号线的短路。
对于样机所用的电源事先必须单独调试,调试好后,检查其电压值、负载能力、极性等均符合要求后才能加到系统上。在不插片子的情况下,加电检查各插件上引脚的电位,仔细测量各点电位是否正常,尤其应注意单片机插座上的各点电位是否正常,若有高压,联机时将会损坏开发机。
(2)联机调试。(www.xing528.com)
通过脱机调试可排除一些明显的硬件故障。有些硬件故障还是要通过联机调试才能发现和排除。
联机前先断电,把开发系统的仿真插头插到样机的单片机插座上,检查一下开发机与样机之间的电源、接地是否良好。一切正常后才可打开电源。
通电后开发机执行读写指令,对用户样机的存储器、I/O端口进行读写操作、逻辑检查,如有故障,可用样机的存储器、I/O端口进行读写操作、逻辑检查,如有故障,可用示波器观察波形(如输出波形、读写控制信号)。通过对波形的观察分析,寻找故障原因,并进一步排除故障。可能的故障有线路连接上的逻辑错误、有短路或断路现象、集成电路失效等。
在用户系统的样机(主机部分)调试好后,可以插上用户系统的其它外围部件(如键盘、显示器、输出驱动板等),再对这些部件进行初步调试。在调试中若发现用户系统工作不稳定,可能有以下原因:
①用户系统主机板负载过大。
②电源系统供电电流不够,联机时公共地线接触不良。
③用户系统各级电源滤波不完善等。
对于工作不稳定的问题一定要认真查出原因,加以排除。
3.软件调试方法
软件调试与所选用的软件结构和程序设计技术有关。如果采用模块程序设计技术,则逐个模块调试好以后,再进行系统程序总调试。如果采用实时多任务操作系统,一般是逐个任务进行调试。
对于模块结构程序,要一个个子程序分别调试。调试子程序时,一定要符合现场环境,即入口条件和出口条件。调试时可采用单步运行方式和断点运行方式,通过检查用户系统CPU的现场、RAM的内容和I/O口的状态,检查程序执行结果是否符合设计要求。通过检测可发现程序中的死循环、转移地址错误等,同时也可以发现用户系统中的硬件故障、软件算法及硬件设计错误。在调试过程中不断调整用户系统的软件和硬件,逐步通过一个个程序模块。
各程序模块通过后,可以把各功能模块联合起来一起进行整体程序综合调试。在这个阶段若发生故障,可以考虑各子程序在运行时是否破坏现场、堆栈区域是否溢出、输入设备的状态是否正常等。若用户系统是在开发系统的监控程序下运行时,还要考虑用户缓冲单元是否和监控程序的工作单元发生冲突。
单步和断点调试后,还应进行连续调试,这是因为单步运行只能验证程序的正确与否,而不能确定定时精度、CPU的实时响应等问题。待全部完成后,应反复运行多次,除了观察稳定性之外,还要观察用户系统的操作是否符合原始设计要求、安排的用户操作是否合理等,必要时还需做适当修正。
在全部调试和修改完成后,将用户软件固化到EPROM中,插入用户样机后,用户系统就能脱离开发机独立工作,至此系统研制完成。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。