单片机复位电路异同

第一部分       

硬件复位:顾名思义通过硬件给系统一个复位,比如在电路板上设计一复位电路,通 过按下按键就可以给系统实现一个复位,而无论系统在执行什么样的程序

      复位启动以后需要重新加载加载FPGA、DSP等,也有可能在这个操作之前初始化化CPU,加载系统文件等操作,具体视需要而定,然后初始化一些配置芯片。

      硬件复位的作用区域一般是全局的。

软件复位:是通过软件给系统一个复位信号,如低电平或许是高电平(具体看系统设置)来实现复位操作

       复位启动不需要进行FPGA、DSP等的加载,只是一些配置芯片的初始化

       软件复位一般是一些块结构。

上电复位:系统在上电的瞬间就执行复位操作, 上电复位里面包括硬件复位和软复位的操作,硬件复位和软复位是从上电复位里面的某点开始的启动操作

      复位需要初始化CPU系统,包括CPU和内存等,并加载系统,加载初始化操作系统以及FPGA、配置芯片的初始化,是一个完成的过程。

第二部分     

   软件复位方法:

     1)用看门狗的复位方法;            

    (watchingtimer看门狗防止程序发生死循环,或者说程序跑飞), 但不是所有的单片机都有看门狗的功能。

      2)自己程序控制的复位方法(本文方法,叫软件复位)

    实现方法:

    1)首先声明一个函数指针,指向复位后要开始执行指令的位置:
    void (*app_start)(void) = 0x0000;
          可以根据具体微处理器复位后的位置,修改后边的地址。

     2)之后,在自己的程序中想复位的地方调用app_start(); 也就是跳到0x0000位置执行指令。

     3)可以根据不同微处理器复位的地址,修改上边的地址(0x0000)。实现上你可以跳到任何位置执行,或调用函数执行。

     硬件和软件复位流程图

     

第三部分     

  复位电路设计:

       复位电路有的CPU内置, 有的需要外接。 外接的情况下, 低成本的是 RC 复位电路, 不计成本的是专用的复位芯片, 可以将所有电路上需要统一时序的IC的复位都接在一起,这样不会导致上电时序的滞后问题, 很多软件都会出现这种现象而出现BUG。

猜你喜欢

转载自blog.csdn.net/CSDN4646/article/details/81201402