Mise en oeuvre de l’interface PCAN-USB

Présentation

L’adaptateur PCAN-USB de la société PEAK SYSTEM permet une connectivité aux réseaux CAN. Il est vendu 195 euros HT.

Site : www.peak-system.com/PCAN-USB.199.0.html

Caractéristiques :

  • Adaptateur pour liaison USB (USB 1.1, compatible USB 2.0 et USB 3.0)
  • Alimentation par le bus USB
  • Vitesse de transfert de 5 kbit/s jusqu‘à 1 Mbit/s
  • Résolution de env. 42 µs pour l‘horodatage
  • Conforme aux spécifications CAN 2.0A (ID 11 bits) et 2.0B (ID 29 bits)
  • Connexion au bus CAN par connecteur D-Sub, 9 broches (selon CiA® 102)
  • Contrôleur CAN NXP CAN SJA1000 doté d’une fréquence d’horloge de 16 MHz
  • Emetteur-récepteur CAN NXP PCA82C251
  • Possibilité de relier une alimentation de 5 volts au niveau de la connexion CAN par cavalier brasé p.ex. pour un convertisseur de bus externe
  • Plage de températures en fonctionnement étendue, de -40 à 85 °C
  • Pilotes pour Windows 10, 8.1, 7, Vista et Linux (32/64 bits)
Broche Brochage
2 CAN-L
3 GND
6 GND
7 CAN-H

Lire Bus CAN/NMEA 2000 avant de poursuivre.

Installation pour Linux

Il est conseillé de lire ou de s’aider de ce document avant de poursuive.

Récupérer le pilote PCAN-Linux sur le site www.peak-system.com

Télécharger l’archive :

$ wget http://www.peak-system.com/fileadmin/media/linux/files/peak-linux-driver-7.12.tar.gz

$ wget http://www.peak-system.com/fileadmin/media/linux/files/peak-linux-driver-8.7.0.tar.gz

Décompresser l’archive :

$ tar zxvf peak-linux-driver-7.12.tar.gz 

$ tar zxvf peak-linux-driver-8.7.0.tar.gz
Avant de poursuivre, vérifier que votre interface ne soit pas raccordée à votre machine  !
$ cd peak-linux-driver-7.12 

$ cd peak-linux-driver-8.7.0

Cette version vous fournit dans les dossiers suivants :

  • Documentation : la documentation
  • driver : les sources du pilote
  • lib : les sources de la bibliothèque
  • test : quelques programmes de test (receivetest, transmitest, …)

Remarque : la société Peak System précise qu’il y a un conflit d’utilisation entre le support NET (réseau, l’interface CAN est “vue” comme une interface réseau) et l’accès au fichier de prériphérique (DEV pour device).

Désactiver le support NET et activer le support USB :

$ vim driver/Makefile 

USB     = USB_SUPPORT 
NET     = NO_NETDEV_SUPPORT 

Installer la bibliothèque de développement popt :

$ sudo apt-get install libpopt-dev

Démarrer la fabrication :

$ make 

Procéder à l’installation :

$ sudo make install 

Les actions suivantes vont être réalisées :

  • installation du fichier de règle udev (qui réalise la prise en charge automatique du matériel)
  • installation du fichier de blacklist permettant d’empêcher d’autres versions de pilote d’être chargées
  • installation de la bibliothèque libpcan dans /usr/lib/
  • installation du fichier d’en-tête libpcan.h dans /usr/include/
  • installation des programmes de test dans /usr/local/bin
Vous pouvez maintenant raccorder votre interface à votre machine.

Détection du matériel :

