PCAN-Treiber für Linux
Copyright (C) 2002, 2003 Peak System-Technik GmbH
www.peak-system.com
und Klaus Hitschler
PCAN-Treiber für Linux Seite 1 von 18
Historie des Dokuments
Erster Entwurf Hi 13.01.2002
Rettung nach Datenverlust Hi 10.02.2002
Formatüberarbeitung, read/write Tabellen Hi 20.02.2002
Typografische Fehler entfernt Hi 21.02.2002
PCAN-USB integriert Hi 09.02.2003
Verfremdung von „pcan_usb_kernel.c“ beschrieben Hi 23.02.2003
devfs, kernel-2.5 support, LGPL Hi 04.08.2003
PCAN-Treiber für Linux Seite 2 von 18
Inhaltsverzeichnis
Disclaimer..................................................................................................................................4
Eigenschaften des Treibers 'pcan.o'.......................................................................................4
Vorbemerkungen.......................................................................................................................5
Installation mit RPM..................................................................................................................6
Installation des Quellpakets............................................................................................6
Anpassung von 'modules.conf'.......................................................................................7
Installation des Treibers..................................................................................................7
Manuelle Installation.................................................................................................................7
Manuelles Entpacken der Dateien.................................................................................7
Besonderheiten bei der Installation des Treibers für PCAN-USB .............................8
Manuelle Installation des Treibers.................................................................................8
Manuelle Installation der shared library.......................................................................10
Manuelle Installation der Header-Dateien...................................................................10
Halbautomatische Installation mit Übersetzung..................................................................10
Test mit Hilfe der Testprogramme.........................................................................................11
Das Wichtigste zu den Quellen.............................................................................................12
Übersetzung des Treibers......................................................................................................13
Anwendungsfälle ..........................................................................................................13
Voraussetzungen zur Übersetzung der Quellen.......................................................14
FAQs........................................................................................................................................14
Anhang.....................................................................................................................................16
PCAN-Treiber für Linux Seite 3 von 18
Disclaimer
Part of this program is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License or LGPL Lesser General Public License as
published by the Free Software Foundation; either version 2 of the License, or (at your
option) any later version. This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License along with this
program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite
330, Boston, MA 02111-1307 USA
Es ist unter keinen Umständen erlaubt das aus dem bereitgestellten Quellcode
erlangte Wissen zur Entwicklung oder Herstellung einer 'kompatiblen' Hardware
zu verwenden. Peak-System-Technik behält sich in einem solchen Fall rechtliche
Schritte vor.
Eigenschaften des Treibers 'pcan.o'
Der Treiber „pcan.o“ unterstützt sowohl die PCAN-PCI, PCAN-ISA, PCAN-Dongle als
auch die PCAN-USB Hardware. Es werden je nach Hardwaretyp (PCI, ISA, Dongle,
USB) gleichzeitig bis zu 8 Kanäle unterstützt. Dabei ist, mit der Ausnahme des PCAN-
PCI und PCAN-USB, die Basisadresse und der verwendete Interrupt frei
parametrierbar. Die werksseitigen Standardeinstellungen sind Vorgabe. Ein
Anwendungsprogramm kann mit dem Treiber auf zwei verschiedene Arten
kommunizieren:
1. Über eine direkte „read()“ und „write()“ Schnittstelle können ASCII formatierte Daten
bereitgestellt oder akzeptiert werden. Diese Daten enthalten Informationen zu den
empfangenen oder zu sendenden Telegrammen oder zur Initialisierung der Kanäle.
2. Über eine „ioctl()“ Schnittstelle. Über diese Schnittstelle können
Anwendungsprogramme sowohl CAN-Telegramme empfangen als auch senden.
Weiterhin ist es möglich Diagnose zum Zustand der Kanäle abzufragen und die
Kanäle zu initialisieren.
Der Treiber kann gleichzeitig von mehreren Anwendungsprogrammen genutzt werden
und es wird die gleichzeitige Nutzung mehrerer Interfaces und/oder CAN-Kanäle
unterstützt. Wenn mehrere Anwendungsprogramme auf den gleichen CAN-Kanal
zugreifen wird die Ein- oder Ausgabe auf Telegrammebene geteilt. (Beispiel: Mehrere
lesende Anwendungsprogramme teilen sich zufällig die empfangenen Telegramme.)
Ab der „Release_20030622_x“ wird optional das „Device Filesystem“ unterstützt. Bei
Nutzung des „devfs“ ist es dann nicht mehr notwendig die „device files“ per Hand
anzulegen, dies übernimmt der Kernel in Zusammenarbeit mit dem Treiber und dem
Dämon „devfsd“. Das „Device Filesystem“ muss im Kernel freigeschaltet sein.
Das Lesen oder Schreiben der Telegramme kann blockieren wenn keine Daten mehr im
PCAN-Treiber für Linux Seite 4 von 18
Empfangspuffer verfügbar sind oder der Schreibepuffer gefüllt ist. Diese Eigenschaft
kann durch Öffnen des Pfads als „nicht blockierend“ ausgeschaltet werden.
Die „select“-Methode wird unterstützt.
Die Schnittstelle zum Treiber (Konstanten und Strukturen) beschreibt die C-Headerdatei
„pcan.h“.
Eigenschaften der Bibliothek 'libpcan.so'
Die Bilbiothek „libpcan“ stellt eine vereinfachte Schnittstelle zur Nutzung der
Eigenschaften des PCAN-Treibers bereit. Die Treiberaufrufe sind den Treiberaufrufen
unter MS-Windows nachempfunden und erleichtern die Portierung entsprechender
Applikationen. Hinzu kommen einige Aufrufe die sich besser an die Gegebenheiten von
LINUX anpassen. Sie sind mit einem vorangestellten 'LINUX_..' gekennzeichnet.
(Beispiel: HANDLE LINUX_CAN_Open(char *szDeviceName, int nFlags);)
Bild 1. Aufrufhierarchie
Die Schnittstelle zur Bibliothek beschreibt die C/C++-Headerdatei „libpcan.h“. Bitte
beachten sie, das „libpcan.h“ die Datei „pcan.h“ einbindet.
Ab 6.2003 ist der Quellcode der Bibliothek unter die LGPL gestellt und damit auch
innerhalb proprietärer Software ohne Einschränkungen verwendbar.
Vorbemerkungen
Bemerkung: Vor der Installation der Software muss die Hardware im oder am Rechner
installiert sein (Ausnahmen PCAN-Dongle oder PCAN-USB, siehe weiter unten (6*)).
Diese Beschreibung beschreibt den Installationsvorgang an einem x86-LINUX-Rechner
mit installiertem Kernel 2.4.x. und einem SuSE 8.0 System. Ausnahmen für den Kernel
2.2.x. und x86-RedHat Systeme werden ausdrücklich erwähnt. Vorbereitungen für die
Kernel 2.6 sind eingebaut.
Im Verlauf der Installation wird öfters eine Konsole und vielleicht auch ein Editor im
PCAN-Treiber für Linux Seite 5 von 18
Application
Shared library
Driver