Typical EVILbus interface schematic
Description
The name EVILbus comes from an inside joke between Jon Pullen and Lee Hart.
They started with "Electric Vehicle bus by Jon and Lee", but E V J L didn't
spell anything. Lee said it's too bad his name isn't Igor. Jon suggested
Electric Vehicle Instrumentation bus by Lee (EVILbus).
It is actually the bus used to communicate between the individual battery
chargers in Rick Woodbury's Tango
prototype.
Features
- 2-wire open-collector optically-isolated bus
- 32 nodes in present configuration; 3-4 times this number is feasible
- Idle bus power consumption is 0.5ma per node
- 2500 volts isolation (set by the optocouplers used)
Connector
- RCA phono plug, with either two female jacks on each node, daisy chained
with standard mono audio cables, or with a male/female cord cut in half and
the cut ends soldered onto the board.
- Center pin positive, outer shell negative
- Why? common, inexpensive, shielded cable widely available, connections
are easy to seal up with a piece of heat shrink tubing over the connection
Termination
- 150 ohm resistor from the center pin (positive) to +12v
- 150 ohm resistor from outer shell (negative) to GND
- 12v supply can be anything from 9v to 16v
- Why? they serve as pull-up resistors, and terminate noise and ringing
on the bus. Since the bus is used at low speeds, these resistors can be
located anywhere on the bus. Having the resistance split between the +
and - sides means a short circuit either does nothing, or at worst blow
out one of these resistors which are easy to replace.
Receiver
- 10k ohm resistor and LED of an optocoupler in series
- Series blocking diode so reverse polarity does no harm
- 10k ohm resistor across LED insures leakage current won't falsely turn LED on
- Input current in passive high state (mark):
410uA at 9v, 590uA at 12v, 810uA at 16v.
Multiply by number of nodes for total 12v supply current.
Input impedance approximately 12k ohms.
Input "high" threshold is approximately 400uA at 5v.
- Input voltage in active low state (space):
2.2v @ 16mA (9v), 2.3v @ 30mA (12v), 2.4v @ 45mA (16v).
Current limited by 150+150 ohm pullup resistors
Transmitter
- Optocoupler phototransistor driving base of transistor to short the two
wires together
- Why? logic driving the optocoupler need only supply 0.5ma to its LED,
yet 10's of ma can be carried by the transistor. Didn't use a darlington
optocoupler because they are slow.
Serial Bit Format
EVILbus nodes use standard UARTs or UART emulators to communicate over
the network. The format is no parity, 8 data bits, 1 stop bit, and the
default rate is 9600 baud. Individual bits within the byte are sent LSB
first, MSB last.
Start | Bit 0 | Bit 1 | Bit 2 | Bit 3 | Bit 4 | Bit 5 | Bit 6 | Bit 7 | Stop
The bus idle state is high. A logical '1' bit is also a high state on
the bus. A logical '0' is a low state on the bus.
Slave nodes may adjust their internal UART clocks to the incoming signal
by training on a Sync byte in the implementation's data packet.