The Rabbit 2000 is a high-performance 8-bit microprocessor. It offers many desirable features, such as an on-board realtime clock, four serial ports, lower power 'sleepy' operation and glueless memory architecture. The manufacturer, Rabbit Semiconductor, also sells modules that consist of a combination of flash and SRAM memory (from 128 k to 512 k of each type of memory) and modules that also include Ethernet.
Development is simplified with the Rabbit low-cost development kits, which include a full C-compiler, debugger, programming cables, prototyping boards and in some kits, the Rabbit modules. In short, everything needed to develop with the Rabbit Microprocessor is included in the kits. With the C-compiler comes an extensive set of libraries including FFT routines, maths routines and in some kits even full source code and royalty-free TCP/IP stack.
Instruction set
To minimise the learning curve, Rabbit began with the familiar Z80/180 instruction set. The Rabbit 2000 features an updated Z180-style architecture for higher-performance. Several obsolete or redundant Z180 instructions have been dropped to allow efficient one-byte op-codes for new instructions. Existing Z180 assembly language can be ported to the Rabbit with minimal change.
Instruction Set Enhancements: C-efficient instructions are included for fetching and storing 16-bit words on-the-stack or at a computed memory address; memory management is simplified by instructions that perform fetches, stores, calls, returns, and jumps over a full megabyte of address space; a single-byte prefix turns memory-access instructions into I/O instructions, resulting in faster and more flexible I/O; communication between Rabbit registers is improved, allowing better use of the alternate register set for greatly enhanced compiler performance; 16-bit logical and arithmetic operations dramatically speed up both fixed and floating-point arithmetic.
Rabbit 2000's new instructions are natural improvements to the Z180 instruction set, providing a comfortable environment for the experienced Z80/180 programmer.
Hardware architecture
Glueless memory interface: The Rabbit 2000 uses available memory bandwidth efficiently. One-byte 'reads' (and most single-byte instructions) take two clock cycles, while one-byte 'writes' take three clock cycles. Assuming the same memory speed, the Rabbit is about three times faster than the Z180 when running C code.
The main features of the Rabbit memory interface are:
* Up to six static-memory-chips connect directly to the Rabbit without glue-logic.
* Only moderate-speed memory (55 ns) is required to run at the highest clock rate with no wait states.
* Additional memories are easily supported.
* One megabyte of code space is accessible directly by call and jump instructions.
Slave interface: The slave port allows the Rabbit to serve as an intelligent peripheral device, which makes it excellent for off-loading communications protocols or motion control functions. Handshaking flags and interrupt capability for both master and slave eases interfacing.
I/O interface and ports: The Rabbit 2000 has 40 I/O pins grouped in five 8-bit ports. Eight of these signals may be programmed as I/O chip selects or read/write strobes with selectable wait states. The high-drive capability (up to ±25 mA) and flexible configuration options allow most devices to be interfaced without glue logic.
Four on-chip asynchronous serial ports support a maximum burst of 92 Kbps with a 30 MHz master clock. Two of the ports also have synchronous communication capability supporting burst rates as high as 7,5 Mbps.
Timers: Timer group A, consists of five 8-bit reloadable down counters, four of which can be cascaded. These timers allow generation of precisely synchronised timing pulses under software control. The timers can also be configured to trigger interrupts or provide baud clocks for the serial ports. Timer group B consists of a 10-bit free-running counter with two 10-bit match registers. Whenever the counter reaches a match value, the timer generates an output pulse and an optional interrupt.
Time/date oscillator: In addition to the timers described above, the Rabbit includes a realtime clock consisting of an internal 48-bit counter driven by external 32,768 kHz quartz crystal. It may be backed up by a battery on a dedicated clock power pin. A general-purpose clock interrupt is provided by dividing the clock oscillator by 16, resulting in a periodic interrupt every 488 ms when enabled. The watchdog timer is also driven from the external 32,768 kHz crystal. It can be used to automatically reset the processor if normal program flow is interrupted for a specified time period (selectable for 0,25, 0,5, 1, or 2 seconds).
Remote Bootstrap: The Rabbit 2000 may be remotely booted from a serial or slave port with no pre-existing program. This allows RAM-only configurations or complete reprogramming of soldered-in flash memory.
Low-power 'sleepy mode': A unique low-powered feature called the sleepy mode is available. Normally, a crystal or ceramic resonator in the range of 1,8 to 30 MHz is used for the main oscillator. The frequency can be doubled or divided by eight internally to allow trade-offs between execution speed and power consumption. In sleepy mode, the main oscillator is turned off and the CPU is clocked by the 32,768 kHz oscillator. Roughly 3000 instructions per second are executed while consuming less than 0,5 mW. The sleepy mode is far more flexible than low-power modes of other mircroprocessors because instruction execution and decision making capability and maintained. This feature is excellent for many battery-powered applications.
Interrupt controller: Four interrupt priority levels allow fast response to realtime events. Short interrupt service routines can be inserted directly into the vector table. Allowing interrupt routines to execute in less than 4 ms.
Characteristics: Operating voltage 2,5-5,5 V; -40°C to 85°C operating range; 100-pin PQFP package.
The Rabbit 2000 RabbitCore 2000
Why accept OTP (one time programmable) when you can have MTP (many times programmable)? There is no disputing the convenience of a CPU integrated with everything one needs, including program and data memory. Typically, however, one makes sacrifice for this convenience. Data memory is small and processor performance is limited. Plus, a programming error is discovered, the processor must be unsoldered and thrown out. The Rabbit RabbitCore 2000 overcomes these limitations.
The Rabbit 2000 achieves superior integer and floating-point performance through a combination of functional features: a single-byte 12-cycle signed multiply instruction with a 32-bit product; many new 16-bit logical, arithmetic, and data transfer instructions; a highly optimised Dynamic C math library.
For full details of a benchmark test see: www.rabbitsemiconductor.com/products/rab20/rab20_benchmarks.html
Software for Rabbit 2000 is developed using Dynamic C, a C-language development system. Dynamic C operates on a PC under Windows or Win/NT and includes: easy-to-use program editor; fast C compiler that compiles, links and downloads directly to the target in one site; source-level bugger; hundreds of functions in source-code libraries; a BIOS.
Realtime debugging is allowed. A programming cable provided with the development kit connects the Rabbit to the C serial port. No in-circuit emulator is needed, simplifying development. Developing software with Dynamic C is easy. C code, assembly code, or even mixed-C and assembly code can be written, compiled and tested without leaving the Dynamic C development environment. It is specifically tailored for embedded systems.
The Rabbit 2000 Development Kit includes everything required to fully evaluate the capabilities of the Rabbit 2000 microprocessor.
Conclusion
The performance of the Rabbit 2000 makes it a serious contender when compared to other microprocessors. Development time is sped up considerably by the availability of RabbitCore modules. The low-cost development kits make the Rabbit microprocessor accessible to everyone. According to a survey of readers taken by Embedded Systems Programming magazine, the Rabbit 2000 microprocessor has made a very good first impression, achieving a remarkably high ranking compared to other, more established 8-bit microprocessors. The Rabbit 2000 was introduced only 10 months before the magazine's survey, yet it gained the nod from more than 20% of the survey respondents as being one of the 8-bit microprocessors that they would consider using for their design projects.
Source: Embedded Systems Programming, "2000 subscriber study, final report," October 2000.
For further information contact Stephen Silberman, Analog Data Products, telephone 011 531 1400.
© Technews Publishing (Pty) Ltd | All Rights Reserved