雪梨资讯

当前位置: 首页 >> 资讯 >> 就业目标

mcu复位维修PCIE复位方式

2024年05月11日 雪梨资讯

一.系统复位(Reset)

在PCIe Spec中,Reset总共分为两类:Conventional Reset和Function Level Reset.

1. Conventional Reset

从字面上来讲,Conventional Reset是传统的Reset方式。这一类Reset功能是在PCIe Spec 2.0之前的Spec中定义的,所以称为传统的Reset。PCIe设备必须要支持这一类Reset。

Convential Resets包含了三种Resets: Cold Reset,Warm Reset 和 Hot Reset.

另外,还有一个概念: Cold Reset和Warm Reset又被称为Fundamental Reset, Hot Reset被称为Non-Fundamental Reset.

什么是Fundamental Reset呢?

这是PCIe最基本的复位方式,主要通过硬件实现,效果是重置整个设备,对每个状态机、所有硬件逻辑、端口状态和配置寄存器重新初始化。

但是,也会有例外的情况:在某些寄存器中的字段只有在全部电源(包括VCC电源和Vaux备用电源)切断的情况下才会被重置。PCIe Spec给这些固执的字段起了个外号"Sticky Bits".

一般来说,Fundamental Reset是针对整个系统做Reset,但是有时也可以针对某个单一设备进行重置。

在这里说明一下Fundamental Reset中的Cold Reset和Warm Reset。

Cold Reset: 设备的主电源VCC上电时,就会触发Cold Reset。

Warm Reset: 在VCC不断电的情况下,系统可以触发Warm Reset。比如,电源状态的变化就会触发Warm Reset. 不过,PCIe Spec并没有定义触发Warm Reset的具体方式,这部分可以有系统设计人员自行决定。

另外,在PCIe Spec中,规定了两种触发Fundamental Reset方式。

一是通过PERST#(PCIe Reset)信号控制。

二是在没有PERST#信号的情况下,通过Power on/off的方式实现。

系统上电稳定后,有POWERGOOD信号产生。

当系统的南桥芯片(也就是图中的IO控制器ICH)收到POWERGOOD信号后,就会产生PERST#信号(下图绿色部分),此时会引起Cold Reset。

如果系统可以通过非上电的方式触发PERST#信号,此时会引起Warm Reset。

与Fundatmental Reset相反,Hot Reset是一种软件控制的复位方式。PCIe设备出现错误时,通常情况下用软件的方式对设备重置。软件可以通过在Bridge control中设置Secondary Bus Reset bit来触发Hot Reset.

2. Function Level Reset

在传统复位方式的基础上,PCIe Sepc 2.0以后开始增加了新的复位方式FLR(Function Level Reset)。前面讲到的传统复位方式(Cold Reset, Warm Reset, Hot Reset)均属于全局复位方式,而FLR的优势则是对局部复位。

Perst#该信号为全局复位信号,由处理器系统提供,处理器系统需要为PCIe插槽和PCIe设备提供该信号,PCIe设备使用该信号复位内部逻辑,当该信号有效时,PCIe设备将对内部逻辑进行复位操作,其中Cold Reset和Warm Reset这两种复位方式与该信号有关。

WAKE#

当PCIe设备进入休眠状态,主电源已经停止供电时,PCIe设备使用该信号向处理器系统提供唤醒请求,使处理器系统为该PCIe设备提供主电源Vcc。

在PCIe总线中,该信号是可选的,因此使用WAKE#信号唤醒PCIe设备机制也是可选的,此外,使用该机制时,必须使用Vaux进行供电。

WAKE#是一个Open Drain信号,一个处理器的所有PCIe设备可以将WAKE#进行“线与”后,统一发送给处理器的电源控制器。当某个PCIe设备需要唤醒时,该设备先将WAKE#信号拉低,经过一段时间后,系统处理器开始为该设备提供主电源Vcc,并使用PERST#对该设备进行复位操作,再次过程中WAKE#信号需要保持为低电平,当主电源Vcc上电完成之后,PERST#也将置为无效并结束复位,WAKE#信号也随之被置为无效(拉高)。

3 WAKE#信号」

当PCIe设备进入休眠状态,主电源已经停止供电时,PCIe设备使用该信号向处理器系统提交唤醒请求,使处理器系统重新为该PCIe设备提供主电源Vcc。在PCIe总线中,WAKE#信号是可选的,因此使用WAKE#信号唤醒PCIe设备的机制也是可选的。值得注意的是产生该信号的硬件逻辑必须使用辅助电源Vaux供电。

WAKE#是一个Open Drain信号,一个处理器的所有PCIe设备可以将WAKE#信号进行线与后,统一发送给处理器系统的电源控制器。当某个PCIe设备需要被唤醒时,该设备首先置WAKE#信号有效,然后在经过一段延时之后,处理器系统开始为该设备提供主电源Vcc,并使用PERST#信号对该设备进行复位操作。此时WAKE#信号需要始终保持为低,当主电源Vcc上电完成之后,PERST#信号也将置为无效并结束复位,WAKE#信号也将随之置为无效,结束整个唤醒过程。

PCIe设备除了可以使用WAKE#信号实现唤醒功能外,还可以使用Beacon信号实现唤醒功能。与WAKE#信号实现唤醒功能不同,Beacon使用In-band信号,即差分信号D+和D-实现唤醒功能。Beacon信号DC平衡,由一组通过D+和D-信号生成的脉冲信号组成。这些脉冲信号宽度的最小值为2ns,最大值为16us。当PCIe设备准备退出L2状态(该状态为PCIe设备使用的一种低功耗状态)时,可以使用Beacon信号,提交唤醒请求。

PCIE外设链路和软件异常处理方式:

1.在优先验证PCIE3.0整个环路物理通道满足要求情况下,异常时先确认软件,后确认硬件部分。

2.两DBF板可以增加各自PCIE配置完成后,复位各自PCIE接口。或DBF端PCIE异常时,PC通过RS232给FPGA通讯,FPGA执行复位指定的PCIE接口逻辑,重新建立PCIE通讯。(不断电,FPGA部分只增加复位电路)

4.发现PCIE总线异常时,通知MCU单独复位PCIE接口逻辑(不断电,如果断电需要重新FPGA CONFIG_DONE)。

5.上电后PC的BIOS运行,等待FPGA CONFIG-DONE完成过程中,BIOS再重启

运行,相当于BIOS运行两次,保证第二次运行与FPGA建立可靠的PERSRT#机制后再数据传输。

6.开机上电先FPGA模块配置完成,MCU检测到这FPGA配置信号后,再运行PC BIOS,建立正常PCIE通讯。(预留电源增加MCU的上电控制,电源,主板,MCU固件变更调试,类似CUPID机型)。

7.整个PCIE冷复位操作,影响太大,整个PCIE外设重启,可考虑只复位总线。

在PCIE3.0规范中,PCIE功能复位,是强烈推荐的,还或者增加hot reset机制,对重复位机制。

FLR方式,不需要断电,不重启外设,进入系统后异常或待机唤醒异常时使用。

美国就医中介机构

美国安德森看病咨询怎么样

怎么找海外医疗机构买药

安德森医院服务中介电话

  • 友情链接