FBUS DATA PROTOCOL
OVERVIEW
The Francis bus (FBUS) is a custom communication protocol based on
RS485 two wire bi-directional communication hardware. The system provides
a simple bi-directional link between lamps and lamp control panels. The
system allows given panels to communicate with different lamps and also
allows a number of panels to communicate with the same lamp.
DETAILED DESCRIPTION
The FBUS system runs at 38.4K Baud. This low data rate facilitates longer
cable runs and complements the fairly small amount of data transfer required
whilst still providing a fast response. The data frame is 11 bits with 9 data bits,
one start and one stop bit. A simple error detection system is employed which
is described in detail later. Data is sent LSB first.
To prevent data collisions the system uses a polling technique. Lamp number
0 is the default bus master and controls timing of all communications by
polling other units connected to the bus. If lamp 0 is not operating or powered
down, lamp 1 automatically becomes the bus master as will lamp 2 if lamp 1
is not operating.
The system differentiates between address and data values by setting data bit
8 high for an address. Panel 2 address would therefore be sent as hex 102 or
binary 100000010. The lamps and panels use different address ranges with
panels being addresses 0-15 and lamp addresses starting at 16 and going up
to 56. A lamp whose address was set to 0 on the address switches will
actually be address 16 and would be transmitted as hex 110 or binary
100010000.
If lamp 0 is active this becomes the bus master and sequentially transmits the
full address range. No other units will transmit until they receive their address.
Each address is followed by a 1mS dead period where the master switches
from transmit to receive and monitors the bus for activity. If activity is present
the master will not transmit the next address until 1mS after bus activity
ceases. After the full panel address range has been sent (addresses 0-15) the
master starts to send lamp addresses.
These operate slightly differently in that, if more than three successive
addresses do not illicit a response, the bus master will assume the last lamp
has been polled and re starts the data cycle by reverting to panel address 0.
When a remote panel receives its address, it will send data if it has any to
send, if not, no data will be sent. Lamps operate differently in that they will
always send data after they have seen their address on the bus.
Panels can send data to any lamp therefore they transmit a modified lamp
address value prior to the lamp command(s). The modified address is
received by lamps and, if it matches their own address, the command(s)
which follow will be received and processed.