The iowad project defines a protocol and port layout for connecting an I/O processor to a host processor using a communications link. The iowad protocol describes the exchange of data between the I/O processor and the host processor. The iowad port layout defines the various virtual ports controlled by the I/O processor. These virtual ports may be accessed by the host processor through data exchanged over the iowad protocol.
I first described the iowad project in a paper presented at Robothon 2004 in Seattle. The iowad project is an attempt to take advantage of the dropping cost of high-end microprocessors that, while they have plenty of speed and memory, lack enough I/O for use in robotics. Using a secondary, I/O-rich MCU and a suitable protocol lets the robot designer add the missing I/O at a small penalty in access time and complexity.
The protocol is very simple, using short packets to exchange information between a single master (the host processor) and a single slave (the I/O processor). The protocol uses no error detection or correction, though these can be added in a higher-layer protocol. The simplest exchange medium is RS-232 serial, though anything from Ethernet to IRDa would work, also.
Please note that this is a work in progress. I have already built a small iowad system around a 68hc9s12c32, but have not deployed it in a robot yet. If you have comments or suggestions on this project, please let me know by email.
iowad.pdf A PDF document containing the current version of the iowad project. The original, written in Word '97, has fancy hyperlinks and is very easy to navigate. Unfortuanetly, the links did not survive the translation through Acrobat 3.0; sorry.
My home page