UniBone - Hardware

Parent Category: Projects Category: UniBone Written by Administrator

- THIS IS WORK In PROGRESS-

UniBone is an interface to DEC PDP-11 computers with UNIBUS. It has the form factor of a standard "quad-slot" board and is plugged into a SPC slot on the UNIBUS.

There are several device-emualtor projects in the web, so UniBone has to be different:

  • instead of emulating just a disk or floppy connected to a DEC controller card, it emulates device & controllers together at the UNIBUS level.
  • having a full Linux behind allows even to run SimH or complex diagnostic software on real hardware, beside all the other benefits.

UNIBUS has 56 signal lines, all of these are connected bi-directionally.So UniBone can act as

  • UNIBUS slave (accessed as memory location or device register by PDP-11 CPU),
  • it can be UNIBUS master (arbitrating the bus, doing interrupts and DMA).

About electronics

The board looks a bit "retro", this is no pure coincidence !

 

unibone pcb

 

Linux runs on a BeagleBone Black ("BBB"), which is mounted on the board.

Access to the BBB is over Ethernet. WLAN would not work, as UniBone will be probably be mounted inside an all-metal DEC case.

The 56 UNIBUS signals are not connected directly to GPIOs, but over a register-multiplex logic. This way only 20 highspeed GPIOs are used, see schematic.

The UNIBUS is driven by DECs DS8641 bidirectional driver chips, conversion between 3.3V BBB I/Os and 5V UNIBUS signals is necessary. With a global "Driver enable" the whole board can be "plugged off" from the UNIBUS. The DS8641 is vintage, I got them for 50 cent a piece (don't pay $3, you need 16 of these!).

BBB is powered by Unibus +5V and generates +3.3V voltage for slave electronic.  Some LEDs and switches add eye candy.

Why a BBB?

First question you hear today is: "Why not using a Raspberry Pi"? Sure the RPi has 4 cores, is 64 bit, is faster than BBB and has more RAM and better graphics. But all this is of no big value here, what we need are fast, reliable GPIOs.

The Sitara AM335X CPU on the BBB has two separate IO processors called PRU ("Programmable Realtime Unit"). They execute code at 200MOps, have special GPIOs attached and are especially built for doing bit-banged protocols in software. They can replace FPGAs in medium speed-applications.

A simple benchmark for GPIO perfomance is a loop in C like this:

while(1) {
   my_gpio = 0 ;
   my_gpio = 1 ;
}

This produces a square wave on pin "my_gpio". The loop time is 15ns, the BBB-PRUs reach 66MHz output here. Beat that, RPi!

What's almost important as speed is stability: user programs under Linux will get stopped shortly by the task scheduler on multitasking. The PRUs run independent of Linux timing and are fully deterministic. They are even constructed without pipeline or cache, so one opcode is always 5 nanoseconds. Always.

On the other hand, Linuxes with RT patch can lock threads in memory and can give them highest priority. This closes the gap to PRUs a lot.

The BBB is used because

  • the PRU processors are already there for free;
  • all the highspeed signal stuff is solved on the BeagleBone;
  • no 100+ pins CPLD to solder, no fine-pitch ICs! The PCB itself can be distributed as build-yourself-kit to everybody.
  • integration into ARM Linux is excellent (shared memory with 200MB/sec bandwidth);
  • and the PRUs are programmable in (almost) plain C.

 

Mechanics

A BBB is only a little wider as the standard width of DEC board slots. And neighbor boards often have space atop their ICs, because DEC logic ICs are usually not socketed.

So the BBB is mounted not ontop of the UniBone PCB, but is hovering in a cutout. Connections are flexible, vertical alignment is fine-trimmed by use of 3D-printed distance elements.

unibone bbb

 

The Ethernet port needs an 90° angle plug, then UniBone fits in a DEC case. As I learned from earlier designs, SDcard slot and USB port remain accessible.

 

 

Attachments:
Download this file (bbbspc.pdf)bbbspc.pdf[UniBone schematics]668 kB