单片机应用系统的抗干扰具体可分为软件和硬件两方面,其中,软件抗干扰以其设计灵活、节省硬件资源、降低成本等优势越来越得到广泛采用。软件抗干扰技术主要有“指令冗余技术”、“软件陷阱技术”、“软件看门狗技术”、“数字滤波技术”等。本文就软件陷阱技术对单片机应用系统抗干扰的原理与具体实现方法进行探讨和研究,给出实现软件陷阱技术的两种形式,并将该技术成功地使用在多个实际的单片机应用系统中,保证系统的可靠运行。1、 程序跑飞和软件陷阱技术概述程序正常运行时,程序计数器PC始终指向正在执行的这条指令的下一条指令的第一个字节的程序存储器单元地址,这样就保证了单片机能够正确地读取每一条指令的各个字节,即CPU先读取操作码,再读取操作数(如果有操作数字节的话)。在MCS-51系列单片机中,程序计数器PC的寻址范围是0000H~FFFFH,共64 KB。用户应用程序中,根据系统要求,规定了程序运行的惟一路径。这体现在系统上电后,程序计数器PC有唯一的变化历程,保证了程序正常、有序地运行。程序跑飞是指系统受到某种干扰后,程序计数器PC的值偏离了给定的唯一变化历程,导致程序运行偏离正常的运行路径。程序跑飞因素及后果往往是不可预计的。在很多情况下,程序跑飞后系统会进入死循环而导致死机。这时,应采取有效措施引导跑飞的程序尽快退出死循环并迅速复位。实践证明,软件陷阱技术能有效引导跑飞的程序尽快退出死循环并迅速复位。2、 两种软件陷阱技术的比较分析当单片机应用系统的CPU受到干扰时,不良影响的主要形式有:① 非正常修改程序计数器PC指针;② 改写可编程输出端口的状态;③ 非正常修改重要数据区的数据。以上三个方面的不良影响会使单片机应用系统程序失控,控制状态失灵,其后果是非常严重的,它甚至会使系统崩溃,造成严重的工业事故。以上几个方面的不良影响可以使用软件陷阱技术加以解决。现将这一技术的实现方法归纳总结为两种。2.1 软件陷阱技术实现形式之一单片机应用系统的用户应用程序一般由循环结构的主程序和中断服务子程序组成,主程序的结构如图1所示。将下面的软件陷阱程序段插入到用户应用程序中(如何插入的问题将在下面的第3点中详细讨论),即在用户应用程序存储器不用区域写入代码“OO00020000H”。NOP NOP LJMP O000H当单片机应用系统工作正常时,单片机的CPU不会执行软件陷阱程序段;但是,当单片机应用系统受到干扰而程序跑飞后,由于程序计数器PC值错误,破坏了正常的指令格式,导致执行非正常指令,从而执行软件陷阱程序段,落入软件陷阱,将跑飞的程序引导到复位入口地址0000H。
文档内容节选
两种软件陷阱技术的比较 作者:欧伟明 吴文君 引言: 单片机应用系统的抗干扰具体可分为软件和硬件两方面,其中,软件抗干扰以其设计灵 活节省硬件资源降低成本等优势越来越得到广泛采用软件抗干扰技术主要有指令冗 余技术软件陷阱技术软件看门狗技术数字滤波技术等本文就软件陷 阱技术对单片机应用系统抗干扰的原理与具体实现方法进行探讨和研究,给出实现软件陷阱 技术的两种形式,并将该技术成功地使用在多个实际的单片机应用系统中,保证系统的可靠 运行 1 程序跑飞和软件陷阱技术概述 程序正常运行时,程序计数器 PC 始终指向正在执行的这条指令的下一条指令的第一个 字节的程序存储器单元地址,这样就保证了单片机能够正确地读取每一条指令的各个字节, 即 CPU 先读取操作码,再读取操作数如果有操作数字节的话在 MCS51 系列单片机中, 程序计数器 PC 的寻址范围是 0000HFFFFH,共 64 KB用户应用程序中,根据系统要求,规 定了程序运行的惟一路径这体现在系统上电后,程序计数器 PC 有唯一的变化历程,保证 了程序正常有序地运行程序跑飞是指系统受到某种干扰后,程序计数器 PC 的值偏离......