计算机电源供电机制与开关机过程 | Windows 自动唤醒与自动重启故障排查

计算机电源供电机制与开关机过程

1. 电源对主板的供电机制

1.1 常见误解

一种普遍存在的误解是:未按下电源按钮时,主板与整机完全断电;按下关机按钮、风扇停转后,主板与整机同样完全断电。然而,前面板的电源按钮并未连接到电源,而是通过电源开关线直接连接到主板:

图 1 前面板电源按钮经开关线连接至主板

图 2 前面板电源开关线与主板电源开关插针的连接

若主板完全断电,按钮按下产生的信号无法传递,关机后便无法再次开机,网络开机(Wake on LAN)更无从实现。

另一种观点认为此时主板上始终带电,只是 CPU 未供电、程序未运行。实际上,此时 SATA、IDE 等外设电源线均无电流输出,硬盘无法工作,该说法同样不成立。

正确结论是:只要电源线保持插入,在按下开机按钮之前,主板处于"部分电路有电、大部分电路断电"的状态。

1.2 ATX 电源主板接口

主流台式机采用 ATX 电源(少量为 BTX),其与主板之间为 24 引脚接口:

图 3 ATX 24 引脚电源接口

秘密隐藏在该接口之中:

图 4 ATX 24 引脚接口定义(关键信号已标出)

对应到实物引脚:

图 5 ATX 电源接口实物引脚:紫色为 +5 VSB,绿色为 PS_ON#,灰色为 PWR_OK

其中三种信号最为关键:

  • +5 VSB(Standby,紫色):只要电源接入市电即存在,与是否开机无关。它为开机电路以及网络唤醒(WOL)、USB 唤醒等设备供电;若主板配有 EC(嵌入式控制器)或 BMC(基板管理控制器),亦由其供电。
  • PS_ON#(Power On,绿色):主板通知电源上电与下电的信号线,低电平有效。
  • PWR_OK / PG(Power Good,灰色):电源通知主板各路输出已稳定的信号线。

图 6 PS_ON# 信号线

图 7 PWR_OK(Power Good)信号线

1.3 上电过程

前提:电源线保持插入,开机按钮尚未按下。此时主板部分电路由 +5 VSB 供电,开机电路工作正常;需要 +12 V、+5 V、+3.3 V 的绝大部分电路处于断电状态。

  1. 按下开机键。
  2. 主板开机电路(由 +5 VSB 供电)将 PS_ON# 拉低。
  3. 延迟一段时间,电源开始输出 +12 V、+5 V 与 +3.3 V。
  4. 再延迟一段时间,电源拉高 PWR_OK,通知主板上电完成。
  5. 主板开始执行自身的上电时序(详见第 2 节)。

时序图如下:

图 8 上电时序图

1.4 下电过程

掉电过程与上电过程对称:

  1. 按下电源键后,操作系统执行关机流程(详见第 3、4 节)。
  2. 关机流程完成后,主板开机电路将 PS_ON# 拉高。
  3. 电源拉低 PWR_OK,通知主板即将下电。
  4. 延迟一段时间,电源切断 +12 V、+5 V 与 +3.3 V 的输出,关机完成。

关机后 +5 VSB 仍保持输出,为下一次上电以及网络唤醒、定时开机等功能做好准备。

1.5 ACPI 电源状态

  • G3(Hard Off):拔除电源,彻底断电。
  • G2 / S5(Soft Off):电源已接入但尚未开机,仅 +5 VSB 供电。

二者有本质区别:G2 状态下主板开机电路持续工作,可被电源键、网络、USB 等事件唤醒;G3 状态下则完全无法唤醒。

2. 按下电源键之后的硬件启动过程

从按下电源键到 CPU 执行第一条指令之间,存在一系列不为用户所见的硬件与固件过程。启动的开始并非操作系统引导,也非 BIOS 或 UEFI 运行,而是远早于 CPU 在复位向量执行第一条指令之时。本节按时间顺序梳理这一过程。

2.1 参与部件

图 9 主板供电与时序相关部件

电源。 ATX 电源输出 +12 V、-12 V、+5 V、+3.3 V、+5 VSB 等电压(早期规范含 -5 V,ATX 12 V 2.x 规范起已取消)。主板上的其他电压由板级变压电路转换得到,包括 +3.3 VSB、+1.5 VSB、1.8VDual、2.5VDual、3VDual、VCore、VTDDR 等。

