首页 >>  正文

16进制算法表

来源:baiyundou.net   日期:2024-09-27

来源:虹科汽车智能互联 虹科技术 | 保障数据传输稳定性:BabyLIN产品的CRC算法实现

原文链接:https://mp.weixin.qq.com/s/TFn5Y0b2dRZwGqvgoHk_ww

欢迎关注虹科,为您提供最新资讯!

导读

CRC校验(循环冗余校验)是数据通讯中最常采用的校验方式。CAN协议中,总线通信节点也常采用CRC算法对各种总线传输的数据进行校验。CRC8校验在整车通信系统中应用比较广泛,鉴于此,本篇文章将以CRC8校验为例,介绍在BabyLIN产品中如何使用CRC校验算法。

01 CRC校验原理

在CAN报文中,增加Checksum校验,能够用来检测和校验数据传输或保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。CRC8校验算法,就是对一帧报文进行校验和计算的算法。

其主要原理是:在发送节点,根据要传送的数据序列,以一定的规则产生一个校验用的校验码(CRC码),附在原始报文中,构成一个新的数据序列,然后发送出去。在接收节点,根据报文信息和CRC码之间遵循的规则进行检验,校验采用计算机的模二除法(即生成多项式)做异或运算,进行异或运算时除数和被除数最高位对齐,进行按位异或运算,若最终的数据能被除尽,则传输正确;否则,传输错误。

02 CRC算法实现

在自定义CRC算法中,CRC算法在线计算工具中需要填写以下六项参数。(具体的CRC算法代码实现这里不做展示)

1、宽度位数:CRC校验结果的比特数。支持 8 位,16 位,32 位和 64 位。

2、多项式POLY:生成公式的简写,以16进制表示。忽略最高位的"1"。

3、初始值INIT:算法初始预置值,以16进制表示。

4、输入数据反转REFIN:输入数据的每个字节是否按位反转。

5、输出数据反转REFOUT:在计算后之后,结果输出之前,整个数据是否按位反转。

6、结果异或值XOROUT:计算结果与此参数异或后得到最终的CRC值。

03 BabyLIN应用与验证

BabyLIN产品的SDF程序编写中,在SessionConf软件的Signalfunctios中定义了CRC算法的实现。具体的CRC算法实现所要设置的参数值[*4][*5][*6][*11]和CRC算法在线计算工具基本一致。

如下图CRC8算法实现所示,实际中选择具体的报文帧[*0]进行CRC校验即可,报文中进行CRC校验的数据序列[*1][*2][*7][*8][*9][*10],以及CRC校验值存放位置[*3]均可根据实际情况设置。

Signalfunctios中CRC-8 Bit实现具体需要设置的参数项的含义解释如图:

导入含有CRC算法的SDF程序,在BabyLIN产品中建立与ECU的通信,得到CRC算法实现结果,可以看出,得到的校验值与CRC算法在线计算工具中的计算结果一致。

结语

通过在BabyLIN产品中实现CRC算法,我们可以确保数据传输的准确性和可靠性。通过合理设置CRC算法的参数,以及正确应用在数据传输过程中,我们可以大大提高数据传输的稳定性,从而为各种通信系统的正常运行提供重要保障。未来,我们还将在总线通信中继续探索和应用更先进的校验算法和技术,并在BabyLIN产品中进行实际应用。如有任何疑问,欢迎咨询虹科工作人员。

虹科是一家在通讯领域,尤其是汽车电子和智能自动化领域拥有超过15年经验的高科技公司,致力于为客户提供CAN/CAN FD、LIN、车载以太网、TSN等全方位的一站式智能互联解决方案。

