
Der Linux Geräte Treiber can4linux unterstützt eine Vielzahl von CAN Interfacekarten. Die AT-CAN-MINI Karte von port wird unterstützt. Der Sourcekode lässt sich auf Kerneln der Versionen 2.0, 2.2 2.4 und 2.6 übersetzen.
Von diesem Treiber existiert auch eine abgeleitete Version zum Einsatz auf Embedded Linux Geräten für unterschiedlichste Prozessoren mit integriertem CAN oder externem Stand-Alone CAN. Diese Version wird während der Kompilation auf die Zielhardware optimiert.
Übersicht
Der can4linux ist ein universeller Linux Gerätetreiber und dient zur Steuerung von CAN-Bus Interface Baugruppen. Die unter der GPL stehenden Sourcen unterstützen verschiedene CAN Controller (Philips SJA1000, Intel 82527, Infineon SAK82C900, Motorola FlexCAN, Infineon TwinCAN) und sind mit den Kernel-Versionen 2.4 bis 2.6 übersetzbar. (Ältere Versionen für kernel 2.0-2.2 auf Nachfrage)
Anwendung
Das can4linux Projekt wurde 1997 in Zusammenarbeit mit dem LINUX™ LLP Project zur Steuerung von Laborgeräten unter CAN entwickelt. Von diesem Treiber wurde die neue Versionslinie 2.x zum Einsatz auf Embedded LINUX™ Geräten abgeleitet. Hier wird der Treiber während der Kompilierung für die Zielhardware optimiert. Ursprünglich nur mit Support für SJA1000, wird die unterstützte CAN Controller Hardware Basis ständig erweitert. Neben dem Intel 82527 und dem Infineon TwinCAN entstand im Rahmen des uClinux Projektes eine Version für den Motorola FlexCAN Controller.
Treiber-Interface
Der Treiber selbst ist durch das Interface zum /proc-Dateisystem des Kernels in hohem Maße konfigurierbar. Die Steuerung des Gerätetreibers erfolgt über die Standard Geräteinterfacefunktionen open(), close(), read(), write() und ioctl().
Es können beliebig viele CAN Schnittstellen über die Gerätedateien /dev/can0 ... /dev/cann angesprochen werden. can4linux benutzt die Geräte major Nummer 91.
Hardware
Der Treiber unterstützt auch verschiedene ein- und zweikanalige Standard PC-Einsteckkarten mit ISA-, PCI- und PC-104-Interface:
- port AT-CAN-MINI (PeliCAN mode 29bit)
- EMS CPC-PCI
- IXXAT PCI03 (only SJA1000)
- Advantech Pcm-3680 (PC 104)
- DIL-NET TRM/816
- DigiTec PCMatic® Feldbusmodul FC-CAN
- ESD PC104/200
- Blackfin BF534/536
Ursprünglich war der Treiber nur für Intel basierende PCs verfügbar. Inzwischen wurden vielfältige Erfahrungen bei der Portierung des Treibers auf andere Plattformen, inklusive Embedded LINUX™, gesammelt. Eine der neu unterstützten Architekturen ist der Motorola PowerPC 863e mit zwei Intel 82527 CAN Controllern, oder die ARM CPU mit externem SJA1000 CAN Controller, der XC164CS mit dem TwinCAN Controller sowie auch der NetARM 150 mit seinen vier internen CAN Controllern.
Verfügbare Produkte
Der can4linux kann auch mit verschiedenen Produkten von port verwendet werden. Dazu stehen teilweise auch Demo-Versionen zum Download www.port.de/shop.html zur Verfügung.
Zum Senden und Anzeigen von CAN-Nachrichten steht die einfache Anwendung horch als CAN Layer-2 Server zur Verfügung. Sie kann interaktiv in einem xterm oder als TCP/IP Server gestartet werden. Dafür ist auch die grafische und programmierbare Analyzer-Anwendung CAN-REport verfügbar.
Für den Einsatz in CANopen Netzwerken steht die ANSI-C CAN- open Library für die Erstellung von eigenen Applikationen zur Verfügung. Basierend auf diesem Sourcecode ist der fertig übersetzte und konfigurierte CANopen Server m4d erhältlich, der ebenfalls interaktiv oder über die Bedienoberfläche des CANopen Device Monitor genutzt werden kann.
Systemanforderung
Der can4linux Gerätetreiber ist unter GPL frei verfügbar und kann für die Kernel-Versionen 2.0 bis 2.6 auf verschiedenen Hardwareplattformen übersetzt werden.
Bestellinformation
- 0530/13 can4linux Device Driver
Datenblatt
Laden Sie das Datenblatt herunter.
Download Information
Overview
The can4linux Project started already in 1997 with version 0.1. Goal of the development was a generic CAN driver which can be configured at run-time for different CAN interfaces. Mainly used in desktop systems, the resulting overhead was accepted. The development was based on the Linux Device Driver Kit LDDK by Clausi Schröter from the Linux Lab Project.
This older universal Linux device driver can4linux supports Philips 82c200/SJA1000 and Intel 82527 based I/O interfaces. The AT-CAN-MINI is supported. The source code can be compiled for kernels 2.0., 2.2 and 2.4. This driver is no longer maintained. The last available version is 1.4.
Derived from this driver is the new can4linux version line 2.x and follow-up. The last available version is 3.3. The newer versions can be compiled for Linux and uClinux kernel 2.4 and later (including 2.6 at the moment.) Designed to be used in embedded applications (as well as still on the desktop) this version is configured at compile time for the right hardware. Originally with support only for SJA1000 there is now support fo Intels 82527 again available. Within the scope of the uClinux project a version supporting Freescales FlexCAN and Infineons TwinCAN and the Analog Devices BlackFin CAN was created.
Today the following CAN controllers are supported
- NXP (Philips) SJA1000
- Microchip MCP2515
- Analog Devices BlackFin BF537
- ATMEL AT91SAM9263
- Freescale FlexCAN for Coldfire (5282)
- Freescale FlexCAN for i.MX
can4linux is available as kernel 2.6 compatible driver for some of the supported hardware targets. Recently one custumer was succesful using it on the latest kernel 3.0. Please ask at service@port.de
Download
can4linux is available for free. Latest versions are available for download on SourceForge Read the CHANGELOG to see the latest version.
The GPLed Sources V3.5.4 for kernel 2.6 and kernel 2.4 can be downloaded here (updated 18.06.2009). Future versions will not anymore have support for kernels 2.4.x.
Read the CHANGELOG or take a closer look into the manual.
Supported Boards
The drivers supports some ISA boards and some PCI boards:
- BSKY PCM9890 PC104 board (SJA1000)
- Advantech Pcm-3680 (PC 104)
- ARCOM Single Channel Opto-Isolated CAN interface modules supporting the Philips SJA1000 Controller AIM104-CAN
- only Version 2.x: port AT-CAN-MINI (alt: 11 bit basic CAN mode)
- Analog Devices BF537 STAMP board
- ATMEL AT91SAM9263-EK board (included in can4linux since V 3.5.3)
- ATMEL AT91SAM9263 board with external Microchip MCP2515 (included in can4linux since V 3.5.3) TARGET=SSV_MCP2515
- ATMEL AT91SAM9260 board with three external NXP SJA1000 (included in can4linux since V 3.5.3) TARGET=MMC_SJA1000
- ATMEL AT91SAM9G45 board with external MCP2515 (included in can4linux since svn V59)
- Contemporary Controls CANPCI-CO and CANPCI-DN (SJA1000)
- DigiTec PCMatic® Feldbusmodul FC-CAN (SJA1000)
- DIL-NET TRM/816
- EMS CPC-PCIe, PCI-Express board with up to 2 galvanically decoupled CAN channels (NXP SJA1000)
- EMS CPC-PCI, PCI board with up to 2 galvanically decoupled CAN channels (SJA1000)
- EMS CPC-PCI V2, PCI board with up to 4 galvanically decoupled CAN channels (SJA1000)
- EMS CPC-XT (Intel 82527)
- EMS CPC-104, PC104 board with one galvanically decoupled CAN channel (SJA1000)
- EMS CPC-104M, PC104 board with four galvanically decoupled CAN channels (SJA1000)
- Freescale iMX35 PDK (included in can4linux since V 3.5.7)
- JANZ AG PCI-L, PCI boards with SJA1000
- I+ME ACTIA SlimLine
- IGW900 (ColdFire FlexCAN)
- IXXAT PCI03 (only SJA1000)
- Ka-Ro TX25 Modul using i.MX25 on Starterkit-5
- Kvaser PCIcan, PCI board with 4 galvanically decoupled CAN channels (SJA1000)
- MPL VCMA9 Linux komplett Rechner mit ARM9 CPU Linux compact board with ARM9 CPU
- port AT-CAN-MINI (PeliCAN mode 29bit)
- RTD Embedded Technologies, Inc; ECAN1000 PC104 Board
- In preparation: ESD PC104/200.
For all interested in CANopen a demo version of the CANopen Server m4d is available here. The m4d is bundled with our CANopen Device Monitor.
version | info | OS | file |
V3.5.4 for kernel 2.6 and kernel 2.4 | updated 18.06.2009 | fileadmin/user_upload/Dateien_IST_fuer_Migration/can4linux-3.5.4.tgz |