资源简介
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个文件信息
- 上一篇:数字逻辑基础与Verilog设计(原书第2版)光盘
- 下一篇:nsnif3.ppt
相关资源
- Hadoop Security Protecting Your Big Data Platf
- 在PSPICE 中使用德州仪器(TI)SPICE 模
- Spire.Doc和Spire.Xls集合_去水印破解版
- UPS方案dspic
- stm32GPIO模拟spi驱动NRF2401
- dsPIC 语言工具入门
- Setup for TheBestSpinner
- lcd STM32 SPI三线通信驱动
- ESPI说明书
- STM32F103C8T6核心板 + ENC28J60
- ESP8266 hspi202465
- STM32F103 MCP2515
- 英飞凌磁传感器 TLE5012b STM32F103 SPI 源
- Gillespie T. D. (Thomas D.) Fundamentals o
- PSpice电路原理与实现
- STM32 SPI双机中断通信
- Enfocus PitStop Pro 10破解补丁+高清PDF图文
- ENC28J60最全资料,含51AVRLPCSTM32程序源
- (启示录)Inspired: How To Create Product
- 电容传感器pcap01数据读取及发送程序
- 中景园电子0.96OLED显示屏_STM32_F103C8系
- STM32 SPI读写SD卡
- Spire.doc 5.2.9.zip
- 基于nRF51822调试的LIS3DH传感器代码,使
- ADI公司芯片所有的spice模型
- 安卓自定义spinner
- hspice代码
- STM32使用cubemx和HAL库驱动ICM20602
- ezwspiht算法入门
- pspice编程技术
评论
共有 条评论