+12 V 主要为 CPU 内核供电,也可单独为 PCIe 设备(显卡等)供电;+5 V 应用最广,为 USB 等外设供电;各种带 SB 后缀的电压为待机(Standby)供电,在 S3 睡眠状态维持电力,保障唤醒与内存刷新。

主板上的纽扣电池为 RTC(实时时钟)电源,在外部电源全部断开时维持时钟运转,并保证 CMOS 配置信息不丢失。

时钟。 CPU、AGP、PCI 插槽、SATA、USB、PS/2 等部件的通信速度差异很大,需要提供不同的时钟频率。时钟发生芯片(如 ck410、ck505、iCLK)将原先分散的晶振与分频电路整合,为 CPU、SATA、PCI、USB 等设备提供基础频率。

电源时序控制芯片/电路。 主板对上电顺序有严格要求:各项必备条件须按先后顺序满足,任一环节出现故障,整个上电过程即告中止。控制方案因主板、芯片组与代际而异:笔记本多采用 EC,台式机多用 SIO 或定制芯片,服务器多用 CPLD;近年部分方案将电源时序控制整合进 ME(管理引擎),面向嵌入式设备的 Atom 系列主板则更多采用移动设备常见的 PMIC。

2.2 上电时序

上电时序(Power-up Sequence)指电源与各部件之间的时序关系:

图 10 上电时序总体流程

以下以一个典型平台为例:

  1. G3 状态(未接电源)下,由纽扣电池提供 RTC_RST# 与 VCC_RTC,为南桥的 RTC 部分供电。
  2. 插入电源或电池,系统进入 G2 / S5 状态。EC 检查电源可靠性,并发送 PM_RSMRST# 通知南桥各路待机电压已就绪。南桥复位,部分待机功能激活,进入待机状态。
  3. 用户按下电源键,时序开始。
  4. EC 收到 PWRSW# 信号,经 PM_PWRBTN# 通知南桥。南桥依次拉高 SLP_S5#、SLP_S4#、SLP_S3# 并送至 EC。
  5. EC 发出 PS_ON# 至 ATX 电源。
  6. ATX 电源收到低电平的 PS_ON# 后开始工作,输出各路基础电压至主板各元件。
  7. 由基础电压变换得到的其他电压(如 VCore)相继产生。
  8. 电源发出 PWROK#,经 EC 转交南桥与北桥(若有)。
  9. VRM(电压调节模块)与 CPU 通信,按 VID 送出 VCore。
  10. VRM 发出 VRMPWRGD# 通知南桥 VCore 电压正常。
  11. 南桥发送 PLT_RST# 至北桥。
  12. 南桥发送 PWRGOOD# 至 CPU。
  13. 北桥收到 PLT_RST# 后,延迟约 1 s 发出 CPU_RST#,CPU 复位。

时序图如下:

图 11 上电时序信号图

2.3 CPU 复位后的早期固件阶段

CPU 复位后并非立即跳转至复位向量执行引导程序。此阶段先执行 CPU 内部微码(pcode)与片上 ROM 代码,TXT、Boot Guard 等安全机制也在此运行。

2.4 UEFI 的四个阶段

CPU 开始执行复位向量代码后,进入 UEFI 固件的四个阶段:

图 12 UEFI 固件各阶段

  • SEC(Security):系统自复位状态开始运行,初始化处理器缓存(Cache)作为临时内存,建立栈后可执行 C 代码,随后转入 PEI。
  • PEI(Pre-EFI Initialization):初始阶段仅有少量栈与堆可用,需找到并使能永久内存(内存颗粒或 DIMM),随后转入 DXE。
  • DXE(Driver Execution Environment):获得永久存储空间后,开始初始化主板主要芯片,随后转入 BDS。
  • BDS(Boot Device Selection):主要芯片初始化完成后,继续初始化引导操作系统所需的输入、输出与存储设备,并加载操作系统引导程序。

UEFI 各阶段与众多驱动均服务于同一目的:初始化硬件、引导操作系统,并为操作系统提供统一的硬件抽象。经过多年发展,UEFI 固件代码规模已超过一百万行。

2.5 操作系统引导

BDS 阶段后,UEFI 加载操作系统引导程序(OS Loader),不同操作系统对应不同引导程序。传统 BIOS 及其引导方式已被淘汰,Intel 已于 2020 年后停止支持传统 BIOS 兼容模式(CSM);基于 INT 13 中断与引导扇区的引导方式仅具有历史意义。

2.6 小结

