Communicating with ethernet?

Is it at all possible for me to manually send and recieve data via an ethernet cable? Like a home-made ethernet shield without the shield and just putting the wires of the cat5 cable into the arduino’s i/o pins? Or is the protocol too large and complex to fit on an arduino?

Thanks
~ReCreate

bump i don’t want to have to do this :frowning:

No.

Reason/s?

You would have to implement all the protocols from the low level CSMA/CD stuff all the way up to the TCP/IP (if needed).

That is VERY difficult, and considreing that the cheapest ethernet shields / add ons cos around 20$ its not worth it

If it could be done why would the ethernet shield exist?

This is one of the best techniques for evaluating any idea, if it’s such a good idea, why isn’t it already being done?

Money money money. Who knows?

What about via serial using SLIP? Would that be any easier?

Is it at all possible for me to manually send and recieve data via an ethernet cable?

I’ll let you decide the answer. From here…

http://www.erg.abdn.ac.uk/users/gorry/course/phy-pages/man.html

Thus for a 10 Mbps Ethernet LAN, the preamble sequence encodes to a 5 MHz square wave!

That leaves three single cycle AVR machine instructions to detect the preamble. This is your first homework assignment. Using just three machine instructions, develop a routine to detect an Ethernet preamble.

For a 10 Mbps LAN, the signal spectrum lies between the 5 and 20 MHz.

At 20MHz that leaves 0.8 machine instructions to handle the incoming data stream. This is your second homework assignment. Using 0.8 machine instructions, develop a routine to process and store an incoming Ethernet frame.

Good luck! :wink:


What about via serial using SLIP? Would that be any easier?

What do you plan to put on the other end?

Using 0.8 machine instructions, develop a routine to process and store an incoming Ethernet frame.

Oh, it’s not THAT bad. You have 0.8 instructures PER BIT of the incoming frame! If you use an external ethernet PHY chip, you might even be able to send/receive 4 bits at a time or so, at only 2.5MHz… You’d still need magnetics and stuff too…

Didn’t Ubicom (origianlly Scenix) have some chips that essentially did ethernet processing in software, with a tiny bit of hardware support (manchester decoder and shift register?) Of course, those chips ran at 100MHz. And they weren’t a big success…

Microchip also created a chip (enc28j60) that has you do the Protocol Work in software. Guido Socher tuxgraphics.org: An AVR microcontroller based Ethernet device got it to work with Atmel chips and NuElectronics got Guido’s solution converted to the Arduino… As you can see if you look for it… The PHYSICAL layer speed is why these ETHERNET chips need to run between 25 and 50 mhz.

With just the Physical & Data Layer work done by the Microchip part, you are left with precious little room for code to make the Arduino work for you since the Transport and Protocol layer support needs to be in the Atmega chip. It pretty much mandates a Atmega328 to leave enough for you to work with.

The WIZ chip used in the official Ethernet shield does all the Physical and Data Layer work as well as all the (TCP/IP) Transport and Protocol layer work in the chip. Leaving room for your code.

I’ve worked with Ethernet since 1980… for one of the companies that helped invent Ethernet… working as a network guy. This “Ethernet” stuff is actually stuff I know pretty well. I wish you could understand that your question about “just attaching to arduino pins” is the equivalent to wanting to know which wire you should move under the hood of your car that will make your car give you 50 more miles per gallon of fuel.

If it was that easy…

Here is a blog about a guy who got the Miccrochip part to work with a mega168. http://members.home.nl/bzijlstra/software/examples/enc28j60.htm

Oh, and SLIP is a protocol for Modems and terminal ports not Ethernet … You have a serial port… I’m sure you can find an RFC on SLIP you can work from.

For reference, there was this press release on an open source IPv6 stack for AVR that fits in 11kB or so (I’m not familiar with the details; I don’t know how far that stack extends.)

http://www.cisco.com/web/about/doing_business/open_source/stories/atmel_sics.html