• FPGA实现网络通信时的网络字节序问题


    在上位机软件发送字符abcd
    在鲨鱼上抓包
    这里写图片描写叙述
    用逻辑分析仪从FPGA网络接收管脚分析
    这里写图片描写叙述
    数据接收后存储在位宽为8bit的ram中
    从ram中读32bitUDP数据为

    64636261

    依据以上那个现象,
    之前有个理解偏差,
    所谓的大端小端就是一个读数的顺序不一样。
    对于UDP数据段而言。其数据组成格式是有两方来定的。
    仅仅有协议的头等等,是依照大端来组织,为了是在不同cpu体系中进行通信,
    比方上边发送的是abcd。则udp数据段就是依照abcd来发送的。
    数据到FPGA中
    存储在8bit宽度的ram中(地址从小到大)
    0x61
    0x62
    0x63
    0x64
    nios软核cpu也是小端的,所以
    将这4个字节读取到32bit无符号变量时
    比方alt_u31 buff
    buff=0x64636261;
    高地址数据放在高位
    假设将buff强制转换成(alt_u8)buff输出
    则输出的是0x61,这也是证明nios是小端的一种方法。

    所以整体来讲,网络数据事实上并无什么大小端之说,大小端仅仅是相对于硬件cpu或者网络设备而言的。
    即传输过来的数据是怎样被表示的,

  • 相关阅读:
    vue-nuxtjs
    mongodb4.0支持事务
    promisify,promisifyAll,promise.all实现原理
    nodejs, 阿里oss上传下载图片
    数据库备份与还原
    SQL 数据类型、约束、索引及视图
    数据库的查询
    数据库(增、删、改、查)
    数据库基础知识
    C#语言小结
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/7073463.html
Copyright © 2020-2023  润新知