PCAN-Light for LINUX is the easy to use software interface for CAN hardware by PEAK-System.
The PCAN drivers for LINUX work with Kernel versions 2.4 up to 2.6.32. The complete package is distributed under the GPL.
If you have any questions about the drivers please contact us.
There's a single API (Application Programming Interface) for all CAN interfaces. This simplifies the software development. The drivers are designed to work with CAN hardware by PEAK-System and 100 percent compatible hardware by OEM vendors. Take care when using third-party hardware, since the drivers use special functions.
Supported Hardware
| PCAN-USB |
USB to CAN interface - one CAN channel |
| PCAN-USB Hub |
All-in-one USB Adapter for Communication through USB, CAN, and RS-232 |
| PCAN-PC Card |
PC Card to CAN interface - one or two CAN channels |
| PCAN-cPCI |
CompactPCI to CAN interface - two or four CAN channels |
| PCAN-miniPCI |
Mini PCI to CAN interface - one or two CAN channels |
| PCAN-PCI Express |
PCI Express to CAN interface - one or two CAN channels |
| PCAN-PCI |
PCI to CAN interface - one or two CAN channels |
| PCAN-PC/104-Plus |
PC/104-Plus (PCI) to CAN interface - one or two CAN channels |
| PCAN-PC/104 |
PC/104 to CAN interface - one or two CAN channels |
| PCAN-ISA |
ISA to CAN interface - one or two CAN channels |
| PCAN-Dongle |
PC Parallel Port to CAN interface - one CAN channel |
| PCAN-OEM |
All OEM boards with CAN interfaces by PEAK-System (DigitalLogic-PC/104 CAN cards, Kontron with CAN on board, etc.) |
If you need technical information about the CAN hardware by PEAK-System go to www.peak-system.com. If you you have any questions, send an e-mail to our LINUX team: linux@peak-system.com
| Interested in CANopen for LINUX? | |
| We support the CANFestival project: http://canfestival.org. CANFestival is an open source CANopen framework (GPLv2 & LGPLv2) and works with all CAN interfaces by PEAK-System (LINUX/Xenomai/RTAI/WIN32/Cygwin). |
 |
