早期的PC机,其CPU(8086)处理能力和8051相称,却能处理相称繁芜的任务。单片机的能力的关键就在软件设计者编写的软件上。只有充分地理解到单片机的能力,才不会做出“冗余”的系统设计。而采取许多的外围芯片来实现单片性能实现的功能。这样做,即增加了系统本钱,也可能会降落了系统的可靠性。
2. 利用看门狗
看门狗电路常日是一块在有规律的韶光间隔中进行更新的硬件。更新一样平常由单片机来完成,如果在一定间隔内没能更新看门狗,那看门狗将产生复位旗子暗记,重新复位单片机。更新看门狗的详细形式多是给看门狗芯片干系引脚供应一个电平上升沿或读写它的某个寄存器。利用看门狗电路将在单片机发生故障进行去世机状态时,重新复位单片机。

当前有多种看门狗的芯片,如MAXIM 公司的MAX802,MAX813等。而且,有好多种单片机中本身就集成有看门狗。一个外部的看门狗是最好的,由于它不依赖于单片机。如果可能的话,看门狗更新程序不应该放在中断或是子程序中,原则上该当放在主程序中。
我曾经见过一个工程师,他所调试的程序在运行时偶而会引起看门狗的复位动作,于是他干脆在每10ms就中断一次的时钟中断程序中清看门狗。我相信他也知道使看门狗失落去浸染,可他却没有不是去查明引起这个征象的真正缘故原由。因此,我想提醒大家:不论什么情由,绝对不要忽略系统故障的真正缘故原由。高质量的产品来自于高本色的工程师,高质量的产品造就高本色的工程师。
3. 确定系统复位旗子暗记的可靠性
这是一个很随意马虎忽略的问题。当你在设计单片机系统时,你脑中有这个观点吗?什么样的复位旗子暗记才是可靠的吗?你用示波器查看过你设计的产品的复位旗子暗记吗?不稳定的复位旗子暗记可能会产生什么样的后果?你有没有创造过你所设计的单片机系统,每次重新上电启动后,数据变得乱七八糟,并且每一次征象并不相同,找不出规律,或者有时候干脆不运行,或者有时候进入一种去世机状态,有时候又一点事都没有正常运行?在这种情形下,你该当查一下你的系统的复位旗子暗记。
玩转嵌入式
@玩转嵌入式
视频号
一样平常在单片机的数据手册(Datasheet)中都会提到该单片机须要的复位旗子暗记的哀求。一样平常复位旗子暗记的宽度应为。复位电平的宽度和幅度都应知足芯片的哀求,并且哀求保持稳定。还有特殊主要的一点便是复位电平应与电源上电在同一时候发生,即芯片一上电,复位旗子暗记就已产生。不然,由于没有经由复位,单片机中的寄存器的值为随机值,上电时就会按PC寄存器中的随机内容开始运行程序,这样很随意马虎进行误操作或进入去世机状态。
4. 确定系统初始旗子暗记的有效性
系统程序开始应延时一段韶光。这是很多单片机程序设计中的常用方法,为什么呢?由于系统中的芯片以及器件从上电开始到正常事情的状态每每有一段韶光,程序开始时延时一段韶光,是让系统中所有器件到达正常事情状态。究竟延时多少才算得当?这取决于系统的各芯片中到达正常事情状态的韶光,常日以最慢的为准。
一样平常来说,延时20-100毫秒已经足够。对付系统中利用嵌入式MODEM等“慢热”型的器件来说,则应更长。当然,这都须要在系统实际运行中进行调度。
5. 上电时对系统进行检测
上电时对系统中进行检测是单片机程序中的一个良好设计。在硬件设计时也该当细细考虑将各个利用到的芯片、接口设计成随意马虎利用软件进行测试的模式。很多有履历的单片机设计者都会在系统上电时(特殊是第一次上电时)进行全面的检测,或者更进一步,将系统的运行状态等分为测试模式和正常运行模式,通过加入测试模式对系统进行详细的检测,使得系统的批量检测更为方便随意马虎。其余要把稳的是,一个大略明了的故障显示界面也是颇要费得心思的。
比如:系统的外部RAM(数据存储器)是单片机系统中常用的器件。外部RAM如果存在问题,程序常日都会成为一匹脱缰的野马。因此,程序在启动时(至少在第一次上电启动时)一定要对外部RAM进行检测。
检测内容包括:
1)检测RAM 中的单元。这紧张通过写入和读出的数据保持同等。
2)检测单片机与RAM 之间的地址数据总线。总线即没有相互短路,也没有连接到“地”上。
其余,很多芯片,都供应了测试的方法。如串行通信芯片UART,都带环路测试的功能。
6. 按EMC测试哀求设计硬件
EMC 测试哀求已经成为产品的必需。
7. 尽可能利用小端模式编译
比拟起Large模式和Compact 模式,Small 模式能天生更为紧凑的代码。在Small 模式下,C51 编译器将没有利用关键词,如idata、pdata、xdata分外声明的变量通通放在data单元中。在编程中,对付在的数据区,可以指定放在外部存储器中。