当前位置: 首页 > article >正文

深入eDP协议栈:从PSR SDP发送到Main Link开关,一次搞懂屏幕自刷新的完整信令流程

深入eDP协议栈从PSR SDP发送到Main Link开关一次搞懂屏幕自刷新的完整信令流程在显示技术的演进中嵌入式DisplayPorteDP协议因其高效能和低功耗特性已成为移动设备和高端显示器的首选接口。其中面板自刷新PSR功能通过智能管理主链路状态可显著降低系统功耗——这对需要长续航的笔记本电脑和便携设备尤为重要。本文将拆解PSR全流程的信令交互结合寄存器操作和时序控制为显示驱动开发者提供可直接落地的实现方案。1. PSR技术基础与硬件准备PSR的核心思想是在帧内容不变时关闭主链路传输由显示面板本地缓存维持图像输出。要实现这一功能需要显示控制器Source和面板Sink双方的协同工作。硬件层面需确认以下关键点eDP版本支持检查DPCD 0000h寄存器的PSR_SUPPORT字段bit 31面板能力验证通过DPCD 070h确认SINK_PSR_CAPS帧缓存配置确保FB足够存储至少一帧未压缩图像DPCD 071h的Y_SIZE/LINE_BYTES注意某些面板要求PSR进入前完成完整的链路训练Link Training这需要检查DPCD 0200h的TRAINING_AUX_RD_INTERVAL典型初始化流程如下// 检查PSR支持 uint32_t dpcd_caps read_dpcd(ADDR_DPCD_REV); if (!(dpcd_caps DPCD_PSR_SUPPORT)) { printk(PSR not supported by sink device\n); return -ENOTSUPP; } // 配置帧缓冲区参数 write_dpcd(ADDR_PSR_Y_SIZE, y_resolution); write_dpcd(ADDR_PSR_LINE_BYTES, bytes_per_line);2. PSR进入流程的信令时序2.1 垂直消隐期与SDP发送PSR进入流程始于垂直消隐期VBlank内的Secondary Data PacketSDP发送。此时序选择基于两个考量避免干扰有效像素传输为面板预留足够的建立时间PSR_SETUP_TIME关键寄存器操作包括寄存器地址操作位功能描述DPCD 600hBit 0置1触发PSR进入序列DPCD 601hBit 7:0配置PSR进入延迟VSYNC到SDP的间隔def send_psr_enter(): # 在VBlank开始后延迟配置的时钟周期 wait_vblank() delay(psr_setup_time) # 构造并发送PSR SDP包 sdp_packet build_sdp(typePSR_ENTER, payload[0x00, 0x1E, 0x00, 0x00]) aux_ch_write(SDP_PACKET_REG, sdp_packet)2.2 Main Link关闭决策发送SDP后Source需根据以下因素决定是否关闭Main Link帧内容稳定性通过CRC校验确认连续3帧无变化功耗策略根据DPCD 00603h的PSR_MAIN_LINK_CTL字段面板响应时间参考DPCD 070h的PSR_EXIT_TO_ACTIVE_TIME关闭主链路的典型操作为void disable_main_link(void) { // 停止视频流传输 write_reg(VIDEO_ENABLE_REG, 0x00); // 关闭PHY层供电 write_reg(PHY_POWER_CTL, POWER_DOWN); // 记录链路状态 g_link_state LINK_OFF; }3. PSR运行期间的维持机制3.1 面板自刷新维持进入PSR状态后面板依靠本地帧缓存维持显示此时Source需持续监控AUX通道的HPD信号定期发送Idle Pattern每500ms处理可能的远程帧更新请求维持阶段的关键参数参数寄存器地址典型值Idle Pattern间隔DPCD 0604h0x1F4 (500ms)帧更新超时DPCD 0605h0x3E8 (1000ms)3.2 低功耗状态管理在深度PSR模式下PSR2可进一步降低系统功耗内存自刷新通过DPCD 0607h配置DRAM刷新率时钟门控关闭不必要的显示控制器时钟域电压调节根据DPCD 0608h设置IO电压等级提示PSR2的深度休眠可能增加唤醒延迟需在功耗和响应速度间权衡4. PSR退出流程与链路恢复4.1 唤醒事件处理以下事件会触发PSR退出内容更新帧缓冲区差异超过阈值DPCD 0609h用户交互检测到输入设备活动超时事件达到DPCD 0605h配置的超时值唤醒序列的第一步是通过AUX通道发送PSR_EXIT SDPdef handle_wake_event(): # 发送PSR退出SDP exit_sdp build_sdp(typePSR_EXIT) aux_ch_write(SDP_PACKET_REG, exit_sdp) # 启动主链路供电 power_up_phy() # 等待面板响应 timeout read_dpcd(ADDR_PSR_EXIT_TIMEOUT) wait_panel_ready(timeout)4.2 链路训练与状态同步PSR退出后的关键步骤是链路恢复快速链路训练使用DPCD 0200h存储的参数状态验证检查DPCD 0600h的PSR_STATUS帧同步等待下一个VBlank开始视频流典型训练代码如下int retrain_link(void) { // 应用预存的训练参数 apply_saved_training(); // 执行快速CR/CE训练 if (train_cr_ce() ! SUCCESS) { // 失败时回退到全训练 full_link_training(); } // 验证链路状态 uint8_t status read_dpcd(ADDR_PSR_STATUS); return (status PSR_ACTIVE) ? 0 : -EIO; }5. 调试技巧与常见问题5.1 时序问题排查PSR实现中最常见的三类时序问题SDP发送过早导致面板错过进入指令解决方案增加DPCD 601h的延迟值唤醒响应超时面板未及时退出PSR检查DPCD 070h的PSR_EXIT_TO_ACTIVE_TIME链路训练失败退出后无法恢复视频对策保存训练参数到DPCD 0200h5.2 寄存器调试技巧推荐使用以下寄存器监控PSR状态# 监控PSR状态机 regwatch 0x600 0x1 # PSR控制状态 regwatch 0x601 0xFF # 进入延迟 regwatch 0x603 0x3 # Main Link控制5.3 实际案例某4K面板的PSR2实现在某款4K分辨率面板的调试中发现PSR退出后出现图像撕裂。根本原因是面板要求的PSR_EXIT_TO_ACTIVE_TIME为16ms驱动默认配置8ms超时导致链路训练开始时面板未就绪修正方案- write_dpcd(ADDR_PSR_EXIT_TIMEOUT, 0x08); write_dpcd(ADDR_PSR_EXIT_TIMEOUT, 0x20); // 32ms容限