","gnid":"94f6b80eb2544262b","img_data":[{"flag":2,"img":[{"desc":"","height":763,"title":"","url":"https://p0.ssl.img.360kuai.com/t01a229e8987fc727f3.jpg","width":1080},{"desc":"","height":"920","title":"","url":"https://p0.ssl.img.360kuai.com/t018bd4cd2d6390eb33.jpg","width":"1382"},{"desc":"","height":"301","title":"","url":"https://p0.ssl.img.360kuai.com/t01890e0d3ac8d3ef90.jpg","width":"1024"},{"desc":"","height":"814","title":"","url":"https://p0.ssl.img.360kuai.com/t010070cffee64b8cfc.jpg","width":"1166"},{"desc":"","height":"836","title":"","url":"https://p0.ssl.img.360kuai.com/t013a60b51c7e43872d.jpg","width":"1146"},{"desc":"","height":"602","title":"","url":"https://p0.ssl.img.360kuai.com/t01f068d71d5e54a741.jpg","width":"1242"},{"desc":"","height":"844","title":"","url":"https://p0.ssl.img.360kuai.com/t016d28bcb5e2832552.jpg","width":"1072"}]}],"original":0,"pat":"art_src_3,sexf,sex4,sexc,fts0,sts0","powerby":"pika","pub_time":1704184200000,"pure":"","rawurl":"http://zm.news.so.com/76333517f549a9462420b02ceb7627d1","redirect":0,"rptid":"d4ba3fed9d32777c","rss_ext":[],"s":"t","src":"虹科技术","tag":[],"title":"虹科技术 | 保障数据传输稳定性:BabyLIN产品的CRC算法实现

叔之天335316进制怎么算 怎么做 为什么怎么做 -
俞界刻18028899345 ______ Lz您好:二进制的算法是满二进一 十六进制的算法是满十六进一 与十进制的满十进一是一样的 111+111=1110 (1+1满二就要进1写0 每位都是一样 但是除了最后一位是0外 其余各位还要加上进上来的一 所以 答案为1110) B+A 先看B和A分别对...

叔之天3353十六进制数如何转换成十进制? -
俞界刻18028899345 ______ 16进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方… 所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方. 进制转换表: 例:2AF5换...

叔之天335316进制算法怎么算噢
俞界刻18028899345 ______ (abcdef)16 十进制数=a*16^5+b*16^4+c*16^3+d*16^2+e*16^1+f*16^0

叔之天3353计算机中的二进制十进制八进制十六进制怎样换算? -
俞界刻18028899345 ______ 给你举个例子吧 二进制只有0和1 八进制0到7, 十进制0到9 十六进制0到F 比如:二进制:11001010 八进制312 因为3(11) 1(001) 2(010)三位二进制组成一位八进制 十进制:202 十六进制:CB 因为C(1100)B(1010)四位二进制组成一位十六进制

叔之天335316进制,2进制和10进制的换算,怎么换算? -
俞界刻18028899345 ______ 在16进制里 a=10 b=11 c=12 d=13 e=14 f=15 abcd = 10*16^3+11*16^2+12*16+13 = 43981 (十进制) 1010 = 0 + 1*2 + 0 + 1*2^3 = 10 | | | | 8421 看着左边的 简单算法 8+2 =10 37 = 32 + 4 + 1 = 100101 (二进制) = 25 (16进制)

叔之天335316进制算法,如下............ -
俞界刻18028899345 ______ 电压值 E6H,除以 64H(即一百),得出 2,余数为 1EH;余数 1EH,除以 0AH(即十),得出 3,余数为 0.所以,值为230.

叔之天335316进制怎么算啊 0021A4C8加上20等于多少 -
俞界刻18028899345 ______[答案] 十六进制就是每16个数进一位的计算方法.从0到15,这15个数分别表示为0~9,A,B,C,D,E,F. 你给出的两个数,如果都是用十六进制表示的话,他们的和可以这样计算.按位计算,只有后两位相加,分别是C+2=E,8+0=8 所以,结果就是0021A4E8 欢迎...

叔之天3353计算机中常用16进制,采用数字0~9和字母A~F共16个计数符号与10进制得对应关系如下表: 16进制0123456789ABCDEF10进制01234567891011121... -
俞界刻18028899345 ______[选项] A. 6E B. 7C C. 5F D. B0

叔之天3353谁知道二进制、八进制、10进制.16进制的转化 越详细越好 -
俞界刻18028899345 ______ 平常我们用的都是十进制,9+1=10,这样等于10时就变成二位数.就是10进1.如果是十六进制的话,9+1=A,因为十六进制的10、11、12、13、14、15都是用A、B、C、...

叔之天3353十进制的和十六进制的算法谁知道!?!!!
俞界刻18028899345 ______ 由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题. 但,二进制数太长了.比如int 类型占用4个字节,32位.比如100,用int类型的二进制数表达将是: 0000 0000 0000 0000 0110 0100 ...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024