From: eLinux.org
The CAN bus is an ISO standard bus originally developed for vehicles. It manages the Chassis Electrical System Control and is responsible for critical activities like engine electrical, and skid control. This system is also used to provide vehicle diagnostic information for maintenance. A multi-star configuration seems typical of this bus with a primary bus line that branches into sub bus lines at its extremities then attaches to multiple device nodes. Differential voltage is applied over twisted pair at 1.5 to 2.5V and 2.5 to 3.5V for noise resistant signaling. Bit rates up to 1 Mbit/s are possible at network lengths below 40 m. Decreasing the bit rate allows longer network distances (e.g., 500 m at 125 kbit/s). (Jeremiah J. Flerchinger Source) Controllers supporting CAN FD, an enhanced CAN version with frames up to 64 byte and bit rates up to 4 Mbit/s, will be available in the second half of 2014. A can4linux version supportig CAN FD on a IFI CAN is ready to be used.
Although developed as car communication network CAN is used in many other areas, industrial, medical, maritime laboratory and more. Most often with a CAN based higher layer protocol like CANopen on top of it.
Additional information can be found at:
http://en.wikipedia.org/wiki/CAN_bus
CiA CAN in Automation CAN user association
CAN FD Specification Version 1.0
CAN is supported by Linux device drivers. Mainly two types exist. Character device based drivers and network socket based drivers. The Linux kernel supports CAN with the SocketCAN framework.
One of the character based drivers is can4linux.
Vendor | Device Name | Driver Module Name | Controller | Kconfig Option | Linux Mainline | Remarks |
---|---|---|---|---|---|---|
VScom | NET-CAN | slcan | (unknown) | CONFIG_CAN_SLCAN | 2.6.38 | needs slcand and socat |
VScom | PCI-2CAN | slcan | (unknown) | CONFIG_CAN_SLCAN | 2.6.38 | needs slcand |
VScom | SER-CAN | slcan | (unknown) | CONFIG_CAN_SLCAN | 2.6.38 | needs slcand |
VScom | USB-CAN | slcan | (unknown) | CONFIG_CAN_SLCAN | 2.6.38 | needs slcand |
LAWICEL | CAN232 | slcan | (unknown) | CONFIG_CAN_SLCAN | 2.6.38 | needs slcand |
LAWICEL | CANUSB | slcan | (unknown) | CONFIG_CAN_SLCAN | 2.6.38 | needs slcand |
PEAK | PCAN-PCI | peak_pci | sja1000 | CONFIG_CAN_PEAK_PCI | 3.2 | supports all PCAN-[mini]PCI[e][104] variants |
PEAK | PCAN-USB | peak_usb | (unknown) | CONFIG_CAN_PEAK_USB | 3.4 | supports PCAN-USB[pro][hub] (no LIN support) |
Kvaser | PCIcanx | kvaser_pci | sja1000 | CONFIG_CAN_KVASER_PCI | 2.6.31 | supports all PCI-[mini]PCI[e][104] variants |
Kvaser | Leaf | kvaser_usb | (unknown) | CONFIG_CAN_KVASER_USB | 3.8 | supports USB Leaf / Memorator / Blackbird / R (see detailed USB device IDs in kvaser_usb.c) |
Kvaser | USBCan-II | kvaser_usb | (unknown) | CONFIG_CAN_KVASER_USB | commits pulled-in for the 3.20 release | supports:
|
EMS Wünsche | CPC-Card | ems_pcmcia | sja1000 | CONFIG_CAN_EMS_PCMCIA | 3.2 | discontinued |
EMS Wünsche | CPC-USB/ARM7 | ems_usb | (unknown) | CONFIG_CAN_EMS_USB | 3.2 | |
EMS Wünsche | CPC-PCI/PCIe | ems_pci | sja1000 | CONFIG_CAN_EMS_PCI | 3.2 | up to four channel |
EMS Wünsche | CPC-PC104P | ems_pci | sja1000 | CONFIG_CAN_EMS_PCI | 3.2 | up to four channel on a PC104+ board |
8devices | USB2CAN | usb_8dev | (STR750FV2) | CONFIG_CAN_8DEV_USB | 3.9 | STR750FV2 Firmware |
Softing | CANcard2 | softing_cs | sja1000 or NEC-005(?) | CONFIG_CAN_SOFTING_CS | 2.6.38 | Supports {CAN,EDIC}card{,SJA,2} PCMCIA cards Needs firmware softing-fw-4.6-binaries.tar.gz |