相关文章:

深入eDP协议栈:从PSR SDP发送到Main Link开关,一次搞懂屏幕自刷新的完整信令流程

深入eDP协议栈:从PSR SDP发送到Main Link开关,一次搞懂屏幕自刷新的完整信令流程 在显示技术的演进中,嵌入式DisplayPort(eDP)协议因其高效能和低功耗特性,已成为移动设备和高端显示器的首选接口。其中&am…...

如何通过G-Helper让华硕笔记本性能与续航获得双重提升?

如何通过G-Helper让华硕笔记本性能与续航获得双重提升? 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, E…...

终极指南:如何快速免费实现全网页截图完整捕获

终极指南:如何快速免费实现全网页截图完整捕获 【免费下载链接】full-page-screen-capture-chrome-extension One-click full page screen captures in Google Chrome 项目地址: https://gitcode.com/gh_mirrors/fu/full-page-screen-capture-chrome-extension …...

Wand-Enhancer:完全免费解锁WeMod Pro功能的终极解决方案

Wand-Enhancer:完全免费解锁WeMod Pro功能的终极解决方案 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 还在为WeMod专业版的付费限制而烦恼…...

蓝牙、Wi-Fi、5G、NB-IoT四大无线技术核心差异与选型指南

1. 无线通信技术全景概览:从身边到万物每天一睁眼,我们就被各种看不见的“波”包围着。手机自动连上家里的Wi-Fi,耳机里传来蓝牙音箱的音乐,出门后手机信号满格,甚至街边的智能路灯、家里的智能电表,都在悄…...

Blender-Armatures

