8051 and Tini Java Presentation
Notes. By Andrew Oswald for Robotics I, Spring 2003
8051:
The 8051 was developed by Intel
in the late 80's, as a replacement for the 8048 (or IBM PC Keyboard controller
fame). The basic chip was available in EPROM (8751), masked ROM,
or no ROM versions. There are now dozens of variants available from
a variety of companies. The integrated i/o subsystems have been
expanded on various chips. Newer versions can contain USB interfaces,
Ethernet, Data Acquisition Systems, Flash, etc.
But the original chip came with the following features that tend to be
common to most of the later chips:
- "New high performance single chip microprocessors"
- 8 bit
- 12 MHz
- Harvard Architecture
- 4k ROM
- 128 bytes ram
- 32 i/o lines
- 2 counter/timers
- 1 serial port
- bit manipulation instructions
- hardware multiply & divide 4usec
- 64k address space program
- 64k address data
- 12 clocks per instruction 1 MIPS
- 8751 (Ceramic Eprom version $25.00)
- Newer versions range from a few dollars (a small footprint chip),
to over a hundred (complete with battery backup, clock, ram, software download,
etc) dollars.
- Still a widely used chip, with new versions created every day.
- Made smart sockets for memory backup and real time clock back in
the Apple ][ days.
- Put a battery in a socket (for memory backup)
- Put a battery in a chip (nonvolatile r/w memory -- used before flash
was common)
- Put a battery on a board with CPU and ram.
- Put a battery in a CPU.
- Fascinated with 8051.
- Developed
80320 -- A reduced most instructions to 4 clock cycles. Runs
at 33MHz, acts like a "100MHz 8051
- Developed
80390 -- A 40MHz chip with 4MB address space, and 32bit hardware multiply
that can run Java
Tini -- the 8051 with Java
Tini is a 72 pin SIMM sized pc board containing an 8051 variant that will
run Java. This allows the application code to be written with a common
high-level language.
The Hardware Contains:
- 512k of battery backed RAM
- 512k of flash ROM
- A real time clock
- Dual can interfaces
- Dual 1 wire interfaces
- Dual serial ports
- A memory interface that can address up to 4MB
- Ethernet
When the board boots, you can then log into it via the serial port or Ethernet,
and it will drop you into "slush" it's shell. The Java virtual machine
is 40k and supports threads, all primitives, strings, native methods, and
has a garbage collector built in. The only missing features are dynamic
class loading and object finalization.
The schedule updates as follows:
- 1 mS uptime counter
- 2 mS thread scheduler
- 4 mS device driver
- 8 mS process scheduler (round robin)
There is also a full TCP/IP stack, web server, PPP, FTP and telnet support.
One-wire -- a Single Wire Input/Output
System
One-wire is a single wire data/power multidrop bus and a ground connection
that allows a variety or memory, input and output devices to be hooked
to and controlled by a single port pin. Originally designed for process
control monitoring, the bus has been a popular technical approach to
security systems, since the cable runs can be long, and many of the devices
have been packaged in a rugged watch battery can that can act like a key.
All one-wire devices have a unique serial number that is used for addressing
on the bus. Initially they also contained RAM, or EPROM that configuration
information can be programmed into. What becomes interesting is when
Dallas developed devices that have inputs and outputs. This allows
for the development of interesting networks of sensors and actuators.
One example of what can be done with all of this technology is my robot that
can be controlled from a web page on the Internet.