网站上传的流程图,诚信档案建设网站,做液氮冰淇淋店网站,进出成都最新通知目的#xff1a; 使用KingstVIS逻辑分析仪软件分析HDMI的DDC通道传输的SCDC数据#xff08;遵循I2C协议#xff09;#xff0c;同时学习了解SCDC的寄存器与I2C通信协议。 部分英文缩写#xff1a; HDMIHigh Definition Multi-media Interface高清多媒体接口DDCDisplay Dat…目的 使用KingstVIS逻辑分析仪软件分析HDMI的DDC通道传输的SCDC数据遵循I2C协议同时学习了解SCDC的寄存器与I2C通信协议。
部分英文缩写 HDMIHigh Definition Multi-media Interface高清多媒体接口DDCDisplay Data Channel显示数据通道SCDCStatus and Control Data Channel状态和控制数据通道 一、资源
参看附件FPGA HDMI IP之DDC_I2C_SCDC协议.zip
解压缩后内容如下 1.1 HDMI_2.0_协议.pdf
SCDC学习内容参考HDMI2.0第10章如下图 1.2 HDMI_DDC协议解读.kvdat
附件HDMI_DDC协议解读.kvdat是通过逻辑分析仪抓取的一次HDMI DDC通道通信的数据仅供学习HDMI SCDC使用。
全部内容如下图所示 1.3 I2C协议标准中文版 1.4 KingstVIS逻辑分析仪软件
官网逻辑分析仪软件 KingstVIS 用于打开HDMI_DDC协议解读.kvdat数据进行分析学习。
二、DDC通道遵循的I2C协议
2.1 I2C总体特征
2.1.1 I2C通信速率
总线上的数据传输速率有三个标准标准模式、快速模式与高速模式。
I2C总线模式通信速率标准模式100kbit/s快速模式400kbit/s高速模式3.4Mbit/s
2.1.2 I2C总线能支持的IC接口数量 注意 连接到总线的I2C接口数量只由总线电容是400pF的限制决定 2.1.3 其他补充
SDA和SCL都是双向线路SDA和SCL都通过一个电流源或上拉电阻连接到正的电源电压因此当总线空闲时这两条线路都是高电平连接到总线的器件输出级必须是漏极开路或集电极开路才能执行线与的功能
2.2 起始和停止条件 如上图所示可以看到起始条件和停止条件 起始条件 SCL高电平期间SDA由高电平向低电平切换 停止条件 SCL高电平期间SDA由低电平向高电平切换 2.3 传输数据 2.3.1 传输SDA数据的有效性 SDA数据的传输需要遵循两个基本约束 SDA 必须在SCL的高电平周期保持稳定 SDA只能在 SCL的低电平周期进行高低电平转换 2.3.2 字节格式
发送到 SDA 线上的每个字节必须为 8 位首先传输的是数据的最高位MSB每次传输发送的字节数量不受限制每个字节后必须跟一个响应位
2.3.3 响应ACK
响应ACK时钟脉冲由主机Master产生在响应ACK的时钟脉冲高电平期间发送器Master/Slave都可以是发送器释放 SDA 线为高电平在响应ACK的时钟脉冲高电平期间接收器必须将 SDA 线拉低使SDA在这个时应的时钟脉冲的高电平期间保持稳定的低电平非响应NACK就是在响应的时钟脉冲高电平期间接收器没有将 SDA 线拉低 三、DDC数据传输协议
HDMI2.0明确规定从机(Slave)地址为0xA8/0xA9 十六进制二进制意思0xA81010 1000Master写0xA91010 1001Master读 数据/地址Byte是左高右低发送顺序是高位先发送 前7bit对应Slave地址位为0x540b101_0100 第8bit为0代表Master接下来要写数据0xA80b1010_1000 第8bit为1代表Master接下来要读数据0xA90b1010_1001 3.1 SCDC Update Read模式
SCDC Update Read作用在Source读取更新标志时最小化消息的长度。 In this mode, the 8-bit I 2 C address 0xA9 is used without a repeated Start and reads commence from offset 0x10, corresponding of the UPDATE_0 sub-address. 暂时没用到~ 3.2 SCDC Combined Format Read模式
SCDC Combined Format Read模式支持连续读多个Bytes数据。
协议如下 Master端使用组合格式读取先是0xA8表示写入接下来的一个子地址表示偏移量然后是重复START条件最后0xA9表示读取接下来的数据可以是n个。 所有实现SCDC的HDMI sink都应该支持多字节读取并自动增加偏移量。 3.3 SCDC Write模式
SCDC Write模式支持写入多Byte数据。 Master端写模式先是0xA8表示写入接下来的一个子地址表示偏移量接着读取接下来的n个数据并自动增加偏移量。
四、SCDC Channel Structure通道结构-寄存器地址与功能
参看HDMI2.0协议的10.4.1 Status and Control Data Channel Structure节 Reserved默认为0x00. 各寄存器的功能查看HDMI2.0协议。 五、分析HDMI_DDC协议解读.kvdat文件
5.1 使用KingstVIS软件打开DDC数据附件
使用KingstVIS打开HDMI_DDC协议解读.kvdat文件后使用I2C解析器设置如下 I2C解析器设置 SDA2-“同道 2” SCL3-“通道 3” 地址显示格式8-bit包含读写位 数据导出格式默认Packets 并截取HDMI_DDC协议解读.kvdat开始通信部分数据分析 5.2 查看时钟频率
首先截取10个周期clk查看时钟频率约为95.2KHz是I2C的标准模式100KHz。 5.3 数据分析
这里仅分析SCDC Write模式与SCDC Combined Format模式SCDC Update Read模式本质一样。
5.3.1 SCDC Write模式数据分析 上图通过逻辑分析仪看出是
0xA8Master写
0x20子地址通过查HDMI2.0规格书可以知道0x20是TMDS配置寄存器;
OffsetR/W ?Name0x20R/W均可TMDS_Config
0x03要写进到Slave的寄存器0x20的数据Data为0x030b0000_0011. Scrambling_EnableBit 1置1 TMDS_Bit_Clock_RatioBit 0置1 使能扰码并设置每个TMDS Clock周期与TMDS Bit的比率为40:1。 5.3.2 SCDC Combined Format模式数据分析 0xA8Master写
0x40子地址通过查HDMI2.0规格书可以知道0x40是Status_Flags_0标志寄存器;
OffsetR/W ?Name0x40仅支持RStatus_Flags_0
0xA9Master读
0x00Master从Slave的寄存器0x40读到的数据Data为0x000b0000_0000. 该寄存器用于检测Slave端是否成功识别Clock以及3个数据通道是否成功Lock住很显然时钟与数据都没lock 住也就是通信不成功。
其他HDMI_DDC协议解读.kvdat数据解析同上。