INTERSIL CDP68HC68S1M

CDP68HC68S1
Serial Multiplexed Bus Interface
April 1994
Features
Description
• Differential Bus for Minimal EMl
The CDP68HC6SS1 Serial Bus Interface Chip (SBlC) provides
a means of interfacing in a Small Area Network configuration,
various microcomputers (MCU’s) containing serial ports. Such
MCU’s include the family of 68HC05 microcontrollers. The SBlC
provides a connection from an MCU’s Serial Communication
Interface (asynchronous UART type interface) or Serial Peripheral Interface (synchronous) to a medium speed asynchronous
two wire differential signal bus designed to minimize electromagnetic interference. This two wire bus forms the network bus
to which all MCU’s are connected (through SBI chips). See Figure 1. Each MCU operates independently and may be added or
deleted from the bus with little or no impact on bus operation.
Such a bus is ideal for inter-microcomputer communication in
hazardous electrical environments such as automobiles, aircraft
or industrial control systems.
• High Common Mode Noise Rejection
• Ideal for Twisted Pair Wiring
• Data Collision Detection
• Bus Arbitration
• Idle Detection
• Programmable Clock Divider
• Power-On Reset
Ordering Information
PART
NUMBER
TEMPERATURE
RANGE
PACKAGE
CDP68HC68S1E
-40oC to +105oC
14 Lead PDIP
CDP68HC68S1M
-40oC to +105oC
20 Lead SOIC (W)
In addition to acting as bus arbitor and interface for microcomputer SCI port to differential bus communication, the
CDP68HC68S1 contains all the circuitry required to convert
and synchronize Non-Return-to-Zero (NRZ) 8-bit data received
on the differential bus and clock the data into a microcomputer’s
SPl port. Likewise, data to be sent by a microcomputer’s SPI
port is converted to asynchronous format by appending start
and stop bits before transmitting to other microcomputers.
Refer to the data sheet for the CDP68HCO5C4 for additional
information regarding CDP68HCO5 microcomputers and their
Serial Communications and Serial Peripheral Interfaces.
The CDP68HC68S1 is supplied in a 14 lead dual-in-line plastic
package (E suffix), and in a 20 lead small outline plastic package (M suffix).
Operating voltage ranges from 4V to 7V and operating temperature ranges from -40oC to +105oC.
Pinouts
CD68HC68S1 (PDIP)
TOP VIEW
CLK 1
A 2
B 3
MODE 4
BUS+ 5
BUS- 6
VSS
7
CD68HC68S1 (SOIC)
TOP VIEW
14 VDD
13 CONTROL
12 IDLE
CLK
1
A
2
19 CONTROL
B
3
18 NC
20 VDD
MODE
4
17 IDLE
11 CS
NC
5
16 CS
10 SCK
NC
6
15 SCK
BUS+
7
14 NC
NC
8
13 NC
BUS-
9
12 REC
VSS 10
11 XMIT
9 REC
8 XMIT
CAUTION: These devices are sensitive to electrostatic discharge; follow proper IC Handling Procedures.
407-727-9207 | Copyright © Intersil Corporation 1999
6-84
File Number
1918.3
CDP68HC68S1
Block Diagram
SCK
XMIT
REC
CS
ARBITRATION
DETECTOR
COLLISION
DETECTOR
SPI/SCI
CONVERSION
MODE
WORD COUNTER
AND
CLOCK
GENERATOR
CLOCK
DIVIDER
CLK
A
IDLE
DETECTION
AND
CONTROL
BUS+
DIFFERNTIAL
DRIVER/RECEIVER
TO
FROM
MCU
BUS-
TO OTHER
SBI CHIPS
B
CONTROL IDLE
6-85
Specifications CDP68HC68S1
Absolute Maximum Ratings
Thermal Information
Supply Voltage (VDD) . . . . . . . . . . . . . . . . . . . . . . . . . -0.3V to +7.0V
Input Voltage (VIN) . . . . . . . . . . . . . . . . . . VSS -0.3V to VDD+0.3VDC
DC Input Current (IIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .±10mA
Thermal Resistance
θJA
Plastic DIP Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100oC/W
Plastic SOIC Package . . . . . . . . . . . . . . . . . . . . . . . . . . 120oC/W
Storage Temperature Range (TSTG) . . . . . . . . . . . . -55oC to +125oC
Lead Temperature (Soldering 10s) . . . . . . . . . . . . . . . . . . . . +265oC
CAUTION: Stresses above those listed in “Absolute Maximum Ratings” may cause permanent damage to the device. This is a stress only rating and operation
of the device at these or any other conditions above those indicated in the operational sections of this specification is not implied.
Operating Conditions
Operating Temperature (TA) . . . . . . . . . . . . . . . . . . -40oC to +105oC
DC Electrical Specifications
PARAMETERS
DC Operating Voltage Range (VDD) . . . . . . . . . . . . . . . . +4V to +7V
TA = -40oC to +105oC Unless Otherwise Noted. External Bias (VO) shall be 1.8V to 3.13V Unless
Otherwise Noted.
SYMBOLS
TEST CONDITIONS
MIN
MAX
UNITS
SIGNAL I/O SECTION
Output Voltage High Level
VOL
Open Circuit
-
0.05
VDC
Output Voltage Low Level
VOH
Open Circuit
VDD-0.05
-
VDC
Input Voltage Low Level
VIL
-
0.3VDD
VDC
Input Voltage High Level
VIH
0.7VDD
-
VDC
Output High Drive (Source) Current
(REC Pin)
IOH
VOH = 4.6V, VDD = 5V
-0.12
-
mA
Output High Drive (Source) Current
(IDLE, Control Pins)
IOH
VOH = 4.6V, VDD = 5V
-0.04
-
mA
Output Low Drive (Sink) Current
(IDLE, Control, REC)
IOL
VOH = 0.4V, VDD = 5V
0.36
-
mA
DIFFERENTIAL TRANSCEIVER (SEE FIGURE 4) TRANSMITTER
BUS+
IAOL
VO = VDD/2, RL = 120Ω
2.75
-
mA
IAOH
VO = VDD/2, RL = 120Ω
-1.0
1.0
µA
IBOL
VO = VDD/2, RL = 120Ω
-
-2.75
mA
IBOH
VO = VDD/2, RL = 120Ω
-1.0
1.0
µA
IAOL - IBOL Match
IM
VO = VDD/2, RL = 120Ω,
VDD = 5V ±0.5V
-
5
%
Output Rise Time (BUS+)
tR
VDD = 5V, CL = 25pF
-
1.5
µs
Output Fall Time (BUS-)
tF
VDD = 5V, CL = 25pF
-
1.5
µs
Transition match (50% Point)
tM
VDD = 5V, CL = 25pF
-50
50
ns
BUS-
RECEIVER
Differential Sensitivity
VIDH
VO = 2.5V, RL = 120Ω, VDD = 5V
-
120
mV
VIDL
VO = 2.5V, RL = 120Ω, VDD = 5V
20
-
mV
Hysteresis (Within VIDH , VIDL Limits)
VH
VO = 2.5V, RL = 120Ω, VDD = 5V
20
-
mV
Propagation Delay
tP
VIDH =120mV, VDD = 5V
-
700
ns
Out of Range
VAX
VDD = 5V
3.8
-
V
VMIN
VDD = 5V
-
1.2
V
-10
10
µA
-
TBD
(Note)
MHz
Quiescent Device Current
IDD
VDD = 0V, VO = 2.5V
Clock Speed
fOP
VDD = 5, RL = 120Ω, CL = 25pF
NOTE: Although 1MHz is generally used as an example throughout this datasheet, the maximum speed limit may be higher and depends
upon user’s noise tolerance requirements.
6-86
CDP68HC68S1
The Serial Bus IC offers the user three possible modes of
operation as defined by Table 1 - SCl (Note 1), SPl, and Buffered SPl. Also included is a “three-state mode” entered by
pulling the CS pin high while in the Buffered SPI mode. As
the name implies, the SCl mode is used when communicating through the microcomputer’s SCl port. In this mode,
asynchronous NRZ data format (1 start bit, 8 data bits ‘least
significant bit first’, and 1 stop bit) and baud rate remain the
same on each “side” of the SBlC, i.e. to and from the micro
and to and from the differential network bus.
TABLE 1. MODE AND CHIP SELECT DEFINITION
SBI CHIP MODE
MODE PIN
CS PIN
SCI
1
1
SPI
1
0
Buffered SPI
0
0
Three-State (Note 2)
0
1
NOTES:
1. SCI is the UART interface of a 68HCO5 MCU. The
CDP68HC68S1 is compatable with most UART devices.
2. The three-state mode is only entered when using the Buffered
SPI mode. In the three-state mode, only the XMIT, REC, and
SCK pins are three-stated. The CONTROL and IDLE pins are always active.
During data transmission, while a byte is being transmitted
from the MCU through the SBl chip onto the differential bus,
it is also reflected and simultaneously received back at the
micro, (this is required for bus arbitration as described later).
bus “monitoring”. The Serial BUS Interface chip handles bus
arbitration, data collision detection, and provides short circuit
protection.
A 68HC0S MCU’s SPI port may instead be used for bus
communication. Two modes of SPl operation are available
with the SBIC - one essentially places the 68HC05 microcomputer in the slave mode and the other allows the MCU to
remain a master. In the normal SPl mode the SBIC acts as a
master and supplies a data-synchronizing serial clock signal
to the micro (which operates in the slave mode) for shifting
data in or out of the micro’s 8-bit SPl data register. Again,
baud rates are the same on each side of the SBlC, however,
the user must reverse the bit order of a byte transmitted or
received via the SPI port due to the SPl’s most significant bit
first serial data nature. In addition, since the user microcomputer is operating in the slave mode it must signal the SBI
chip (by pulling the CONTROL line low) to initiate a transmission. As in the SCl mode, during a transmission, the byte
originally in the SPI data register is replaced by the byte
reflected from the bus.
Transmission and reception of data in the Buffered SPI mode
allows the user to free the micro’s SPl port by allowing fast
data communication (1M bits/second) between the SPI port
and SBlC. For instance, if the MCU is transmitting, the SBlC
converts the data stream from the MCU’s SPl port to a
slower speed for transmission along the differential bus
when the bus becomes idle. Data speed conversion is
accomplished via a 2 byte (16-bit) data buffer register residing in the serial bus chip. In this mode the MCU operates as
a master and provides the serial clock signal to the slave
SBlC peripheral. After fast data has been sent to or received
from the SBIC, the micro can pull the SBlC’s CS pin high
(placing the SBlC chip in the three-state mode) and then use
the SPl port to access other SPl peripherals.
DIFFERENTIAL BUS
SBI
SBI
All transfers between the user MCU and the SBlC in the
Buffered SPI mode consist of 2 bytes, i.e. a message consists an even number of 8-bit transfers. A microcomputer
wishing to transmit loads 2 bytes into the serial bus IC data
register and then pulls the control pin low to initiate transmission. During transmission the 2 bytes placed into the buffer
are replaced by the two reflected bytes received from the
bus. After every 2 byte transmission the user micro should
transfer the two reflected bytes out of the buffer and the next
2 bytes to be transmitted into the buffer.
SBI
TABLE 2. CLOCK PROGRAMMING
SPI OR SCI
MCU
SPI OR SCI
MCU
SPI OR SCI
MCU
FIGURE 1. POSSIBLE NETWORK CONFIGURATION-VARIOUS
MICROCOMPUTERS USING SBI CHIPS TO COMMUNICATE ALONG DIFFERENTIAL BUS.
In addition to performing a framing error check in the SCI
mode, other advantages gained by using the SBlC (in any
mode) include greater system EMl tolerance and automatic
6-87
CLOCK INPUT
DIVIDE FACTOR
A PIN
B PIN
÷1
0
0
÷2
0
1
÷4
1
0
÷ 10
1
1
CDP68HC68S1
Functional Pin Description
PIN NUMBER
SYMBOL
IN/OUT
DESCRIPTION
1
CLK
Input
This is the clock input that shall be divided by the SBIC (as described in Table 2) and used
as an internal synchronizing clock. The internal clock is then further divided by 128 to determine baud rate, i.e. 128 internal clock periods constitute 1-bit length.
2, 3
A and B
Input
Programing inputs of the clock divider. These inputs are tied to +VDD or VSS depending
upon speed of external clock source. (See Table 2)
4
Mode
Input
This input shall be used in conjunction with CS input to define the mode of operation (see
Table 1). It may be permanently wired to +VDD or VSS or driven high or low by MCU I/O
lines.
5, 6
BUS+
and BUS-
Input/Output
This is the two wire differential bus I/O used to transmit and receive data to and from the
differential bus. BUS+ is both responsive to, or driven positive by sourcing current from
an externally established bias point. This sourcing current matches the BUS- I/Os sinking
current. BUS- is both responsive to, or driven negative by sinking current from an externally established bias point. This sinking current matches the BUS+ I/Os sourcing current.
14, 7
VDD and
VSS
-
Power and ground reference are supplied to the device via these pins. VDD is power and
VSS is ground.
8
XMIT
Input
In the SCI mode this data input shall come from the microcomputer standard NRZ asynchronous communications output port (68HC05 SCI port pin TxD). In the SPI modes, it
shall come from the microcomputer’s synchronous output port (68HC05 SPI port pin
MOSl or MlSO).
9
REC
Output
In the SCI mode this data output shall be fed into the microcomputer asynchronous communications input port (68HC05 SCI port pin RxD). In the SPI modes it shall be fed into
the microcomputer’s synchronous input port (6805 SP1 port pin MOSl or MISO).
10
SCK
Input/Output
In the SCI mode, this I/O is not required. In both SPI modes this pin is connected to the
68HC05’s SPI port SCK pin. In the normal SPl mode, the SBlC shall produce shift clock
pulses via this pin for synchronously shifting data into and out of the microcomputer. In
the Buffered SPl mode this pin is an input and the microcomputer shall generate the shift
clock pulses. Figure 3 shows the relationship between the serial clock signal and other
SBIC signals in the SPI mode.
11
CS
Input
This input shall be used in conjunction with the mode input and shall be used as a chip
select (see Table 1). It may be permanently wired to +VDD or VSS or driven high or low by
MCU I/O lines.
12
IDLE
Input/Output
The microcomputer shall monitor this signal to determine the bus condition and also pull
this line low to generate a break. The IDLE signal goes low when the bus is idle (after
sensing an End of Message condition) and high when the bus is active. On reset, this pin
is set to a logic zero.
13
Control
Input/Output
The microcomputer shall monitor this I/O pin in the SPl mode to handle transmission and
reception of data. In the SCI and SPI modes, as an output, this pin will go low to indicate
that a data byte is currently active on the bus. In the Buffered SPI mode the control pin
indicates whether the user microcomputer has current access to the SBI chip’s internal 2
byte buffer (signified by a logic high on the control pin). In both SPI modes the control pin
is also effective as an input. In these modes the control pin is pulled low by the user microcomputer to initiate a transmit operation by the SBlC. The control pin is normally high
when the bus is inactive. On reset, this pin is set to a logic high.
All Intersil semiconductor products are manufactured, assembled and tested under ISO9000 quality systems certification.
Intersil products are sold by description only. Intersil Corporation reserves the right to make changes in circuit design and/or specifications at any time without
notice. Accordingly, the reader is cautioned to verify that data sheets are current before placing orders. Information furnished by Intersil is believed to be accurate
and reliable. However, no responsibility is assumed by Intersil or its subsidiaries for its use; nor for any infringements of patents or other rights of third parties which
may result from its use. No license is granted by implication or otherwise under any patent or patent rights of Intersil or its subsidiaries.
For information regarding Intersil Corporation and its products, see web site http://www.intersil.com
6-88
CDP68HC68S1
Differential Transceiver Cell
bus actually “floats” to a logic level one, but must be driven to
a logic level zero. Logic 0-bits always dominate over logic 1bits on the bus. If two MCU’s simultaneously transmit a zero
and a one on the bus, the zero will override the one and the
bus will merely appear to be transmitting a zero. The “marking” or idle signal on the bus is a logic one. If the bus is idle
or if a micro is sending a logic one, then a one will appear on
the bus.
The differential transceiver is a serial interface device which
accepts digital signals and translates this information for
transmitting on the two wire differential bus.
The transmitter section (shown in Figure 4), when transmitting, provides matched constant current sources to the bus
“+” and bus “-” I/O sourcing and sinking respectively. When
transmitting, a logic zero at the “transmit data” input causes
the bus “+” I/O to provide source current and the bus “-” I/O
to provide a matched sink current. A logic one at the “transmit data” input causes the bus “+” and bus “-” I/Os to simultaneously provide a high impedance state. The bus depends
on external resistor components for bias and termination.
Recommended resistor sizes are shown in Figure 4.
SBI CHIP
VDD
In addition to the transmission of data, the differential data
transceiver accepts at its bus “+” and bus “-” I/Os, serial differential data which is translated into the standard digital
logic levels. This reception of data also occurs while transmitting, thus reflecting the data seen on the bus back into the
SBIC data register.
VDD = 5V
VDD
0.6V
2.8
TRANSMIT
20mV MAX.
DATA
-----------------
13KΩ
BREAK
DIFF.
BUS
IA
BUS+
+
CL
-
RECEIVE
DATA
120Ω
BUSIB
CL
BUSBUS+
2.5
CL
LOGIC 1
DIFF.
BUS
LOGIC 0
2.2
LOGIC 0
13KΩ
OUTOF
RANGE
APPROX.
VOLTAGE
FIGURE 4. DIFFERENTIAL DRIVER/RECEIVER
A zero transmitted on the bus will appear as a large voltage
drop across the BUS+ and BUS- pins, i.e. BUS+ might typically sit at +2.8V and BUS- at +2.2V for a logic zero. For a
logic level one, the SBlC actually three-states the BUS+ and
BUS- pins and relies on external resistors to bias the bus
lines. The lines are both biased to sit at approximately 2.5V
with a small (perhaps 20mV) voltage drop across the two
lines. In this condition the BUS- line actually sits at a slightly
higher potential than the BUS+ line. See Figure 5. Thus, the
DIFFERENTIAL
BUS
SCK
START
BIT
0
1
XMIT
1
2
2
3
3
4
4
5
5
6
Typical voltage levels seen on BUS+ and BUSI/O pins for logic zero and logic 1-bits. Notice
that the BUS- Pin is biased to actually sit a
higher voltage potential than the BUS+. Values
shown are for VDD = 5V
FIGURE 5.
The differential transceiver cell allows bus activity by other
devices on the bus “+” and bus “-” I/Os when power to the
cell is shut off. Therefore, this powered off condition places
the transceiver outputs, BUS “+” and BUS “-”, in a high
impedance state. When the cell is either being powered up
or down, with or without bus activity, SCR latch-up protection
is provided such that this activity is not affected.
IDLE IDLE IDLE IDLE IDLE IDLE IDLE IDLE IDLE IDLE IDLE
STOP BIT BIT BIT BIT BIT BIT BIT BIT BIT BIT BIT
1
2
3
4
5
6
7
8
9
10
11
7 BIT
6
7
8
MSB
6
5
4
3
2
1
LSB
MSB
6
5
4
3
2
1
LSB
REC
CONTROL (1)(3)
(4)
CONTROL (2)
IDLE
NOTES:
1.
2.
3.
4.
The control signal at the transmitting node.
The control signal at the receiving node.
There is a delay between the control pin being pulled low and the actual beginning of the start bit.
If the control pin is again puled low before the end of the stop bit, then the next start bit will begin at the end of the previous stop bit.
FIGURE 3. SCK, CONTROL, AND IDLE SIGNALS DURING THE SPI MODE OF OPERATION
6-89
CDP68HC68S1
Receive data is an output from the differential transceiver
cell. It is the output of a differential amplifier which decodes
the bus “+” and “-” I/O. When the bus “+” and “-” has been
driven positive and negative respectively to a differential voltage value greater than VIDH , the output of the differential
amplifier is a logic one, which is inverted and considered a 0bit from the bus. Otherwise, for level below VIDL the differential amplifier output is a logic zero, which, in turn, is inverted
and considered a 1-bit from the bus.
Twisted wire pair (or adjacent PC board traces) is recommended for the two differential bus lines.
The BREAK input, when held at a logic zero, (low) causes
the differential transmitter driver to generate a continuous
logic level zero on the differential bus. This action can generate a data collision which can be either used as a break or a
request for arbitration by the system. When held at logic one,
(high) this input has no effect on the operation of the cell.
The out of range output is normally a logic zero but goes to a
logic one when the common mode voltage on both differential bus inputs exceeds a voltage value greater than VMAX or
less than VMIN (see device specifications). This output is
used by a latch to hold the received data at the logic level it
was before the over range signal occurred.
Provided on chip is a power-on reset function. The transceiver
cell’s reset output is held to a logic zero on power up and
switches to a logic one at or before VDD rises to 4.0V. This output is used to ensure that other on-board logic has been properly initiated. During this reset time, the bus “+” and the bus “-”
l/Os provide a high impedance state to the bus.
Bus Speed
SBlC systems typically use a bus speed of 7812.5 bits/second which is accomplished by using a 1MHz internal clock.
However, no restriction on any other baud rate is designed
into the chip, except its upper speed limit (see device specifications).
Bus Byte Format
All bytes transmitted on the bus follow the standard UART
style asynchronous non-return-to zero data format consisting oft start bit (logical zero) followed by 8 data bits (LSB
first), and 1 stop bit (logical one).
Bus Message Format
All messages transmitted on the bus consist of a number of
bytes, from 1 to N, with no restriction on length. The user must
be aware, however, that the longer the message length, the
greater the probability of collision with messages being transmitted at random from other masters on the bus. Typical message lengths of systems now in use range from 1 to 4 bytes.
The actual definition of each byte sent is left for the user to
determine, i.e. the user must define the system protocol. For
instance, a typical (and recommended) protocol might dictate that the first byte of each message sent be a unique
address/identification byte. The first byte sent by a node (an
MCU coupled with an SBl chip) might contain address information telling where (to which node[s]) the message is targeted for or where the message came from.
Other possibilities would be to identify the type of message
sent (e.g. an instruction or just information) or the length of
the message. The remaining bytes in each message can be
merely data bytes that comprise the actual message. The
user can even use the last byte as a check sum so that all
receiving nodes can check for errors in transmission.
Messages are normally received by all nodes on the bus and
may be processed by one or more micros, i.e., each MCU
may decide, after receiving the first byte (address/ID byte)
that this particular message is not needed for its operation.
The MCU can then ignore the remainder of the message.
Prioritization
Since simultaneous transmission of address/ID bytes from
several microcomputers is a possibility, a system of prioritization should be determined for bus arbitration. Due to the
electrical characteristics of the differential data bus, each
unique address/ID byte can automatically contain priority
information used for bus arbitration. Merely use “lower” value
ID bytes for higher priority messages. “Lower” value, in the
SBlC case, means an ID byte with more zero’s in its least
significant locations. To further explain, since the differential
bus transmits data least significant bit first and a zero overrides a 1-bit simultaneously transmitted by different nodes,
an ID byte with least significant bit equal to zero will override
an ID byte from a micro whose least significant bit is a one. If
this does occur on-chip bus arbitration will automatically
allow only one SBlC chip (with the highest priority address/
ID byte) to continue transmitting. In this case it is the micro
who transmitted the 0-bit. Assuming both ID bytes contain
identical LSBs (bit 0) then arbitration is carried on to the next
bit (bit 1),and soon.
Reflected Data
Whenever a microcomputer sends data through the SBIC
and onto the differential bus, it will always receive reflected
data back. The reflected data is the data that was actually
seen on the bus. Keep in mind that during data collisions
between simultaneously transmitting micros, zeroes override
ones. In addition, any noise that may have been induced on
the bus may alter the resultant reflected byte.
Bus Arbitration
Bus arbitration is the attempted transmission onto the differential bus of an initial byte (preferably an address/ID byte) by
one or more user microcomputers. The purpose of bus arbitration is to enable a single microcomputer to obtain sole
usage of the bus for the purpose of transmitting a message.
Bus arbitration is accomplished via a combination of methods which include an MCU software comparison of transmitted bytes to reflected bytes, the SBlC’s collision detection
circuit, and its start bit arbitration detector circuits.
Collision Detection
The SBlC’s collision detector circuit compares the bits being
sent from a user microcomputer to the reflected byte simultaneously received back from the differential bus. If the collision detector detects a difference in the data, it immediately
blocks the user microcomputer’s transmitted data from fur-
6-90
CDP68HC68S1
ther reaching the bus. This will happen, as stated in the “Prioritization” section, when a micro with a higher priority
address/ID byte attempts “simultaneous” transmission (actually, i.e. within a time window of 1/4 bit time).That micro, with
a higher priority ID byte, is obviously sending a 0-bit and its
reflected byte matches the byte it is sending. Not detecting a
collision, it continues to transmit its message, while the lower
priority MCU is cut off from transmitting on the bus. The
lower priority micro will be inhibited from transmitting on the
bus until the message presently on the bus has ended
(EOM = “End of Message” condition).
End of Message Condition
After transmitting the last byte of a message, the transmitting
MCU must generate an End of Message (EOM) condition.
An EOM condition is defined as a 10-bit length idle condition, i.e., the bus must remain idle (logic1) for a period of 10bit times (1280 internal clock periods). This can be done by
merely creating a 10-bit delay in MCU software.
Start Bit Arbitration Detection
Arbitration, as discussed above, is only necessary when two
or more micros attempt to transmit within 1/4 bit time (32
internal clock periods) of each other. Otherwise, once a
micro begins a transmission on the differential data bus, all
other SBl chips sense the start bit and inhibit their microcomputers from transmitting (again, after a 32 clock period arbitration window delay). Once the arbitration detector circuit
has blocked an MCU’s transmission, access to the bus will
be blocked until an End of Message condition.
Start of Message Delay
In order to properly synchronize various MCU’s (which may
be using different modes of operation) for impartial arbitration, each node must delay 2-bit times (256 internal clock
periods) after detecting the IDLE signal drop low before
transmitting, i.e., before the start bit of the next message
reaches the bus. When using the SPI or Buffered SPl
modes, this delay is automatically designed into the SBl
chip. However, when using the SCl mode, the MCU must
support this required delay. Fortunately, 68HC05 microcomputers using the SCI port will inherently experience a delay
between the time that the SCl data register is loaded and the
time that the start bit actually appears on the SCl port transmit pin (TxD). At a baud rate of 7812.5 bps this delay can be
as long as 256 SBl chip internal clock periods. If this is so,
then the user MCU does not have to worry about providing
this delay.
ID BYTE FOR A MESSAGE
USER #1
XMIT #1
START
BIT
0
1
2
3
4
5
6
7
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
(2)
0
0
0
1
0
0
0
1
0
1
0
1
(3)
0
0
0
0
0
0
1
0
0
0
1
ID BYTE FOR A DIFFERENT MESSAGE
START
BIT
0
STOP
BIT
1
2
3
4
5
6
7
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
(4)
0
0
0
0
1
0
0
1
0
0
0
(5)
1
0
0
0
0
1
0
0
0
1
0
STOP
BIT
(1)
REC#1
USER#2
XMIT #2
REC #2
USER #3
XMIT #3
REC #3
DIFFERENTIAL
BUS
ALL CONTROL
PINS
(6)
(7)
ALL IDLE
PINS
(6)
10 IDLE BITS
(7)
10 IDLE BITS
NOTES:
1. USER #1 is note transmitting + marking.
2. Point at which USER #2 loses bus arbitration.
3. Point at which USER #3 loses bus arbitration.
4. Point at which USER #3 loses bus arbitration.
5. This ‘1’ bit is not overridden by the ‘0’ bits from users 2 and 3 because both users 2 and 3 have previously been blocked from bus access due to data collisions.
6. The control pin on the transmitting node goes low earlier in both SPI modes (it is pulled low by micro).
7. The control pin remains low until the end of the last data bit of the 2 byte set when using the buffered
SPI mode, but goes high at the middle of the last data bit in other modes.
FIGURE 6. EXAMPLE OF THE SCI CHIP OPERATING DURING BUS ARBITRATION
6-91
CDP68HC68S1
Idle Detection
An idle detector circuit is used to detect when the differential bus
is in the idle condition, i.e., no user microcomputer has control of
the bus and the bus is sitting at a mark condition (a logic one).
The idle detector senses a received stop bit and delays for a
short idle period of 10-bit times, during which the bus must
remain idle. The idle output pin is then set to a logic zero (true). It
is later set to a logic one by receiving a start bit. During the 10-bit
time delay, if a non-idle condition such as noise is detected on the
bus, the delay period counter will be restarted.
Due to the 10-bit time idle delay period, once an MCU wins
bus arbitration, it should send the next data byte to be transmitted within a period of 10-bit times (1280 internal clock
periods). Each subsequent data byte to be sent should also
not exceed the interbyte maximum of 10-bit times. If this
maximum is exceeded, all SBlC chips will have detected the
idle condition and now pull their idle lines low and reset their
bus arbitration and collision detection circuits, thereby allowing other SBl chips with messages to send to arbitrate for the
bus. Figure 6 shows the detailed operation of the serial bus
interface chip during bus arbitration. This example shows the
arbitration of a single byte (e.g. the address/ID byte) from
three different user microcomputers. Two full arbitration
cycles are shown.
SBIC
BUS-
BUS+
SBIC
BUS+
SPI OR SCI
BUS120Ω
MCU
SPI OR SCI
13KΩ
MCU
13KΩ
NOTE: Hardware configuration for a network consisting of two
microcomputers. Notice that the pullup resistor is connected to
the BUS- pin and the pulldown to BUS+.
FIGURE 7A.
13KΩ 120Ω 13KΩ
120Ω
+VDD
BUS- BUS+
BUS- BUS+
BUS- BUS+
BUS- BUS+
SBIC
SBIC
SBIC
SBIC
SPI OR SCI
SPI OR SCI
SPI OR SCI
SPI OR SCI
MCU
MCU
MCU
MCU
Break Generator
A request for arbitration can be generated by a node that
needs to interrupt transmission of a long data string. This
can be accomplished by forcing the SBlC’s IDLE pin to a
logic zero; this forces a data collision (by sending 0-bits)
after three data bytes have been transmitted, and the transmitting MCU is required to detect this break condition and
stop transmitting. It is, however, allowed to re-arbitrate for the
bus and the interrupting mode may not generate a second
break condition if it loses arbitration.
NOTE: Hardware configuration for a network consisting of 3 or
more MCU’s. Notice that the bus utilizes no more than 1 set of 13K
bias resistors and no more than two 120Ω termination resistors.
FIGURE 7B.
FIGURE 7. HARDWARE CONFIGURATION FOR A NETWORK
OF MICROCOMPUTERS
Using the CDP68HC68S1
Following are some hardware and software recommendations for using CDP68HC68S1 Serial Bus Interface Chip.
Requirements may vary depending upon the user’s system
configuration.
Software (General)
Hardware (General)
When a microcomputer is preparing to transmit a message it
should monitor the SBlC’s IDLE pin and wait for it to go low
(logic zero) indicating the bus is idle. Then the MCU
attempts to transmit the first byte (preferably an Address/ID
byte). If no other MCUs are transmitting at this time, or if this
MCU has the highest priority ID byte, the SBI chip’s collision
detector circuit will permit transmission.
The differential bus lines (BUS+ and BUS-) must be terminated with external resistors as shown in Figure 4. This
applies, however, only to one node (an MCU/SBlC pair)
along the bus. Since all SBl chips are wired in parallel across
the network bus, there is no need for additional 13K bias
resistors at each node. The 120Ω termination resistors
should, however, be present at two nodes if the network
does indeed contain two or more nodes. The 120Ω resistor
provides the voltage drop across which the SBl chip senses
logic zero and logic 1-bits. If two nodes each utilize 120Ω termination resistors as shown in Figure 7A, the effective resistance across the BUS+ and BUS- pins drop to 60Ω total (due
to the parallel wiring method). Any less resistance would not
provide an ample voltage drop for the receiver cell op amp to
sense. Following these guidelines, typical systems might
look like those shown in Figure 7.
Although each user’s protocol may vary, the following general procedure should be followed when using the SBl chip
in any mode:
The microcomputer must then confirm transmission by reading the byte reflected back from the bus. If this byte matches
the byte transmitted then the MCU has gained control of the
bus and may continue to transmit the remainder of the message (if any).
If the reflected byte does not match the ID byte sent then the
MCU has not gained control of the bus and may not presently transmit. It should, however, check the reflected ID
byte to see if the incoming message (i.e. the message from
6-92
CDP68HC68S1
(START)
YES
ANY MESSAGES TO TRANSMIT?
NO
NO
IS IDLE LOW?
NO
ANY MSG ID RECEIVED?
YES = REC. A MSG
YES = ATTEMPT TO WIN BUS
ARBITRATION
NO
IS THIS MESSAGE OF
INTEREST TO US?
TRANSMIT THE MSG ID BYTE.
YES
NO
HAS THE MSG ID BEEN
RECEIVED FROM THE BUS?
SAVE THE RECEIVED BYTE.
YES
YES
DOES THE REC’D MSG ID EQUAL
THE TRANSMITTED MSG ID?
NO = LOST
HAS THE NEXT BYTE
BEEN RECEIVED YET?
NO
YES = WON BUS ARB.
ARE THERE ANY MORE
MESSAGE BYTES TO TRANSMIT?
NO
NO
IS IDLE LOW?
YES = SEND REST OF MESSAGE
YES
TRANSMIT THE NEXT MSG
ID BYTE.
PROCESS THE MESSAGE.
HAS THE BYTE BEEN
REC’D FROM THE BUS?
“TRANSMIT” AN END OF MESSAGE CONDITION.
NO
YES
YES
DOES THE REC’D BYTE EQUAL
THE TRANSMITTED BYTE?
ABORT THIS MESSAGE
TRANSMISSION
DUE TO A COLLISION.
NO
FIGURE 8. GENERAL MESSAGE PROCESSING.
the arbitration-winning MCU) is of any interest. If so, it
should save the incoming message (the length of which may
be specified in the ID byte) and then wait for the IDLE line to
go high before re-attempting transmission (if still desired).
The flowchart in Figure 8 reflects this procedure.
required in order to always be able to receive messages
from other microcomputers on the bus, which can happen at
random. For the SCl mode, the SBl chip’s MODE pin must
be set to1 and the CS pin to 1.
SCI Mode, Software
The SCl Mode, Hardware
In the SCl mode, the TxD and RxD pins on the user microcomputer must be connected to the XMlT and REC pins on
the SBlC chip, respectively, as shown in Figure 9. The
MCU’s SCl port should be configured for the same baud rate
and character format as that used by the bus interface (i.e. 1
start bit, 8 data bits and 1 stop bit). The start and stop bits
are used to synchronize the data, a byte transfers between
the user microcomputer and the SBl chip. When using the
SCl mode, the SBl chip should always be properly mode and
chip selected. This can be accomplished by either a user
microcomputer output signal or by permanent wiring. This is
The procedure to follow for transmitting/receiving in the SCI
mode is basically identical to that stated in the “Using the
CDP68HC68S1-Software” section above, with the following
exception:
Start of Message Delay
Transmitting a byte via the 68HC05 SCl port basically requires
loading the byte into the MCU’s SCl data register (once the SCI
port is initialized). However, after the SBlC’s IDLE pin drops
low, the user may have to create a delay before transmitting the
FIRST byte of a message; this necessary 2-bit time (256 internal clock periods) delay is called the Start of Message (SOM)
6-93
CDP68HC68S1
delay. Fortunately, SCl ports exhibit an inherent delay between
the loading of the transmit data buffer and the actual beginning
of the start bit appearing on the TXD pin. This delay, at 7812.5
Baud, can be as long as 256 SBl chip internal clock periods
and can be used to synchronize SCl users with SPI and Buffered SPI users to ensure impartial bus arbitration. The delay for
a particular microcomputer must be determined by the user. If
this inherent delay is less than 256 clock periods, then the user
must delay the loading of the first byte enough to ensure that
the total delay including the inherent delay of the SCl port is 256
clock periods.
MCU
TxD
SBIC
XMIT
BUS+
RxD
REC
PAO
IDLE
MODE
BUS-
DIFFERENTIAL
BUS
CS
+VDD
FIGURE 9. USING THE SCI MODE
Monitoring the IDLE Pin
The user microcomputer must monitor the IDLE pin on the SBlC
chip in order to determine when a message ends, when the next
received byte is a Msg ID byte, and when to attempt arbitration
if the user microcomputer has a message to transmit.
Framing Errors
While in the SCl mode, the SBI chip is capable of detecting
incoming framing errors. It will do this even though the
incoming signal is also echoed to the user microcomputer,
which should also detect the framing error via its’ UART.
When a framing error is detected by the SBl chip, the generation of the SCK pulses is terminated until and End Of Message is detected.
The SPI Mode Hardware
The Master Out Slave In, (MOSl), and Master In Slave Out,
(MISO), pins on the user microcomputer are connected to
the REC and XMlT pins of the SBl chip, respectively, as
shown in Figure 10. The SCK pins on the user microcomputer and the SBl chip are connected together. Synchronization of data transferred between the user microcomputer and
the SBl chip is done by using the SCK signal provided by the
SBl chip.
In the SPl mode of operation the SBl chip should always be
properly mode selected. This may be accomplished either
by a user microcomputer output signal or by permanent wiring in order to guarantee that the SBl chip will always be
able to receive messages from other microcomputers on the
bus, which may happen at random. To select the SPl mode,
set the MODE pin to a logic l and the CS pin to a logic 0.
The user microcomputer must be able to both detect when
the IDLE signal goes from high to low and sense at other
times whether it is either high or low. Detecting the change
from high to low is necessary in order to know exactly when
the bus goes idle. An MCU can then begin bus arbitration by
attempting to transmit. Being able to sense the level of IDLE
is necessary in order to be able to start transmitting a message sometime after IDLE has gone low but no other user on
the bus has had a message to transmit for a length of time.
MCU
MISO
SBIC
XMIT
BUS+
REC
BUSSCK
MOSI
SCK
SS
VSS
PAO
IDLE
PA1
CONTROL
MODE
Instead of polling the IDLE pin via an MCU input pin, the
user may wish to conserve CPU time by using interrupts to
monitor bus activity. The user microcomputer’s external
interrupt pin (IRQ) can be used to edge detect the IDLE pin
for high to low transitions.
Using 68HC05 SCl Port Flags
During message reception, the 68HC05 SCl port receive
data register full flag (RDRF), and optionally its associated
interrupt, can be used by the user microcomputer to determine when to unload the next received byte.
The user may wish to ignore the RDRF flag and disable the
RDRF interrupt during reception of an unwanted message.
In this case the user can merely wait for the IDLE pin to go
low before attempting any further actions.
The normally available transmit data register empty flag
(TDRE) can be used to determine when to load the next byte
to be transmitted onto the bus. If there are no more bytes to
be transmitted, then consider the last message as having
been transmitted, and generate an End Of Message (EOM)
(i.e. transmit a logic 1 for 10 contiguous bit times by creating
a software delay).
DIFFERENTIAL
BUS
+VDD
CS
VSS
FIGURE 10. USING THE SPI MODE
The user microcomputer should configure its SPl port for
slave mode operation with SCK positive polarity and data
transfer on SCK leading edge (i.e. CPOL = 0, CPHA = 1, for
68HC05 microcomputers). 8-bit data transfers between the
user microcomputer and the SBl chip occur at differential
bus transfer speed.
In the SPI mode, the user microcomputer operates in the
slave mode and the SBl chip operates as the master. The
SS pin on the user microcomputer must be wired low or
forced low whenever the SBl chip has incoming data. It may
be useful to connect the CONTROL pin of the SBl chip to the
Slave Select (SS) pin of the 68HC05 microcomputer. The
SBl chip will then control the user microcomputer’s SPI port.
The user microcomputer can request transmission of data
onto the bus by the SBl chip by loading data into its SPl data
register and then pulling the SBlC’s CONTROL pin low (for
at least 1µs). However, it must do so before the SBl chip has
begun to receive data from another MCU.
6-94
CDP68HC68S1
SPI Mode, Software
Sending Messages to Other Microcomputers on the Bus
The SPl mode is similar to SCl mode in that the user microcomputer sends/receives data to/from the SBl chip 1 byte at
a time. In the SPI mode, however, the user microcomputer
must reverse the bit order of transmitted and received bytes.
When transmitting a message, each bit of a transmitted byte
is simultaneously transmitted onto the bus and a reflected bit
is simultaneously received from the bus.
ln order to send a message to other microcomputers on the
bus while in the SPI mode the user microcomputer should:
1. Monitor the IDLE pin and determine if the bus is currently
busy or if a transmission may be immediately started.
2. Monitor CONTROL to determine if it is ok to load the byte
to be transmitted into the user microcomputer’s SPl data
register.
Monitor and Control of the CONTROL Line
3. Load the byte to be transmitted into the SPl data register.
In the SPl mode, the user microcomputer monitors the CONTROL pin on the SBl chip in order to determine if the SBlC is
ready to accept a transmit request. Actually, a data collision
may still occur and the user microcomputer must always be
ready to handle it.
4. Pull the CONTROL pin low to signal the SBl chip to start
a byte transmit cycle.
The CONTROL signal is normally high and goes low when
data is on the bus or when pulled low by the user microcomputer. After being pulled low by the user microcomputer, which
signals a request to begin the transmission data, the CONTROL signal will latch low and stay low until the middle of the
last data bit has been transmitted and appears on the bus.
6. Compare the received byte with the last transmitted byte.
5. Wait until the byte transmit cycle is completed as signaled
by the SPl Finished, SPlF, flag/interrupt in the SPl port or
by the CONTROL signal going high.
7. If the received byte equals the last transmitted byte, and
more bytes remain to be transmitted, then continue the
cycle with step #3. If there are more messages to transmit, then go to step #1. If there are no more bytes to be
transmitted, then consider the message as having been
transmitted, and generate an End Of Message (EOM)
(i.e. delay for 10 contiguous bit times). Go to step #1.
The CONTROL signal will also go low at the beginning of the
first data bit, when received from the bus. It will then go high
at the middle of the last data bit.
8. If the received byte does not equal the last transmitted
byte and this is the first byte of a message, then treat the
received byte as the first byte of a received message (i.e.
the ID byte). Attempt to retransmit the previous message
after the IDLE signal has gone low again. If this happens
during the transmission of a later message byte, other
than the ID byte, then consider it due to either an erroneous data collision on the bus or due to noise collisions on
the bus causing the message to have to be re-transmitted. Go to step #1.
When the SBl chip begins to receive a byte of data from the
bus and the user microcomputer has not pulled the SBlC’s
CONTROL line low, the SBl chip will pull CONTROL low and
start generating the SCK clock signal. As each data bit is
received it is clocked out of the SBl chip and into the user
microcomputer. Any data in the user microcomputer’s SPl
data register will be transferred out and into the SBl chip.
The CONTROL signal will go high at the midpoint of the
eighth data bit. This will allow the user microcomputer to
have enough time to review the just received SPl data and
reload it, if further data is needed to be transmitted. However, it must again pull the CONTROL pin low to signal he
SBl chip that it should begin transmitting. As a slave to he
SBl chip, the user microcomputer must be able to and le the
incoming data on the SPl port without affecting its other software routine functions.
Detecting IDLE via a User Microcomputer External
Interrupt
The user microprocessor’s external interrupt should be set
to edge detect IDLE for falling transitions, i.e. EOM detection. If possible, detect CONTROL for rising transitions, for
byte transmission/reception complete detection.
Use of Internal User Microcomputer Flags and Interrupts
The normally available SPl finished flag (SPlF) and optionally
its associated interrupt may be used by the user microcomputer
to know when a byte transmission/reception of is complete.
The user microcomputer should be ready to handle the Write
Collision, WCOL, error flag. The WCOL flag is set when a
collision is detected in the SPl port. This will occur when the
user microcomputer tries to load a byte into the SPI data
register after the SBl chip has already begun to load data
into the SPl port.
Framing Errors
While in the SPl mode, the SBl chip is capable of detecting
incoming framing errors. If one is detected, generation of the
SCK pulses to the user microcomputer is terminated. The
SBl chip essentially quits receiving data and starts looking
for an End Of Message. Resetting of the SCK generator will
occur upon receiving an EOM. Meanwhile, software must be
prepared to resynchronize the micro’s SPl port; this can be
done by disabling and then reinitializing it.
Even though the SBl chip can detect framing errors, it can
not flag the user microcomputer that one has occurred.
Since the previously received byte has already been transferred to the user microcomputer, the SBI chip will simply
refuse to accept any further incoming data until an EOM
occurs. Thus, one way that the user microcomputer may
detect that the received data is valid, is via using a check
sum byte imbedded within each message. Another way
would be to compare the number of bytes received fora particular ID to the number expected for that ID.
Buffered SPI Mode, Hardware
The MOSl and MlSO pins on the user microcomputer should
be connected to the XMlT and REC pins of the SBl chip
respectively. The SCK pins on the user microcomputer and
6-95
CDP68HC68S1
the SBl chip should also be connected together, as shown in
Figure 11. Synchronization of the data that is transferred
between the user microcomputer and the SBl chip is done by
the SCK signal which is provided by the user microcomputer.
While it is transmitting and receiving the 2 bytes of data on
the differential bus the SBl chip will not allow transfer of data
to and from the user microcomputer. In fact, the SBl chip
does not need to be chip selected during this time.
The Slave Select (SS) pin on the user microcomputer must
be wired high or forced high whenever the SBl chip is
selected.
The bus will override the user microcomputer if incoming
data is received during the time when the user microcomputer is performing a data transfer, after having unloaded the
previous 2 bytes. The data from the differential bus will be
loaded into the SBlC buffer, while the data from the user
microcomputer will be lost. The data that the user microcomputer will receive during this transfer, is undefined. The user
microcomputer has no way of knowing its transfer has been
aborted unless it either monitors the CONTROL signal for a
rising transition or by detecting that CONTROL was not high
at completion of the SPl transfer.
The user microcomputer should configure its SPl port for
master mode operation, SCK low polarity, and data transfer
on first edge (i.e. CPOL = 0, CPHA = 1 for 68HC05 microcomputers).
The SBI chip must be chip selected either by a user microcomputer output signal or by permanent wiring of its pins. To
select the Buffered SPl mode, set the MODE pin and the CS
pin to logic zero. This is required in order to transfer data
between the SBl chip and the user microcomputer. However,
in the Buffered SPl mode, since the MCU is operating as a
master and controls the SPI port, chip selection is only
required during when the SPl transfers are actually occurring.
MCU
MOSI
SBIC
XMIT
BUS+
REC
BUSSCK
MISO
SCK
SS
DIFFERENTIAL
BUS
+VDD
PAO
IDLE
PA1
CONTROL
MODE
CS
+VDD
FIGURE 11. USING THE BUFFERED SPI MODE
Buffered SPI Mode, Software
The principle difference between the Buffered SPI mode and
the normal SPl mode is the use of a 2 byte internal buffer.
Also, the Buffered SPl mode allows the user microcomputer
to operate in the master mode, instead of the slave mode,
which allows high speed transferring of data between the
SBl chip’s buffer and the user microcomputer.
For typical operation, the user microcomputer loads the
SBl’s 2 byte buffer, at a high speed, using its SPl interface.
The 68HC05’s SPl Finished flag (SPlF), and optionally its
associated interrupt, may be used by the user microcomputer to know when the transfer of a byte between the user
microcomputer and the SBl chip is complete. Then it signals
the SBl chip, by pulling its CONTROL line low, to transmit the
data in the buffer onto the differential bus.
The SBl chip, at a differential bus speed, then attempts to
transmit the buffered data onto the bus. During this attempt,
the SBl chip will receive two reflected bytes of data back
from the bus, store them in the buffer and then disable the
buffer from receiving further data from the differential bus
until this received data is later unloaded by the user microcomputer at high SPl transfer speeds. The MCU should also,
at this time, simultaneously load the next 2 bytes of data to
be transmitted into the buffer.
Monitoring the Control Signal
The user microcomputer should monitor the CONTROL signal on the SBl chip, in order to determine whether it is
actively transmitting or receiving data. The CONTROL signal
is used to determine who has access to the 2 byte buffer. During data reception or transmission to the differential bus by the
SBlC its CONTROL pin is low signifying that the differential
bus now has access to the SBlC and the MCU is locked out
from accessing the SBlC. Then when 2 bytes of data have
been received from the differential bus, the SBl chip will pull its
CONTROL line high, signaling to the MCU that the MCU can
now access the SBlC’s 2 byte buffer. The MCU may now read
the 2 bytes received and simultaneously transmit two more
bytes (if desired) by performing a 2 byte transfer (a swap of
data), via the MCU SPl port, with the SBlC; then the MCU
pulls the SBlC’s CONTROL pin low to transmit the two new
bytes. The CONTROL pin will remain latched low (by the
SBlC) until the two new bytes are transmitted.
The user microcomputer should also monitor the IDLE signal
in order to accurately know when the bus is idle or when bus
arbitration is occurring, when a received message has finished,
and when the next bytes to be received are the beginning bytes
of a new message. Preferably, the user microcomputer’s external interrupt should be set up to edge detect falling IDLE and
rising CONTROL transitions.
When the CONTROL pin goes high, it signals that the buffer is
full and that the user microcomputer currently has access. When
the IDLE pin goes low, it is signaling that the current message
has been completed, and an MCU may now arbitrate for the bus.
Size of Messages that can be Transmitted or Received
In the Buffered SPI mode, the user microcomputer can only
send messages in 2 byte multiples. Transmitting messages
with an odd number of bytes, to other microcomputers on the
bus, is NOT supported by the SBl chip in Buffered SPl mode.
However, reception of any number of bytes is supported.
In the Buffered SPl mode, the user microcomputer can receive
messages of any length. For odd length messages, the user
microcomputer must know when the message is finished either
from the message ID byte or via the IDLE signal. Since the SBl
chip will give no indication as to whether the buffer contains one
or 2 bytes of information from the bus, the message length
should be contained within the message data bytes.
6-96
CDP68HC68S1
When a single byte is received from the bus, followed by a
bus idle condition, the SBl chip will, as it normally does when
the buffer has received 2 bytes, set the CONTROL signal
high. It will then relinquish control of the buffer for data transferral via the user microcomputer, and restrict access to the
buffer from incoming bus data until the 2 byte data transfer
has been completed.
If only 1 byte is received from the bus, the user microcomputer will receive it first when performing the 2 byte data
transfer. The second byte received by the user microcomputer, during this transfer, is undefined. A 2 byte transfer is
still required in order to return control of the buffer back to
the SBl chip, to gather further incoming data from the bus.
Power On/Reset
The SBI chip is reset internally, at power on. After reset, the
CONTROL pin is set high and IDLE is set low. The buffer
access is set as though 2 bytes have just been received from
the bus. A 2 byte transfer must be performed, via the user
microcomputer, in order to initalize the SBl chip for general
operation.
Sending Messages to Other Microcomputers on the Bus
In order to send a message to other microcomputers on the
bus, while in the Buffered SPl mode, the user microcomputer
should:
1. Monitor the SBlC CONTROL pin to know when it is ok to
perform the 2 byte transfer between the user microcomputer and the SBl chip.
2. Perform the 2 byte transfer between the user microcomputer and the SBl chip for the first 2 bytes of the message.
3. Pull CONTROL low to tell the SBI chip to start a 2 byte bus
transmit cycle.
4. Wait until CONTROL goes high again indicating that the 2
byte transmit cycle has completed.
5. Perform another 2 byte transfer between the user microcomputer and the SBl chip, thus giving it the next 2 bytes
to be transmitted and giving the user microcomputer the
2 bytes just received.
6. Compare the just received 2 bytes with the 2 bytes which
were attempted to be transmitted.
7. If the received and last transmitted bytes are equal and
more bytes remain to be sent, then continue the cycle
with step #3.
8. If the received and last transmitted 2 bytes are unequal,
then restart with step #2.
Creating an EOM after a Message Transmission
There must be at least a 10-bit interval of bus idle between
the stop bit of the last byte of one message and the detection
of the start bit of the first byte of the next message. This can
be implemented by either:
1. Including a 10-bit interval time out, via using a timer or
software loop.
2. The user microprocessor can simply wait until it senses
IDLE going low.
Receiving Messages from Other Microcomputers on the
Bus
If the user microcomputer loses arbitration, or if it has no
message to transmit and another microcomputer begins to
send its message onto the bus, the SBI chip will begin to
receive a message from the bus.
The SBlC CONTROL pin will go low at the beginning of the
first data bit that is received from the bus. It will go high
either whenever 2 bytes have been received, or when 1 byte
has been received followed by the bus going idle (i.e. when
IDLE goes low).
The transition of CONTROL from low to high indicates that
the SBI chip has 2 bytes in its internal buffer for the user
microcomputer to retrieve. Whether the SBl chip has
received either 1 or 2 bytes, the user microcomputer must
perform a 2 byte transfer in order to return control of the
buffer back to the SBI chip.
The user microcomputer must detect CONTROL going high
and transfer the 16-bits from the SBl chip before the beginning of the first data bit of the next message or else the bus
will be locked out of accessing the buffer until after both the
next 16-bit transfer is complete and IDLE goes low. Thus, if
there was further incoming data and this did occur, some of
the incoming data may be lost.
Framing Errors
While in the Buffered SPl mode, the SBl chip is capable of
detecting incoming framing errors, however it is unable to
flag this to the user microcomputer. When the SBl chip
detectsaframing error, anyfu rther loading of the SBl chip’s
internal buffer is terminated. The SBI chip essentially quits
receiving data and starts looking for an End Of Message.
Resetting of the framing error will occur upon receiving an
EOM.
Even though the SBl chip can detect framing errors, it can
not flag the user microcomputer that one has occurred.
Since the previously received byte has already been loaded
into the SBI chip’s buffer, the user microcomputer must
determine whether this data is valid. If a framing error occurs
during the first byte of a 2 byte reception, access to the
buffer will be restricted from the user microcomputer until
and EOM occurs. lf a framing error occurs during the second
byte of a 2 byte reception, the user microcomputer will be
given access to the buffer. However, even if the user microcomputer unloads the buffer, the SBI chip will not load any
further data into the buffer until an EOM occurs. Basically,
when a framing error occurs, no further data is read from the
bus and buffer access is given to the user microcomputer
either immediately or upon an EOM.
One way that the user microcomputer may detect that the
received data is valid, is by using a check sum byte imbedded within each message. Another way would be to compare
the number of bytes received for a particular lD to the number expected for that ID.
References
Portions of the information contained in this document were
taken and condensed from Chrysler Corporation’s "CCD
USER’S MANUAL" issued April 15,1987.
6-97