|
|
|
Extending
the Microcontroller: MINES
Embedding microcontrollers
in a network and directing and querying them from uniform interfaces
is an exciting application made possible by increasing power and
sophistication of the controllers themselves and the vast support
machinery of the Internet. Applications as diverse as environmental
and wildlife monitoring, smart houses, military intelligence gathering,
medical status monitoring, security, virtual reality appliances,
automotive, and aerospace applications will increasingly call upon
large networks of processors with varying levels of sophistication
and power requirements.
Decisions confronting application
and hardware designers include:
- Power Consumption: Greater speed
means greater power consumption - a detriment for networks of
remote sensors not connected to the power grid.
- Network Protocols: Existing network
protocols (10 MB ethernet etc.) require large memory (greater
than 1k bytes) and complex support hardware and software. Such
standards are not well adapted to remote sensing applications
with low reliability and bandwidth. A myriad of hardware choices
confronts the designed: wireless, IrDA, token net, ethernet, I2C,
busses, fiber, etc. Unfortunately, mmost such systems are built
to achieve maximum band width, consequently, they require advanced
support hardware and software.
- Programming Language: Currently
there are 3 choices, each with inherent problems: assembly language,
C, or Java. Assembly code is difficult to implement and debug
and impossible to port between different instruction sets. C compilers
for microcontrollers are very close to the hardware - consequently,
code is often not portable between machines of different structure
or classes. Java is a very portable language, however, its processor
and memory requirements are excessive for low-cost, low-power
designs.
- Software/Hardware Life Cycle: Does
the change in processor or performance make existing software
obsolete? Can the system adequately communicate with new paradigms
and systems?
We examine a solution to
these problems for a class of applications characterized by requirements
for low cost, low power, modest data rates, small size, rapid prototyping,
and interfaces to standard network protocols. Our approach implements
networks of small, modestly powerful microcontrollers augmented
with sufficient EEPROM or RAM (128 to 8k bytes) to support a 16
bit virtual machine: MINES which stands for Microcontroller
Interpreter for Networked Embedded Systems.
|