Credits
We'd like to thank the lead developer Klaus Hitschler for his excellent work! Also many thanks for the Socket CAN support from Oliver Hartkopp and Wolfgang Grandegger. The Xenomai implementation was done by Edouard Tisserant and Laurent Bessard - thanks for the great job.
License Information
The driver is linked inside the kernel. This doesn't matter since the driver is GPL'd. However, if you like to customize the driver and distribute it then you must publish the source code of this modification. If you only use the driver's services from your user program it is the same situation like using kernel provided services from a user program. (Note that the driver's services are only of use through kernel services). It does not matter, if your user program is open or closed source and what licence, however. To ease access to the driver's services PEAK provides a library 'libpcan.so'. This library is LGPL'd and therefore can be linked to even closed source programs without any consequences. But if you modify the library you have to give back this modification to the community if you distribute the modified library.
IMPORTANT Note on Kernel Versions 2.6.25 and Up
The CAN Network subsystem PF_CAN (aka SocketCAN) became part of the Mainline Linux Kernel starting with version 2.6.25. For this reason the PEAK driver automatically compiles with the recommended netdev support, when CONFIG_CAN is set in the Kernel configuration (see NET=AUTO_NETDEV_SUPPORT setting in driver/Makefile). The automatic detection can furthermore be changed with NET=NETDEV_SUPPORT (force netdev) or NET=NO_NETDEV_SUPPORT (force chardev). To compile the PEAK Linux driver with the former (default) PEAK chardev interface, please invoke
make clean; make NET=NO_NETDEV_SUPPORT
See the /proc/pcan print:
chardev:
Kernel 2.6.24.7-92.fc8
===========================
*------------ PEAK-Systems CAN interfaces (www.peak-system.com) -------------
*-------------------------- Release_20080220_n ----------------------------
*---------------- [mod] [isa] [pci] [dng] [par] [usb] [pcc] -----------------
*--------------------- 1 interfaces @ major 248 found -----------------------
*n -type- ndev --base-- irq --btr- --read-- --write- --irqs-- -errors- status
32 usb -NA- ffffffff 255 0x001c 00000000 00000000 00000000 00000000 0x0000
netdev:
Kernel 2.6.25.4-10.fc8
============================
*------------ PEAK-Systems CAN interfaces (www.peak-system.com) -------------
*-------------------------- Release_20080220_n ----------------------------
*------------- [mod] [isa] [pci] [dng] [par] [usb] [pcc] [net] --------------
*--------------------- 1 interfaces @ major 248 found -----------------------
*n -type- ndev --base-- irq --btr- --read-- --write- --irqs-- -errors- status
32 usb can0 ffffffff 255 0x001c 00000000 00000000 00000000 00000000 0x0000
Attention!
When using the netdev driver interface, the chardev driver test tools ("cat /dev/pcanXX", "receivetest", "transmittest") will not work correctly. Receiving of messages won't be possible - these tools are only for the chardev driver.
Release Version 6.15
Back to the top
The History - Drivers from the past ...
| Version 6.13 |
Update:
- By preventing accidental back-to-back writes to the command register of the SJA1000 chip in conjunction with multicore processors write stalls were successfully removed
- "spin_lock..." macros had become harmonized
- A compilations bug with the XENOMAI flavor was fixed
|
Download 6.13 tar.gz
Download Installation Info for Version 6.13(PDF)
|
| Version 6.11 |
Update:
- Optimized for multicore environments
- Fixed endian problem for netdev sending SFF frames via USB
- Removed a bug where a write could return -ENODATA even if the write was successful.
- Renamed pcan_fifo_near_ful() to pcan_fifo_not_ful().
- Moved the sense of pcan_fifo_empty().
Now it returns true (!=0) if the FIFO is empty.
- Minor bug fixes
|
Download 6.11 tar.gz
Download Installation Info for Version 6.11(PDF)
|
| Version 6.7 |
Update:
- Support up to Kernel 2.6.26
- Automaticly compiling for Socket CAN Support if the Kernel option "CONFIG_CAN" is set (Kernel 2.6.25 or higher)
- Big Endian Support for PCAN-USB
- PCAN-Dongle now works again without Parport-Subsystem
- Remove some compiling warnings while use newer Kernel Versions
- Remove some compiling warnings while use XENOMAI support
- Some smaller fix for RTAI-Skin support
|
Download 6.7 tar.gz
Download 6.7 rpm
Download Installation Info for Version 6.x (PDF)
|
| Version 6.2 |
Update:
- Fixed a bug which raised overrun messages without overruns
- Compiles now with kernel 2.6.21
- Added a USB startup delay to compensate long PCAN-USB startup
- PCAN-PCCARD: removed all mutexes inside soft-Irq context
- Reworked parts of atomic_** usage
- PCAN-ISA: mistakable info message changed
- Improved stability of XENOMAI integration
|
Download 6.2 tar.gz
Download 6.2 rpm
Download Installation Info for Version 6.x (PDF)
|
| Version 5.0 |
Update:
- From now on, the complete driver will be distributed under the GPL. The 'obfuscated' code for the USB Interface is removed.
- The Xenomai RealTime Core was inegrated to the driver (at the moment the PCAN-USB and the PCAN-PCC did not support this feature).
- A new initialisation parameter was added: "bitrate". from now on it is possible to set the default bitrate of the hardware
- Some smaller BugFixes
|
Download 5.0 rpm
Download 5.0 tar.gz
|
| Version 4.3 |
Update:
- Add PCAN-PC Card (PCMCIA)
- Fixed ISA/PC104 shared interrupt problem
- Added LINUX_CAN_Write_Timeout()
- Preparation for kernel 2.6.17
- Adding support for realtime sharing interrupts tested on Dual Channel PCI card
- Moved usage of module_param_array() to kernels greater than 2.6.13
- Removed module_param_array() usage problems for kernel 2.6.8-24-smp
|
Download 4.3 rpm
Download 4.3 tar.gz
|
| Version 3.9 to 3.10 |
Version 3.9 (15.09.2004) Update:
- Correction for RPM make procedure
- Fixed Bug for USB while have very high bus load
- Fixed Bug in "Extended Status" function support Makefile for 2.6.0 <= Kernel Version < 2.6.5
|
Download 3.9 rpm
Download 3.9 tar.gz |
Version 3.6 (27.07.2004) Update:
- Fixed "Bad: Scheduling while atomic!" error
- Add English Documentation to package
|
Download 3.6 rpm
Download 3.6 tar.gz
|
| Version 3.5 (18.05.2004) Update: Linux 2.6 Kernel support |
Download 3.5 rpm
Download 3.5 tar.gz
|
Version 3.28 Update:
- Driver work now with YellowDog-Linux (PowerPC)
- Remove some warnings while compiling with Kernel-Version 2.4.21 (SuSE-9.0)
- Öatencie time were reduced
- Fixed bug in error handling
- Changed from CVS to Subversion
|
Download 3.28 rpm
Download 3.28 tar.gz
|
Version 3.25 Update:
- Replaced GFP_KERNEL with GFP_ATOMIC inside some blocking situations
- Better support for X86_64 Bit Systems
- Works now with Kernel 2.6.15
|
Download 3.25 rpm
Download 3.25 tar.gz
|
Version 3.21 (20.07.2005) Update:
- Added option to selective compile for PCAN-PCI, PCAN-ISA, PCAN-Dongle or PCAN-USB
- Prepared for kernels greater and equal than 2.6.12
- Addes pci_enable_driver() for kernels greater and equal 2.6.10.
- Removed concurrency between read_proc_mem() and USB read/write.
|
Download 3.21 rpm
Download 3.21 tar.gz
|
Version 3.17 (14.02.2005) Update:
- Increased write buffer for hardware revision >= 7 (PCAN-USB)
- Bug removed when CAN_ERR_QXMTFULL was raised even when no queue was filled (PCAN-USB)
|
Download 3.17 rpm
Download 3.17 tar.gz
|
| Version 3.13 (10.12.2004) Update: Fix Bug while reading PCAN-USB Serial number (OEM) |
Download 3.13 rpm
Download 3.13 gz
|
Version 3.12 (06.12.2004) Update:
- Now conform to kernel 2.6.9 (missing timeout using USB)
- Workaround for pcan_hw_getSNR() using PCAN-USB
|
Download 3.12 rpm
Download 3.12 tar.gz
|
| Version 3.10 (29.10.2004) Update: Kernel-Version 2.6.9 - Parameter 'timeout' missed in 'struct urb' |
Download 3.10 tar.gz
|
Back to the top
|