CAN

All Pigeon computers are equipped with one CAN port. Pigeon utilizes the Microchip MCP2515 controller and a high-speed CAN transceiver.

Features:

  • CAN v2.0B,
  • Transceiver fully compatible with the ISO 11898-2 Standard,
  • High-speed communication (up to 1 Mbit/s),
  • Bus pins protected against transients,
  • Connection via screw terminal.

By default, the CAN interface is configured after boot. The following command sets the bitrate of the can0 interface to 500 Kbps:

/sbin/ip link set can0 up type can bitrate 500000

you can edit this command in the /etc/rc.local file.

Useful commands

  • Check state of CAN interface:

    ifconfig can0
    can0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
    UP RUNNING NOARP MTU:16 Metric:1
    RX packets:20 errors:0 dropped:0 overruns:0 frame:0
    TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:10
    RX bytes:160 (160.0 B) TX bytes:160 (160.0 B)
  • Bring down the device:

    ip link set can0 down
  • Bring up the device:

    ip link set can0 up
  • Show state:

    ip -d -s link show can0
  • Statistics:

    cat /proc/net/can/stats
  • Set bitrate:

    ip link set can0 down
    ip link set can0 type can bitrate 500000
  • Test mode - loopback mode:

    ip link set can0 down type can
    ip link set can0 type can loopback on
  • Test mode - silent mode:
    ip link set can0 down
    ip link set can0 type can listen-only on

can-utils

Can-utils is installed by default.

  • Transmit 8 bytes, id number is 0x100 (dots are optional):

    cansend can0 100#31.32.33.34.35.36.37.38
  • Receive packets:

    candump -cae can0,0:0,#FFFFFFFF
    can0 100 [8] 31 32 33 34 35 36 37 38 '12345678'
  • Candump also has the ability to dump data with a specific ID, here is an example for 0x100:

    candump -cae can0,100:7ff
  • Save all the received packets into a logged file:

    candump -l can0,0:0,#FFFFFFFF
  • Cansniffer group the messages by ID's (identifiers):
    cansniffer can0

Links