SICAN Microelectronics Corp.
Functional Description
The CAN core is divided into modules as shown in the
block diagram of Figure 2. The core module has no receive
buffer memory. Basic operation is described below.
Rx and Tx – CAN Bus Interface
The CAN core uses a simple two-wire (Rx and Tx) connec-
tion. Both signals operate at TTL levels that comply with
ISO/DIS 11898 so it can connect to standard CAN bus
transceivers (e.g. Philips PCA 82C250, Bosch CF150 or
Siliconix SI 9200) or to a modified RS-485 interface.
Receive and Transmit Error Counters
The CAN protocol contains mechanisms for automatic fault
location and for s witching-off def ectiv e nodes. This is imple-
mented through two counters - a Receive Error Counter
(REC) and a Transmit Error Counter (TEC). These are
incremented and decremented according to CAN specifica-
tion rules.
CRC and Comparator Blocks
These blocks provide error protection. Each telegram is
provided with a 15-bit-long CRC code, generated from
fields (start of frame, arbitration field, control field, data
field) in the preceding telegram. When receiving a tele-
gram, a new CRC is generated from the received data and
compared with the original CRC in the telegram. Any varia-
tion generates an error telegram.
Transmit Logic – Bit Stream Processor/
Internal Interface
User data is input to the core ov er an 8-bit data b us. Next, it
is converted into a serial bit stream. After five bits of the
same polarity, a stuff bit of opposite polarity is inserted to
force the edges required for resynchronization. Stuff bits
are filtered from the received bit stream and the coded data
is transmitted to the user interface.
Bit Timing Logic, Sample and Majority
Decision Blocks
All controllers on a CAN bus must have the same data rate
and bit length. Bit length is determined by the parameters
TSEG1, TSEG2 and BRP. These parameters are used to
adjust the data rate when individual controllers have differ-
ent clock frequencies.
The Bit Timing Logic block modifies the parameters to
insure proper timing. It is then possible to perfor m several
samplings of the bus line at the sample point. The level
determined by the CAN bus corresponds to the result from
a majority decision of three sample values.
Acceptance Filtering Options
The core supports three options for acceptance filtering.
NO TE: Acceptance filtering is not included in the core mod-
ule. The filtering has to be implemented in an application
specific interface module that meets the customer's
requirements.
•
Full CAN
- where one or several identifiers can be
indicated explicitly. Each identifier has a memory, where
the telegram and the corresponding identifier are stored
upon successful reception. The number of telegrams to
be received depends on the quantity of storage cells.
•
Basic CAN
- where the acceptance filter is described by
the contents of two registers. The Acceptance Mask
Register (AMR) contains a value of 1 for each bit
regarded as a don't-care. The set v alue of the other bits
is indicated in the Acceptance Code Register (ACR).
The received identifier is combined with the data stored
in ACR by an EXCLUSIVE-NOR (equivalence) and the
result of this operation is combined afterwards with the
contents of AMR by an OR function. The telegram is
accepted only if all bits are set to 1. In the Philips PCA
82C200 CAN controller, only the upper eight bits of the
identifier are considered during acceptance filtering.
•
Combination
- A combination of both Full and Basic
CAN acceptance filtering.
Interrupts
The core can support one or several interrupt outputs.
NOTE: Interrupt handling is not included in the core mod-
ule. It has to be implemented in an application specific
interface module that meets the customer's requirements.
The following events are possible as interrupt-triggering
sources:
• CAN module becomes error passive
• CAN module reaches the status bus off
• Telegram sent successfully
• Telegram received successfully
• Receive memory overflow
The interrupts can be masked. The CPU can read the sta-
tus register to determine which event has triggered the
interrupt. The interrupts are reset by the CPU.
Core Modifications
SICAN will customize the User Module interface to meet
your specific application. Examples include integrating the
required memory to suit the target application. Telegrams
can be stored in a register or in a storage area structured
as FIFO or DPRAM. CLB count for the interface module
depend on the application. An example 16-bit interface will
use approximately 220 CLBs.