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
I doubt you'll see anything particularly soon....for a multitude of reasons:
(1) Magnetics will be hard to put onto the same silicon die
(2) Line-side, Ethernet is fairly high voltage -- see #1
(3) Putting everything on silicon limits connectivity options
-psy
Try an Axis board. They are low power and high performance. The chip basically needs a voltage regulator and a crystal. Schematics are available and the software tools are free. They cost about $300 and run Linux.
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.
...
Example: I wrote an interface in turbo pascal that'll use the parallel port as an 8 channel DA system with no extra parts except resistors and caps and a pair of quad op-amps (which you need anyway unless you like burning up parallel ports) and it'll sample 8 simultaneous channels every 150uS with 8+ bits accuracy and absolute phase integrity. Not ground shaking performance, but considering the platform and the software is free and very easy to work on you just can't beat something like it. And if you need better A/D you can always stick in a ten dollar sound card - or build an even faster one; the EISA bus is a piece-a-cake.
BTW I have a stack of NICs in the other room that are, essentially, one chip. There's another "chip" that's the transformer, but the NIC itself is just an RTL8139. There's also an 8 pin DIP on there but I'm pretty sure that's just an eeprom which could likely be replaced by any controller you might use. I've seen at least one project that used these cards with a microcontroller (the cards are cheaper than you can buy the chip unless you're planning to build a few million devices - that's why it's so easy to have so much fun with old peecees).
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.
Atmel AVRs have been paying for my supper for awhile now. Atmel fairly recently released a internet developer kit for the platform; I imagine this could be easily moved to another platform. It's not excessively expensive for the development kit, and can be produced in volume.
p ?t ool_id=2727
http://www.atmel.com/dyn/products/tools_card.as
This kit contains everything required to start working with embedded web designs. The Kit is using an ethernet connection to the web, and comes with a complete license free TCP-IP stack. The complete source code for the embedded web server is included in the kit.
..don't panic
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.
Not exactly a single chip but a Rabbit core module is what you want. They are $59 in qty of 1 or $34 in qty of 1000. For about $250 you get everything you need to get started including: a C compiler, an open source TCP/IP stack, protoboard, and programming cable. Check out my on-line Etch-A-Sketch I made using one
Free cell phone tracking
The Ethernet spec says that equipment must have isolation from the cable capable of withstanding 1500 volts. One way to do this is to have a transformer between the cable and the rest of the electronics.
Free cell phone tracking
Reasonably usable fast ethernet chip. Interface suited for embedded processors (e.g. it's non-PCI). Source code for Linux driver on the web site (though it's for 2.0). You should be able to look at other drivers for other FEAST-based cards for newer drivers.
As another poster pointed out, magnetics are external for nearly all ethernet chips.
I know you said single chip LAN but I like the uClinux project alot. http://www.uclinux.org
PIC microcontrollers and a Realtek 8019 or Crystal Semi one chip nic are the current favorites of many. We have been able to achieve 3MB/sec quite easily.
Microchip has code that you can use too.
I recommend PIC18's if you are going to do this though, since the 16's are a little too limited at times. We have used both though.
That's a red herring. How many machines have gone months - even years - without a reboot? Given that an "embedded" project may need the HD only for booting (or maybe not even that) I fail to see a compelling case there.
I was not aware of either the XPort or Rabbit options - at $40 to $60, those really open up some low-cost applications that are not in the range of $200-500 SBCs such as the Axis boards.
Is there anything similar for wireless 802.11, for less than a hundred bucks and with a power draw of less than 5W ? That is to say, a small board or chip with the functionality of the XPort or Rabbit, but in a wireless version? I know that AMD has the Alchemy boards, but my impression is that these are several hundred dollars. And you could always add a wireless PCI card to a Mini-Itx board, but that is at least $200, with power consumption in the range of 20-30W compared to the Xport, which draws less than 1 W.
--Just goes to show you what the Average Value of "Everyone knows..." and "They say..." turns out to be. >:) Take it with a shaker of salt, not just a grain...
.
== WolfriderV6 == I'm willing to admit that *I just might* be wrong... Are you??
Thank you to everyone who posted a serious response. There are some really useful suggestions there which I'll assess for my project.
.pcx or .png format) up at selectable intervals.
:)
For those who were curious as to what I'm up to, this particular project is essentially a security monitor using colour CCD module on a gimbal mount driven by sub-micro servos (as you'd use on remote controlled aircraft). This gives it around 270 degrees pan and tilt. The beast is currenlty hooked-up to a host computer using a USB bus.
The eventual aim is to move this into a self-contained unit on a 10- or 10/100 LAN with a web server built in, serving lossless images (probably
Unfortunately hanging this from a ceiling with an attached P200 system wouldn't be practical.
And yes, I know Pansonic and Sony have LAN Cameras with superior functionality, but they're also about 10 times the price of this system.
Thanks again!
Broadcom's website is lame, but here is a card that is based off it:
http://www.silicom.co.il/pxg2f.htm
I just treated it as a matter of subsystems.
The system core is currently based on a 20MHz PIC which reads and encodes the CCD image data and also controls the position of the pan and tilt sub-micro servos with regular 1.5-2.5ms pulse trains. The frequency of the pulse trains isn't critical (PPM/PCM radio control systems are typically using between 50 and 60 frames per second) so it only needs to update the servos ocassionally. I figured it was a lot easier to use off-the-self servos instead of trying to build my own gear trains and position encoders.
The system core then only needs to talk to the USB comms hardware. This is currently an FTDI FT232BM which takes care of all the USB interfacing, protocols and packetizing the traffic. I don't need to worry about the USB side of it at all. The core CPU only needs to encapsulate the image and status information into different packet types (packets in the context of my own serial protocol) which are then extracted for use by the application on the Host System which just thinks of the device a serial port.
Once I've chosen the appropriate 10/100Base-T chip or module, it should be a simple matter to change the core PIC's comms software to provide the status and image information as separate entities, particularly if I go for a module which has a HTTP server built in.
Hope this helps you with your project, too!