Conclusion
There is a well illustrated manual that is worth
a read.
There is more information in embedded systems.
The D6 is an educational computer and prototyping environment developed at
Dublin City University. It is used on practical sessions for our first year
computer architecture course, and for our third year embedded systems course
and has been used for product development with local industry.
The D6 is a flexible open architecture STE-BUS (IEEE-1000) based system.
With it we generally use a CPU board based on the Intel 80188, giving good
compatibility with the IBM PC. A wide range of CPU and I/O boards are
available for the STE-BUS at reasonable cost from many different sources.
A number of programs are supplied to allow software development with a PC as
host.
The
software
includes a monitor, a simulator, and an interface to Borland's
Turbo Debugger. The monitor allows entry of machine code programs via the
keypad, and controlled execution of programs (tracing and breakpoints).
Memory and registers can be examined and changed and programs can be
downloaded from the PC.
A version of Turbo Debugger Remote runs on the D6 allowing students to debug
C, C++ and assembly programs using Turbo Debugger running on a PC. This allows
the strange combination of the user friendly PC environment and the low level
D6 environment. There is also a library of D6 I/O routines (written in C) and
many example programs show how to access the hardware features of the D6.
The powerful debugging features mean that only an assembler, and a C or a C++
compiler are required to have a complete development system.
The front panel contains a keypad, display, a speaker and a 10-bit parallel
port. The standard CPU card contains an 80188 CPU, 32k of RAM and ROM, a
serial port and a 16-bit parallel port. There are also two DMA channels, nine
16-bit timers, and five 8-bit timers.
There are four STE slots, one of which is occupied by the CPU card, leaving
three slots for STE I/O cards. Typical cards used are A/D, D/A converters,
Ethernet cards, and Digital I/O. It is also possible to add other processor
cards (the bus supports multiprocessing) and memory cards.
Program evelopment methods on the D6 include :
- Entry of machine code via the keypad. Tracing and observing the effects
on registers and memory.
- Writing assembly language programs on the PC and downloading them to the
D6.
- Writing C / C++ programs on the PC, downloading and debugging using a map
file and breakpoints.
- Testing programs on a simulator.
- Remote debugging of D6 programs on a PC.
- Using an In-circuit emulator to help debug programs
When program testing is complete an EPROM can be blown and inserted in
the D6, which then operates as a dedicated system. A course can cover a full
range of development methods, allowing students to compare them and see the
advantage of using more sophisticated tools.
Students get practice at programming low-level devices :
- Intelligent chips, e.g. timers, DMA, Interrupt controllers, digital I/O,
and serial ports.
- The ease with which different I/O cards can be added encourages
experimentation.
This is a standard first year course, On the course, 80x86 assembly language
is taught, and the practicals sessions involve looking at memory and registers,
entering and debugging programs in machine code, using an assembler on the PC
and downloading programs to the D6. Simple project work includes reading the
keyboard, writing to the display, using timer interrupts, etc. The open design
of the D6 kit - every component is visible - means that students can identify
the function of every part of the system. We feel that this is much better
educationally than the usual 'black box' situation.
This is a third year course on the computer applications degree. The course
introduces embedded systems' hardware, software and development methods. The
practical sessions include writing a C program that will
self start on EPROM and control various I/O devices. The main benefits to
the students of the practical sessions are that they learn to write low level
device drivers, to locate programs to match the D6 address space, and to write
rommable programs.
A student is required to complete three projects (short C programs) that
cause the D6 to interact with some I/O (e.g. the display, keyboard, speaker,
serial port, and / or various I/O cards). Students often come up with their
own ideas for projects, and some were quite interesting. E.g. two
students wrote a Ping-Pong game, using an oscilloscope as a screen (driven by
two D/A converters) and two joysticks connected to a D6. Other examples
included a simple keyboard player, waveform generators, a lie detector,
battleships, and traffic lights.
The students were pleased when the program ended up on EPROM and started up at
power-on. It seemed more like building a machine than writing a program. In
addition, the student gets a clearer idea of what is involved in building a
computer because they are involved at so many levels.
In 1986 we finally gave up on our Motorola (6802 based) D5 kits (they were
old, hard to replace and didn't have much support software). We started to
teach assembly language on the IBM PC. However this was unsatisfactory for two
reasons, firstly, MSDOS and BIOS are a 'black box' and students using a PC
learn little about the underlying hardware. Secondly there was a perception
that the only worthwhile programs on the PC were high quality commercial
programs. Students found it frustrating that their programs achieved so little
in comparison.
We couldn't find a computer that met our needs, and so started the design of
our own, the D6, which has been successfully used at DCU for the past six
years. It has also been used to prototype new products with local industry,
including technically sophisticated Ethernet based hardware.
For further information on the D6, contact
Charlie Daly /
cdaly@compapp.dcu.ie / October 1998