Electronic Design

EiED Online>> 8-bit Wireless

Volume 2004, Number 6

It won't run Apache (an open-source Web server) or handle thousands of Web surfers simultaneously, but Rabbit Semiconductor's Wifi (802.11b) Application Kit brings wireless connectivity to 8-bit applications. The $599 kit (see Fig. 1) contains a Rabbit Semiconductor RCM3100 module that is built around an 8-bit Rabbit 3000 microprocessor that is an extended version of the Zilog Z80 architecture. Like Zilog's eZ80, the Rabbit 3000 has significantly extended the 8-bit micro so it can handle memory in excess of 64Kbytes.

Rabbit also has an extensive collection of Ethernet-based modules as well. I did not try to mix and match wired and wireless this time, but it should be possible simply by switching the RCM3100 to another module.

Getting the kit up and running was relatively simple. The RCM3100 module plugs into the RCM3xxx series prototyping board. This leaves the majority of the proto board for adding your hardware. A small adapter board has the Compact Flash connector where the Linksys 802.11b adapter is plugged in (see Fig. 2). It is not stylish, but it works. The Compact Flash adapter is the same one that works with handheld devices or laptops so compatibility and wireless performance were not an issue.

Software setup under Windows was trivial as well. The Dynamic C IDE is in its 8th revision. I had version 8.51. The IDE has a polish to it and it is targeted at individual developers or small groups that typically employ 8-bit modules. It was easy to follow the Getting Started guide for hardware assembly, cable connection, and software installation. The initial scan.c program was downloaded and displayed the Linksys adapter's MAC address, along with the local access point I was using.

Simply Software
Dynamic C is a pretty close relative to ANSI C with a few useful twists. Some, like the shared and protected keywords make memory management easier. Others, like the slice statement and the co-routine facility provide cooperative multitasking. There is also support for a multitasking executive and µC/OS-II, a popular, compact operating system. This approach allows C code to be brought into a Dynamic C project, but care is needed if you expect to move C code to another platform.

Overall, I found the C extensions to be quite useful although obviously non-portable. This type of module is often used in process control and monitoring, and cooperative multitasking is often more efficient when millisecond response times are not required.

A set of TCP/IP libraries and sample programs proved to be invaluable when setting up a wireless connection. A separate CD is included with the wireless support. It includes source code, so it may be possible to adapt it to other Compact Flash cards. The protocols supported by the software include HTTP, ICMP, POP3, TFTP, FTP, SMTP, DHCP, socket-level UDP, and socket-level TCP. Using DHCP for gaining an IP address and using POP3 and SMTP for email were a quick way of getting things up and running. The socket-level TCP support was more efficient when communicating with a test application running on Linux.

Getting up and running in a day is practical if you have had experience with TCP/IP and have a wireless network in place. It was worth experimenting with the various support functions for the WiFi interface, so set aside a week to become well-versed in it and Dynamic C, unless you are already familiar with it.

A Simple Web Serving
The $149 RabbitWeb Module is software worth using if the primary interface to your system is a Web browser. The standard support within Dynamic C is sufficient for serving Web pages. You can do some rather sophisticated things but wind up jumping through hoops if there are complex forms that need to be linked to variables in you C program. The RabbitWeb support greatly simplifies this.

RabbitWeb is another C extension that utilizes C pragmas. They provide a way to link form variables to C variables as in:

	int func;
	#web func

A snippet of HTML code may look like:

	<?z if($func==0) \{?>
	     <input type="hidden" name="func" value="1">

The cost of RabbitWeb pays for itself the second time you would have had to build a form from scratch.

The cost of the wireless adapter and the software development can easily exceed the cost of the Rabbit module, but it's hard to beat the overall system cost. I didn't try any load testing, but I would not expect the RCM3100 to keep up with a 1-GHz PC running Linux and Apache. On the other hand, a custom system built around the RCM3100 with a Linksys adapter is probably smaller than the power brick needed to run the system, making it ideal for remote management and monitoring.

Also, don't overlook other features of the Rabbit modules. There is a serial link protocol for tying together modules. This allows a single module to provide a wireless front-end to an array of control or monitoring subsystems.

What do you think about 8-bit wireless solutions? Too simple or just right. Add a comment to let me know your thoughts.

Related Links
Apache Software Foundation

Rabbit Semiconductor


Hide comments


  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.