
<详细说明单元间复位顺序、Watchdog设计、复位单元加载顺序。如果提供局部及全局分级复位请说明其层次关系。需要给出图示和文字解释。给出单板复位、断电重启的流程图。并粗略估计各流程所需的时间。需要结合故障管理方案,考虑在故障情况下的复位重启要求> <复位重启时间指系统从运行状态,经历系统复位,重新恢复进入正常运行态的时间。复位类型通常包括:软件复位、硬件复位。主要考虑单板的软、硬件复位。复位一般包括基本的底层启动、自检、配置等。通常复位时间应在5min内。断电重启时间 指系统从运行状态,经历断电/通电,重新恢复进入正常运行态的时间。应考虑系统断电和单板断电重启,重启一般包括:基本的底层启动、自检、配置;系统通常重启时间在0.5小时之内。单板通常重启时间在10min之内。> 1、电源、复位、时钟之间的时序要求 , f3 P8 I# r- N6 t![]() ![]() 很多芯片都有上电时序和下电时序的要求。 1、有些芯片不仅有电源之间的时序关系,还会有电源、复位、时钟之间的耦合关系。曾经本人经历过一个案例,某款CPU要求,解复位之前,所有的时钟必须稳定达到一定的时间之后,才能够解复位。当时的现象就是USB有时能用,有时不能用。通过调整时序满足器件的要求之后,USB接口变得稳定工作。 2、如果只有一个供电复杂的芯片,设计电路的时候还是比较简单,遵守芯片的时序要求,就可以进行设计了。 但是实际情况会比较复杂,第一多个芯片会共用电源;第二电路板上会有多个复杂时序需求的芯片,例如我们之前设计一个电路板上面有FPGA+多核DSP+多核PPC。每个芯片电源种类复杂,时序要求也复杂,相同的电压需求时,我们会采用一个电源给多个新品供电。 这是电源时序的设计相对会复杂很多,我们需要把电源的需求、时序的需求分析清楚之后,仔细设计电源树,并且核查电源之间的时序关系。并且最终要结合复位、时钟一起核查是不是都满足各个芯片的需求了。 具体设计的过程中,可能需要运用一些MOSFET和三极管设计一些控制电路,实现我们具体的需求。 2、复位的设计 ![]() 关于芯片的复位类型 C6678复位包括四种类型 1、 上电复位 2、 硬复位 3、 软复位 4、 CPU局部复位 ![]() 电路板复位机制分类(3种软复位1种硬复位) 4种复位机制:reboot、BSP_ResetBoard、BSP_PowerOff、硬件狗 1) BSP_ResetBoard 由底层软件BSP实现,实现机制是下拉CPU管脚复位CPU(软复位)。 2) reboot,OS系统默认实现机制是指令跳转,重新引导系统。但目前BSP通过注册钩子接管了reboot的复位行为,接管后的复位机制与BSP_ResetBoard一样,也是下拉CPU管脚(软复位)。 3) BSP_PowerOff 底层软件BSP实现,实现机制是下拉电源管脚复位硬件系统(掉电复位)。 4) 硬件狗,复位机制由硬件实现,由软件定时喂狗来保活软件系统的正常运行,复位类型为CPU复位(软复位)。 可靠复位机制(软件复位和硬件狗复位的双重保护+设计关键点:记录复位原因前,首先停止喂狗) 上述4种复位机制中,reboot、BSP_ResetBoard、BSP_PowerOff是由软件实现的,因此存在机制失效的风险,硬件狗为硬件实现可以确保系统的复位。但是硬件狗复位无法通过软件主动记录复位定位信息,因此软件复位机制也是必要的。为了既能够主动记录完善的复位定位信息又能够确保复位的真正执行,设计采用下述双层复位机制。 可靠复位机制 上述设计的一个关键点是:在记录复位原因之前,首先要停止喂狗,如果在记录复位原因或者软件复位接口出现问题没有复位成功,至少可以确保系统在延迟一段时间后看门狗复位。 ![]() 复位设计的时候,电路和软件设计不但需要支持各种机制的复位方式,同时需要支持复位原因的记录。需要在主动复位之前,先发送一个不可屏蔽中断让CPU做一些复位前的准备工作,同时让CPU做一些内容记录作为电路板复位或者下电前的临终遗言。 p, ~. m3 P6 ^* K/ F, t: q ![]() 文章出处: 硬件十万个为什么 |