There is a general consensus that in years to come more and more Internet devices will be embedded and not PC oriented. Just one such prediction is that by 2010, 95% of Internet-connected devices will not be computers. So if they are not computers, what will they be? Embedded Internet devices.
One popular solution is to use an 8 bit microcontroller such as a Rabbit 2000, AVR or PIC and a Ethernet MAC such as a CS8900A or RTL8029AS hanging of it’s parallel port pins in 8 bit mode. A TCP/IP stack is normally written in C and can be striped of features and ported to these resource limited microcontrollers. While this works and we detail many such boards below, a little debate is brewing over it’s reliability and functionality.
With DOS (denial of service) attacks becoming more and more common, it doesn’t take much to knock your little 8 bit microcontroller off the network. In fact some configurations have a little trouble keeping up with the high volume of broadcast packets floating around a loaded network, let alone any malicious attacks.
One solution of course is to put in a bigger processor. This is the case with Embedded Linux devices such as Coldfire, DragonBall or ARM based devices. They are quite powerful enough to allow a suitable bandwidth and not be susceptible to someone’s malicious intent.
The other solution is to use a hardware TCP/IP stack. A hardware based stack is not new. If you have followed this site, you will be aware of the Sekio S-7600A hardware stack which incorporated a TCP/IP stack with a PPP controller so you could connect it to a modem. Sekio had licensed the technology from Iready Corporation. While it had it’s place in data logging or dial on demand applications where your device could dial up the Internet and send you an email to the effect that your house has been broken into or the past 24 hours logged data etc, it wouldn't connect to the popular ethernet networks present everywhere today.
The next logical progression had to be the Ethernet interface. Sekio has exited the embedded Internet business discontinuing it’s S-7600 on the 1st September. However the concept is still alive.
A hardware TCP/IP stack has a couple of advantages. Firstly as they are hardware based, most run at close to line speeds encapsulating and striping streams of data on the fly. This makes it increasingly more difficult to cause a DOS attack and almost impossible to run malicious code using principals of buffer overruns etc. However being hardware makes it difficult to upgrade should little quirks be found allowing say SYN attacks for example.
Later we detail some devices from Ipsil and Connect One. Both have the ability to upload new firmware which future proofs the designs in these peripheral devices. However the Ipsil and Connect One devices on the market today rely on an external ethernet MAC such as the popular CS8900A or RTL8029AS. This contributes to the chip count.
Ipsil has preliminary data on their IPµ8932 which combines a webserver, Ethernet MAC layer, and TCP/IP controller all on a single chip. This allows the one chip with 20 digital or analog inputs to display webpages without the need of a microcontroller. Ipsil has WebHoles™ technology which allows holes (simular to server side includes principles) to be filled in with values from the I/O ports. If you do happen to need more complexity, you can add a microcontroller and talk via standard TCP/IP socket calls.
However WIZnet Inc already has a simular device on the Market. The W3150A incorporates a TCP/IP stack and a future proofed 10/100 Ethernet MAC. So when it comes to chip count, it makes sense to off load the burden of the TCP/IP stack into a second peripheral chip complete with Ethernet MAC. It can reduce time to market, as the design of the TCP/IP stack is omitted (or saves costs of licensing one), plus you have a more stable product. Your 8 bit micro effectively has more grunt now, as it's no longer responsible for the lower TCP/IP protocols and ethernet encapsulation. All these advantages and yet, still only two chips.
How long before the leading microcontroller manufacturers are going to integrate a hardware TCP/IP stack and ethernet MAC into their microcontrollers making a one chip solution?
WIZnet Inc. and Atmel Corporation has forged a strategic partnership to develop and co-market Internet connectivity solutions. As part of this agreement WIZnet will manufacture OEM products around Atmel’s AVR microcontrollers. Both have agreed to move in the direction of system-on-chip (SoC) which will see WIZnet’s TCP/IP hardwired technology be integrated with Atmel’s MCU cores. Outcome? An AVR with \ hardware TCP/IP stack and ethernet in the one chip. I can't wait. . . .
Lantronix has developed the XPort. It's a x86 processor with 256Kbytes SRAM, 512Kbytes Flash and a 10/100 Ethernet Interface in tiny package not much bigger than the standard Ethernet socket. Having a mature O/S, the XPort can send e-mail alerts or serve web pages among other things. There is even a model with 128-bit AES Rijndael encryption if you need it. Encapsulated in a single drop in module, the EMC-compliant XPort makes the perfect partner to your Amtel or PIC based Internet Application offloading the responsibility of the TCP/IP stack to the XPort. Communication between the module and your MCU is done by a 300bps to 230 kbps asynchronous serial port.
XPortEmbedded Device Server
WiPortWireless Embedded Device Server
Digi International has another even more impressive little module out. They have crammed a 32bit ARM processor running at 55MHz complete with large amounts of flash and RAM into a small PCB mount module. But what makes these modules more impressive is the ability to switch between a wired 10/100 ethernet or 802.11b module. Both are pin to pin compatible making your designs built around the Digi Connect ME family even more flexible. The wireless module is enclosed, and as such is FCC approved, so you are not required to get approvals for your WIFI design further decreasing your time to market. If however resources are a little tight, then the EM family may be for you offering increased memory, multiple serial ports, SPI and more I/O.
Digi Connect ME
Digi Connect Wi-ME
Digi Connect EM
Digi Connect Wi-EM
Ipsil have three products in its IPµ range. The IPu8930 is currently on the market and is sold as a module complete with a RTL8019AS ethernet MAC on the bottom. With a development kit for only $199 USD, this looks like at good entry point into this market. In the pipeline is the IPµ8932 which incorporates the Ethernet MAC into the one chip, and the IPu8942 designed for data streaming applications.
Connect One has iChip offerings in both ethernet and dial-up/wireless based solutions. The dial-up/wireless iChips get integrated at remote sites or in mobile phones and supports the full range of AMPS, CDMA, CDPD, GPRS, GSM, iDEN, and TDMA wireless modems. This allows you to contact the Internet from remote locations, making it ideal for data logging applications. The iChip introduced in 1999 was claimed to be the first Internet peripheral chip on the market that uses updateable flash memory to store the full Internet protocol stack. This allows it to be updated without having to throw out the chip.
iChip LAN CO561AD-L
WIZnet Inc claims to have the world's first Ethernet based TCP/IP hardware chip, the W3100A. This features a hardware TCP/IP stack, plus a 10/100 Ethernet MAC Layer in the one chip.
W3150A Hardwired Internet Connectivity Chip
NM7010B Embedded Internet Connectivity Module
Common Ethernet MAC Controllers
There are two main contenders in the embedded Ethernet MAC market based on popularity. Both started their life as 16 bit ISA ethernet devices, but are now very popular with 8, 16 and 32 bit microcontrollers. The Realtek is favoured among many for its generous internal SRAM which helps when assembling packets in microcontrollers with limited resources, while the Crystal Lan finds itself popular in 3.3V circuits.
RealTek RTL8019AS ISA Full-Duplex Ethernet Controller with Plug and Play Function
After purchasing bare RTL8019AS ICs in Australia for your own designs? Look no further than Embedtronics - $20 AUD each.
Crystal Semiconductor CS8900A 10Base-T Ethernet Controller
Bare Development Boards
Quite often the MAC controller IC's and transformers (Magnetics) are hard to come by in one off quantities. However quite a few vendors sell development boards which allows you to add ethernet to your favourite processor. Just some of these boards are detailed below.
EDTP Packet Whacker
EDTP CS8900A-CQ 10Mbps Ethernet Development Board
EmbeddedEthernet.com's CS8900 Board
EE-100 Ethernet Module CS8900A
Ethernet and Processor Development Boards
If connecting one of the above boards to your favourite processor and porting across a TCP/IP stack sounds too much hard work for you, look no further than some of the Ethernet & Microcontroller combos below.
The first modules come from the Web51 project. Most of the project is open source and free to download. The code is available from the Web51 site under the GNU General Public License. On visiting the Web51 web site, you will see the abundance of examples and information that one could easily spend hours if not days browsing.
Microchip PICDEM.net ™ Embedded Internet/Ethernet Demonstration Board
AVR Embedded Internet Toolkit
Rabbits (Rabbit 2000 and Rabbit 3000 Core Modules)
Rabbit Developer Resources provided by Card Labs.
S-7600A TCP/IP Network Protocol Stack LSI
Seiko Instruments Inc have come up with what should be a very popular chip. Having already picked up the Electronic Products 1999 Product of the Year Award, the S-7600A is a 48 pin package which takes care of the TCP/IP stack in hardware. This allows quite dumb processors the ability to talk on the internet. The S-7600A incorporates a UART which is connected to the internet using PPP (Point to Point Protocol) either via a dedicated link or via a dial up modem. A microcontroller can then send the S-7600 streams of information which is automatically encapsulated in a TCP/UDP datagram and sent using IP.
uCSimm (Embedded Ethernet Controller running Linux)
The uCSimm has been a very popular module ever since one little advertisement in Circuit Cellar. The uCSimm is an embedded Ethernet module ideal for Internet connectivity. Based on a Motorola 68K running Linux there is no limits to what you can achieve with this unit. If your imagination isn't with you today, check out the uCSimm and uCLinux Forums on http://www.uClinux.org
For those who can't help making their own (Maybe with extra I/O or no conformal coating on the gold contacts . .) this device uses a 68EZ328 Dragon Ball Processor. Motorola has a 68EN302 processor, based on their 68K Architecture complete with Embedded Ethernet Interface. While this seems the better option, reality is that you can't obtain these easily and they use a normal medium speed crystal. The dragonball on the other hand will run from DC to 16.58 MHz with 2.7 MIPS performance. What is quite useful is the 68EZ328's ability to generate it's 16.58MHz internal clock with a tiny 32.768 kHz crystal using it's internal PLL clock Multiplier. Ideal for those small locations. The uCSimm has two small crystals tucked on the back of the module.
The 68EN328 has a built in DRAM controller which requires no Glue Logic. This, coupled with a CS8900A LAN Controller makes the module so simple, anyone could wack one together customised to their specs. Even the software is a breeze with the unit running on uClinux, an open source embedded Linux. With all this functionality, I have to ask - who needs an embedded I386?
Tini (Embedded Ethernet Controller running Java)
The TINI standing for Tiny InterNet Interface is a product of Dallas Semiconductor. It's very simular to the uCSimm and you could easily mistake it for a uCSimm from a distance. Both the uCSimm and TINI come with daughter boards for testing.