Difference between revisions of "CAN Bus"

From eLinux.org
Jump to: navigation, search
(Created page with 'The CAN bus is an ISO standard bus for vehicles. It manages the Chassis Electrical System Control and is responsible for critical activities like engine electrical, and skid cont…')
 
(SocketCAN Support in Programming Languages/Environments: add Python related page)
(11 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 +
=== Overview ===
 +
 
The CAN bus is an ISO standard bus for vehicles. It manages the Chassis Electrical System Control
 
The CAN bus is an ISO standard bus 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
 
and is responsible for critical activities like engine electrical, and skid control. This system is also used
Line 4: Line 6:
 
this bus with a primary bus line that branches into sub bus lines at its extremities then attaches to
 
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
 
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. Communication occurs at 500 kbps with 1-8 Bytes of data inside of each
+
for noise resistant signaling. Bit rates up to 1 Mbit/s are possible at network lengths below 40 m.
transmitted packet. ( Jeremiah J. Flerchinger [[media:avc-lan.pdf|Source]])
+
Decreasing the bit rate allows longer network distances (e.g., 500 m at 125 kbit/s).
 +
 
 +
(Jeremiah J. Flerchinger [[media:avc-lan.pdf|Source]])
 +
 
 +
additional information can be found at:
 +
 
 +
http://en.wikipedia.org/wiki/CAN_bus
 +
 
 +
[https://plus.google.com/u/0/117660856159215855502 SocketCAN News]
 +
 
 +
=== CAN Support in Linux ===
 +
 
 +
The Linux kernel supports CAN with the SocketCAN framework.
 +
 
 +
* [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob_plain;f=Documentation/networking/can.txt SocketCAN Documentation]
 +
* [http://vger.kernel.org/vger-lists.html#linux-can  mailing list for Linux Kernel CAN development]
 +
* [http://gitorious.org/linux-can linux-can git repository]
 +
* [http://developer.berlios.de/projects/socketcan/ Berlios Project Page (obsolete)]
 +
 
 +
=== SocketCAN Supported Protocols ===
 +
* RAW: send & receive raw CAN frames
 +
* BCM: Broadcast manager, offload repetitive work to the Linux kernel
 +
* ISOTP ...
 +
* SAE [[J1939]]
 +
 
 +
=== SocketCAN Supported Controllers ===
 +
* Microchip MCP251x
 +
* Atmel AT91 SoCs
 +
* ESD 331 CAN Cards
 +
* Philips SJA1000
 +
* Freescale MPC52xx SoCs
 +
* Bosch CC770
 +
* Intel AN82527
 +
* TIs SoCs
 +
* Serial/network devices utilizing ASCII protocol (slcan driver)
 +
 
 +
 
 +
=== SocketCAN Support in Programming Languages/Environments ===
 +
* [[Android]]
 +
* [[Java]]
 +
* [[Python_Can | Python]]
 +
 
 +
[[Category:Networking]]

Revision as of 09:28, 20 March 2013

Overview

The CAN bus is an ISO standard bus 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)

additional information can be found at:

http://en.wikipedia.org/wiki/CAN_bus

SocketCAN News

CAN Support in Linux

The Linux kernel supports CAN with the SocketCAN framework.

SocketCAN Supported Protocols

  • RAW: send & receive raw CAN frames
  • BCM: Broadcast manager, offload repetitive work to the Linux kernel
  • ISOTP ...
  • SAE J1939

SocketCAN Supported Controllers

  • Microchip MCP251x
  • Atmel AT91 SoCs
  • ESD 331 CAN Cards
  • Philips SJA1000
  • Freescale MPC52xx SoCs
  • Bosch CC770
  • Intel AN82527
  • TIs SoCs
  • Serial/network devices utilizing ASCII protocol (slcan driver)


SocketCAN Support in Programming Languages/Environments