The MuxBox project was completed in November 1998. It was built strictly for use in the home shop, and therefore is not as well documented as other projects (i.e. it never left the house).
MuxBox Project Abstract
The purpose of the MuxBox is to enable up to eight RS-232 serial devices to be simultaneously connected to a single PC serial port (the term "PC" refers to a personal computer...the MuxBox works equally well on Macintosh and "PC" platforms). The target application for the MuxBox is connecting several pieces of lab intrumentation to a computer for data acquisition and control. This allows software control of the instruments connected to the MuxBox - without having to tie-up more than one serial port or manually switch cables.
Host software for the MuxBox is typically an application specific program. The user writes a custom data acquisition program (usually in C, although a "visual" implementation is possible) to perform a specific experiment.
The MuxBox utilizes the host's DTR signal to distinguish between commands and data. When the host needs to switch the channel, it asserts DTR, issues a channel select command, and then deasserts DTR. Subsequent RS-232 communication occurs over the most recently selected channel. MuxBox commands are issued using 9600-8-N-1, but communication over the selected channel can occur at any baud rate and data format, depending on the instrument attached. The MuxBox may also be controlled from its front panel for debugging purposes or manual channel switching.
Internally, the MuxBox is built around a Motorola 68HC705J1A microcontroller and a Vantis MACH211 CPLD. The 'J1A handles the RS-232 communication with the host computer and command processing while the MACH211 handles the data multiplexing functions. Final RS-232 level shifting is accomplished using two MAX208 quad RS-232 transceivers. Each channel connector has Tx and Rx LEDs and a channel select LED (see front panel photo).
Software for the 'J1A was written in assembly and is available for download. The CPLD firmware was written in ABEL and compiled using Vantis starter software and is available for download below. Since this project was intended strictly for home shop use, please accept my apologies for the lack of comments in the source code. If necessary, specific questions regarding the MuxBox can be submitted via E-mail.