Slashdot Mirror


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?"

50 comments

  1. TINI from Dallas Semi by TwoStep · · Score: 3, Interesting

    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.
    1. Re:TINI from Dallas Semi by psyconaut · · Score: 2, Interesting

      If you like TINI, you'll love SNAP more:

      http://www.imsys.se/snap

      Much more processing power, more RAM, more Flash memory, 100Mbit Ethernet onboard, 1-wire, CAN, I2C, SPI, much better CPU bus than the TINI (no CMOS load issues), etc. etc. And it's ~US$130 IIRC.

      -psy

    2. Re:TINI from Dallas Semi by ummcdou4 · · Score: 3, Informative

      Yeah the TINI is really neat. My Engineering Thesis (all Java and VHDL code included) used it interfaced (via parallel) with an EPLD (20k gates plus memory cells) from Altera.

      I used it to simulate and control a home automation system over the net. It is a really interesting piece of software but as a sibling piece has mentioned it has pretty severe loading issues. In one case, making a ring with your thumb and middle finger around a wire tied to one of the address pins and moving your hand was enough to cause the TINI to reboot. (replicatable).

      As well, they are exremely sesitive to static electricity. Our Prof fried 2 that he was using to do a lab with and I fried one during R&D for my thesis. On the plus side, Dallas Semiconductor is really helpful and actually shipped me a replacement before I sent them my fried one (you don't see that too often)

      At the end of the day I just find it really cool that you can run a web server on a SIMM form factor.

      G

  2. Beware the curly apostrophe! by fm6 · · Score: 1, Offtopic
    PIC?s and STAMP?s
    Either the editors should watch out for 8-bit characters, or the Slash code should accept the entire Latin1 character set. The headers say that Slashdot does 8-bit characters, but this is a lie. And translating them to question marks is one of the more benign things it does with them.
    1. Re:Beware the curly apostrophe! by stoborrobots · · Score: 1
      The headers are faked... See SlashChick's journal to see the full story...

    2. Re:Beware the curly apostrophe! by fm6 · · Score: 1
      Thank you -- that was an instructive link. However:
      • It boggles my mind that Slashchick managed to become a "web developer" without discovering how the default character set is specified in IE. (View/Encoding).
      • sC seems to think that IE is doing something non-compliant when it assumes a character set. I dont see anything like that in the html spec. It simply says that every document should have a character set specified somehow. But what is a browser supposed to do when it's not?
      • UTF-8 and 8859-1 (aka ISO Latin1) are not the same thing. They both use ASCII for the first 127 characters, but after that, forget it. 8859-1 is fixed-width, UTF-8 is variable-width. If Slashdot is sending out UTF-8, then the headers it is using are incorrect.
    3. Re:Beware the curly apostrophe! by Anonymous Coward · · Score: 0

      Serves the guy right. All that money spent on his education and he still forms plurals like a greengrocer. Potatoe's, anyone?

    4. Re:Beware the curly apostrophe! by wulfhound · · Score: 1

      Not true. When using acronyms, it's acceptable (though personally I think it looks ugly) to have apostrophes in the pluralisation, because it is typically the last word, generally a noun, that is in the plural form.

      PIC's is acceptable because it expands to
      Programmable Integrated Circuits
      - Circuits is shortened in this case to C's.

      The exception to the rule is when an acronym becomes a word in its own right instead of a shortened form. Few people still think of "PC" as being short for "personal computer", for example, which is why "PC's" looks wrong. I don't know whether or not you could say the same for PICs at this point.

  3. Single chip is harder... by morcheeba · · Score: 4, Informative

    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.

  4. Single chip Ethernet? by psyconaut · · Score: 1

    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

    1. Re:Single chip Ethernet? by PD · · Score: 1

      What are magnetics for? I did some research, and I think they might be like transformers. Lots of tiny ones, in a little box. One for each wire on the interface.

      For what? Impedance matching? Am I right or wrong.

  5. Try an Axis board by deanpole · · Score: 1

    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.

    1. Re:Try an Axis board by psyconaut · · Score: 1

      I'm talking about single chip Ethernet MAC silicon with magnetics...and you're pointing me to single board computers?! :-p

      -psy

  6. Im not sure if this is what you want by jjshoe · · Score: 3, Interesting
    --
    -- botsex is {grep;touch;strip;unzip;head;mount} /dev/girl -t {wet;fsck;fsck;yes;yes;yes;umount} {/de
  7. XPort by GoRK · · Score: 3, Informative

    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

    1. Re:XPort by BiggerIsBetter · · Score: 2, Informative

      I've got one. It's neat alright, if you want to network something that's already got serial comms in it.

      Basically it provides a baby webserver, and lets you pass serial commands over the IP link. It's got an 8051 onboard, but the idea is to store a Java Applet onboard and present that via the webserver. The user can then use the Applet to talk to the device. The XPort then shuttles data to and from the serial over Ethernet

      I guess you can do trickier stuff if you want to hack the firmware, but for me, it's just fine serving up a web interface to my previously serial interfaced EFI computer.

      --
      Forget thrust, drag, lift and weight. Airplanes fly because of money.
    2. Re:XPort by GoRK · · Score: 1

      Yeah I was going to use it to network my vending machine... Is the java-applet approach their standard tool, and you have to control the serial interface from a remote host? I was under the impression that the actual point of the whole thing was to allow you to develop an internal application. Does the dev kit not allow you to do this? Do you truly have to 'hack' the firmware or is it simply a matter of compiling your own app for the thing?

      ~GoRK

    3. Re:XPort by BiggerIsBetter · · Score: 2, Informative

      I didn't get their Dev Kit, because the Sample kit was enough for what I needed, however the docs do cover this. The Java approach seems to be the standard easy way of using the device, but the Dev Kit does support custom applications and firmware. The Datasheet shows that "OEM" code on a layer above the device server, and the FAQ says it is written for a Borland Compiler. Looks like writing a truely embedded app running on the XPort should work just fine.

      --
      Forget thrust, drag, lift and weight. Airplanes fly because of money.
  8. I've had great results with RealTek by Anonymous Coward · · Score: 0

    Everyone knows the RTL-8139 series is the best chip out there. Its got great support under linux, and should be very inexpensive. Do stay away from the newer 'C' model though, which cuts costs a little too much compared with the original models.

    1. Re:I've had great results with RealTek by stefanjo · · Score: 2, Informative

      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.

    2. Re:I've had great results with RealTek by Anonymous Coward · · Score: 0

      I'm working on an embedded design with an SMSC LAN91C11x right now, and I can tell you that you definitely want to stay away from that chip unless you've got incredibly low interrupt latency. It just doesn't have the memory required to hold incoming packets if you can't pull them out of the FIFO in short order.

      In other words, don't even *think* about running this chip under Linux, unless you're connected to a bridge that can do traffic management, i.e. a Linux workstation running shapecfg, which is my current solution.

    3. Re:I've had great results with RealTek by Wolfrider · · Score: 1

      --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??
  9. Dallas microcontroller by cybermace5 · · Score: 2, Interesting

    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.

    --
    ...
    1. Re:Dallas microcontroller by Anonymous Coward · · Score: 0

      Breakfast hell! That works on my Girlfriend!!!

      Gotta love a girl that can't get enough cinnimon toast!

  10. Netgear by rollingrock · · Score: 0, Offtopic
    Netgear claims to have a NIC with a single chip.

    IANAEE but it appears that there are two on there tho.

  11. Vintage = more power to ya by poptones · · Score: 1, Informative
    Single chip computers are fun, but if you're not working on something that HAS to be single chip I don't understand why you'd go there. An old P200 machine can be had pretty much for free, and the ISA bus is incredibly easy to use (not to mention those "legacy devices" like serial ports and parallel ports). Boot it up in freedos with a network stack and you got a basic "programmable controller" that'll do just about anything you want. And even at max warp a PIC ain't gonna outrun a P200.

    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).

    1. Re:Vintage = more power to ya by Specialist2k · · Score: 2, Insightful
      Single chip computers are fun, but if you're not working on something that HAS to be single chip I don't understand why you'd go there. An old P200 machine can be had pretty much for free, and the ISA bus is incredibly easy to use

      If size, power consumption and reliability are non-issues, then you are right. ;-)

  12. Atmel embedded internet kit by xtal · · Score: 1

    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.

    http://www.atmel.com/dyn/products/tools_card.asp ?t ool_id=2727

    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
  13. Here's One Use by Ed+Almos · · Score: 2, Informative

    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.
  14. Rabbit semiconductor Core Module by asmithmd1 · · Score: 1

    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

    1. Re:Rabbit semiconductor Core Module by Bluetrust25 · · Score: 1

      That's a neat device. Thanks for telling us about it!

      I'm currently building a pinball machine with a Lindows computer as the brains. This core module looks like what I need to connect the 84 switches and bulbs to the computer. Hell, I could even run perl on the computer and talk to the rabbit module as the "server". Only problem is, how do I reduce 84 switches down to 10 wires? There must be another component out there that does things like this.

      Ahh.. knowledge, what a funny thing. I'll figure this out eventually. I just need more books!

      Thanks again.

    2. Re:Rabbit semiconductor Core Module by wik · · Score: 1

      Sounds like a fun moneypit project!

      One thing you can do is use a tree of multiplexors. You can address 2^7 = 128 switches with 7 output pins and 1 read input pin (or read multiple inputs at once by trading some of the addressing pins for wider inputs). Wider inputs make a lot of sense if you have to read the switch values frequently.

      As far as the lights go, you'd do something similar, except you'll need demuxes and some type of memory (e.g. a flipflop or relay). With the relay, you might be able to drive the bulb directly.

      --
      / \
      \ / ASCII ribbon campaign for peace
      x
      / \
    3. Re:Rabbit semiconductor Core Module by HeyLaughingBoy · · Score: 1
      Only problem is, how do I reduce 84 switches down to 10 wires? There must be another component out there that does things like this.


      Two words: shift registers. Reduce 84+ switches to 2 I/O lines (3 for safety -- I'd never design a circuit without a reset). I'll even be nice and look in the basement for a handful if you want to pay the postage :-)
    4. Re:Rabbit semiconductor Core Module by Anonymous Coward · · Score: 0

      Watch out!! The Z-World kit uses "Dynamic C", not ANSI C. There are fundamental differences in the two languages, such that porting some kinds of ANSI C code can be challenging. Code with initialized globals or automatics, for example.

  15. Magnetics in Ethernet by asmithmd1 · · Score: 1

    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.

  16. SMC LAN91C111 by kjs3 · · Score: 1
    http://www.smsc.com/main/catalog/lan91c111.html

    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.

  17. uCLinux by Chop · · Score: 1

    I know you said single chip LAN but I like the uClinux project alot. http://www.uclinux.org

    1. Re:uCLinux by Chop · · Score: 1

      I actullay meant to link the uClinux simm project at
      http://www.uclinux.org/ucsimm/.

  18. PIC and Realtek or Crystal Semi by NoCrypto · · Score: 1

    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.

  19. Single Chip NICs by Anonymous Coward · · Score: 0

    There are several CPUs that can be used as single chip NICs. I'm currently working with the Ubicom IP2K which could be used to build a complete NIC with a single chip. It does use a software "PHY" however, instead of a separate chip for it. The problem is that it's hard to fit enough RAM into a single package with the processor to create a fully functional NIC (or maybe a feature over loaded NIC). As far as the magnetics go, it's possible to get an RJ45 jack with the magnetics built in. We're able to run a webserver out of the IP2K. We also able to run a TFTP server and print server.

  20. Reliable by poptones · · Score: 1

    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.

  21. wireless NIC boards by Nathan_Carter · · Score: 1

    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.

  22. Packet Whacker by Anonymous Coward · · Score: 0

    Depending on what you are wanting to do, the Packet Whacker might be worth looking into.
    http://www.edtp.com/

    I am thinking about using this for an FPGA project I am working on.

  23. MODS ON CRACK by Anonymous Coward · · Score: 0

    Exactly how is this offtopic?

    From the linked article:
    > Uncomplicated
    Single chip reliability combined with NETGEAR's renowned engineering ensure smooth-running usability.

  24. Thanks everyone! by scdeimos · · Score: 1

    Thank you to everyone who posted a serious response. There are some really useful suggestions there which I'll assess for my project.

    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 .pcx or .png format) up at selectable intervals.

    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!

    1. Re:Thanks everyone! by soimpossible · · Score: 1

      Hello. I have been planning to do what you are talking about for some time. And I am currently researching the possibility of converting USB2 packets into packets that can be sent over RJ45 cable. And then a driver on the host machine will convert the packets back. Only problem is, how? I don't know the specifics of the packet types. And I don't think a PIC would be fast enough. Although you can find circuit diagrams on the net for connecting USB devices to a PIC.

  25. Broadcom by truesaer · · Score: 1
    Broadcom makes at least one dual gigabit part. It is in the 570X family, and uses dual MIPS cores. I'm guessing these are pretty pricey.


    Broadcom's website is lame, but here is a card that is based off it:


    http://www.silicom.co.il/pxg2f.htm

  26. Cirrus by Anonymous Coward · · Score: 0

    CS8900a
    Nice if you're looking for a production but easy-to-interface with Ethernet solution, but making your own TCP/IP stack can be difficult.

  27. Not impossible. by scdeimos · · Score: 1

    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!