导航 (返回顶部) 1. Blender-Armatures 1.1 骨架位置1.2 分类1.3 骨骼结构 2. 编辑 2.1 骨骼扭转2.2 拆分 split2.3 分离骨骼 separate2.4 切换方向 3. 镜像编辑 3.1 镜像挤出3.2 命名惯例3.3 对称 4. 属性 4.1 属性结构表4.2 柔性骨骼 Bendy Bones4.3 姿态4.4 关系 5. 骨骼约束…...

【大语言模型系列·第 01 篇】全景图:从图灵测试到万亿参数的 AI 革命

【大语言模型系列第 01 篇】全景图:从图灵测试到万亿参数的 AI 革命 系列前言:大语言模型(LLM)是当今 AI 最重要的技术基石。从 2017 年 Transformer 论文到 2026 年的万亿参数 MoE 模型,LLM 用不到十年时间重塑了整个…...

金属3D打印光束整形:两大路线正面PK

作为金属3D打印技术的最新发展,开展光束整形技术研究的企业越来越多,研发的进程也越来越深。3D打印技术参考注意到,国外由EOS引领该技术发展,同时还有Aconity3D和DMG Mori等行业领导者;在国内,铂力特、华曙…...

掌握AMD Ryzen处理器精细调控:SMUDebugTool实战指南

掌握AMD Ryzen处理器精细调控:SMUDebugTool实战指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitc…...

终极智慧树自动刷课插件:告别手动操作,实现高效学习自动化

终极智慧树自动刷课插件:告别手动操作,实现高效学习自动化 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为智慧树平台枯燥的视频学习而烦…...

百度网盘直链解析工具:告别龟速下载的技术实现方案

百度网盘直链解析工具:告别龟速下载的技术实现方案 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 在数字资源分享领域,百度网盘凭借其庞大的用户基础和…...

告别环境报错!Windows下ESP8266开发环境保姆级搭建指南(含MSYS2、Python包避坑)

Windows下ESP8266开发环境零失败搭建全攻略 第一次接触ESP8266开发时,最令人头疼的莫过于环境配置。明明按照官方文档一步步操作,却总在某个环节卡住——Python包安装失败、工具链不兼容、串口识别异常...这些问题消耗了开发者大量时间。本文将彻底解决…...

Node.js 流处理:高效处理大数据的艺术

Node.js 流处理:高效处理大数据的艺术 什么是流? 在 Node.js 中,流(Stream)是处理大量数据的抽象接口。它允许我们逐块读取或写入数据,而不需要一次性将全部数据加载到内存中。 为什么需要流? 想…...

解锁AMD Ryzen潜力:SMUDebugTool硬件调试完全指南

解锁AMD Ryzen潜力:SMUDebugTool硬件调试完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitcod…...

ComfyUI Manager完全指南:AI绘画插件管理从未如此简单

ComfyUI Manager完全指南:AI绘画插件管理从未如此简单 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various custo…...

别再死记硬背公式了!用Python实战SCS模型,5分钟搞定城市降雨径流估算

用Python实战SCS模型:5分钟自动化城市降雨径流分析 水文工程师们是否厌倦了手动查表计算CN值?环境分析师是否还在为重复的径流公式推导头疼?今天我们将用Python彻底改变传统工作流——无需记忆复杂公式,只需5行核心代码即可完成从…...

别再死记硬背了!用C++邻接矩阵手搓Dijkstra算法,我连路径打印都给你讲明白了

从零实现Dijkstra算法:邻接矩阵实战与路径回溯详解 在计算机科学的世界里,寻找两点之间最短路径的问题就像现代都市中的导航系统——我们需要在错综复杂的道路网络中找到最优解。Dijkstra算法作为解决单源最短路径问题的经典方法,其重要性不…...

告别Wi-Fi卡顿!手把手教你读懂802.11ax的BSR机制,优化家庭网络上行体验

告别Wi-Fi卡顿!手把手教你读懂802.11ax的BSR机制,优化家庭网络上行体验 你是否经历过这样的场景:视频会议时画面突然卡成马赛克,游戏团战时操作延迟飙升,或是上传文件进度条像蜗牛爬行?这些恼人的问题往往源…...