按下电源键后,CPU 并非第一个得到通知的部件,更不会立即执行代码。从按下电源键到 CPU 执行 UEFI 固件程序,主板(尤其是服务器主板)需经历若干隐藏阶段,各阶段耗时长短不一。理解这些阶段的存在与作用,是理解计算机启动过程的基础。

3. Windows 开关机记录的查看

3.1 使用事件查看器

查看开机与关机时间的方法如下:

  1. 按 Win + R,输入 eventvwr.msc,打开事件查看器(或经"开始菜单 → Windows 工具/管理工具 → 事件查看器"打开)。
  2. 左侧选择"Windows 日志"→"系统"。
  3. 在系统事件中查找事件 ID 为 6005 与 6006 的事件:ID 6005 表示事件日志服务已启动(对应开机),ID 6006 表示事件日志服务已停止(对应关机),二者的时间即分别为开机时间与关机时间。

若事件过多,可使用筛选缩小范围:在"操作"菜单选择"筛选当前日志",在筛选器中勾选"信息""警告""错误",事件来源选择 eventlog,确定后系统事件中仅保留少量记录,可轻易找到最近的开关机时间。

部分系统中,任务计划程序服务会将启动与退出时间写入 C:\WINDOWS\SchedLgU.txt,其中"任务计划程序服务"已启动于与已退出于的时间分别对应开机与关机时间。但 Windows 10/11 默认不生成该文件,运行时若提示"找不到文件",请改用事件查看器:展开"应用程序和服务日志 → Microsoft → Windows → TaskScheduler → Operational",事件 ID 100 表示任务计划程序服务已启动(对应开机),事件 ID 102 表示已退出(对应关机)。

3.2 重启故障排查中的日志应用

排查自动重启时,在事件查看器中筛选事件 ID 6005 与 6006,以确定每次重启发生的时间;再结合重启前的其他事件定位原因。例如,若每次重启前均出现事件 ID 7002"客户体验改善计划的用户注销通知",则重启可能与客户体验改善计划(CEIP)有关(详见 4.3 节)。

图 13 事件查看器中按事件 ID 筛选开关机记录

4. Windows 自动唤醒与自动重启故障排查

4.1 睡眠后自动唤醒:定位唤醒源

若 Windows 11 在睡眠后每隔固定时间(如每 3 小时)自动唤醒,可用事件查看器定位唤醒源:在系统日志中按事件来源 power-troubleshooter 筛选,该来源的事件记录每次唤醒的时间与唤醒原因。

图 14 按来源 power-troubleshooter 筛选唤醒事件

图 15 唤醒事件详情:记录唤醒时间与原因

4.2 睡眠自动唤醒的解决方案

方案一:处理 UpdateOrchestrator 的唤醒任务。

计划任务库 → Microsoft → Windows → UpdateOrchestrator 中的任务会唤醒系统以执行更新。

图 16 UpdateOrchestrator 计划任务的"唤醒计算机以运行此任务"设置

直接取消勾选"唤醒计算机以运行此任务"需要 SYSTEM 账户(SID 为 S-1-5-18)权限,无法直接修改。替代做法:改用休眠代替睡眠(Windows 11 默认睡眠 3 小时后自动转入休眠,但休眠仍可能被唤醒),或在电源选项的高级设置中关闭"允许使用唤醒定时器"(见方案四)。

方案二:暂停 Windows 更新。

  • 设置 → Windows 更新 → 暂停更新,可暂停一周;
  • 设置 → Windows 更新 → 高级选项 → 使用时段,设置排除时段(如 23:00 至次日 17:00,覆盖白天与夜间);
  • 设置 → Windows 更新 → 高级选项 → 可选更新,管理驱动程序更新。

方案三:禁用网卡的网络唤醒。

设备管理器 → 网络适配器 → 对应网卡属性 → 电源管理,取消勾选"允许此设备唤醒计算机";在"高级"选项卡中关闭 Wake on LAN 相关属性。该方案对定时唤醒类问题通常无效,但可排除网络信号引起的随机唤醒。

图 17 网卡属性中的"允许此设备唤醒计算机"

图 18 网卡高级属性中的唤醒相关选项

方案四:高性能电源模式下关闭唤醒定时器。

Windows 11 默认的"平衡"电源模式与控制面板中的电源选项设置不联动(经控制面板修改显示器关闭时间后,设置应用中不会同步);切换为"高性能"模式后二者联动正常。