$ dmesg 
[23194.489553] usb 2-1.5: new full-speed USB device number 9 using ehci-pci
[23194.586297] usb 2-1.5: New USB device found, idVendor=0c72, idProduct=000c
[23194.586302] usb 2-1.5: New USB device strings: Mfr=0, Product=3, SerialNumber=0
[23194.586305] usb 2-1.5: Product: VER1:PEAK    
[23194.586305] VER2:02.8.01        
[23194.586305] DAT :06.05.2004
[23194.586305] TIME:09:35:37
[23194.586305]                              ...
[23194.610081] pcan: Release_20140723_n (le)
[23194.610086] pcan: driver config [mod] [usb] 
[23194.610630] pcan: new usb adapter with 1 CAN controller(s) detected
[23194.610646] pcan: usb hardware revision = 28
[23194.661997] pcan: usb device minor 1 found
[23194.662034] usbcore: registered new interface driver pcan
[23194.662040] pcan: major 250.

$ lsusb 
...
Bus 002 Device 004: ID 0c72:000c PEAK System PCAN-USB

Présence du chargement du pilote (driver) :

$ sudo lsmod | grep can
pcan                   56509  0 

Présence du fichier de périphérique :

$ ls -l /dev/pcan*
lrwxrwxrwx 1 root root      8 oct.   8 16:53 /dev/pcan1 -> pcanusb1
crw-rw-rw- 1 root root 180, 1 oct.   8 16:53 /dev/pcanusb1

Remarque : il est fort possible que vous obtenez un fichier périphérique /dev/pcanusb0.

Prise en charge par le système :

$ cat /proc/pcan

*------------- PEAK-System CAN interfaces (www.peak-system.com) -------------
*------------- Release_20140723_n (7.12.0) Oct  8 2014 16:52:23 --------------
*------------------------------- [mod] [usb] --------------------------------
*--------------------- 1 interfaces @ major 250 found -----------------------
*n -type- ndev --base-- irq --btr- --read-- --write- --irqs-- -errors- status
33    usb -NA- ffffffff 255 0x011c 0000001d 00000000 000003be 00000000 0x0000
Raccorder la station météo Maretron WSO1000.

Test de réception de messages NMEA2000 à 250 kbits/s (BTR0BTR1=0x011c) :

$ receivetest -f=/dev/pcan1 -b=0x011c

receivetest Version "Release_20090203_n"  (www.peak-system.com)
------- Copyright (C) 2004-2009 PEAK System-Technik GmbH ------
receivetest comes with ABSOLUTELY NO WARRANTY.     This is free
software  and you are welcome  to redistribute it under certain
conditions.   For   details   see    attached   COPYING   file.

receivetest: device node="/dev/pcan1"
             Extended frames are accepted, init with BTR0BTR1=0x011c
receivetest: driver version = Release_20140723_n

874878.3 receivetest: m e 0x09fd0280 8 21 00 00 ff ff fa ff ff 
875078.39 receivetest: m e 0x09fd0280 8 29 00 00 ff ff fa ff ff
875178.50 receivetest: m e 0x09fd0280 8 2d 00 00 ff ff fa ff ff 
875277.890 receivetest: m e 0x09fd0280 8 31 00 00 ff ff fa ff ff 
875278.487 receivetest: m e 0x15fd0680 8 31 ff ff 29 75 f1 03 ff 
875279.42 receivetest: m e 0x15fd0780 8 31 41 29 75 ae 20 f1 03 
875377.900 receivetest: m e 0x09fd0280 8 35 00 00 ff ff fa ff ff 
875477.996 receivetest: m e 0x09fd0280 8 39 00 00 ff ff fa ff ff 
875577.922 receivetest: m e 0x09fd0280 8 3d 00 00 ff ff fa ff ff 
^Creceivetest: type            = usb
             Serial Number   = 0xffffffff
             Device Number   = 255
             count of reads  = 9
             count of writes = 0
             count of errors = 0
             count of irqs   = 970
             last CAN status = 0x0020
             last error      = 0
             open paths      = 1
             driver version  = Release_20140723_n
receivetest: finished (0).

Remarque : Pour les registres BTR0 et BTR1, cf. pages 50 et 51 du datasheet SJA1000.

Votre interface PCAN-USB est opérationnelle.

Retour au sommaire