告别复制粘贴!手把手教你封装可复用的Echarts-for-weixin图表组件

微信小程序Echarts组件化实战:打造高复用图表解决方案 在数据驱动的产品设计中,图表可视化已成为微信小程序不可或缺的组成部分。面对多页面复用、动态数据更新等实际需求,直接使用原生ec-canvas组件往往会导致代码冗余和维护困难。本文将分享…...

一键找回青春记忆:GetQzonehistory让QQ空间历史说说永久保存

一键找回青春记忆:GetQzonehistory让QQ空间历史说说永久保存 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 还在为那些年发过的QQ空间说说可能丢失而担忧吗?Get…...

Gofile下载神器:5分钟快速上手的高效命令行工具

Gofile下载神器:5分钟快速上手的高效命令行工具 【免费下载链接】gofile-downloader Download files from https://gofile.io 项目地址: https://gitcode.com/gh_mirrors/go/gofile-downloader 你是否经常需要从Gofile.io下载大量文件,却厌倦了手…...

终极碧蓝航线自动化脚本:Alas智能辅助工具完整指南

终极碧蓝航线自动化脚本:Alas智能辅助工具完整指南 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript AzurLaneAuto…...

Ai会不会让越来越多的开发者失去工作机会?

我不知道写这篇Log会不会太激进,可能会让人浮想联翩,对号入座。想想还是要写的,咱们不聊别的,仅仅是讨论一下AI是否真的会让我们这些写了20多年的代码的开发者失业,这还真是一个“悲伤”的讨论。朋友跟我说&#xff1a…...

做了二十一年程序员,我终于活成了“搞钱不丢人”的大叔

昨晚十二点半,我关掉了 IntelliJ IDEA。窗外的小区已经安静得只剩下路灯了,我起身活动了一下僵硬的颈椎,发出一声轻微的脆响。二十一年前,我还是个刚毕业、只会用 C 语言打印九九乘法表的小伙子;二十一年后&#xff0c…...

贪吃蛇游戏设计-7.完整系统

7.完整系统 完整系统Snake代码太多,另有源码。 一个基于 HarmonyOS ArkTS 开发的经典贪吃蛇游戏,适合作为 ArkTS 开发的学习项目。 功能特性 🎮 经典贪吃蛇玩法 📊 实时分数显示 🏆 最高分记录 📝 玩家姓名输入与成绩保存 📋 排行榜展示 🗑️ 排行榜滑动删除功…...

如何免费突破网盘限速?8大平台直链下载终极指南

如何免费突破网盘限速?8大平台直链下载终极指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 /…...

Gofile高效下载命令行工具完全指南:解锁批量下载与断点续传的终极解决方案

Gofile高效下载命令行工具完全指南:解锁批量下载与断点续传的终极解决方案 【免费下载链接】gofile-downloader Download files from https://gofile.io 项目地址: https://gitcode.com/gh_mirrors/go/gofile-downloader 在当今数字资源共享的时代&#xff0…...

深入解析Godot PCK解包技术:从二进制黑盒到可编辑资源的完整指南

深入解析Godot PCK解包技术:从二进制黑盒到可编辑资源的完整指南 【免费下载链接】godot-unpacker godot .pck unpacker 项目地址: https://gitcode.com/gh_mirrors/go/godot-unpacker 还在为Godot引擎生成的PCK文件无法访问而烦恼吗?想要深入分析…...

三个00后给母校捐了“20亿”,全网炸了——结果这20亿可能就值几百块?

整件事最魔幻的地方在于:你第一眼看到“20亿”,脑子里自动补上的单位是“人民币”。然后一算账,发现可能连捐的那个展示牌都不如。这事到底是怎么回事?前几天,郑州西亚斯学院搞了一场挺隆重的捐赠仪式。三个00后校友—…...

【为风光储一体化系统注入精准“心跳”的隐形力量】

在“双碳”战略目标的宏伟蓝图下,构建以新能源为主体的新型电力系统已成为时代命题。风光储一体化,作为平滑新能源波动、提升电网消纳能力的关键路径,正迎来前所未有的发展机遇。在这一变革性的能源体系中,每一处精密的控制与高效…...