在控制面板 → 电源选项中选择"高性能",进入"更改计划设置 → 更改高级电源设置",将"睡眠 → 允许使用唤醒定时器"设为"禁用"。该选项默认值为 180 分钟,与每 3 小时自动唤醒一次的现象一致,关闭后问题即解决。

图 19 控制面板中的电源选项

图 20 高性能计划的更改计划设置

图 21 高级电源设置入口

图 22 将"允许使用唤醒定时器"设为禁用

4.3 无故自动重启:客户体验改善计划(CEIP)

现象:Windows 11 长时间无人值守运行时自动重启。事件日志中,每次重启前均出现事件 ID 7002"客户体验改善计划的用户注销通知",且关机均发生在无人操作时段。关闭 CEIP 后重启不再发生。

关闭步骤如下:

  1. 控制面板 → 系统和安全 → 操作中心 → 更改操作中心设置 → 客户体验改善计划设置,选择"否,我不想参加",保存更改。
  2. 控制面板 → 管理工具 → 任务计划程序,展开"任务计划程序库 → Microsoft → Windows"节点:
    • 打开 Application Experience 文件夹,禁用 AITAgent 与 ProgramDataUpdater 任务;
    • 打开"客户体验改善计划"文件夹,禁用 Consolidator、KernelCEIPTask 与 UsbCEIP 任务。

若系统为 Windows 11 家庭版,无法直接运行 gpedit.msc,可先部署组策略客户端组件。新建文本文件,写入以下内容后另存为 .cmd 文件并以管理员身份运行:

bat 复制代码
@echo off
pushd "%~dp0"
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum > List.txt
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >> List.txt
for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:"C:\Windows\servicing\Packages\%%i"
pause

运行完成后,在命令行输入 gpedit.msc 打开组策略编辑器,按"计算机配置 → 管理模板 → 系统 → Internet 通信管理 → Internet 通信设置"的路径关闭客户体验改善计划:

图 23 组策略编辑器中关闭客户体验改善计划

4.4 关机后自动开机

现象:Windows 11 执行关机后数秒内又自动开机。常见原因包括快速启动功能、异常计划任务、BIOS/UEFI 唤醒设置、系统错误触发自动重启以及系统文件损坏。以下按顺序排查(示例环境:Dell XPS 13,Windows 11 家庭版)。

步骤一:禁用快速启动。

快速启动使系统在关机时进入低功耗状态而非完全关机,可能与部分硬件不兼容而导致短时间内重新唤醒。

  1. 控制面板 → 电源选项 → 选择电源按钮的功能。
  2. 点击"更改当前不可用的设置"(需管理员权限)。
  3. 取消勾选"启用快速启动(推荐)",保存更改。

步骤二:检查并清除异常计划任务。

恶意软件或配置错误的程序可能创建唤醒计划任务。

  1. 按 Win + R,输入 taskschd.msc,打开任务计划程序。
  2. 在"任务计划程序库"中浏览任务列表,查找名称可疑或最近添加的任务。
  3. 右键可疑任务 → 属性 → "条件"选项卡,检查是否勾选"唤醒计算机以运行此任务"。
  4. 若非必要,记录任务名称后在"常规"选项卡将其删除。

步骤三:调整 BIOS/UEFI 唤醒设置。

键盘、鼠标、网络信号等外部事件可能在关机后立即唤醒计算机。

  1. 重启计算机,在启动过程中按 F2 或 Delete 键(因品牌而异)进入 BIOS/UEFI 设置界面。
  2. 进入"Power Management"或"高级电源管理"相关菜单。
  3. 将"Wake on LAN""USB Wake Support""PCI-E Wake"等选项全部设为 Disabled。
  4. 按 F10 保存设置并退出,系统将自动重启。

步骤四:关闭"自动重新启动"以区分系统错误。

系统检测到严重错误时,默认行为是自动重启,可能与关机命令混淆。

  1. 右键"此电脑"→ 属性 → 高级系统设置。
  2. 在"启动和故障恢复"区域点击"设置"。
  3. 取消勾选"系统失败"下的"自动重新启动",保存更改。

若此后关机不再自动开机,则此前的现象由系统错误引发。

步骤五:修复系统文件。

关键系统组件损坏可能导致关机流程中断并触发重启循环。以管理员身份打开命令提示符或 PowerShell,依次执行:

bat 复制代码
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth

两条命令均需执行完毕,期间不要中断(DISM 需联网获取修复资源)。执行完成后重启计算机,再次测试关机。


Reference