芯路恒电子技术论坛

 找回密码
 立即注册
热搜: 合集
查看: 5784|回复: 0

关于小梅哥以太网例程中CRC32校验的问题以及我的个人见解

[复制链接]
  • TA的每日心情
    开心
    2021-5-5 09:16
  • 10

    主题

    26

    帖子

    390

    积分

    中级会员

    Rank: 4

    积分
    390
    发表于 2019-9-2 22:28:42 | 显示全部楼层 |阅读模式
    本帖最后由 xiaoxiao 于 2020-4-24 16:33 编辑
    手动CRC32校验0x43253686,计算器得到如下结果:0x1BA41BA4,换算成以太网数据发送格式:先以字节为单位对调高位字节和低位字节的顺序:A41BA41B;对于一个字节,百兆以太网的发送顺序是先发送字节的低4位,再发送字节的高4位,即以4位数据为一个单位对调顺序:4AB14AB1

    CRC校验结果

    CRC校验结果


    小梅哥提供的自动CRC32程序,Enable在传输目的Mac地址的第一个字节时拉高,一直到传输完最后一个字节数据再拉低;Initialize在空闲态置高,开始计算校验值时拉低crc_eth为符合以太网发送顺序的crc32校验值,可直接拿过来从最高位开始按顺序发送完,无需变更位置。
    该程序仿真得到的结果如下:
    47)YX}R[SC4JPO`}~%WPK{Q.png Q1R]_R5S(6G)JI(KW@QJLCX.png    

    CRC_eth_pre=44889c16;     CRC_eth=aab14ab1;  {CRC_eth_pre[31:28],CRC_eth[27:0]}=4ab14ab1与预期相符  正确的CRC校验值是两个值的组合。因此在编写mac层程序时,先发送CRC_eth_pre[31:28],再依次发送CRC_eth[27:0]。


    二、关于input [0:3]和input [3:0],试了下不同的输入方法,仿真得到的结果不同。所以因该是通过input [0:3]输入的数据高低位颠倒了。






    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|小黑屋|Archiver|芯路恒电子技术论坛 |鄂ICP备2021003648号

    GMT+8, 2024-4-20 12:53 , Processed in 0.109388 second(s), 35 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

    快速回复 返回顶部 返回列表