码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-06-24 16:27:47      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:data   理解   code   lin   function   ret   组织   ack   图片   

在上位机软件发送字符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或者网络设备而言的。
即传输过来的数据是怎样被表示的,

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

标签:data   理解   code   lin   function   ret   组织   ack   图片   

原文地址:http://www.cnblogs.com/gccbuaa/p/7073463.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!