2020-9-25 UDP通信调整优化

2020-9-25 UDP通信调整优化今日目标:利用Wireshark检测当前程序的丢包率。利用网上的几种方法进行丢包率的优化改良。总结ARM和FPGA通信的总线都有哪些。构建与单片机通讯的并行总线接口。1. 检测当前程序的丢包率1.1 UDP丢包率的统计方法:FPGA端:发送一万个1500Byte的AA(10101010)数据包。上位机端:利用Wireshark检测丢包率。1.2 发送端程序为方便上位机统计,程序设计了3S的初始化时间,初始化结束后开始运行。//初始化计
摘要由CSDN通过智能技术生成

2020-9-25 UDP通信调整优化

今日目标:

  • 利用Wireshark检测当前程序的丢包率。
  • 利用网上的几种方法进行丢包率的优化改良。
  • 总结ARM和FPGA通信的总线都有哪些。
  • 构建与单片机通讯的并行总线接口。

1. 检测当前程序的丢包率

1.1 UDP丢包率的统计方法:

  • FPGA端:发送一万个1500Byte的AA(10101010)数据包。
  • 上位机端:利用Wireshark检测丢包率。

1.2 发送端程序

  1. 为方便上位机统计,程序设计了3S的初始化时间,初始化结束后开始运行。
//初始化计时器,计时3S钟,3s后开始数据发送
always @(negedge clk_125M ) begin
 if(init_delay == 29'd499_999_999)
  init_delay <=29'd500_000_000;
 else if(init_delay < 29'd499_999_999)
  init_delay <= init_delay + 1'd1;
 else
  init_delay <= init_delay;
end
//初始化标志信号
always @(negedge clk_125M) begin
 if(init_delay == 29'd499_999_999)
  init_flag <= 1'b1;
 else 
  init_flag <= init_flag;
end
  1. 发送部分检测到初始化标志位后开始执行UDP发送程序
always@(negedge clk_125M)
   begin
    if(init_flag== 1'd1)
     begin
      case(STATE_UT)
       reset:
        begin
           flag <= 8'd1; //测试
         preamble[0] <= 8'h55;//7个前导码
         preamble[1] <= 8'h55;
         preamble[2] <= 8'h55;
         preamble[3] <= 8'h55;
         preamble[4] <= 8'h55;
         preamble[5] <= 8'h55;
         preamble[6] <= 8'h55;
         preamble[7] <= 8'hD5;//一个0XD5
         pc_mac[0]   <= 8'hff;//发送广播地址FF-FF-FF-FF-FF-FF
         pc_mac[1]   <= 8'hff;
         pc_mac[2]   <= 8'hff;
         pc_mac[3]   <= 8'hff;
         pc_mac[4]   <= 8'hff;
         pc_mac[5]   <= 8'hff;
         board_mac[0]   <= 8'h00;//发送核心板地址 00-0A-35-01-FE-C0
         board_mac[1]   <= 8'h0A;
         board_mac[2]   <= 8'h35;
         board_mac[3]   <= 8'h01;
         board_mac[4]   <= 8'hFE;
         board_mac[5]   <= 8'hC0;
         type_IP[0]  <= 8'h08;//发送协议类型
         type_IP[1]  <= 8'h00;
         TX_ER <= 1'd0;
         TX_EN <= 1'd0;
         crc_en <= 1'd0;
         crc_reset <= 1'd0;
         if( send_cnt < MAX_SEND_CNT) begin
          if(time_cnt == 32'd1000) begin //125MHZ是8是ns,延时8ms发送一包数据
           STATE_UT <= IDEL;
           send_cnt <= send_cnt 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值