Single-Chip NIC Solutions?
scdeimos asks: "I started out working life as an electrical engineer, but subsequently moved into software development due to the lack of 'interesting' design jobs in the EE industry...one manufactory/power plant control system is much like another. Nowadays I find myself heading back to electronics as the field becomes more and more interesting with PIC?s and STAMP?s that are more powerful than many desktop systems were just a few years ago. Companies like Future Technology Devices International make useful single-chip USB solutions that allow your hack to appear as a serial port (FT232BM) or a parallel port (FT245BM) connected to your favourite CPU for device intelligence. This lets you build useful test equipment like computer-controlled voltmeters, logic analyzers and CRO?s for not much outlay.Which brings me to my question, which centers around NIC solutions. What are people using out there today for providing single-chip NIC connectivity? What benefits do you feel your chip preference has over the competition? Do any have a sockets (TCP/UDP) implementation built-in, or do you still have to write your own protocol libraries in the support CPU?"
I have been playing with TINI from Dallas Semiconductor. It runs java code, and supports a pretty good subset of the full Java 1.4 spec. It costs around $100 to get started with it.
Twostep
There are 10 different types of people in this world... those who understand binary, and those who don't.
I haven't seen any single-chip solutions yet... that's probably because the magnetics already add some parts, and probably also because the high-speed digital processor and the relatively noisy ethernet connection process technologies don't coexist.
You may want to check out Rabbit Semiconductor's core modules. There's also the xport, that, while small, has got limited I/O.
HIV Crosses Species Barrier... into Muppets
But i looked at this solution before
-- botsex is {grep;touch;strip;unzip;head;mount}
I have been very eager to try some projects with the XPort from Lantronix. It's technically not single chip but really it's about as close as you can get for what it does. It fits in an ethernet hood, so it's small enough to put into most anything that needs ethernet. Very cool little gadget...
~GoRK
I have heard good things about the Dallas DS80C400 controller. It's an 8051 core which is great 'cuz you can take advantage of the huge 8051 experience base out there, it's got 10/100 Ethernet with TCP/IP, DHCP, even IPv4 and IPv6 . It has a direct memory access mode which makes it really nice for moving good-sized chunks of data without bottlenecking in a microcontroller's tiny RAM area.
So you don't get 100mbps speeds, more like 5mbps. But for an all-in-one microcontroller, it's ripe for some really neat little devices. You! Give your toaster, microwave, breadmaker, washing machine, garbage disposal, TV, stereo system, and coffee maker IP addresses. Now!
Hit a secret little button, and the stereo switches to slow music, the lights dim, annoying rackety appliances shut down, the TV turns off, and the warm smell of toasting cinnamon-rasin bread fills the room...wait, that was for breakfast. Oh well.
...
Quoting from the FreeBSD source for the RTL 8139:
* The RealTek 8139 PCI NIC redefines the meaning of 'low end.' This is
* probably the worst PCI ethernet controller ever made, with the
possible
* exception of the FEAST chip made by SMC. The 8139 supports bus-master
* DMA, but it has a terrible interface that nullifies any performance
* gains that bus-master DMA usually offers.
*
* For transmission, the chip offers a series of four TX descriptor
* registers. Each transmit frame must be in a contiguous buffer,
aligned
* on a longword (32-bit) boundary. This means we almost always have to
* do mbuf copies in order to transmit a frame, except in the unlikely
* case where a) the packet fits into a single mbuf, and b) the packet
* is 32-bit aligned within the mbuf's data area. The presence of only
* four descriptor registers means that we can never have more than four
* packets queued for transmission at any one time.
*
* Reception is not much better. The driver has to allocate a single
large
* buffer area (up to 64K in size) into which the chip will DMA received
* frames. Because we don't know where within this region received
packets
* will begin or end, we have no choice but to copy data from the buffer
* area into mbufs in order to pass the packets up to the higher
protocol
* levels.
*
* It's impossible given this rotten design to really achieve decent
* performance at 100Mbps, unless you happen to have a 400Mhz PII or
* some equally overmuscled CPU to drive it.
*
* On the bright side, the 8139 does have a built-in PHY, although
* rather than using an MDIO serial interface like most other NICs, the
* PHY registers are directly accessible through the 8139's register
* space. The 8139 supports autonegotiation, as well as a 64-bit
multicast
* filter.
*
Doesn't sound that good.
These guys are obviously experts at cramming NIC interfaces into small spaces. How about a web server built into an RJ45 socket ?
http://www.commanderx.com/productinfo.html
Ed Almos
The more corrupt the state, the more numerous the laws. - Tacitus, 56-120 A.D.
If size, power consumption and reliability are non-issues, then you are right. ;-)