Did you know...
|
|
Serial Wombat Overview
The Serial Wombat is designed to provide low-to-medium speed
Digital I/O and analog to digital data aquisition, while taking
advantage of the potential available in an external
microcontroller.
Many of the Wombat's competitors provide the ability to
manipulate digital lines, and take analog measurements, but they
don't take full advantage of the capabilities of a
microcontroller:
- Why waste precious bandwidth sending data from a device
to its host (PC) when this data will simply be averaged
or filtered when it gets there? Filtering and averaging
should often be done before data is sent to the host.
- Why make decisions on the host which could be made faster
and more efficiently on the microcontroller? For example,
if a temperature of an aquarium is being controlled by a
heater and a PC, there are two ways this could be done:
- The PC can constantly ask the Wombat what the
temperature of the aquarium is, then tell the
Wombat to turn on or turn off the temperature
accordingly. This method uses lots of bandwidth
over the serial link, and may kill your tropical
fish if your PC crashes.
- The PC can tell the Wombat, "Wombat, please
set pin number 37 as a digital output. Set it
high when the voltage on pin 2 (from a
temperature sensor) drops below 350, and set it
low when the voltage rises above 400." The
Wombat will then take responsibility for holding
the temperature between 350 and 400. This can be
done with a couple of simple serial commands.
- Some events happen too fast to be communicated in
real-time to the host. For example, a rotary encoder knob
(such as the ones on many car radios) which is turned by
a human typically can change states at around every 500
microseconds. This is far too often to be polled by the
host. However, it can be easily monitored by the Wombat.
The Wombat then simply tells the host the net number of
"clicks" clockwise or counter-clockwise have
happened since the last time the host asked.
These problems can also be solved by programming a
Microcontroller (such as the Microchip PIC 18F4620 used by the Wombat, or
the Parallax BASIC Stamp) to do what is needed.
However, this often takes a substantial investment in both time
and equipment for a new user (See Microchip's forums for
an idea of how difficult implementing even simple concepts can be
for the beginner). The Wombat is designed to allow many problems
to be solved without writing any code outside of the PC. Some
problems, such as the Aquarium example above, can be solved by
simply sending a few commands to the Wombat from a terminal such
as Hyperterminal.
Sometimes it is necessary to have custom code in your
microcontroller. A Software Development kit, coming in May of
2007, will allow the user to write routines in 'C' which will run
alongside existing Wombat firmware. The user code will be able to
read and modify digital pins, set PWM and analog outputs, read
analog inputs, and use the Wombat's built in data processing
routines such as FIFO queues. In addition, each channel (pin) of
the Wombat provides public data available to all other pins. This
allows the user to utilize the built in functions such as keypad
or rotary encoder reading, and act on the results with their own
custom code. No need to pick through the 4620's datasheet in order to figure out how
to configure communication channels, timers, interrupts, A/D
converters, etc.
The Serial Wombat design is based on the following principles:
- The communication protocol
between the Serial Wombat and its host should be simple,
efficient, and robust. Loss of synchronization with
the host should be unlikely to cause incorrect commands
to be executed. When synchronization is lost it
should be detectable by the host after one command, and
should be easily resynchronized.
- The processing power of the microcontroller should be
used to relieve the host of mundane tasks, and to make
optimal use of host/Serial Wombat communication
bandwidth.
- As much as possible, every pin should be capable of every
function (Digital I/O, pwm, frequency measurement,
Analog/Digital conversion, communications). If
functionality is not provided by microcontroller hardware
resource, then it should be implemented in software.
- The user should require little to no understanding of the
microcontroller inner workings to implement simple
projects. Pins should be refered to by their pin
number. The user should not have to distinguish
between pins on different logical ports. Common changes
such as communication rate, execution times, and primary
pin function assignment should be abstracted to a high
leve.
- The user should be able to access as many of the
microcontroller special hardware functions as
possible. In some cases, this may require
understanding of the microcontroller's special function
registers. To borrow a quote from Perl, "Easy things
should be easy, and hard things should be possible."
- The user should determine how to best use available
memory and processor throughput. The user should be
able to determine the most desireable trade-off between
pin sampling/update rate and CPU utilization/function
complexity.
- The Serial Wombat should make system level debugging as
easy as possible. The ability to issue typed
commands to the hardware through an ASCII terminal such
as Windows Hyperterminal allows the user to manipulate
hardware before application software is written.
Comprehensive error checking, the availability of an Echo
function, and access to numerous internal system state
variables allows the user to quickly diagnose problems.
- The Serial Wombat should use software as possible to
eliminate physical components. Examples include
digital filtering of analog inputs and debouncing of
switch inputs.
- The Serial Wombat should be expandable. The user
should be able to develop firmware to run in the
microcontroller in partnership with the Serial Wombat
application.
The Serial Wombat No-Orphan Guarantee
You don't have to worry about implementing a design around the
Wombat, only to find out that we've gone out of business. If
the Wombat Interface Products company goes out of business, then
the source code to the Serial Wombat will be posted in
Microchip's forums, so users can continue to program new
parts. Any future sale or aquisition of Wombat Interface Products
will be contingent upon the buyer agreeing to continue these
terms.
|
|