5单片机系统的调试
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5 系统的调试
系统调试包括硬件调试和软件调试。硬件调试的任务是排除系统的硬件电路故障,包括设计性错误和工艺性故障。软件调试是利用开发工具进行在线仿真调试,除发现和解决程序错误和工艺性故障。软件调试是利用开发工具进行在线仿真调试,除发现和解决程序错误外,也可以发现硬件故障。
5.1 硬件调试
单片机应用系统的硬件调试和软件调试是分不开的,许多硬件故障是在调试软件时发现的,但通常是先排除系统中明显的硬件故障后,在和软件结合起来调试。
(1)常见的硬件故障逻辑错误。样机硬件的逻辑错误是由于设计错误或加工过程中的工艺性错误所造成的,包括错线、开路和短路等几种,其中短路是最常见的故障。
元器件失效。元器件失效的原因有两个方面:一是器件本身已经损坏或性能不符合要求;二是由于组装错误造成元器件失效,如电解电容、二极管的极性错误或集成块安装方向错误等。
可靠性差。引起系统不可靠的因数很多,如接插件接触不良会造成系统时好时坏,内部和外部的干扰、电源纹波系数过大或器件负载过大等造成逻辑电平不稳定,另外走线和布局不合理等也会引起系统的可靠差。
电源故障。若样机中存在电源故障,则加电后将造成器件损坏。电源故障包括电压值不符合设计要求、电源引出线和插座不对应、电源功率不足和负载能力
(2)硬件调试方法
脱机调试。脱机调试是在样机加电之前,先用万用表等工具,根据硬件电气原理图和装配图,仔细检查样机线路的正确性,并核对元器件的符号、规格和安
装是否符合要求。特别注意电源的走线,防止电源之间的短路和极性错误。重点
检查系统的总线或其他信号线之间是否存在相互的短路。样机所用的电源,事先必须单独调试后才能加到系统中。在不插芯片的情况下,加电检查各插件上引脚的电位,仔细测量各点电位是否正常,尤其应注意单片机插座上的各点电位是否
正常
联机调试。通过脱机调试可排除一些明显得硬件故障,有些硬件故障需要通过联机调试才能发现和排除。通电后,执行读写指令,对用户样机的存储器、I/O 端口进行读写和逻辑检查等操作,用示波器等设备观察波形(如输出波形、读/ 写控制信号、地址数据波形和有关控制电平),通过对波形的观察分析,发现和排除故障。
5.2 软件调试
软件调试方法与选用的软件结构和程序设计技术有关, 如果采用模块程序设计技术, 则逐个模块调好后再进行系统程序总调试。如果采用实时多任务操作系统, 一般是逐个任务进行调试。
对于模块结构程序.要一个个子程序分别调试。调试子程序时, 一定要符合入口条件和出口条件, 调试手段可用单步运行和断点运行方式, 通过检查用者系统的CPU现场情况、RAM的内容和I /O 口的状态,检测程序执行结果是否符合设计要求。通过检测,可以发现程序中的死循环错误、机器码错误和转移地址的错误。同时, 还可以发现用户系统中存在的硬件故障、软件算法和硬件设计错误,在调试过程中不断调整用户系统的软件和硬件,完成每个程序模块的调试。
每个程序模块通过后, 可以把相关功能块连在一起进行总调。这个阶段若有故障, 可以考虑各子程序运行时是否破坏了现场, 缓冲单元、工作寄存器是否发生冲突, 标志位的建立和清除是否有误, 堆栈区是否有溢出, 输入设备的状态是否正常等等, 若用者系统是在开发机的监控程序下运行时, 还要考虑用户缓冲单元是否和监控程序的工作单元发生冲突。
单步运行只能验证程序正确与否,而不能确定定时精度、CPU的实时响应等问题,所以单步和断点调试后, 还应进行连续调试。除了观察稳定性之外,还要观察用户系统的操作是否符合原始设计要求,以及安排的用户操作是否合理等,必要时还要做适当修正。
系统联调是指让用户系统的软件在其硬件上实际运行,进行软、硬件联合调试,从中发现硬件故障或软、硬件设计错误。
系统联调时,首先采用单步、断点、连续运行方式调试与硬件相关的各程序段既可以检验这些用户程序段的正确性,又可以在各功能独立的情况下检验软、硬件的
配合情况。然后,将软、硬件按系统工作要求进行综合运行,采用全速断点、连续运行方式进行总调试,以解决在系统总体运行的情况下软、硬件的协调与提高系统动态性能。在具体操作中,用户系统在开发系统环境下,先借用仿真器、存储器等资源进行工作。若发现问题,按上述方法准确定位错误,分析错误原因,找出解决方法。
实时多任务操作系统的调试方法与上述方法类似, 只是需逐个任务进行调试在调试某一个任务时, 同时也调试相关的子程序、中断服务程序。各个任务调试好后, 再使各个任务同时运行。如果操作系统中没有错误,一般情况下系统就能正常运转。
5.3 系统联调
系统联调是指让用户系统的软件在其硬件上实际运行,进行软、硬件联合调试,从中发现硬件故障或软、硬件设计错误。这是对用户系统检验的重要一关。
系统联调是主要解决以下问题:(1)软、硬件能否按预定要求配合工作,如果不能,那么问题出在哪里?如何解决?
(2)系统运行中是否有潜在的设计时难以预料的错误,如硬件延时过长造成工作时序不符合要求、布线不合理造成有信号串扰等。
(3)系统的动态性能指标(包括精度、速度参数)是否满足设计要求。
系统联调时,首先采用单步、断点、连续运行方式调试与硬件相关的各程序段既可以检验这些用户程序段的正确性,又可以在各功能独立的情况下,检验软、硬件的配合情况。然后,将软、硬件按系统工作要求进行综合运行,采用全速断点、连续运行方式进行总调试,以解决在系统总体运行的情况下软、硬件的协调与提高系统动态性能。在具体操作中,用户系统在开发系统环境下,先借用仿真器的CPU存储器等资源进行工作。若发现问题,按上述软、硬件调试方法准确定位错误,分析错误原因,找出解决办法。用户系统调试完成后,将用户程序固化到用户系统的程序存储器中,再借用仿真器CPU使用户系统运行。若无问题,则用户系统插上单片机即可正确工作(注意,不要忘记用户系统时钟、复位电路
的调试)