Difference between revisions of "CAN Bus"
m (→SocketCAN Support in Programming Languages/Environments) |
m (added can4linux details) |
||
Line 44: | Line 44: | ||
* Atmel AT91 SoCs | * Atmel AT91 SoCs | ||
* ESD 331 CAN Cards | * ESD 331 CAN Cards | ||
− | * Philips SJA1000 | + | * NXP (Philips) SJA1000 |
* Freescale MPC52xx SoCs | * Freescale MPC52xx SoCs | ||
* Bosch CC770 | * Bosch CC770 | ||
Line 55: | Line 55: | ||
* [[Java]] | * [[Java]] | ||
* [[Python_Can | Python]] | * [[Python_Can | Python]] | ||
+ | |||
+ | ==== can4linux Supported Controllers ==== | ||
+ | |||
+ | * Analog Devices BlackFin BF537 | ||
+ | * Atmel AT91 SoCs | ||
+ | * Freescale FlexCAN (ColdFire 5282, i.MX25, i.MX28, i.MX35) | ||
+ | * Microchip Stand Alone CAN MCP2515 | ||
+ | * NXP Stand Alone CAN SJA1000 (on different ISA or PCI/PCIe boards) | ||
+ | * Xilinx Zynq with XCAN | ||
+ | * 'virtual' CAN mode without CAN hardware | ||
+ | |||
+ | ==== can4linux Support in Programming Languages/Environments ==== | ||
+ | * [[Tcl/Tk]] | ||
+ | * [[Python]] | ||
+ | |||
[[Category:Networking]] | [[Category:Networking]] |
Revision as of 10:32, 14 May 2013
Contents
Overview
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)
additional information can be found at:
http://en.wikipedia.org/wiki/CAN_bus
CiA CAN in Automation CAN user association
CAN Support in Linux
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.
- SocketCAN Documentation
- mailing list for Linux Kernel CAN development
- linux-can git repository
- Berlios Project Page (obsolete)
One of the character based drivers is can4linux.
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
- NXP (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
can4linux Supported Controllers
- Analog Devices BlackFin BF537
- Atmel AT91 SoCs
- Freescale FlexCAN (ColdFire 5282, i.MX25, i.MX28, i.MX35)
- Microchip Stand Alone CAN MCP2515
- NXP Stand Alone CAN SJA1000 (on different ISA or PCI/PCIe boards)
- Xilinx Zynq with XCAN
- 'virtual' CAN mode without CAN hardware