瑞萨RA6M4使用模拟SPI操控ENC28J69但ping 不通

1、背景描述:用瑞萨的E2 studio 编译器编写RA6M4通SPI协议操控enc28j60,能够实现ping功能(SPI用的是模拟SPI),我的电脑的IP地址为:192.168.2.57。开发板的IP地址为192.168.2.123 (使用Wireshark分析ping 192.168.2.123为一片空白)。
2、错误描述:代码能够运行,ping 192.168.2.123 -t(无法访问目标主机),一直卡在

        if(eth_type_is_ip_and_my_ip(buf,plen)==0)//过不去,
        {
            continue;
        }

这个函数作用是:检查ip数据包是否是给我们的:判断是否接收到目的地址为本机IP的合法的IP包
在这个函数内部:

unsigned char eth_type_is_ip_and_my_ip(unsigned char *buf,unsigned  int len)
{
    unsigned char i=0;
    //eth+ip+udp header is 42
    if (len<42)
    {
        return(0);
    }
    if(buf[ETH_TYPE_H_P]!=ETHTYPE_IP_H_V || buf[ETH_TYPE_L_P]!=ETHTYPE_IP_L_V)//在这里返回0
    {
        return(0);
    }
    if (buf[IP_HEADER_LEN_VER_P]!=0x45)
    {
        // must be IP V4 and 20 byte header
        return(0);
    }
    while(i<4)
    {
        if(buf[IP_DST_P+i]!=ipaddr[i])
        {
            return(0);
   }
        i++}
    return(1);}

在这里返回0:if(buf[ETH_TYPE_H_P]!=ETHTYPE_IP_H_V || buf[ETH_TYPE_L_P]!=ETHTYPE_IP_L_V)

3.1我的思考1:SPI读取有问题
但使用SPI读取ENC28J60的控制寄存器(ERDPTL,该寄存器在BANK0内,地址为0x00,复位返回值为:0xFA),再使用逻辑分析仪分析可以读出0xFA。
3.2我的思考2:接收到的数据包不对
这个我用逻辑分析仪分析时SPI时,SPI有写有读(但有多段接收全为0,接收到一些数据后又为0)。

不懂, 没办法