博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDMI中checksum计算法
阅读量:4914 次
发布时间:2019-06-11

本文共 1140 字,大约阅读时间需要 3 分钟。

 

 在AVI传输过程中有三个字节没有被传输。这是在HDMI1.4B中找到的前三个字节的数据。

>> hex2dec('82')ans =   130

 

下图中的数据中在HDMI中接收到的一串数据,最低位A6是校验位,把第一个字节相加,然后再加上前面的三个字节的数据,刚好是512,正好是256的位数,这说明我有猜想是正确的。

166(a6h)+17(11h) + 168(a8h) + 16(10h) = 

>> hex2dec('a6')

ans =

166

>> hex2dec('a8')

ans =

168

>> 166+17+168+16ans =   367

>> 367+145

 

ans =

 

512

 

这是第二组数据

>> hex2dec('b1')ans =   177>> hex2dec('28')ans =    40>> hex2dec('84')ans =   132>> hex2dec('10')ans =    16 177+40+132+16+2

ans =

 

367

 

 下面是写的一个Matlab小程序实现校验值求法

function checksum = checksum_128b(varargin)%%输入是所有字节,输入的每个字节要求为16进制数据%输出是校验值,校验值是16进制nVararg = length(varargin);for i = 1:nVararg    data(i) = hex2dec(varargin(i));endsum_data = sum(data); checksum = 256 - mod(sum_data,256 );checksum =dec2hex(checksum); 以第一个例子来看下

>> checksum_128b('82','02','0d','11','a8','10')

ans =

A6

 在应用Altera HDMI IP的过程中,虽然没有提供数据包的Header部分,但是在实际的计算中一定要从HDMISpecification中找到相应的部分,再计算检验码。

比如下面语音数据包的头部分。一开始没用加上Header部分,计算出的结果是E6H,但是与接收到的部分不一样,原来它的计算过程中是添加了Header,正确的结果为57H

1
2
3
4
5
6
7
8
9
10
11
12
>> checksum_128b('09','11')
 
ans =
 
E6
 
 
>> checksum_128b('09','11','84','01','0a')
 
ans =
 
57

  

转载于:https://www.cnblogs.com/zhongguo135/p/9450334.html

你可能感兴趣的文章
【语言处理与Python】2.1获取文本语料库
查看>>
048-PHP定义常量
查看>>
##管家婆项目(一)
查看>>
LeetCode-64. 最小路径和
查看>>
Python Homework 001
查看>>
Hadoop安装教程_集群/分布式配置
查看>>
CMD和AMD区别的概括
查看>>
数位dp
查看>>
先来个Label吧
查看>>
【转载】树状数组进阶
查看>>
go if 判断 完成随机分数的评级
查看>>
卡特兰数
查看>>
344
查看>>
C - Jungle Roads
查看>>
HTML
查看>>
python之猜年纪
查看>>
Github个人主页不显示提交记录的问题
查看>>
java两个栈实现一个队列&&两个队列实现一个栈
查看>>
entityFramework 中decimal精度缺失问题
查看>>
获取webconfig配置文件内容
查看>>