TCP_IP_C
所属分类:单片机开发
开发工具:Objective-C
文件大小:141KB
下载次数:7
上传日期:2011-12-15 14:05:04
上 传 者:
tomasyy
说明: 通过单片机实现TCP/IP,ENC28J60是一款专门为单片机应用而设计的以太网控制芯片,一共28个引脚,通过SPI总线与单片机芯片连接,占用口线少,速度也比较快,对于软件开发而言,简化了设计工程师的设计难度
(Through the MCU TCP/IP, ENC28J60 is a single-chip applications specifically designed for the Ethernet controller chip, a total of 28 pins, the SPI bus to connect with single chip, take a small port line speed is relatively fast, the software development, the design engineers to simplify the design of the difficulty of)
文件列表:
armok01127718\eth-remote-device.pdf (14717, 2006-07-18)
armok01127718\eth_rem_dev-1.1.tar.gz (62227, 2006-07-18)
armok01127718\eth_rem_dev-1.1\Makefile (2903, 2006-06-26)
armok01127718\eth_rem_dev-1.1\enc28j60.c (10414, 2006-07-01)
armok01127718\eth_rem_dev-1.1\enc28j60.h (9524, 2006-07-01)
armok01127718\eth_rem_dev-1.1\ip_arp_udp.c (7237, 2006-06-22)
armok01127718\eth_rem_dev-1.1\net.h (2082, 2006-06-18)
armok01127718\eth_rem_dev-1.1\main.c (7540, 2006-07-02)
armok01127718\eth_rem_dev-1.1\ip_arp_udp.h (910, 2006-06-18)
armok01127718\eth_rem_dev-1.1\avr_compat.h (1198, 2006-06-18)
armok01127718\eth_rem_dev-1.1\timeout.c (836, 2006-06-18)
armok01127718\eth_rem_dev-1.1\timeout.h (177, 2006-06-17)
armok01127718\eth_rem_dev-1.1\prg_load_uc_88 (1018, 2006-06-17)
armok01127718\eth_rem_dev-1.1\prg_fusebit_uc_88 (2990, 2006-06-19)
armok01127718\eth_rem_dev-1.1\test1.c (4183, 2006-06-24)
armok01127718\eth_rem_dev-1.1\test0.c (1752, 2006-06-18)
armok01127718\eth_rem_dev-1.1\hardware\eth-remote-device.pdf (14717, 2006-06-26)
armok01127718\eth_rem_dev-1.1\hardware\eth-remote-device.sch (12832, 2006-06-26)
armok01127718\eth_rem_dev-1.1\hardware\WhatIsWhat.txt (352, 2006-06-26)
armok01127718\eth_rem_dev-1.1\hardware\magjack08b01x1t03_pcb_element (926, 2006-06-21)
armok01127718\eth_rem_dev-1.1\hardware\enc28j60_ph.sym (5742, 2006-06-20)
armok01127718\eth_rem_dev-1.1\hardware\magjack.sym (4699, 2006-06-22)
armok01127718\eth_rem_dev-1.1\hardware (0, 2006-09-01)
armok01127718\eth_rem_dev-1.1\test2.c (4133, 2006-06-24)
armok01127718\eth_rem_dev-1.1\udpcom\unix\udpcom.c (4817, 2006-07-01)
armok01127718\eth_rem_dev-1.1\udpcom\unix\Makefile (289, 2006-06-25)
armok01127718\eth_rem_dev-1.1\udpcom\unix\precompiled\udpcom_MacOSX_10.4_PPC (14264, 2006-06-25)
armok01127718\eth_rem_dev-1.1\udpcom\unix\precompiled\md5sum.txt (104, 2006-07-01)
armok01127718\eth_rem_dev-1.1\udpcom\unix\precompiled\udpcom_linux (6604, 2006-07-01)
armok01127718\eth_rem_dev-1.1\udpcom\unix\precompiled (0, 2006-09-01)
armok01127718\eth_rem_dev-1.1\udpcom\unix (0, 2006-09-01)
armok01127718\eth_rem_dev-1.1\udpcom\win\Makefile (351, 2006-06-25)
armok01127718\eth_rem_dev-1.1\udpcom\win\udpcom.c (4737, 2006-06-25)
armok01127718\eth_rem_dev-1.1\udpcom\win\udpcom_w98.exe (27216, 2006-06-25)
armok01127718\eth_rem_dev-1.1\udpcom\win\md5sum.txt (49, 2006-06-26)
armok01127718\eth_rem_dev-1.1\udpcom\win (0, 2006-09-01)
armok01127718\eth_rem_dev-1.1\udpcom (0, 2006-09-01)
... ...
# vim:sw=8:ts=8:si:et
This is the software for the tuxgraphics.org
ethernet remote device. See http://tuxgraphics.org/electronics/
Copyright of most software and all diagrams: Guido Socher
Copyright of enc28j60.c/enc28j60.h Pascal Stang (http://www.procyonengineering.com/)
and small modifications by Guido Socher
License for everything: GPL V2
---------------------------------------------------------------------------
All parts needed to build this AVR ethernet solution can be ordered from
http://shop.tuxgraphics.org/
Note that the magnetics need to fit exactly the requirements of the enc28j60
chip. You can not just take any transformer.
!! READ THIS FIRST !!
---------------------
! Edit the file main.c and change the 2 lines:
! static uint8_t mymac[6] = {0x54,0x55,0x58,0x10,0x00,0x24};
! static uint8_t myip[4] = {10,0,0,24};
For the first device you build you will not need to change the mymac line.
But you will probably need to change the IP address (myip). It must be a
free address from the address range in your home network.
There is a range of private addresses (not routed on the public internet)
which you can use:
Netmask Network Addresses
255.0.0.0 10.0.0.0 - 10.255.255.255
255.255.0.0 172.16.0.0 - 172.31.255.255
255.255.255.0 192.168.0.0 - 192.168.255.255
Example: you wlan router might have 192.168.1.1, your PC might have
192.168.1.2. This means you could e.g use 192.168.1.10 and leave some
room for more PCs. If you use DHCP then make sure that the address it not
double allocated (exclude it from the DHCP range).
To compile the final software and download it to the Atmega88 use the commands:
make
make load
You need at least avrlibc-1.4.x !! The atmega88 will not work with earilier
version.
! Note your programmer might interfer with the enc28j60! For the avrusb500
! with 30cm cable you can normally leave the cable on. For all other programmers
! it is however saver to remove the programmer cable and power down/up the device.
! This is because the SPI interface is used for loading of the software and
! communication to the enc28j60.
To see a list of all possible build targets run the command:
make help
Loading the test software
-------------------------
Test of the atmega88:
make test0
make load_test0
This will case a LED on PB1 to blink with 1Hz
---------------
Edit the file test1.c and change the lines (see description above):
static uint8_t mymac[6] = {0x54,0x55,0x58,0x10,0x00,0x24};
static uint8_t myip[4] = {10,0,0,24};
make test1
make load_test1
The program will perform a LED test for the LEDs on the magjack.
The LEDs will go on and off after startup and then the green LED
should stray on indicating that the link is up. When you ping the circuit
it will answer. The yellow LED should blink when the a packet arrives.
The red LED on PB1 should go on/off with every ping packet.
---------------
Edit the file test1.c and change the lines (see description above):
static uint8_t mymac[6] = {0x54,0x55,0x58,0x10,0x00,0x24};
static uint8_t myip[4] = {10,0,0,24};
make test2
make load_test2
The green LED on the magjack should go on indicating that the link is up.
When you ping the circuit it will answer. The yellow LED should blink when
the a packet arrives.
You can use the program udpcom and send the string test to the device. It will
answer with "hello". Exmaple:
./udpcom/unix/udpcom test 10.0.0.24
II: data: test, ip: 10.0.0.24 port: 1200
OK: 10.0.0.24: hello
Using the eth_rem_dev
---------------------
The only supported useful function in this release is to switch on or
of the transistor connected to PD7.
The command to switch on is: t=1
The command to switch off is: t=0
Query the status: t=?
The udpcom syntax is: udpcom password,X=Y IP-addr
Here is an example:
./udpcom/unix/udpcom secret,t=0 10.0.0.24
II: data: secret,t=0, ip: 10.0.0.24 port: 1200
OK: 10.0.0.24: t=0
./udpcom/unix/udpcom secret,t=1 10.0.0.24
II: data: secret,t=1, ip: 10.0.0.24 port: 1200
OK: 10.0.0.24: t=1
./udpcom/unix/udpcom secret,t=? 10.0.0.24
II: data: secret,t=?, ip: 10.0.0.24 port: 1200
OK: 10.0.0.24: t=1
./udpcom/unix/udpcom secret,t=0 10.0.0.24
II: data: secret,t=0, ip: 10.0.0.24 port: 1200
OK: 10.0.0.24: t=0
./udpcom/unix/udpcom secret,t=? 10.0.0.24
II: data: secret,t=?, ip: 10.0.0.24 port: 1200
OK: 10.0.0.24: t=0
Messages form a Network analyser
--------------------------------
traffic.txt and traffic.cap are
decoded and binary messages of the communication with the
eth_rem_dev. This will help you to understand the code.
Revision history
----------------
2006-05-01: version 0.9 -- Last development version
2006-06-24: version 1.0 -- First public version
2006-07-01: version 1.1 -- Problem fix for: Sometimes packets are not
reported from the ENC28J60 to the uC,
file enc28j60.c updated.
-- udpcom updated to accept also host names. Apple and Windows
binaries still need to be recompiled.
近期下载者:
相关文件:
收藏者: