How to use CAN bus

From IGEP - ISEE Wiki

Jump to: navigation, search

IGEPv2 EXPANSION

The IGEPv2 EXPANSION provides a CAN interface using MCP2515.

Several tools are provided by socketCAN to use this controller:

  • candump: dump traffic on a CAN network.
  • cansend: simple command line tool to send CAN-frames via CAN_RAW sockets.
  • cangen: CAN frames generator for testing purpose.
  • canplayer: send CAN frames from a file to a CAN interface.

In order to test the CAN interface you can connect IGEPv2 EXPANSION to a CAN device or network or to another IGEPv2 EXPANSION.

You have to connect the two boards like this:

IGEPv2 1             IGEPv2 2
.---                 .---
| 1 |-X            X-| 1 |
| 2 |------------------| 2 | 
| 3 |------------------| 3 |
| 4 |------------------| 4 |
.---                 .---

If this is your first time accessing CAN bus, check J702 jumper is not connected before follow this tutorial. If you don't have this jumper, don't worry because its function is only for testing.

Now you can set up the interface (on all boards when using multiple IGEPv2 EXPANSION connected to a CAN network simultaneously):

/bin/ip link set can0 up type can bitrate 125000

If you want to receive CAN data, use:

candump can0

If you want to send CAN data, use:

cansend can0 -i 0x123 0xaa 0xbb 0xcc 0xdd

On the receiver side, you must see the following messages:

can0  123  [4] aa bb cc dd

Switch roles and try it again


IGEP BERLIN

The IGEP BERLIN provides a CAN interface using MCP2515.

Several tools are provided by socketCAN to use this controller:

  • candump: dump traffic on a CAN network.
  • cansend: simple command line tool to send CAN-frames via CAN_RAW sockets.
  • cangen: CAN frames generator for testing purpose.
  • canplayer: send CAN frames from a file to a CAN interface.

In order to test the CAN interface you can connect IGEP BERLIN to a CAN device or network or to another IGEP BERLIN. You have to connect the two boards like this:

Board 1             Board 2
.---                 .---
| 1 |------------------| 1 | 
| 2 |------------------| 2 |
| 3 |------------------| 3 |
| 4 |-X            X-| 4 |
| 5 |-X            X-| 5 |
.---                 .---

Now you can set up the interface (on all boards when using multiple IGEP BERLIN connected to a CAN network simultaneously):

/bin/ip link set can0 up type can bitrate 125000

If you want to receive CAN data, use:

candump can0

If you want to send CAN data, use:

cansend can0 -i 0x123 0xaa 0xbb 0xcc 0xdd

On the receiver side, you must see the following messages:

can0  123  [4] aa bb cc dd

Switch roles and try it again