Home
        PCAN-driver for Linux - Benutzerhandbuch - PEAK
         Contents
1.       Added a hint how to blacklist peak pci ko     Hi 03 28 2010         64          7 CAN hardware is only accepted based on Philips chip SJA1000  PCAN ISA or  PCI  hardware is immediately verified during installation  In contrast to that the PCAN   Dongle hardware is not verified until an                  call  That s the reason why no  error is reported if a parallel port without plugged in PCAN Dongle is recognized     2 The   Parport Subsystem    has to be configured to use a interrupt  Therefore  following lines have to be entered into the file    etc modules conf    or   letc modprobe conf  depending on your kernel version     alias parport lowlevel parport pc  options parport pc io 0x378 irq 7  Normally  irqznone  stands in the  options  line  The assigned interrupt number   must match the assigned interrupt number of the device  Those works can only be  done as  root   If the                   Subsystem    is already installed it can be removed  with    rmmod lp   rmmod pcan   rmmod parport pc   rmmod parport    3 You are not forced to use the   Parport Subsystem     Then the alternately use of the  parallel port through PCAN Dongle and e g  a printer is not possible any more  For  it the driver has to be translated with the             PARPORT SUBSYSTEM option   Then the previous detail of    modprobe parport  is not necessary while installing       In some cases the dynamic assignment of                   device numbers are  unwelcome  However this can be changed 
2.       receivetest rt c to receive test  realtime variant   chardev        transmitest rt cpp to transmit test  realtime variant    chardev        transmit txt Test transmit instructions    OB    PCAN driver for Linux   User Manual    5 2    System    Prerequisites for Compilation of the Sources      Before compiling following prerequisites have to be considered     1     5 3    Up from kernel version 2 6 x the completely configured  kernel sources for your target system have to be installed  If  it is a standard installation the sources are located under      usr src linux    in which this normally is a link e g  to   lusr src linux 2 6 6   For every kernel smaller or equal than  2 4 x only the    kernel headers    have to be installed   It s not  wrong to install the complete sources of the target system    The kernel headers are installed if the invocation of    cat   lib modules  uname  r  build include linux modversions h   is ending without an error     uname  r   is a placeholder for  the result of the invocation  uname  r       ui    The   lib modules  uname  r  build include linux version h   file has to exist or being copied before from the path      boot vmlinuz version h     With kernels 2 6 x this file is  created during the kernel compilation process     Tools like make  gcc  etc  have to be installed  One of the  test programms uses the g   compiler  The test programms  need installed    libpopt    and    libstdc      with their header  files   dev variants     
3.     A First of all your programs will stall and a re plug in of the PCAN   USB doesn t change anything  First you have to stop and after    51    PCAN driver for Linux   User Manual       System    plugging in of the interface you can invoke your programs again   It s not guaranteed that the same minor number as the previous  PCAN USB minor number is allocated  Minor number assignment  depends on the order of plug ins of PCAN USB devices     Q How can I find out what minor number the PCAN USB is assigned  to     A With help of the individual pre programmed   device number      which can be experienced with help of the    proc pcan    interface  a  relationship to a special physical connection can be made     Q I want to open my PCAN USB device however I get an error  message  What s wrong     A There is more than one possibility  1  The appropriate device is  not registered as   dev pcan      2   The appropriate device is not  plugged in     Q The compilation on my system doesn t work  What can be  wrong     A The most common reason is not installed Linux kernel sources   Often sources of another kernel than the one installed are used   Sometimes both files      boot vmlinuz autoconf h    and       boot vmlinuz version h     of the distribution are not linked to the files they are assigned to      lib modules  uname r   build include linux autoconf h  and     lib modules  uname  r  build include linux version h   Q The transmission performance of CAN messages is low  if   sen
4.     In order to make this setting persistent you have to modify   etc modules conf or  etc modprobe conf  depending on your kernel  version      Note  Please consider that all interfaces handled with this driver  get the same initial bit rate     The corresponding  common  bit rate codes are     define CAN BAUD 1M 0x0014    1 Mbit s    define CAN BAUD 500K 0x001C    500 kBit s    define CAN BAUD 250K 0x011C    250 kBit s   define CAN BAUD 125K 0  031      125 kBit s  define CAN BAUD 100K 0x432F    100 kBit s  define CAN BAUD 50K 0  472      50 kBit s    define CAN BAUD 20K 0  532      20 kBit s    define CAN BAUD 10K 0x672F    10 kBit s    define CAN BAUD 5K Ox7F7F    5 kBit s                                                       7 4 Assign Parameter  netdev only     There are three choices to assign a network device name to CAN  interfaces     assign peak   assign device node name network device name          With the special  assign peak  module load parameter you can  assign the network device names of the CAN channels  corresponding to the assigned minor numbers  e g     Network device name    can40    corresponds devices minor number  40     A third option allows assigning individual network device names   To accomplish it please add a string similar to this     28      PCAN driver for Linux   User Manual             System  assign pcan32 canl pcan41 can2       Note  With kernels 2 4 x you should use a plus     instead a  comma     to separate the entries     If you omit
5.    clean   DBG DEBUG    Combinations of these switches are also possible     37    PCAN driver for Linux   User Manual       System    11 2 Support for Cross Compi lation    The driver  its library and the test programs sometimes are used on  other systems than the development system  The process of  generating the binary driver for another target is called Cross   Compilation  Partially the driver and its helper programs are  supporting Cross Compilation  Therefore the driver has to be  compiled with the option     make KERNEL LOCATION  lt path to my kernel gt     Whether the driver can be compiled for every possible target  system and is working there can   t be guaranteed because of so  many different architectures  The installation of the driver and the  library an on other target than the host system can   t be supported  through the given installation scripts  We are glad about hints how  to improve the Cross Compilation support  Especially we are  looking for successful ports of the driver to document the  knowledge for other engineers     38    PCAN driver for Linux   User Manual       System    12 Features of the Shared Library   libpcan so                  only     The    libpcan so    library is providing an easier interface for using  the features of the PCAN drivers  The library interface is similar to  the one from MS Windows and makes the porting of applications  easier  There are also some calls which adapt better to the specifics  of Linux  They are marked wi
6.  Your target kernel must have the proc filesystem enabled   Dependent of your CAN interface hardware PCI  USB and or  PCCARD support must be enabled with your target kernel  configuration     Manual Compilation and Installation    A semi automatic installation with compilation can also be done  with little effort  Unpack the tar gz files to any directory and start  compilation and installation  Please note the prerequisites for  compilation of the sources     14    PCAN driver for Linux   User Manual       System    As default the driver and its utilities are compiled for netdev usage  from kernel versions up from 2 6 25  otherwise for chardev usage  with support for all hardware interfaces from PEAK  If you need to  customize the driver or switch to netdev usage please look at the  chapter Compilation of the Driver Only     cd peak linux driver x y  make clean  make    su  c    make install       Installation itself needs to be root     After building the sources and the following binary installation on  your target computer it s enough to type in     sbin modprobe pcan  to install the driver and any other useful modules  Depending on  your requirements you have to do this procedure every time you  start your computer or your application   This may be done ina  startup script  too      15    PCAN driver for Linux   User Manual    System    6 Loading the Driver    a Note  From kernel version 2 6 0 the kernel module extension is   ko      If the driver to be loaded is applicab
7.  chardev driver  Some code  snippets explain the options        1 Polling    Polling is the worst of all possibilities  But sometimes it becomes  the easiest choise     To poll the driver path have to be opend with the option  O_NONBLOCK     finclude  lt fcntl h gt    include  lt libpcan h gt     TPCANRdMsg msg     int ret   HANDLE h   LINUX CAN Open    dev pcan0   O RDWR   O NONBLOCK    do    ret   LINUX CAN Read h   amp msg    while  ret     EAGAIN      if   ret        use  msg           else    57      PCAN driver for Linux   User Manual                          2 Blocking wait    Blocking wait should be preferred because it preserves system  resources  Normally blocking wait must run inside a separate thread  to avoid blocking of the program      include  lt fcntl h gt      include  lt libpcan h gt     TPCANRdMsg msg     int ret   HANDLE h   LINUX CAN Open   dev pcan0      RDWR         at this point the thread blocks until a message is available        or an error occurs     ret   LINUX CAN Read h   amp msg      if   ret         use  msg         else    A 3 Blocking wait with Timeout    This method is a mix between the two predecessors  Reading of the  data blocks until a message is available  an error occurs or the given  timeout elapses  It is more or less a skyhook to create simple  programs without wasting system resources      include  lt fcntl h gt    include  lt libpcan h gt     TPCANRdMsg msg     58      PCAN driver for Linux   User Manual             System  int 
8.  of Xenomai s abstract RTOS  core     17 1 Installation    First of all  in order to install PCAN rt driver  a Xenomai real time  environment must be installed on your workstation  Download the  Xenomai source code from the Xenomai website and install it by  following the installation manual provided  The Linux kernel of your  workstation must be patched for using Adeos  patches for a lot of  architectures are included in the source code      Before using Xenomai  the list of dynamic libraries of your  workstation must be updated  If not  the driver compilation will  abort  For that  you can use    Idconfig     ensuring that the path to  Xenomai libraries have been added to  etc 1d so conf file     17 2 Compilation Environment    To compile the PCAN real time driver  you must provide in the  make command the option RT XENOMAI  By default  the PCAN  driver will be compiled for non real time environment     46    PCAN driver for Linux   User Manual    System    Because USB and PCCARD are still not supported on PCAN real   time driver  it is highly recommended to not compile PCAN real   time driver with USB_SUPPORT or PCCARD_SUPPORT flags     An example of command for compiling PCAN real time driver     cd   peak linux driver driver  make clean    make RT XENOMAI  Possible other make switches are RT RTAI for a RTAI skin or  RT NO_RT for no  real time  support at all     17 3 Runtime Environment    You can load PCAN real time driver module as usual  there are no  changes compared
9.  received telegrams     The  select  method is supported     The interface to the driver  constants and structures  is defined  in the header file pcan h     3 2 Special Features of the  netdev driver     The netdev driver interfaces to the kernels network modules via a so  called Socket CAN framework  Socket CAN aims to be a standard  interface for access of CAN devices  This kind of interface enhances  the features compared to the chardev driver  Especially it provides     Possibility for multiple paths reading writing from to the same  CAN channel    Built in filter capabilities  e g CAN ID  range  filters with can raw  sockets    PCAN driver for Linux   User Manual m    System    Built in broadcast manager for cyclic sending of CAN telegrams  and content filtering in the CAN data  e g  updates to userspace  only on data change    Simple user API accessible from mostly all programming  languages since normal network socket calls are used  creating  PF_CAN analogue to PF_INET     Local loopback of sent CAN frames for network transparent  applications    Socket CAN is accompanied from lots of useful tools and  utilities  please have look at socketcan berlios de     The interface to the driver  constants and structures  is defined in  the header files can h and error h for kernels lower than 2 6 25     10    PCAN driver for Linux   User Manual E    System    4 Preluding Notes    o Note  Before installing the software the hardware has to be  installed in or at the computer  Ex
10.  the CAN device drivers as network interfaces  The CAN  socket API has been designed as similar as possible to the TCP IP  protocols to allow programmers  familiar with network  programming  to easily learn how to use CAN sockets   Taken from  the README file from the Socket CAN package      The development on Socket CAN started end of 2002 at Volkswagen  AG to have a common CAN IT interface for HMI  and Car2Car  prototypes  Nowadays Socket CAN is maintained by a group of  developers at socketcan berlios de  One of the Socket CAN  maintainers  Oliver Hartkopp  did most of the netdev integration  into the plain PCAN driver        Note  Socket CAN modules are part of the mainline kernel since  version 2 6 25  So the generation of the socket CAN modules  do not apply to newer kernels  For newer kernels you  appropriately have to configure your kernel  CONFIG_CAN   CONFIG_CAN_RAW  CONFIG_CAN_BCM  CONFIG_CAN_VCAN   to use the necessary modules     To use Socket CAN you first have to fetch the Socket CAN sources  and compile and load them  To fetch the sources you might invoke     svn co http   svn berlios de svnroot repos socketcan trunk  where it should load    43    PCAN driver for Linux   User Manual       System    Then please follow the instructions given in the README file to  compile and load Socket CAN  With Socket CAN you get a driver for   virtual CAN channels     They are called vcanO  vcan1 and so on     To get the Socket CAN loaded you can invoke as root user     modp
11.  this parameter the network device names are  automatically assigned in channel initialization order     29      PCAN driver for Linux   User Manual             System    8 Installation Test  Use of Test  Programs  chardev only     Two test programs are attached for the initial test of the interfaces   For using the programs please change to the directory      peak   linux driver x y test   Please invoke       receivetest   help    You get following response     receivetest Version  Release 20040412 a    www peak system com             Copyright  C  2004 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   a small test program which receives and prints CAN messages     Usage  receivetest   f devicenode      t type    p port   i irq        b BTROBTR1    e     options   f   devicenode   path to device file  default  dev pcan0           t   type of interface  e g     pci        sp        epp        isa    or    usb     default  pci     p   port in hex notation if applicable  e g  0X378  default  1st port of type     i   irq in dec notation if applicable  e g  7  default  irq of 1st port      b   BTROBTR1 code in hex  e g  0X001C  default  500 kbit          e   accept extended frames   default  standard frames      or   help   this help    receivetest  finished  0     The default bit rate settings for all CAN 
12.  to the standard loading procedure  The PCAN   API is the same in real time and non real time  so you can open   close  read from or write to your PCAN device like usual  But be  careful  reading and writing must be made in a real time task to be  really effective  For an example of how to use Xenomai for creating  and using a real time task  please refer to the examples  transmitest  and receivetest  located in the  test  folder  For compiling your  program  Xenomai libraries path and flags must be included in your     Makefile     They can t be obtained by using the    xeno config    script  provided with Xenomai  You can have an example of how using     xeno config    in the    Makefile    file located in the    test    folder     17 4 Troubleshooting  A Attention  On an old station  after compiling the kernel patched    for Adeos  a problem that makes the kernel couldn t load can  appear  To solve this problem  you can add    lapic 1    to the    47    PCAN driver for Linux   User Manual       System    kernel command line parameters in  grub conf  or  lilo conf  file   depending on your bootloader     If your kernel still crashes at start  a solution for finding what is  blocking your kernel is to compile it with Xenomai support in  module and try to insert it after kernel was loaded  It will then  indicate in the log messages what the problem is     The most common mistake when using a real time task is trying to  print some text in the user terminal with    printf    c
13. 00000 255 0x001c 00000000 00000000 00000000 00000000 0x0000  40 pccard can4 00000180 169 0x001c 00000000 00000000 00000000 00000000 0x0000  41 pccard can5 000001a0 169 0x001c 00000000 00000000 00000000 00000000 0x0000    The  ndev  column shows the network device assignment  For  assignment of bitrates to network devices you can either set the  desired bit rate as module load parameter or you can assign the bit  rate after loading the driver with a simple command line invocation  like     echo  i 0x4914 e   gt   dev pcan0    For this reason it is important to create the chardev device entries   too  If your target does no create the device files automatically with  UDEV you have to run with the script      pcan make devices 2    even if only the netdev driver is used       22      PCAN driver for Linux   User Manual      System    To test the correct installation of the netdev driver you can use the  Socket CAN utility  candump        candump  Usage  candump  can interfaces    use CTRL C to terminate candump    Options   m   mask    default 0x00000000    v   value    default 0x00000000    i  lt 0 1 gt   inv filter    e  lt emask gt   mask for error frames    t  lt type gt   timestamp  Absolute Delta Zero             color mode     a  enable additional ASCII output     s   level   silent mode   1  animation 2  nothing     b   can    bridge mode   send received frames to  lt can gt     1  log CAN frames into file     L  use log file format on stdout     To receive from any CAN 
14. 12  14  14    16  17  19  23  24    24    25    26  27  27  27  28    PCAN driver for Linux   User Manual    8    9    Installation Test  Use of Test Programs   chardev only     Most Important chardev Header Files    9 1 Manual Installation of the chardev Header    10    11    11   11     12    13    14    15    16    17    17   17   17   17     18    Files  Most Important netdev Header Files    Compilation of the Driver Only    1 Use Cases  2 Support for Cross Compi lation    Features of the Shared Library  libpcan so    chardev only     Manual Installation of the chardev Shared  Library    Message Filters  chardev only   Error Handling    Socket CAN Introduction and Basic Installation   netdev only     Real time Support with Xenomai  1 Installation   2 Compilation Environment   3 Runtime Environment   4 Troubleshooting    FAQ    Appendix A Usage of the Driver with chardev Mode    A 1    Polling    System    30    34    34    35    36    36  38    39    40    41    42    43    46    46  46  47  47    49    57  57    PCAN driver for Linux   User Manual    A   A     2  3    Blocking wait  Blocking wait with Timeout    A 4 Waiting for an IO event with Select      Appendix B Historical Parts    B     B   B   B     1    AR oU       devfs   Compilation of Kernel Greater Than 2 5 x  Obfuscation   History of the Document    System    58  58    62  62  62  63  63    PCAN driver for Linux   User Manual    System    1 Disclaimer    Part of this program is free software  you can redistr
15. 7 39 53 xxxx ifup  can0   Mar 6 17 39 53 xxxx ifup  No configuration found for can0  as the CAN network interface is currently not recognized and  handled by these  hotplugging  scripts  It s save to ignore these kind  of log messages     Before  modprobing  the netdev prepared modules you should edit  your  etc modprobe conf  or  etc modprobe conf local or    L 20      PCAN driver for Linux   User Manual                              etc modules conf  depending      your kernel version         distribution  and add at least these lines     option                            alias  alias  alias  alias       can    vean0  veanl  vcan2  vcan3      CAN hardware    1   Peak System    protocol family PF CAN  alias net pf 29 can    protocols in PF CAN  alias can proto 1 can raw  alias can proto 2 can bcm    protocol module options    option can tpgen printstats 1    stats timer 0    virtual CAN devices                                               uncomment the currently used     hardware  ISA PCI Parallelport Dongle  USB  PC Card       gt  to set initial BTR values set and hardware dependent settings    alias  alias  alias  alias    foptions  foptions  foptions    foptions    can0  canl  can2  can3    pcan  pcan  pcan    parpo    pcan  pcan  pcan  pcan    assign peak   type isa isa io 0x2C0  0x320 irq 10 5 btr 0x4914  type epp btr 0x4914   rt pc io 0x378 irq 7    Depending on the desired target hardware interfaces and transport  protocols you may need more entries  Please look into 
16. BTROBTR1 code in hex  e g  0X001C  default  500 kbit      e   accept extended frames   default  standard frames       or   help   this help    transmitest  finished  0     This program expects similar parameters as receive test with the  exception of a file name  In the file with this name the program  expects a list of telegram descriptions which are to be send  Those  telegrams will be send cyclic until the ending by pressing Ctrl C   The syntax of the description of the telegrams is       31    PCAN driver for Linux   User Manual      System    Descriptions of the first column of the telegram of the read write    interface     Tag   Column  1   Description    m  r   i       Message string follows  RTR message string follows  Initalisation string follows  write only     Comment follows  write only     Descriptions of the following columns of  normal  and RTR     telegrams     Column  2   3   4   5  12  13   14   13    Description   s   Standard frame  e   Extended frame  Identifier  hex    ILenght of telegram  dec    Telegram bytes  hex    Timestamp milli seconds  dec  read only   Timestamp milli seconds  dec  read only   Comment  write only     Descriptions of the following columns for initializing strings     Column  2  3    For example       a comment    0x123 0    B   7     w         7     w    B   7                    w    Description  BTROBTR1 Init data  hex  write only     E   allow extended frames  write only     a message  standard frame  id 0x123  0 Data bytes    
17. PCAN Driver for Linux    PCAN Driver for Linux    User Manual            PCAN driver for Linux   User Manual       Product names mentioned in this document may be the trademarks or registered    System    trademarks of their respective companies  They are not explicitly marked by           and    KOM       2010 PEAK System Technik GmbH and Klaus Hitschler    PEAK System Technik GmbH  Otto R  hm Stra  e 69   64293 Darmstadt  Deutschland    Phone   49  0 6151 8173 20  Fax   49  0 6151 8173 29    www peak system com  linux  peak system com  klaus hitschler  gmx de    Issued 2010 04 19    PCAN driver for Linux   User Manual    Inhalt    1 Disclaimer  2 Changed Compilation Target since Kernel 2 6 25    3 Features of the  pcan o  or  pcan ko  Driver    UJ     1 Special Features of the  chardev driver   3 2 Special Features of the  netdev driver     4 Preluding Notes    5 Installing Manually   5 1 Unpacking the Files   5 2 Prerequisites for Compilation of the Sources   5 3 Manual Compilation and Installation   6 Loading the Driver   6 1 Driver Loading Specifics for chardev   6 2 Driver Loading Specifics for netdev   6 3 udev Support   6 4  pcan make devices   6 5 Specifics with the Driver Installation for  PCAN USB   6 6 Specifics with the Driver Installation for    PCAN PC Card    7 Customization of the modprobe Configuration  File    7 1 Interface Hardware Type   7 2  I O Port and Interrupt Settings  7 3 Initial Bit Rate   7 4 Assign Parameter  netdev only     System    11    12  
18. _DEVFS_FS   y  this will be  considered automatically     cd   peak linux driver driver  make clean  make DEVFS DEFS SUPPORT    Q I compiled for device file system support  Though it   s not  working     A Is your devfsd     the    device file system daemon        active  Please  check that     B 2 Compilation of Kernel Greater Than 2 5 x    Q While translating kernel 2 6 x following warning appears         Warning  Overriding SUBDIRS on the command line can cause    62    PCAN driver for Linux   User Manual       System        inconsistencies    Is something not right          am afraid that the discussion within the kernel developer  community about the right way of translating external modules  hasn t found an end until this release  The current way generates  this warning and at worst translates all of the modules again   Though there are approaches that the generation of external  modules like pcan ko is getting easier  This message can be  ignored     B 3 Obfuscation    Q The source code module  pcan usb kernel c  only contains  cryptic letters  Is the file destroyed     A No  the contents of the files is obfuscated to save intellectual  property  Though it s still a translatable source code  This feature  does only apply for releases earlier than 20061029     Q During installation of the driver with USB support   get following  message   Warning  loading pcan o will taint the kernel  non GPL  license     Proprietary   What s the meaning of this message     A This messa
19. ated     It is possible to set more than one filter condition in a message  chain for each path  After a message is received the filter chain is  walked trough to check for a pass condition  If no pass condition is  found the message is rejected     41    PCAN driver for Linux   User Manual       System    15 Error Handling    The CAN error handling for the chardev driver has changed from  version 5 x to version 6 x of the driver  Now the handling is more  compatible to the MS DOS implementation     If a CAN error occurs a status message is enqueued into the  channels receive queue  A status message is marked with  MSGTYPE STATUS set in the MSGTYPE field of the TPCANMsg  structure     Depending on the kind of error detailed CAN_ERR_    information is  set in the DATA 3  field of the same structure     Error handling with netdev devices is similar  however the error    information is fit into the can frame structure  For details please  look into the Socket CAN documentation     42    PCAN driver for Linux   User Manual E    System    16 Socket CAN Introduction and Basic  Installation  netdev only     The Socket CAN package is an implementation of CAN protocols   Controller Area Network  for Linux  CAN is a networking  technology which has wide spread use in automation  embedded  devices  and automotive fields  While there have been other CAN  implementations for Linux based on character devices  Socket CAN  uses the Berkeley socket API  the Linux network stack and  implements
20. ception  PCAN Dongle   PCAN PC Card      PCAN USB        This manual is describing the installation process on an x86 Linux   computer with installed kernel 2 6 x  and a SuSE 10 1 system   Exceptions for kernel 2 4 x  and x86 RedHat systems are particularly  mentioned     Since driver version 6 0 support for kernels 2 2 x has ceased  If you  need a driver for these kernels please have a look at the latest 5 x  driver version     During the installation sometimes a console and perhaps an editor  as well will be used in the  root   mode  If you want to login as   root  user within a console or xterm session you can use the  su   command or the built in menu  file root console        For Debian based systems   ubuntu  you have to use the sudo  command instead or replace  su  with  sudo su      To start an editor in the  root  mode  just invoke from the menu   system terminals terminal  system manager mode   in KDE  From  the console command line you might invoke the editor  kwrite       kate    or    emacs     For some distributions the standard path  doesn t include the   sbin  folder  Then installation commands have  to typed in with   sbin   ahead     Examples    sbin modprobe     instead of modprobe       sbin insmod     instead of insmod       sbin rmmod     instead of rmmod       sbin modinfo     instead of modinfo        11      PCAN driver for Linux   User Manual       System       5 Installing Manually    5 1 Unpacking the Files    Unpack the file peak linux driver x y 
21. d  a telegram with help of the write interface out of a script  What is  the problem     A Every line in a script opens the path to a device and immediately  closes this path again  This opening and closing take time  The    52    PCAN driver for Linux   User Manual E    System    transmission performance can be improved by letting another path  open  For example     cat  dev pcan32  gt  dev null  amp   echo    m s 0x123 2 0x11 0x12     gt   dev pcan32  echo    m s 0x123 2 0x11 0x12     gt   dev pcan32    Q I got a lot of error messages when compiling the driver for a  kernel 2 6 x system  What s wrong     A To compile for kernel 2 6 target system you need to have a pre   configured kernel  To accomplish this you need to install the target  kernel sources  Then do    cd  usr src linux   for example  su   you need to be root  make cloneconfig   create a configuration suitable for your running kernel    make scripts   create the necessary scripts    That s all  Now you can   as ordinary user     compile your driver     Q While compiling the driver following message appears          Can t find  usr src linux 2 4 24 SuSE include linux version h     End     What s the problem     A Within the driver makefile up from version 3 3 the target kernel  version is not being won out of the interpretation of the command   uname  r   but extracted out of contents of the file       KERNEL_LOCATION  include linux include version h      If there  wasn t any special  KERNEL LOCATION  given at t
22. e driver the USB subsystem of the Linux kernel has  to be enabled  USB support for Linux was first introduced with  kernel 2 4  The use of PCAN USB together with a Linux kernel  version less than 2 4 7 is deprecated through the driver developer     24    PCAN driver for Linux   User Manual       System    6 6 Specifics with the Driver Installation for  PCAN PC Card    The user side of the PCMCIA subsystem of the kernel has  undergone heavy changes through subsequent releases of kernel  2 6 x  So we have to distinguish between the implementations     Up from kernel 2 6 13 the vendor and card IDs are not any more  registered in the configuration file  etc pcmcia config since the  relationship between manufacturer ID and device ID of the card and  the associated driver is registered inside the driver  The driver  should be loaded before card plug in     With these kernel versions you can use the pccardctl utility from the  pcmcia package  especially    pccardctl eject    and    pccardctl insert     to prepare a card for ejection or to notify an inserted card  The  former utility to do the same was called cardctl     For earlier kernel versions than 2 6 13 you need entries in   letc pcmcia config  like     device  pcan    class  none  module  pcan    card  PCAN PCCARD    manfid 0x0377  0x0001   bind  pcan   With these entries you can use your configured hotplug system to  load the driver when the card is plugged in     Also for kernels lower than 2 6 13 you can use the cardctl ut
23. ge points out that the driver for the PCAN USB module  was not released under the GPL license  The use of the driver as a  module within Linux though is legal     B 4 History of the Document    Text Datum   First draft Hi 01 13 2002  Rescue after loss of data Hi 02 10 2002  Format revision  read write tables Hi 02 20 2002    63      PCAN driver for Linux   User Manual    Removed typos    Hi 02 21 2002            PEAK    System       PCAN USB integrated    Hi 02 09 2003       Obfuscation of  pcan usb kernel c  is described    Hi 02 23 2003       devfs  kernel 2 5 support  LGPL    Hi 08 04 2003       1st revision for kernel 2 6 x driver    Hi 05 02 2004       Enlarge FAQ  corrections    Hi 05 13 2004       Simple correction for RPM make procedure    Hi 08 14 2004       Additional compiler switches    Hi 07 19 2005            Replaced cat  i      with echo  i        Hi 11 30 2005       Added a hint from Uwe Bonnes    Hi 03 14 2006       Added PCAN PC Card support  removed devfs    Hi 05 14 2006       Corrected serious typographic error    Hi 05 16 2006       Removed obfuscation  added real time support    Hi 10 29 2006       Minor improvements    Hi 11 04 2006       netdev  message filters and error handling described    Hi 02 27 2007       Added a special paragraf to explain NETDEV compilation target    Hi 01 18 2009       udev support explained  support up to kernel 2 6 29    Hi 02 03 2009       udev issues detailed    Hi 02 14 2009       Rework of the manual    Hi 01 16 2010 
24. have to compile    cd   peak linux driver x y driver   make clean   make DNG NO ISA NO  As default for kernels lower than 2 6 25 the netdev driver is  disabled  If you like to use the netdev driver please compile  with    NET NETDEV SUPPORT     36    PCAN    ed    make    make    4     cd  make    make    5     cd  make    make     driver for Linux   User Manual       System    The following section only applies to kernel versions 2 4 x or  lower  The driver is to be installed on RedHat Linux  RedHat  in contrast to SuSE as default uses the    CONFIG MODVERSIONS  modifier to prohibit the  installation of improper drivers  If your operating system  was generated with enabled  CONFIG MODVERSIONS   you can see this easily by invoking  cat  proc ksyms   If  there is cryptic number letter combinations at the end of the  symbols your system was generated with enabled    CONFIG MODVERSIONS      A simple new compilation on your system is enough      peak linux driver x y driver    clean    Your operating system doesn t support the   PARPORT SUBSYSTEM or you have a parallel interface  which is unknown to the operating system and you like to  use a PCAN Dongle with this interface  Here you have to  compile with the  PARZNO  switch       peak linux driver x y driver  clean  PAR NO PARPORT SUBSYSTEM    You get runtime errors and want to see more information  for diagnosis at   var log messages   Here you have to  translate with the    DBG DEBUG    switch      peak linux driver x y driver
25. he command  line of   make   KERNEL  LOCATION  usr src linux  is being used  as default   While translating the kernel sources the file version h  is generated  Normally this message has its cause in not translated  kernel sources  Until kernels 2 4 x it was enough if the distribution  had installed this file  From kernel 2 6 x on it is necessary that the  kernel sources for the target system are configured and translated  completely  Then the file version h is being created     53    PCAN driver for Linux   User Manual       System    With ubuntu systems you should set  KERNEL LOCATION  usr src Linux headers  uname r         I like to have interrupt sharing with PCAN ISA or PCAN PC 104    A No problem since version 3 30 of the driver  But you should be  aware that interrupt sharing with ISA BUS is only possible with  devices which are supported from the same driver  e g  the PCAN  driver  For example it is not possible to share a serial device with a  PCAN device but two PCAN devices can share the same interrupt  level     Q I am trying to use the PCAN driver with Xenomai support  My  problem is  when I load the module it registers the device with  major 000 and doesn t do an entry into  proc devices  only into   proc xenomai and  proc pcan  Therefore pcan make  devices  doesn t work  Is that an error or supposed to be like that     A It seems you want to use the Xenomai RTDM driver as a standard  driver  You have to know that  with Xenomai s Real time Driver  Model  there i
26. ibute 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 version 2 of the License  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   51 Franklin Street  Fifth Floor  Boston  MA 02110   1301  USA    Attention  It is strictly prohibited to use the intellectual  property from the provided source code for developing or  producing a  compatible  hardware  All rights are reserved by  PEAK System Technik GmbH    PCAN driver for Linux   User Manual       System    2 Changed Compilation Target since  Kernel 2 6 25    Since Kernel version 2 6 25 the default compilation target has  changed  Please take care if you have updated your target kernel     The CAN Network subsystem PF_CAN  aka SocketCAN  became  part of the mainline Linux Kernel since kernel 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     The automatic configuration can furthermore be changed with  NET NETDEV_SUPPORT to force netdev configuration or NET NO  to force chardev conf
27. ies do   have to diagnose if   have problems     A Linux has a variety of choices  First it s useful to look at recent  messages with     49    PCAN driver for Linux   User Manual       System     tail  f  var log messages     If the driver is loaded you can see  as root  with     n sbin lsmod   grep pcan       More informations about the parameter of the driver can be asked  with       Sbin modinfo pcan       Closer information about assignment of major  and minor numbers  and about the use of resources can be queried with           cat                          Information about assignment of resources        be queried with    cat  proc interrupts           cat  proc ioports     cat  proc iomem        cat  proc pci  or    cat  proc bus pci devices  depending on the kernel version                 proc bus usb devices        Note  The interrupts of the hardware aren t registered until its  use     To diagnose USB there are also programs with a graphical user  interface like e g    USBView      With garbled installations sometimes paths for lation of the driver  are set wrong  That s why while translating the driver a message  like this appears         Host machine kernel version 2 4 18 4GB  Driver kernel version 2 6 5    Path  to kernel sources  mnt usr src linux  use KBUILD yes    With this message it is possible to compare if the driver is really  compiled for the used kernel  The  KBUILD  mechanism is used  from kernel 2 6 x on     Q How do I interpret the output of  cat  
28. iguration     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 than      To compile the PEAK Linux driver with the former  default  PEAK  chardev interface  please invoke     make clean  make NET NO    PCAN driver for Linux   User Manual    System    3 Features of the  pcan o  or   pcan ko  Driver    The    pcan o    or    pcan ko    driver is supporting PCAN PCI  PCAN   miniPCI  PCAN PCI Express  PCAN ISA  PCAN PC 104  PCAN PC 104  plus  PCAN Dongle  PCAN PCCARD as well as PCAN USB hardware   Depending on the type of hardware  PCI  ISA  Dongle  PC Card  and  USB  8 channels for each type can be supported  For PCAN ISA   PCAN PC 104 and PCAN Dongle the base address and the used  interrupt are settable  If no parameters are provided the driver uses  factory defaults  A user program can communicate with the driver  in three different ways     ASCII formatted data can be provided or accepted over a   read    or  write    interface  This data contains information  from received or transmitted telegrams or about channel  initializing parameters     With a  ioctl    interface  Through this interface user programs  are able to receive and to transmit CAN telegrams as well   However it is possible to get information about the channel  status and to initialize the CAN channel     As a network device with commonly used network socket cal
29. ility  from the pcmcia package  especially    cardctl eject    and  cardctl  insert  to prepare a card for ejection or to notify an inserted card     Note  Removing a card with still open channels is not  recommended     25    PCAN driver for Linux   User Manual       System    7 Customization of the modprobe  Configuration File    o Note  modprobe installation options are put into a modprobe  configuration file named either  etc modprobe conf or   etc modprobe conf local or  etc modules conf or  currently  etc modprobe d pcan  The name depends on  kernel version and distribution     Former modprobe installation options configured an invocation  of  pcan make devices  in the modprobe configuration file   These entries will not be modified by a fresher installation to  avoid overwriting user made entries  Please remove a potential  invocation of  pcan make devices  inside this configuration  files if your system supports udev     The current entry locates in   etc modprobe d pcan        pcan   automatic made entry  begin              if required add options and remove comment     options pcan type isa  sp   install pcan  sbin modprobe   ignore install pcan      pcan   automatic made entry  end               At the end of the modprobe configuration file a marked addition is  added through the installation  The respective type and the  eventually non standard base addresses and interrupt numbers are  to be given there  if the driver has to support the PCAN ISA or  PCAN Dongle in
30. in the driver sources  file   pcan main h   constant  PCAN MAJOR    Afterwards the driver has to be  translated and installed again  The best is to use the number    91     This already is  intended for CAN devices  Please note that conflicts to other installed CAN drivers  can be possible     5 From kernel version 2 6 on the behaviour during assignment of the                    numbers is being changed through the kernel parameter   CONFIG USB DYNAMIC MINORS   When  CONFIG USB DYNAMIC MINORS   is set  the first free   minor  number is assigned to from 0 on  Mandrake  distributions use this configuration       The  read           write  interface of the driver print out ASCII formatted data or  accept ASCII formatted data as input  The format of the telegrams for   read  and   Write  is defined identically  so that a redirection of data is possible     cat  dev pcan0  gt   dev pcan8    PCAN driver for Linux   User Manual E    System       The format of the data is like the previously mentioned description of the telegrams   Additionally to the description of the telegrams the   read    output supplies a time  stamp in milliseconds and microseconds  If there is a redirection like above the  time stamp is being ignored     The  write  output also accepts details about initializing   echo  i 0x1234 e      dev pcan8    The first parameter pinpoints the initialization  the second parameter names an input  value for both BTRO BTR1 registers of the SJA1000 chip  The optional third  
31. interfaces are set to 500  kbit sec  The bit rate can be customized through the command line  parameters     For using an ISA or Dongle interface with the standard settings  following detail is enough     receivetest  t isa or receivetest  t sp or receivetest  t epp    or    receivetest  f  dev pcan0      30      PCAN driver for Linux   User Manual            System    to get to the first PCAN PCI interface     Every received telegram of the interface will be print out  Entering  Ctrl C cancels the program     The program    transmitest    can be used to transmit data  Please  invoke       transmitest  help  You get following output similar to receivetest   transmitest Version  Release 20040412 a   y          5    Copyright      2004          System Technik GmbH            transmitest 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     Transmitest   a small test program which sends CAN messages        Usage  transmitest filename    f devicenode       t type    p port  i irq            options  filename   mandatory name of message description file         f   devicenode   path to device file  default  dev pcan0   t   type of interface  e g   pci    sp    epp    isa  or  usb   default  pci       p   port in hex notation if applicable  e g  0X378  default  1  port of type          i   irq in dec notation if applicable  e g  7  default         of 1  port     b   
32. le for PCAN Dongle you may  need to load the parport subsystem support  To do this please  invoke as  root  user      sbin modprobe parport  This command installs the  Parport Subsystem  with Linux  It is  necessary to support the PCAN Dongle integration 2  3     Login as  root  user in a console e g  console or xterm  Fork to the        peak linux driver x y driver  directory and type in      sbin insmod pcan o type xxx yyy     io 0x300 0x378     irq 10 7      or from kernel 2 6 0 on     sbin insmod pcan ko type xxx yyy     io 0x300 0x378     irq 10 7        if you need USB support you have to do the same steps as in  Specifics with the Driver Installation for PCAN USB  The place  holder  xxx yyy      are standing for  isa    sp  or  epp   The  parameter for  io  and  irq  can be left out  if the standard  assignments are configured with your hardware  PCl channels   USB channels and PCCARD based channels are found and installed  without any special details but ISA  PC 104  and parallel port  supported channels have to be registered     The standard assignments for ISA and PC 104 interfaces are  io irq    0x300 10  0x320 5  The standard assignments for Dongle in SP EPP  mode are  io irq   0x378 7  0x278 5     16    PCAN driver for Linux   User Manual    6 1    System    Driver Loading Specifics for chardev    With the following command you can see any error report after     insmod ing     as    root    user      tail  var log messages    Normally the output looks similar to 
33. ls   This kind of interface is alternative to the previous kinds  It is  called the netdev drivers interface  in contrast to the chardev  drivers interface  To use the netdev drivers interface with kernels  before 2 6 25 you have to install the Socket CAN support from  socketcan berlios de     Most of this manuals content covers the usage of the chardev  driver  see chapter Special Features of the    chardev driver     The  netdev driver usage and installation is considered in depth in the  chapter Special Features of the    netdev driver     Parts of the  following chapters are different for chardev or netdev  implementations  Exceptions are marked to pinpoint the difference     PCAN driver for Linux   User Manual       System    Since version 5 0 of the driver support for the XENOMAI real time  add on to the Linux kernel is available  You can get more  information in the chapter Real time Support with Xenomai     3 1 Special Features of the    chardev driver       The driver can be used from more than one user program at the  same time and the simultaneous use of lots of interfaces and or  CAN channels is supported     The reading or writing of telegrams can block if the receive  buffer doesn t contain data any more or if the write buffer is full   This behaviour can be disabled by opening the path as non   blocking     If more than one user program communicates with the same  CAN channel the input or output is shared   e g   Many user  programs are accidentally sharing the
34. message  standard frame  id 0x123  1 Data byte  Data  0x123 1 0  11  message  standard frame  id 0x123  1 Data byte  Data  0x123 2 0x11 0x22    message  extended frame  id 0x123  3 Data byte  Data                  PCAN driver for Linux   User Manual PEAK    Ho    Hos HB    f  s    e 0x123 3 0  11 0x22 0x33   a RTR  standard frame  id 0x123  0 Data byte  comment  S 0  123 0   a comment      RTR  extended frame  id 0x123  0 Data byte  comment  e 0  123 0   a comment   initialize   0x1234 e      23    System    PCAN driver for Linux   User Manual       System    9 Most Important chardev Header  Files    Any sources of the driver  of the library and the test programs are fit  in underneath the    peak linux driver x y    directory tree  Two files         to be mentioned especially  The file        peak linux   driver driver pcan h describes the interface to the driver and  command constants  You have to include this file if you want to  have direct access to the driver with    open    ioctl    read    close                The file     peak linux driver lib libpcan h  describes the interface to the dynamic linkable library libpcan so   You have to include this file if your application needs to use the  dynamic library     a Note  libpcan h is including the pcan h file    9 1 Manual Installation of the chardev Header  Files    Please copy the header files into the directory     usr include    as     root    user as followed and customize the access rights     cp peak linux driver d
35. mpiler  output into a file and send the contents to linux   peak system com   If itis a loading problem do the same for the output of your loading  procedure  With loading or runtime problems it is very helpful to  run a driver with debug mode enabled  Then please attach the  relevant parts of   var log messages      Q I got other questions or problems with the driver   A Please consult linux  amp  peak system com     Q I am enthusiastic about the driver or the documentation and want  to contribute something to make it better  Who do I have to consult     A Please also contribute linux  amp  peak system com  Peak and the  authors are happy about every positive response     Q When the socketCAN driver  peak pci ko  was installed the driver   pcan ko  didn t load anymore  What can   do     A If your system runs udev you only need to copy the file  blacklist peak pci conf into   etc modprobe d   The file  blacklist peal pci conf is located in the Documentation  folder  You need to do this as  root  user  e g  with    55      PCAN driver for Linux   User Manual       System    sudo cp Documentation blacklist peak pci conf  etc modprobe d    After copying please restart your computer and  peak pci ko  will  not load anymore  To remove this option you simply need to erase    etc modules d blacklist peak pci conf  and restart     56      PCAN driver for Linux   User Manual       System    Appendix A Usage of the Driver with  chardev Mode    There are 4 options to    talk    with the
36. netdevice you might also invoke     candump any    instead of working with specific CAN netdevices     candump can0 can2    6 3 udev Support    From the driver version 6 8 udev support is provided  When the  driver becomes installed the udev rules  45 pcan rules  are copied  into the directory     etc udev rules d     After that each time PCAN  device is recognized the driver is loaded and the device files are  created automatically     The script to install device files for non UDEV target     pcan_make_devices  is still provided  This script should not used  together with udev     23    PCAN driver for Linux   User Manual       System    Note  The device nodes are removed also automatically when a  hotplug device is removed  There is a compatibility issue with  updates of a modprobe configuration file and   pcan make devices  and the udev installation  Please look at     Customization of  modules conf  or  modprobe conf  for  further details     6 4 pcan_make_devices       Note  That pcan_make_devices is obsolete with systems  supporting udev    Help invocation of  pcan_make_devices     Spcan make devices  help  Usage  pcan make devices n    help    h     Info  Create n device nodes for each PCAN type     You must be root to invoke pcan make devices  To use   pcan make devices  a successful insmod modprobe pcan o or  pcan ko must precede     No device files must be created for Xenomai devices     6 5 Specifics with the Driver Installation for  PCAN USB    In order to use th
37. ngs      Mar 6 17 39 51 xxxx kernel  pcan  Release 20070221 n    19      PCAN driver for Linux   User Manual         System    ar 6 17 39 51 xxxx kernel  pcan  driver config  mod   isa   pci   dng   usb      pcc   net    ar 6 17 39 51 xxxx kernel  pcan  pci device minor 0 found   ar 6 17 39 51 xxxx kernel  pcan  pci device minor 1 found   ar 6 17 39 51 xxxx kernel  pcan  usb hardware revision   28   ar 6 17 39 53 xxxx kernel  pcan  registered netdevice can0 for pcan usb hw   minor 32    ar 6  39 53 xxxx kernel  pcan  usb device minor 32 found    7  ar 6 17 39 53 xxxx kernel  usbcore  registered new driver pcan  ar 6 17 39 53 xxxx kernel  pcan  PEAK PC CAN CARD 001 A1  ar 6 17 39 53 xxxx kernel  pcan  pccard device minor 40 found  7    ar 6 17 39 53 xxxx kernel  pcan  registered netdevice canl for pcan pccard hw   minor 40     ar 6 17 39 53 xxxx kernel  pcan  pccard device minor 41 found    ar 6 17 39 53 xxxx kernel  pcan  registered netdevice can2 for pcan pccard hw   minor 41     ar 6 17 39 53 xxxx kernel  pcan  pccard firmware 1 5    ar 6 17 39 53 xxxx kernel  pcan  registered netdevice can3 for pcan pci hw   minor 0           ar 6 17 39 53 xxxx kernel  pcan  registered netdevice can4 for pcan pci hw   minor 1                    ar 6 17 39 53 xxxx kernel  pcan  major 253     After insmod you have to bring your network devices up  for  example     ifconfig can0 up    Depending on the configuration of your system  hotplugging  etc    you might get a log entry like     Mar 6 1
38. o install the PCAN netdev driver        Note  Currently most of the Socket CAN utilities can only be  used as root user  Due to the standard NET CAPABILITIES the  access to the RAW sockets and to the BCM sockets are only  granted to the user root  analogue to the promiscuous mode on  ethernet devices   But you may define  CONFIG_CAN_RAW_USER and or CONFIG_CAN_BCM_USER in  the Kconfig  when integrated into the Kernel  to override this     You may also try to put     define CONFIG CAN RAW USER    define CONFIG CAN BCM USER  into your local  usr src linux include linux autoconf h before  compiling the Socket CAN source code or change the files raw c  and bcm c after downloading Socket CAN  This is a disadvantage of  the  external  module compilation     For additional support on Socket CAN you may also check the  mailing lists at  developer berlios de projects socketcan  or  developer berlios de mail  group  id26475    45    PCAN driver for Linux   User Manual      System    17 Real time Support with Xenomai    Since Release  release 20061029    real time support for the  Xenomai real time environment  www xenomai org  was merged  from a previous rt branch into the main branch  Most of the work  was done by Laurent Bessard and Edouard Tisserant     The Xenomai project has been launched in August 2001  It has  merged in 2003 with the RTAI project  ww w gna org projects rtai  to  produce an industrial grade real time Free Software platform for  GNU Linux called RTAl fusion  on top
39. ommand  It is  highly recommended to avoid doing that  In most cases  it will  result in a kernel crash     48    PCAN driver for Linux   User Manual       System    18 FAQ    Q The compilation and installation worked well    can write  messages to the CAN Bus but I cannot read any message     A Probably you have a kernel version greater or equal than 2 6 25  and you compiled for NET DEV SUPPORT since this is the default  compilation target for kernels greater and equal than 2 6 25     Q The driver for my PCAN ISA card is not being installed  What s  wrong     A One possibility is that the SJA 1000 chip on the card is setting  back while checking the PeliCAN mode  If the card with a PLD that  has got a red point and the jumper JP11 is set    on    this may be the  reason  Remedy  To set the jumper to    off        Q My PCAN ISA  CAN PC 104 or PCAN Dongle doesn t receive any  data though   can send  What s wrong     AA possible reason is that a wrong interrupt is configured for the  device  Then single telegrams can be send however none can be  received  Not only the wrong assertion of the interrupt number but  often the missing release of the interrupt in BIOS    legacy ISA     for  the PCAN ISA card can be the reason       Q My PCAN Dongle is being rejected while using it even if the  installation was successful  What s wrong     A Normally the reason is a not assigned interrupt for the     parport pc  while using it together with the  PARPORT SUBSYSTEM     Q What possibilit
40. parameter   e   enables the accept ion of extended frames     Naturally a faster  ioctl    interface is also defined     66    
41. pei   dng   usb   pec                                                  c    c    8 interfaces   major 253 found                              read     write    irqs    errors  status  00000000 00000000 00000000 00000000 0x0000  00000000 00000000 00000000 00000000 0x0000  00000000 00000000 00000000 00000000 0x0000  00000000 00000000 00000000 00000000 0x0000  00000000 00000000 00000000 00000000 0x0000  00000000 00000000 00000000 00000000 0x0000  00000000 00000000 00000000 00000000 0x0000    17    PCAN driver for Linux   User Manual       System    41 pccard  NA  00000420 005 0x001c 00000000 00000000 00000000 00000000 0x0000    As default the driver is configured for the dynamic allocation of the     major    number          Note  The contents of the ndev column  It differentiates  between chardev and netdev drivers  netdev drivers show the  network interface  chardev drivers do not have a network  interface   NA       With a properly configured and running UDEV system all devices  files are generated on the fly  If your target system does not have a  running UDEV system you must create the device files manually  each time after driver installation  Please invoke the shell script for  this       pcan_make devices 2    This script invocation installs two device files for each type of CAN  adapter  Please verify the result with the command     ls  l  dev pcan      Note  When using the real time flavor of the driver no device    file is created  For a netdev device the device file i
42. proc pcan      50    PCAN driver for Linux   User Manual       System    A The second line gives information about the release of the driver   In the third line the number of the found CAN channels and the  assigned major number are shown  From line four on the  characteristics of the each CAN channel are described     The first column shows the minor number assignment of the  channel  the second column shows the type of the channel  the third  column shows the network device assigment i available  The fourth  column shows the current BTROBTR1  bit rate  setting  the next 2  columns show the assignment to base addresses  ports  and  interrupt numbers  The following four columns count the number of  processed read   write   interrupt  and errors transactions  The last  column shows the last occurred error status of the channel  The  status is a bit field with an interpretation like this table     Md       Description  Chip send buffer full  Chip receive buffer overrun  BUS warning   BUS passive   BUS off   Receive buffer is empty  Receive buffer overrun  Send buffer is full   Illegal parameter          oO                 D    Both columns    base    and              are misused with USB channel  types    base    is showing the serial number of the module and               the programmed device number of the module  The column    irq    in  case of type USB counts the number of received or sent USB   packages        What happens if   plug out the interface while using PCAN USB 
43. ret   HANDLE h   LINUX CAN Open   dev pcan0      RDWR      do         at this point the thread blocks until a message is available         an error occurs or the timout elapses     ret   LINUX CAN Read Timeout  h   amp msg  1000000      one second        while  ret    CAN ERR QRCVEMPTY      if   ret         nutze  msg         else    A 4 Waiting for an IO event with Select      Waiting for an  O event with select   is very resource efficient but  complicated to use     With select   you can wait for multiple read   write  and exceptions  events simultaneously  Additionaly you can give a timeout as a  maximum waiting time     You can get more information with    man select        The following example monitors 2 path   s for an input event      include  lt fcntl h gt    include  lt unistd h gt      include  lt libpcan h gt     TPCANRdMsg msg       PCAN driver for Linux   User Manual PEAK    System    int ret   int maxfd   fd_set watchset  testset     create 2 sets to carry file descriptors     HANDLE h   LINUX CAN Open   dev pcan0      RDWR       request the associated file descriptor     int fdpcan   LINUX CAN FileHandle  h         FD ZERO   amp watchset       clear the set of file descriptors     FD SET fdpcan   amp watchset      add the pcan descriptor     FD SET fdother   amp watchset      add another input descriptor             determine the highest used file descriptor     maxfd    fdpcan    fdother    fdpcan   fdother        test if the file descriptors still in the se
44. river pcan h  usr include pcan h  chmod 644  usr include pcan h   cp peak linux driver lib libpcan h  usr include libpcan h  chmod 644  usr include libpcan h    34    PCAN driver for Linux   User Manual    System    10 Most Important netdev Header  Files    For kernel versions lower than 2 6 25 the header file can h and  other includes important for application programs should be taken  from the Socket CAN source  Appropriate Makefiles can be found   e g  at socketcan trunk can utils     35      PCAN driver for Linux   User Manual       System    11 Compilation of the Driver Only    11 1 Use Cases    D In some cases of using the installed driver it doesn t fit to the  configured operating system  This could be following cases     1  Your kernel sources are not to be found in the standard  directory  usr src linux  You still can compile with  following invocations     cd   peak linux driver x y driver  make clean  make KERNEL LOCATION   path to my kernel      2  You don t need or don t want support for some interface  types  Then you have to compile the driver with disabled  support for some interfaces  The makefile provides to  enable or disable partial compilation with this switches     USB USB SUPPORT or USB NO   PCI PCI SUPPORT or PCI NO   DNG DONGLE SUPPORT or DNG NO   ISA ISA SUPPORT or ISA NO   PCC PCCARD SUPPORT or PCC NO   NET NETDEV SUPPORT or NET NO  As default all interfaces are enabled  For example if you  want to suppress PCAN Dongle and PCAN ISA Interfaces  you 
45. robe can  modprobe can raw  modprobe can bcm    modprobe vcan    to load the necessary modules  You might look into your kernel log   e g   var log messages  to see the module banners printed at load  time     After loading you ll get this Ismod output    lsmod   grep can    can bcm 16392 0  can raw 9856 0  can 36072 2 can bcm  can raw  vcan 4360 0    Now you only have to bring up your new network nodes  For  example please invoke     ifconfig vcan0 up    This starts the network device vcanO  To see if the network device is  installed please call     ifconfig            0 Protokoll UNSPEC Hardware Adresse 00 00 00 00 00 00 00 00 00 00 00 00      RX packets 0 errors 0 dropped 0 overruns 0 frame 0 TX packets 0 errors 0  dropped 0    carrier 0 collisions 0 Sendewarteschlangenlange 1000 RX bytes 0   0 0 b  TX bytes 0  0 0 b     eth0  lo    With this basic installation you can test your Socket CAN setup  To  test it you must have the Socket CAN can utilities compiled  In a  first console invoke     44      PCAN driver for Linux   User Manual             System      cangen vcan0  If you invoke in a second console  candump vcanO    then you ll get  the generated  and loop backed  CAN messages from your first  invocation       candump vcan0   vcan0 567  6  69 98 3C 64 73 48  vcan0 451  8       94 E8 2A EC 58 55 62  vean0 729  8  BA 58 1B 3D AB D7 7E 50  vean0 1F2  8  E3   9 E2 79 46 El 45 75    This output shows that your basic Socket CAN installation was  successful  Next you have t
46. s created but  currently it is only necessary to set the bit rate for the interface     18    PCAN driver for Linux   User Manual    System    Now you already can do your first test with your CAN hardware   Just connect a CAN transmitter to your CAN interface and send  telegrams with bit rate setting of 500 kbit sec  Login on an user   console and invoke     cat  dev pcanO for the first PCAN PCI interface   cat  dev pcan8 for the first PCAN ISA or PCAN PC 104 interface  cat  dev pcan16 for the first PCAN Dongle interface in SP mode  cat  dev pcan24 for the first PCAN Dongle interface in EPP mode  cat  dev pcan32 for the first PCAN USB interface     cat  dev pcan40 for the first PCAN PC Card interface    The received telegrams should be shown    This invocation can be  made at more than one console for more than one interface at the  same time     Output of data is already possible  With the call of     echo       s 0x234 2 0  11 0x22   gt   dev pcan0    for example a CAN telegram with standard frame is transmitted  with the identifier 0x234 and two data bytes  0x11  and  0x22   from the first PCAN PCI interface  The bit rate of the interface can as  well be set from the so called  write interface      6 2 Driver Loading Specifics for netdev    With the following command you can see any error report after     insmoding     as  root  user      tail  var log messages    Normally the output looks similar to this  depending on your  hardware interfaces and your configuration setti
47. s no real  dev pcanX device node created  This is the  RTDM skin that provide the appropriates syscalls to user space libs   libnative  librtdm       The pcan make devices script is not needed  and do not work with Xeno     pcanlib is also compiled differently with xenomai  It is linked with  xenomai user space libs  and does not use real  dev pcanX  but calls  RTDM system calls     In other world you have to fully recompile peak Linux driver   pcanlib and examples with RT XENOMAI  reinstall and reload  module to be able to use PCAN with Xenomai  Do not expect to  have some real  dev pcanX nodes working if PCAN have been  compiled with RT XENOMAI  they only  virtually  exist for pcanlib  with RTDM     You also have to notice that in real time  tests are not as verbose as  in non real time  This is due to the fact that printing to screen is not    54      PCAN driver for Linux   User Manual       System    recommended from a real time thread  Tests do just display  statistics at the end of the test  after Ctrl C              For a minimal    hello word    example see in    test minimal_xenomai       directory     For a more concrete example of use of PEAK Linux driver with  Xenomai  please consult source code of the CanFestival project   OpenSource CanOpen stack  www canfestival org      Q I have problems to compile or load the driver  What can   do     A First  read this manual to see if you got a well known problem   Second  if it is a compiling problem then redirect your co
48. t     while   FD ISSET fdpcan   amp watchset       FD ISSET fdother   amp watchset        watchset will be used later on again       testset   watchset        wait until a input is ready     err   select maxfd   1   amp testset  NULL  NULL  NULL         if  err    0        an error is occured       return sis     if  FD ISSET fdpcan   amp testset           read a message     ret   LINUX CAN Read h   amp msg      if   ret          60      PCAN driver for Linux   User Manual PEAK    System       use  msg           else    if  FD ISSET fdother   amp testset           do what has to be done to delete the I0 event          e g  delete a file descriptor from the set       close  fdother     FD CLR fdother   amp watchset        l    PCAN driver for Linux   User Manual    System    Appendix B Historical Parts    B 1 devfs    Up from Release 20030622 x the device file system is being  supported optionally  From kernel version 2 6 x the kernel  developers depreciate the use of devfs so for the time being the  driver is not supporting this  Up from release release_20060501_a   version 4 0  the parts for supporting devfs are removed from the  driver     Using the devfs it s not necessary to create device files manually  any more  This is taken over by the kernel in cooperation with the  driver and the daemon devfsd  The device file system has to be  enabled within the kernel     Compiling for devfs file system support  If you translate the sources  for a system with devfs support  CONFIG
49. tar gz into an optional  folder into your home directory  Example     tar  xzf peak linux driver x y tar gz    Within this directory you get following tree of files     peak linux driver x y              Documentation Any documentary     COPYING GNU Public License     Installation en pdf this installation instructions     template c     template h     template make      todo txt     Makefile A    global    makefile     driver the driver and its sources     Makefile the makefile for the driver     pcan h Application interface definitions of the driver     pcan make devices a script for generating device nodes     udev udev supporting stuff      45 pcan rules udev rules to modprobe driver  for hotplug devices  me 626 the driver sources     test txt      wstress     libthe access library for  chardev      Makefile the makefile of the library  chardev      libpcan h the library call prototypes  chardev                the sources of the library  chardev    ee libpcan e      test the test programs     Makefile the makefile to the test programs     sre The sources to the test programs      bitratetest c to test bitrate calculations  chardev       common c       12       L     System      PCAN driver for Linux   User Manual                  common h      filtertest cppto test filter settings  chardev       parser cpp      parser h      receivetest c to receive test  chardev       transmitest cpp to transmit test  chardev       pcan settings c a tool to set the PCAN USB device  number
50. terfaces   Have a look at the description about the  manual loading of the driver     o Note  As soon as there already is an entry with the word  pcan   the current entry is not to be changed  If you wish to have a  new entry you have to delete the old one first  To do that you  have to use an editor as  root  user     26    PCAN driver for Linux   User Manual    System    7 1 Interface Hardware Type    To register non hot pluggable devices permanently you have to use  these settings     type typel  type2        where type    is    isa     or    sp     or    epp    depending on your interface  hardware  Example     type isa sp    7 2 I o Port and Interrupt Settings    If you like to use non standard settings for lO ports or interrupt  number assignments you have to add     io iol io2       irq irgl irq2        where io    is the hexadecimal number of the corresponding IlO port  and irq  is the decimal number of the assigned interrupt line     Examples     io 0x300  0x378 irq 10 7  The standard assignments for ISA and PC 104 interfaces are  io irq    0x300 10  0x320 5     The standard assignments for Dongle in SP EPP mode are  io irq    0x378 7  0x278 5     7 3 Initial Bit Rate    To prevent a wrong initial bit rate when loading the driver we added  a driver load parameter which sets the initial bit rate of the related  interfaces  For example to set the initial bit rate to 1 Mbit sec the  syntax is     27      PCAN driver for Linux   User Manual       System    bitrate 0x0014
51. th a  LINUX_    as prefix   Example   HANDLE LINUX CAN  Open char  szDeviceName  int nFlags       Application    Shared library    Figure 1  Calling hierarchy           The interface of the library is described within the C C   header file  libpcan h  Please note that 1ibpcan h includes the pcan h file   The source code is under LGPL so it is for utilizing within  proprietary software without any exceptions     PCAN driver for Linux   User Manual       System    13 Manual Installation of the  chardev Shared Library    Please change to the directory     peak linux driver x y lib   Login as     root    user and invoke     cp libpcan so 0 1  usr lib libpcan so 0 1   ln  sf  usr lib libpcan so 0 1  usr lib libpcan so 0   ln  sf  usr lib libpcan so 0  usr lib libpcan so  This process is only necessary if you install this program for the first  time or if you want to update the library  To use the test programs  the library has to be installed        Note  The version minor number of the library can change as     result of minor or major improvements     40    PCAN driver for Linux   User Manual    System    14 Message Filters  chardev only     Up from driver version 6 0 message filters are supported for the  chardev device  With the netdev device message filters are part of  Socket CAN     To maintain backward compatibility  after first open of a path to a  device no message filter is set  With the first time a message filter is  set or reset the message filter chain will be activ
52. the Socket   CAN documentation for more information     With the special  assign peak  module load parameter you can  assign the network device names of the CAN channels  corresponding to the assigned minor numbers  e g  network device  name    can40    corresponds devices minor number 40     If you omit this parameter the network device names are  automatically assigned in channel initialization order     21      PCAN driver for Linux   User Manual             System    A third option allows assigning individual network device names   To accomplish it please add a string similar to this     assign pcan32 canl pcan41 can2       Note  With kernels 2 4 x you should use a plus     instead     comma     to separate the entries     To check the correct installation of the driver please invoke     cat  proc pcan    You ll get a similar printout if there are no errors     Ncesssssssece PEAK Systems CAN interfaces  www peak system com                 LLL LL Release 20070221 n                               Wecccesscseeeeeeem  mod   isa   pci   dng   usb   pcc   net                     FSSSESESESESSESEEERERE 6 interfaces   major 253 found                           n  type             base   irq   btr    read     write    irqs    errors  status    0 pci can2   7d00000 209 0x001c 00000000 00000000 00000000 00000000 0x0000  1 pci can3   7d00400 209 0x001c 00000000 00000000 00000000 00000000 0x0000  32 usb can0 00000000 033 0x001c 00000000 00000000 000000a6 00000000 0x0000  33 usb canl 000
53. this  depending on your  hardware interfaces and your configuration settings      ar    ar    ar    ar    ar    ar    ar    ar    ar    ar          ar    6  6     pcc            OO O oO oO o o    woe  OS oA cu hoe       T    335   335   1354   35   1391  235   335   335   35     7 35 26  7135126    26  26  26  28  28  28  28  28  28    XXXX    XXXX    XXXX    XXXX    XXXX    XXXX    XXXX    XXXX    XXXX    XXXX    XXXX    erne    erne    erne    erne    erne    erne    erne    erne    erne    erne          erne      pean       pcan       pcan       pcan       pean       pcan       pcan       pean       pcan       pcan       pean     Release 20070221 n  driver config  mod   isa   pci   dng   usb     pci device minor 0 found   pci device minor 1 found   usb hardware revision   28  usb device minor 32 found  PEAK PC CAN CARD 001 Al  pccard device minor 40 found  pccard device minor 41 found  pccard firmware 1 5    major 253     To check the correct installations of the driver please invoke     cat  proc pcan    You ll get a similar printout if there are no errors      n  type   0 pci  8 isa  9 isa   16 sp   32 usb   33 usb   40 pccard            base   irq     mod     ec00b000 010  00000300 010  00000320 010  00000378 007  ffffffff 255  20003412 033  00000400 005    PEAK Systems CAN interfaces  www peak system com                   Release 20070221  Mm                                                                  isa       btr  0x00  0x00  0x00  0x00  0x00  0x00  0x00        
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
  MODE D`EMPLOI LA SÉRIE MENU™  12.1型 2周波カラー魚群探知機  使いやすい      HP Wireless Elite Keyboard User Manual    WIRED REMOTE CONTROLLER  Manual de Usuario ADmira.mobi    Copyright © All rights reserved. 
   Failed to retrieve file