Jump to main content Hotkeys
Distributed and Self-organizing Systems
Distributed and Self-organizing Systems

Studienarbeit

Entwicklung eines CAN-Treibers für Linux
Entwicklung eines CAN-Treibers für Linux

Completion

2006/04

Students

Maik Hentsche

Maik Hentsche

student

Advisers

R. Baumgartl

R. Baumgartl

anders

Description (German)

Die SYS TEC electronic GmbH ist seit vielen Jahren ein führender Anbieter von CANopen-Produkten im Hard- und Softwarebereich. Die Kernkomponente hierbei ist der im eigenen Haus implementierte CANopen-Protokollstack. Dieser Stack setzt auf einem hardwareunabhängigen Treiberinterface auf und arbeitet so mit einer Vielzahl verschiedener CAN-Controller zusammen, für die ein entsprechender Hardware-Treiber existiert.

      Voraussetzung für den Einsatz des CANopen-Protokollstacks unter Linux ist ein geeigneter Kernel-Treiber. Der zu entwickelnde Linux-Treiber soll auf die bereits verfügbaren Hardware-Treiber für die verschiedensten CAN-Controller aufsetzen und diese im Kernel-Space um das für Linux-Treiber typische IoCtrl-Interface erweitern. Komplementär dazu ist im User-Space ein Wrapper notwendig, der das vom CANopen-Protokollstack genutzte hardwareunabhängige Treiberinterface auf IoCtrl-Aufrufe abbildet.

      Der CAN-Treiber für Linux soll folgende Funktionalitäten unterstützen:

      1. Einbindung des CAN-Treibers als Character-Device unter /dev/can0, /dev/can1 usw.
      2. Zugriff auf den Treiber über File-Funktionen, wobei eine Treiberinstanz über ein entsprechendes Filehandle repräsentiert wird
      3. Treiberintern ist der für CANopen notwendige Instanzpointer aus dem File-Handle aufzulösen
      4. Implementierung von blockierenden und nicht-blockierend Read-/Write-Operationen auf Basis des beim Öffnen des Treibers übergebenen Filehandles

      Der CAN-Treiber soll vorrangig auf Embedded Systemen unter µCLinux zum Einsatz kommen.

      Voraussetzungen zur Bearbeitung des Themas sind:

      * Programmierkenntnisse in C sowie im Umgang mit der GNU-Toolchain
      * Kenntnisse in der Linux-Programmierung sowie Erfahrungen im Umgang mit Embedded Systemen
      * Kenntnisse in der Linux-Treiberprogrammierung sowie Erfahrungen mit CANopen sind wünschenswert


Powered by DGS
Edit list (authentication required)

Press Articles