Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Can4linux – Wikipedia
Can4linux – Wikipedia
aus Wikipedia, der freien Enzyklopädie

can4linux ist ein Open-Source-CAN-Gerätetreiber für den Linux-Kernel. Die Entwicklung begann Mitte der 1990er Jahre für den CAN-Controller-Baustein Philips 82C200 auf einem ISA Board AT-CAN-MINI. Die erste Version entstand um 1995 im Rahmen des Linux Lab project an der FU Berlin, um unter Linux den CAN-Bus in der Laborautomatisierung zu nutzen.

Durch die zunehmende Verbreitung von CAN in der Automatisierungstechnik insbesondere auch im embedded Bereich, in dem seit der Jahrtausendwende auch verstärkt Linux eingesetzt wird, kommt Gerätetreibern als Basis für höhere CAN basierende Protokolle wie CANopen, J1939 und DeviceNet. eine gestiegene Bedeutung zu.

Neben dem NXP SJA1000 als Nachfolger des CAN Controllers Philips 82C200 und dem Intel 82527 wurden ab 2005 verstärkt Anpassungen für sogenannte integrierte CAN Controller in leistungsstarken Mikrocontrollern, für die Linux-Portierungen existieren, erstellt. Als Beispiele sollen hier die Freescale-ColdFire-Prozessoren oder ARM-Derivate von ATMEL[1] und Freescale[2] aber auch der Stand-Alone CAN Controller MCP2515,[3] angeschlossen über den SPI Bus, dienen.

Eine Liste befindet sich auf der can4linux Projektseite.[4]

Die neueste Version unterstützt eine virtuelle CAN Betriebsart, in welcher sich Anwendungen ohne spezielle CAN Hardware nur über den Treiber CAN Nachrichten austauschen können. In dieser Betriebsart ist auch schon das Frame-Format für CAN FD[5] implementiert, welches Datenlängen bis zu 64 Byte erlaubt.

Benutzung

[Bearbeiten | Quelltext bearbeiten]

Die Anwendungssoftware öffnet einen CAN Device Descriptor und erhält einen File Descriptor. Über diesen werden die CAN Frames über die Standard Betriebssystem Funktionen read() und write() mit anderen Teilnehmern am CAN-Bus ausgetauscht.

Der folgende Code ist ein Beispiel, welches einen Frame sendet und anschließend auf einen Frame von einem anderen Bus-Teilnehmer wartet. Weitere Beispiele befinden sich auf der Projektseite.[6]

/* simple CAN application example
 *
 * used for the Wikipedia article on can4linux
 */
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>

#include <can4linux.h>

int main(int argc,char **argv)
{
    int fd;
    canmsg_t frame;

    fd = open("/dev/can0", O_RDWR);

    frame.id      = 100;
    frame.length  = 2;
    frame.data[0] = 5;
    frame.data[1] = 0;
    write(fd, &frame, 1); /* ! count enthält Anzahl Frames, nicht Byte */

    read(fd, &frame, 1); /* ! count enthält Anzahl Frames, nicht Byte */
    printf("received CAN Frame Id %ld, DLC=%d\n", frame.id, frame.length);
    return 0;
}

can4linux kann so übersetzt werden, dass verschiedene Prozesse auf den gleichen CAN Controller lesend und schreibend zugreifen können. Auf diese Weise kann z. B. neben der eigentlichen Anwendung ein unabhängiger Diagnoseprozess den Bus beobachten.

Siehe auch

[Bearbeiten | Quelltext bearbeiten]
  • SocketCAN

Weblinks

[Bearbeiten | Quelltext bearbeiten]
  • can4linux Projektseite

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. ↑ ATMEL SAM9263
  2. ↑ Freescale i.MX35 Familie
  3. ↑ Stand Alone CAN MCP2515
  4. ↑ can4linux Projektseite
  5. ↑ CAN FD Spezifikation (PDF; 624 kB)
  6. ↑ Online can4linux-examples
Abgerufen von „https://de.teknopedia.teknokrat.ac.id/w/index.php?title=Can4linux&oldid=231938296“
Kategorien:
  • Linux-Software
  • Treiber (Software)
  • Betriebssystemkomponente

  • indonesia
  • Polski
  • العربية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصرى
  • Nederlands
  • 日本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українська
  • Tiếng Việt
  • Winaray
  • 中文
  • Русский
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id