完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我想知道如何计算 BMHD 中的逆 CRC 值。
以Ifx_Ssw.h中的示例为例 Ifx_Ssw_Bmhd结构的头文件和手册。 /** BMHD 的结构定义 * 根据 BMI 和起始地址计算并更新各自的 CRC 和反向 CRC 值。 * 使用 IEEE 802.3 标准中定义的 CRC-32 多项式生成 CRC 值。 CRC 算法 * 将输入数据视为比特流。 * * 埙.要计算 CRC,数据必须按大二进制顺序给出。 * 为下列数值: * bmi= 0x00FE * bmhdid= 0xB359 * stad= 0xA00A0000 4.ADC 增益计算 * 输入 = 0xB35900FEA00A0000 * CRC 值 = 0x3CEED0A6 * CRC 反向 = 0xC3112F59 */ 因此,CRC 值 0x3CEED0A6 存储在内存中,因为平台是小数位: A6 D0 3C EE -> 10100110 11010000 00111100 11101110 然后对数值进行位反转: 01110111 00111100 00001011 01100101 最后,这种情况被颠倒过来: 10001000 11000011 11110100 10011010 -> 88 C3 F4 9A 能告诉我哪里出错了吗? |
|
相关推荐
1个回答
|
|
要计算BMHD中的逆CRC值,我们需要遵循以下步骤:
1. 首先,我们需要了解CRC(循环冗余校验)的概念。CRC是一种用于检测数据传输或存储过程中错误的技术。在这个问题中,我们使用的是IEEE 802.3标准中定义的CRC-32多项式。 2. 根据给定的示例,我们有以下参数: - bmi = 0x00FE - bmhdid = 0xB359 - stad = 0xA00A0000 3. 计算CRC值: - 将输入数据视为比特流,按照二进制顺序排列:0xB35900FEA00A0000 - 使用CRC-32多项式生成CRC值。在这种情况下,CRC值为0x3CEED0A6。 4. 计算逆CRC值: - 逆CRC值是将CRC值的二进制位反转得到的。例如,如果CRC值为0x3CEED0A6,那么逆CRC值为0xC3112F59。 5. 将逆CRC值与原始数据结合,以生成BMHD结构。在这种情况下,逆CRC值将与bmi、bmhdid和stad结合。 6. 最后,将生成的BMHD结构用于进一步的处理或通信。 总结: 要计算BMHD中的逆CRC值,首先需要根据IEEE 802.3标准计算CRC值,然后将CRC值的二进制位反转以获得逆CRC值。在这个例子中,逆CRC值为0xC3112F59。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教个XMC1404调试串口接收时为什么一直无法接收数据的问题
364 浏览 0 评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
6296 浏览 2 评论
4108 浏览 9 评论
请问TLE5012B_E1000 启动后为什么位置不能正确获取
3634 浏览 9 评论
1232 浏览 8 评论
459浏览 2评论
272浏览 2评论
378浏览 2评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
6321浏览 2评论
如果是打开已有的dave工程,怎么查看这个工程选择的mcu型号?
459浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 04:51 , Processed in 0.433599 second(s), Total 46, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号