• 大小: 1.28MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-26
  • 语言: 其他
  • 标签: ENC28J60  SPI  驱动  

资源简介

MICORCHIP出的适合单片机使用的28脚SPI接口以太网芯片ENC28J60,工业产品,还不贵。偶然得到一份宝贵资料,特拿到这里来大家一起研究。微小化的智能产品中肯定用的着,不象RTL8019那么多引脚。还支持网线自动极性检测和校正,唯一的缺点就是最大通讯速率为10Mb/S,单片机上用是足够了。大家有用它做过程序也不妨拿来共勉。 供学习用哦~~~

资源截图

代码片段和文件信息

/*==============================================*/
// ARP协议程序
// FOR ARM DEV 1.0
// 版本: 1.0
// 作者: HAN 3366524@QQ.COM
// 日期: 2005年1月5日
// test ok 2005/1/8
/*==============================================*/

#include “j60.h“


extern union netcard rxdnetbuf;
extern union netcard txdnetbuf;
extern union NetNode myNode;

union arp_table_type arp_tab[MaxLenARPtable];
static unsigned char arpindex = 0; //ARP table 循环加入点

/*==============================================*/
// 函数名称: arp动态缓冲区初始化
/*==============================================*/
void arptab_init(void)
{
unsigned char ij;
for(i = 0; i < MaxLenARPtable; i++)
{
for(j = 0; j < 12; j++)
{
arp_tab[i].bytes[j] = 0;
}
}
}

/*==============================================*/
// 函数名称: arp请求
/*==============================================*/
void arp_request(union ip_address_type *ip_address)
{
unsigned char i;
union ethernet_address_type castaddress;

for(i = 0; i < 6; i++)
{
castaddress.bytes[i] = 0xFF;
txdnetbuf.arpframe.sourcenodeid[i] = myNode.node.mac[i];
}

for(i = 0; i < 4; i++)
{
txdnetbuf.arpframe.sourceip[i] = myNode.nodebytes.ipbytes[i];
txdnetbuf.arpframe.destip[i] = ip_address->bytes[i];
}
txdnetbuf.arpframe.harewaretype=0x0100;
txdnetbuf.arpframe.protocaltype=0x0008;
txdnetbuf.arpframe.halength=0x06;
txdnetbuf.arpframe.palength=0x04;
  txdnetbuf.arpframe.operation=0x0100;//应答代码
  for(i=46;i<64;i++)
txdnetbuf.bytedata.bytebuf[i]=0x00;
encPacketSend(&castaddress&txdnetbuf60ARP_PACKET);
}

/*==============================================*/
// 函数名称: arp应答
/*==============================================*/
void arp_answer(void)
{
unsigned char i;
union ethernet_address_type answeraddress;

if( (rxdnetbuf.arpframe.destip[0] == myNode.nodebytes.ipbytes[0])
&& (rxdnetbuf.arpframe.destip[1] == myNode.nodebytes.ipbytes[1])
&& (rxdnetbuf.arpframe.destip[2] == myNode.nodebytes.ipbytes[2])
&& (rxdnetbuf.arpframe.destip[3] == myNode.nodebytes.ipbytes[3]))
{ //表示是向我这个ip地址的请求
     for(i = 16; i < 64; i++)
{ //复制arp到发送缓冲区
     txdnetbuf.bytedata.bytebuf[i]=rxdnetbuf.bytedata.bytebuf[i];
     }
     for(i = 0; i < 6; i++)
{ //复制对方网卡地址或网关地址   
answeraddress.bytes[i]=rxdnetbuf.etherframe.sourcenodeid[i];
txdnetbuf.arpframe.sourcenodeid[i]=myNode.node.mac[i];
txdnetbuf.arpframe.destnodeid[i]=rxdnetbuf.arpframe.sourcenodeid[i];
     }
for(i = 0; i < 4; i++)
{
txdnetbuf.arpframe.destip[i]=rxdnetbuf.arpframe.sourceip[i];
txdnetbuf.arpframe.sourceip[i]=rxdnetbuf.arpframe.destip[i];
}
txdnetbuf.arpframe.operation=0x0200;//响应代码
//Lib_Uart_SendString(“arp answer tx\n“);
encPacketSend(&answeraddress&txdnetbuf60ARP_PACKET);
}
else
{
  // Lib_Uart_SendString(“arp request ip error\n“);
}
}

/*==============================================*/
// 函数名称: arp应答处理
/*======================================

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       7199  2006-11-27 12:22  ENC28J60最全资料\enc28j60\arp.c

     文件        224  2006-11-10 12:24  ENC28J60最全资料\enc28j60\arp.h

     文件        281  2006-11-26 12:22  ENC28J60最全资料\enc28j60\board.h

     文件      14056  2006-11-27 12:24  ENC28J60最全资料\enc28j60\default\arp.o

     文件         67  2006-11-27 12:24  ENC28J60最全资料\enc28j60\default\dep\arp.o.d

     文件         69  2006-11-27 13:29  ENC28J60最全资料\enc28j60\default\dep\icmp.o.d

     文件        619  2006-11-27 13:24  ENC28J60最全资料\enc28j60\default\dep\j60.o.d

     文件        672  2006-11-27 13:23  ENC28J60最全资料\enc28j60\default\dep\main.o.d

     文件         25  2006-11-27 12:23  ENC28J60最全资料\enc28j60\default\dep\netcomm.o.d

     文件         13  2006-11-27 13:29  ENC28J60最全资料\enc28j60\default\enc28j60.eep

     文件      28174  2006-11-27 13:29  ENC28J60最全资料\enc28j60\default\enc28j60.elf

     文件      18050  2006-11-27 13:29  ENC28J60最全资料\enc28j60\default\enc28j60.hex

     文件       6112  2006-11-27 13:29  ENC28J60最全资料\enc28j60\default\icmp.o

     文件      12556  2006-11-27 13:24  ENC28J60最全资料\enc28j60\default\j60.o

     文件       6476  2006-11-27 13:23  ENC28J60最全资料\enc28j60\default\main.o

     文件       1987  2006-11-27 13:29  ENC28J60最全资料\enc28j60\default\Makefile

     文件       3044  2006-11-27 12:23  ENC28J60最全资料\enc28j60\default\netcomm.o

     文件       5359  2006-11-27 13:35  ENC28J60最全资料\enc28j60\enc28j60.aps

     文件       1883  2006-11-27 13:29  ENC28J60最全资料\enc28j60\icmp.c

     文件         73  2006-11-10 12:22  ENC28J60最全资料\enc28j60\icmp.h

     文件      10979  2006-11-27 13:24  ENC28J60最全资料\enc28j60\j60.c

     文件        370  2006-11-27 12:24  ENC28J60最全资料\enc28j60\j60.h

     文件       2273  2006-11-27 13:23  ENC28J60最全资料\enc28j60\main.c

     文件       5026  2006-11-10 13:03  ENC28J60最全资料\enc28j60\ne2000.h

     文件        751  2006-11-10 12:17  ENC28J60最全资料\enc28j60\netcomm.c

     文件        887  2006-11-27 13:35  ENC28J60最全资料\enc28j60\readme.txt

     文件       6736  2006-11-26 12:16  ENC28J60最全资料\enc28j60\reg.h

     文件    1759195  2007-01-13 10:29  ENC28J60最全资料\ENC28J60_中文.pdf

     文件     149054  2010-02-25 12:59  ENC28J60最全资料\ENC28J60_英文.pdf

     文件     149576  2010-02-25 11:59  ENC28J60最全资料\新型以太网控制器 ENC28J60 及其接口技术.pdf

............此处省略8个文件信息

评论

共有 条评论