News! |
JBRD has evolved! The final design has been reached and it is now in software
development
stage as the Marmaduke board. Marmaduke also features a 2-channel
DAC and even a MIDI interface.
|
What? |
The main objective of the Javabotics project is to explore the use
of the Java language and its associated technologies to control and manage
distributed systems and devices for robotic and real-time applications.
Our main inspiration is the work done by the people of the MIT Media Lab
who developed the Handy Board and
the Handy Cricket. The Cricket
is a very nice and simple board for educational uses but it lacks the
features of a flexible board for industrial applications. One of the milestones
of the Javabotics project is to define a reference platform, aka 'JBRD',
where it will be possible to test and verify how the Java technologies behave
with industrial networks and industrial applications. Of course, this
doesn't mean you won't be able to build and control toys
as with the Cricket board. ;o)
Check the
files area for
precompiled downloads and the
CVS repository for the latest documentation.
|
Why? |
...
|
When? |
The immediate goal is to define and test the JBRD architecture and its interoperability
with Java components. Please note that running
any flavor of Java directly on the board is not part of the project's
first steps.
- Discuss and define the board features.
- Design the board and build a prototype.
- Prepare a board support package (BSP) with the necessary IP cores and basic code.
- Implement a simple control framework or port a license-compatible RTOS to the board.
- Select, implement and test Java interoperability stubs and host code with a real application.
- Analyze the possibility to implement a JVM on-board.
- ...
|
Where? |
Javabotics development is hosted at the javabotics Java.net site.
|
How? |
JBRD main features:
- Uses a low cost ARM7TDMI microcontroller as main controller.
- Uses an FPGA as peripheral controller for maximum versatility (interface, hardware acceleration, custom control unit).
- Uses USB to connect the device to a PC for configuration, debugging and communication.
- Uses the I²C bus for local communication.
- Uses a CAN-type physical interface to implement a bus for distributed control.
- Has an IrDA transceiver to talk to devices like Palms and notebooks (for field programming, remote control or data downloading).
- Has an ADC on-board.
- Has a MicroSD card interface to store parameters, code or non-volatile data such as the FPGA
configuration.
- Has an on-board dual motor driver.
|
Who? |
...
|
Here is a simple block diagram of the JBRD board. Overviews of block functionality
follow below.
| Description |
ARM microcontroller (Atmel AT91 SAM7S64)
The JBRD's brain is a low cost, low power ARM7TDMI microcontroller.
|
FPGA (Xilinx Spartan-3 XC3S200)
The FPGA implements peripheral interfacing, communication adapters and
flexible custom
control units using the benefits of reconfigurable computing.
|
Programmable oscillator (Linear LTC6903/4)
An optional programmable oscillator is used to supply a range of frequencies
to the FPGA for precise peripheral clocking if needed.
|
USB interface
The built-in USB device controller of the AT91 MCU is used for programming and
as main communication channel. The same USB interface
may power the board during configuration if power consumption is less
than 2.5W in this mode.
|
I²C-compatible bus interface
Local board-to-board communication can be realized
over an I²C bus.
|
PINC - CAN interface (TI SN65HVD233/4/5)
Communication with other devices over long distances is
carried out by a High-Speed Controller Area Network physical interface.
Baud rates up to 1Mbps are supported, depending on maximum cable
length.
Currently the physical CAN bus interface is used with a custom protocol
dubbed PINC (for 'Pinc Is Not Can') implemented with a lightweight controller
in the FPGA.
|
IrDA-compatible interface, SIR or IrCOMM (Agilent HSDL-3000)
The JBRD has an optional IrDA transceiver for infrared communication
with palmtop and laptop devices.
|
General purpose Input/Output ports
A number of 0.0_+3.3V general purpose port IOs from the MCU and FPGA
are provided in two-row
100-mil headers. Power signals are also exported there.
|
8-channel ADC
The AT91 MCU provides an 8-channel 10-bit ADC. 4 exclusive ADC inputs are buffered
and the other 4 are shared with IOs.
|
Dual coil driver for motor control (Allegro 3968)
A dual peripheral driver optimized for motor control is be provided
on-board. The driver may be used to drive two independent DC motors or
the two coils of a stepper motor.
|
MicroSD card interface
The JBRD has one connector for a MicroSD card. The main use of this
card is to store code, configuration parameters (e.g. FPGA
bitstream) and arbitrary data.
|
Power (TI TPS76701QD, TPS704XX)
The JBRD is powered by a +5V supply, either
through the USB VBUS (low power) or using an external supply (high power).
The other voltages
required by the devices are generated on board. The external supply
has priority over the power provided by the USB bus. The same external supply
is used in the connectors and motor driver.
|