資源簡介
MICORCHIP出的適合單片機(jī)使用的28腳SPI接口以太網(wǎng)芯片ENC28J60,工業(yè)產(chǎn)品,還不貴。偶然得到一份寶貴資料,特拿到這里來大家一起研究。微小化的智能產(chǎn)品中肯定用的著,不象RTL8019那么多引腳。還支持網(wǎng)線自動極性檢測和校正,唯一的缺點(diǎn)就是最大通訊速率為10Mb/S,單片機(jī)上用是足夠了。大家有用它做過程序也不妨拿來共勉。 供學(xué)習(xí)用哦~~~

代碼片段和文件信息
/*==============================================*/
// ARP協(xié)議程序
// 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?循環(huán)加入點(diǎn)
/*==============================================*/
// 函數(shù)名稱: arp動態(tài)緩沖區(qū)初始化
/*==============================================*/
void?arptab_init(void)
{
unsigned?char ij;
for(i?=?0;?i? {
for(j?=?0;?j?12;?j++)
{
arp_tab[i].bytes[j]?=?0;
}
}
}
/*==============================================*/
// 函數(shù)名稱: 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;//應(yīng)答代碼
? for(i=46;i<64;i++)
txdnetbuf.bytedata.bytebuf[i]=0x00;
encPacketSend(&castaddress&txdnetbuf60ARP_PACKET);
}
/*==============================================*/
// 函數(shù)名稱: arp應(yīng)答
/*==============================================*/
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]))
{ //表示是向我這個(gè)ip地址的請求
???? for(i?=?16;?i?64;?i++)
{ //復(fù)制arp到發(fā)送緩沖區(qū)
???? txdnetbuf.bytedata.bytebuf[i]=rxdnetbuf.bytedata.bytebuf[i];
???? }
???? for(i?=?0;?i?6;?i++)
{ //復(fù)制對方網(wǎng)卡地址或網(wǎng)關(guān)地址???
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;//響應(yīng)代碼
//Lib_Uart_SendString(“arp?answer?tx\n“);
encPacketSend(&answeraddress&txdnetbuf60ARP_PACKET);
}
else
{
? // Lib_Uart_SendString(“arp?request?ip?error\n“);
}
}
/*==============================================*/
// 函數(shù)名稱: arp應(yīng)答處理
/*======================================
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????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最全資料\新型以太網(wǎng)控制器?ENC28J60?及其接口技術(shù).pdf
............此處省略8個(gè)文件信息
評論
共有 條評論