本帖最后由 xusheng 于 2025-8-29 08:58 编辑
一、硬件及软件平台
Hi3731v110dmod Ver.A DEMO板 HiDPTLiteOSV100R002C00SPC031
二、问题现象
使用默认SDK版本编译烧录固件,在DEMO板三个HDMI RX端口接入信号,均可以检测到信号插入,但菜单都显示为“No signal” proc信息见下图: 使用的HDMI Tx信号源包括:台式电脑(WIN11),笔记本(WIN10),机顶盒。均无法正常显示,但DELL显示器可正常显示上述信号。
通过window驱动软件,可查看到该显示器是支持HDCP功能的。
* DELL显示器--HDCP状态信息
* Hi3751v352 HDMI Rx -- HDCP状态信息
查看开机串口log,可看到下述错误提示信息:
[HI_MW(W)] app_Task: < MwVideoCheckHdcpValid:2040 > HDCP1.4 KEY is invalid!
[HI_MW(F)] app_Task: < HI_MW_VIDEO_LoadHdcp:2101 > No valid customer HDCP!
[HI_MW(F)] app_Task: < HI_HDMIRX_HdcpInitDefKey:288 > No HDCP key Loaded!
查看EDID proc 信息如下截图,可以看到edid信息基本正常:
三、原因分析 从上面的串口错误信息看,是HDCP KEY缺失的原因,导致无法正确显示HDMI输入信号。
四、解决 修改hi_cfg_custom.h , 使能选项 HI_MW_CFG_HDCP_LOAD_DEFAULT
- #define HI_MW_CFG_HDCP_LOAD_DEFAULT 1
复制代码
* Hi3731v311 HDMI Rx 正常后 -- HDCP状态信息
使能配置重新编译后,虽然3731平台可以正常显示HDMI信号,但实际没有烧录HDMI KEY,所以Nvidia程序报“不支持HDCP”。 但为何能正常显示HDMI Rx信号了呢? 待后续进一步研究。
五、HDCP基础 HDCP (High-bandwidth Digital Content Protection,高带宽数字内容保护),是数字接口中用于保护音视频内容的加密技术,用于确保只有经过授权的设备才能播放受保护的内容。
HDCP的加密流程 涉及到源设备(如蓝光播放器)和接收设备(如高清电视)之间的认证和加密通信。加密流程简述如下: 1. 初始化:源设备和接收设备之间建立连接,然后通过HDCP协议的初始化流程、进行设备识别和初始化密钥的生成; 2. 认证:源设备和接收设备之间互相认证,确认对方是合法的HDCP设备; 3. 密钥交换:认证成功后,两个设备之间交换会话密钥、用于后续数据的加密传输; 4. 数据加密:使用会话密钥对传输的数字内容进行加密,确保在未授权设备上无法解密和使用;
HDCP 1.x - 源设备验证接收设备是否拥有有效密钥,通过后会再生成会话密钥、用于后续数据加密输出;
- 最高支持1080@60Hz
- 用于HDMI1.x 及 DVI 接口
HDMI 2.x
- 引入了更复杂的身份验证和加密标准,安全性更高
- 支持4K/8K@120Hz 及 HDR
- 用于HDMI2.0/2.1, DisplayPort 2.0
HDCP 1.4 key:320 Bytes
- 私钥 280 Bytes :40组、每组7字节密钥
- 密钥选择矢量KSV 5 Bytes:40bit 二进制数,包含20个0和20个1
- 填充或校验数据 35 Bytes
|