STUDY123 发表于 2012-5-11 15:23:17

(求助)关于以太网发送总是被丢包

发送顺序如下:
1,发送前导码8BYTE(1010....11)
2, 发送目标地址6BYTE,用广播方式发,则为48个1(“1111...1”)
3,发送源地址6BYTE,这个不清楚,48个1或48个0好像都不对的
4,发送数据长度2BYTE,192个数据则为0X00C0
5,发送192BYTE的数据
6, CRC,没有做校验

STUDY123 发表于 2012-5-11 15:26:40

用wireshark抓也抓不到的

stdio 发表于 2012-5-11 15:36:24

没CRC不行

STUDY123 发表于 2012-5-11 15:51:44

谢谢,做个CRC进去试试

STUDY123 发表于 2012-5-14 08:20:18

哪位高人有相关教材指导一下,或相关文章的链接

hy2515131 发表于 2012-5-14 09:09:00

LZ上代码啊,想求助,又不上代码。。。

wodish 发表于 2012-5-14 10:54:08

是不是接收方mac的crc校验打开了?

STUDY123 发表于 2012-5-14 10:55:03



when 3 =>if(head_cnt = 7)then-----------发送前导码(占用8个BYTE)                               
          ddio_h <= "1011"; ----0XD5
            ddio_l <= "1010";
          head_cnt := 0;
          sta := 4;                                       
       else
          ddio_h <= "1010"; ----0X55
            ddio_l <= "1010";
          head_cnt := head_cnt + 1;
        end if;
when 4 =>         --发送目标地址(占用6个BYTE)(广播方式发送)
            if(da_cnt = 5)then
             ddio_h <= "1111";
             ddio_l <= "1111";
             sta := 5;
             da_cnt := 0;
          else
             ddio_h <= "1111";
             ddio_l <= "1111";
             da_cnt := da_cnt + 1;
          end if;
when 5 =>         --发送源地址(占用6个BYTE)(??不确定是不是全0)
            if(da_cnt = 5)then
                ddio_h <= "0000";
                ddio_l <= "0000";
                sta := 6;
                sa_cnt := 0;
          else
                ddio_h <= "0000";
                ddio_l <= "0000";
                sa_cnt := sa_cnt + 1;
          end if;
        when 6 => ddio_h <= "1100";----发送数据长度(占用2个BYTE),64*3=192
                ddio_l <= "0000";
                               sta := 7;
        when 7 => ddio_h <= "0000";
                ddio_l <= "0000";
                               sta := 8;
            
       when 8 =>sta := 9;----发送模拟数据        
                  ddio_h <= "1100";
                  ddio_l <= "1100";                               
when 9 =>       sta := 10;----发送模拟数据
                  ddio_h <= "1100";
                ddio_l <= "1100";
when 10 =>          ddio_h <= "1100";----发送模拟数据
                  ddio_l <= "1100";
                if(col_cnt = 63)then
                   col_cnt := 0 ;
                   if(row_cnt = 63)then
                      row_cnt := 0 ;
                      sta := 12;
                      p0tx_ctl <= '0';
                      p1tx_ctl <= '0';
                   else
                      row_cnt := row_cnt + 1;
                      sta := 3;
                   end if;       
                else
               col_cnt := col_cnt + 1;
               sta := 8;
             end if;
when 11|12=> null;
         ddio_h <= "0000";
         ddio_l <= "0000";       
                       sram_rd_addr <="000000000000";
when others => null;       

STUDY123 发表于 2012-5-14 13:47:03

wodish 发表于 2012-5-14 10:54 static/image/common/back.gif
是不是接收方mac的crc校验打开了?

现在是接收方的PHY芯片,测不到数据及使能信号,估计发送方没做CRC,所以数据被屏了

wodish 发表于 2012-5-14 14:56:34

STUDY123 发表于 2012-5-14 13:47 static/image/common/back.gif
现在是接收方的PHY芯片,测不到数据及使能信号,估计发送方没做CRC,所以数据被屏了 ...

很有可能 发送方的芯片应该是要配置一下 让他不要去管crc或者自己在算一次crc
页: [1]
查看完整版本: (求助)关于以太网发送总是被丢包