GR740-UM-DS, Nov 2017, Version 1.7
264
www.cobham.com/gaisler
GR740
17.2
Interface
The external interface towards the CAN bus features two redundant pairs of transmit output and
receive input (i.e. 0 and 1).
The active pair (i.e. 0 or 1) is selectable by means of a configuration register bit. Note that all recep-
tion and transmission is made over the active pair.
For each pair, there is one enable output (i.e. 0 and 1), each being individually programmable. Note
that the enable outputs can be used for enabling an external physical driver. Note that both pairs can
be enabled simultaneously. Note that the polarity for the enable/inhibit inputs on physical interface
drivers differs, thus the meaning of the enable output is undefined.
Redundancy is implemented by means of Selective Bus Access. Note that the active pair selection
above provides means to meet this requirement.
17.3
Protocol
The CAN controller complies with CAN Specification Version 2.0 Part B, except for the overload
frame generation.
Note that there are three different CAN types generally defined:
•
2.0A, which considers 29 bit ID messages as an error
•
2.0B Passive, which ignores 29 bit ID messages
•
2.0B Active, which handles 11 and 29 bit ID messages
Only 2.0B Active is implemented.
17.4
Status and monitoring
The CAN interface incorporates status and monitoring functionalities. This includes:
•
Transmitter active indicator
•
Bus-Off condition indicator
•
Error-Passive condition indicator
•
Over-run indicator
•
8-bit Transmission error counter
•
8-bit Reception error counter
The status is available via a register and is also stored in a circular buffer for each received message.
17.5
Transmission
The transmit channel is defined by the following parameters:
•
base address
•
buffer size
•
write pointer
•
read pointer
The transmit channel can be enabled or disabled.
17.5.1 Circular buffer
The transmit channel operates on a circular buffer located in memory external to the CAN controller.
The circular buffer can also be used as a straight buffer. The buffer memory is accessed via the
AMBA AHB master interface.