数据传

  于达标平等首该系列博文中讲师了MATLAB待处理数量形容入.bin二进制数据文件的经过,接下去要用数据经过以极网发送至ZYNQ验证平台。往日通晓过Xilinx公司面向DSP开发之System
Generator可以经过硬件协仿真的形式,举办算法板级验证。一个是自我未熟稔这种艺术,再一个不够通用性,也无力回天在网层面举行硬件验证。当然方案来许多,熟知上位机的仇人了好团结写个软件形成多少传和算法结果相比等力量。

2017/09/25
总的看得加快进度了,他娘的平等天日志量有0.5独T左右,真是日了狗,好当新加载了剩下几块硬盘。可是躲的过初一,躲不了十五啊。
要得抢把这个日记被处理了。

  那里选拔最好简单易行的方案:在上位机通过网调试帮手将数据打包并发送至以极网端口,ZYNQ端利用W5500硬件协议栈芯片解析数据。有人可能相会说之所以ZYNQ这么高端的装备还下外接协议栈芯片连接为无比网真是荒废,这里虽算是开个头吧,只好说依据能力与现有标准采纳传输方案。假使数据量较充裕之场面,可考虑就此LWIP开源协议栈或直接用verilogHDL编写UDP/IP协议及MAC控制器的计贯彻1000Mbps速率传输。


  本文重要总计内容包括:TCP协议基础
网络调试帮手应用事项,以及W5500底叫移植。为了保证数据正确性,采取TCP这等同可依传输协议。以下介绍两单比浅显易懂的博文,供没有网络与TCP协议基础的意中人参考。(见参考链接1
2)

有关加载硬盘这有,因为没艺术使多块硬盘挂载在同等目录下,只好用LVM的不二法门了。具体处理的不二法门与以前鼓捣虚拟机的当儿一般。

  发出矣上述基础知识,我们即使得正确配置网络参数了。查看W5500令着网络参数配置有代码:


 1 void Load_Net_Parameters(void) {
 2     //加载端口0的工作模式,TCP客户端模式
 3     S0_Mode = TCP_CLIENT; //UDP_MODE
 4 
 5     Gateway_IP[0] = 192; //加载设备网关参数
 6     Gateway_IP[1] = 168;
 7     Gateway_IP[2] = 90;
 8     Gateway_IP[3] = 1;
 9 
10     Sub_Mask[0] = 255; //加载设备子网掩码
11     Sub_Mask[1] = 255;
12     Sub_Mask[2] = 255;
13     Sub_Mask[3] = 0;
14 
15     Phy_Addr[0] = 0x0c; //加载设备物理地址(mac)
16     Phy_Addr[1] = 0x29;
17     Phy_Addr[2] = 0xab;
18     Phy_Addr[3] = 0x7c;
19     Phy_Addr[4] = 0x00;
20     Phy_Addr[5] = 0x01;
21 
22     IP_Addr[0] = 192; //加载本设备(FPGA端)IP地址
23     IP_Addr[1] = 168;
24     IP_Addr[2] = 90;
25     IP_Addr[3] = 199;
26     //加载设备端口0(socket 0)的端口号5000
27     S0_Port[0] = 0x13; //十六进制 1388转换成十进制为5000
28     S0_Port[1] = 0x88;
29 
30     //设定的是客户端模式
31     if(S0_Mode == TCP_CLIENT)
32     {
33     //加载端口0的目的(如调试用的pc机)IP地址    
34         S0_DIP[0] = 192;
35         S0_DIP[1] = 168;
36         S0_DIP[2] = 90;
37         S0_DIP[3] = 188;
38         
39     //加载端口0的目的(如调试用的pc机)端口号6000
40         S0_DPort[0] = 0x17; 
41         S0_DPort[1] = 0x70;
42     }
43 
44     //设定的是UDP模式,初始化给一个目的IP和端口号。
45     if(S0_Mode == UDP_MODE)
46     {
47     //加载端口0的目的(如调试用的pc机)IP地址
48         UDP_DIPR[0] = 192;
49         UDP_DIPR[1] = 168;
50         UDP_DIPR[2] = 90;
51         UDP_DIPR[3] = 188;
52     //加载端口0的目的(如调试用的pc机)端口号6000
53         UDP_DPORT[0] = 0x17;
54         UDP_DPORT[1] = 0x70;
55     }
56 }

以尽可能的滑坡带宽的占,可能于日记的处理,仍然要美观考虑一下。
重倘使,是未是若拿这么些日记直接换出,如故怎么,这为是单问题。

   此处将PC端作为TCP协议被服务器,ZYNQ验证平台就是客户端,即为“呼叫端”。由代码看出PC端IP地址为192.168.90.188,子网掩码应设为:255.255.255.0,这样ZYNQ与PC端在一个子网内,可从来通过网线连接。
端口号也6000。驱动着涵盖W5500
SPI用户接口时先后部分代码,可略修改调用本人的博文《ZYNQ
EMIO使用以及可拔取封装》
备受之EMIO接口函数(见参考链接3)。


  遵照下边参数配置好PC端的IP地址
子网掩码后,我们来拘禁下网调试援手的“坑”。

传输21G文本要4分钟功能,这样的话,就待一个钟头来举行处理。
自家错擦擦,其实就一个钟头也没什么关系,不过这一个就是可能把自己程序拖累了。

图片 1

  基本以没什么可说之,网上教程很多。关键是写红框的一部分。这里的出殡周期要尽可能设置大些,因为整个数据文件会受割成多单数据包,每个包的出殡和同意重传时间由总的发送周期分配拿到。假使文件于生,发送周期而装的比较小,会招致后半局部为废(所装时间独自够传输文件的面前半片段)。RX方向接收数据时选取接转向文件,注意少碰:1
收文件之扩充名相同要为.bin 2 并非挑选十六进制呈现,否则接收数据会变成字符串(可能是软件bug)。

  W5500之C语言驱动基于网上传的STM32本子代码。其中使用API为Process_Socket_Data中的发送和收取函数:Write_SOCK_Data_Buffer
Read_SOCK_Data_Buffer。两者间控制读写指针偏移以及调用SPI接口函数完成多少传,此处不开展详述,关于W5500的C语言驱动可圈教程视频(见参考链接4)。最终附上环回数据的demo效果:

图片 2

   对于网传输部分的总就到这里,后止或会面设想选取LWIP完成高速传输。数据传ZYNQ了,下一致步当然是预先缓存起来,再发送至PL端验证算法模块,这样做的便宜是能够如法炮制实时数据流,比如验证通信算法和视频拍卖算法时越适用。华丽分割线


参照链接:

  1 五分钟读懂TCP 协商——TCP协议简介 –
CSDN博客 

  https://blog.csdn.net/ningdaxing1994/article/details/73076795

  2 处理器网络:
IP地址,子网掩码,网段表示拟,默认网关,DNS服务器详解 – 互联网隐者 –
果壳网

  https://www.cnblogs.com/iceJava/p/5372033.html

  3《ZYNQ EMIO使用与可接纳封装》 –
没落骑士 – 新浪 ***
 ***

  https://www.cnblogs.com/moluoqishi/p/9198772.html

  4 STM32F103+W5500
全硬件以太网开发板视频教程 (1)- TCP服务器(静态)_马铃薯视频

  http://new-play.tudou.com/v/XMzQyODk0NjAzNg==.html?from=s1.8-1-1.2

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图