Kvaser PCIcanx User's Guide
13(20)
Kvaser AB, Mölndal, Sweden
— www.kvaser.com
6 Software Development Information
This section is intended for those who want to program the PCIcanx card directly. Normally,
you would choose to use the supporting device drivers available for the PCIcanx card. Refer
to the “CANLIB Software Development Kit” documentation for further information on these
device drivers from a programmer’s point of view. Please note that this board is fully software
compatible with the Kvaser PCIcan boards.
6.1 Additional Documentation
This document includes all information you need to use the circuits on the card. However, the
circuits themselves are not described here so information about these must be obtained from
the suppliers. See the list of references on page 15. General knowledge about the PCI bus is
also assumed.
6.2 A note on the different PCIcanx versions
PCIcanx 4xHS has four CAN controllers. PCIcanx HS/HS has two CAN controllers and
PCIcanx HS has one controller. This chapter describes primarily PCIcanx 4xHS; if you have
one of the other cards, just disregard the circuits and switches that are not on your card.
Differences between the different members of the PCIcan family are explicitly noted wherever
they occur.
6.3 The PCI bus controller
All PCIcanx boards use the same PCI controller, which is a Xilinx FPGA with PCI core. The
PCI controller is responsible for address decoding and interrupt steering.
The initialization of the PCI controller is outside the scope of this manual. Typically, it is
carried out by the operating system and/or the BIOS. There are a few registers you have to
set up in the driver; these are described below.
6.4 Address decoding
The PCI controller can decode up to 5 different address areas, three of which are used by the
PCIcanx.
Address area #
Type
Size (bytes)
Used for
0
I/O
128
Xilinx registers
(“AMCC S5920”)
1
I/O
128
SJA1000 circuits
0
– 0x1f: SJA1000 #1
0x20
– 0x3F: SJA1000 #2
0x40
– 0x5F: SJA1000 #3
0x60
– 0x7F: SJA1000 #4
2
I/O
16
Xilinx registers
Address area number 1, the one used for the SJA1000’s, is further subdivided into four areas
of 32 bytes each; one for each (possible) SJA1000.
There is no actual AMCC S5920 in the PCIcanx, but the first address area is set up to be
compatible with the Kvaser PCIcan cards.