Grin logo
de en es fr
Shop
GRIN Website
Texte veröffentlichen, Rundum-Service genießen
Zur Shop-Startseite › Informatik - Programmierung

USB Programmierung in Java und C++ mit dem EZ USB AN2131 Baustein und Treiberprogrammierung

Titel: USB Programmierung in Java und C++ mit dem EZ USB AN2131 Baustein und Treiberprogrammierung

Studienarbeit , 2004 , 25 Seiten , Note: 1.0

Autor:in: Niko Cyris (Autor:in)

Informatik - Programmierung
Leseprobe & Details   Blick ins Buch
Zusammenfassung Leseprobe Details

Bei dem Einsatz von Computer Peripherie aller Art für den PC ist der “universal serial bus” (USB) als Schnittstelle längst nicht mehr wegzudenken. Er erleichtert dem Anwender die Installation neuer Geräte wie z. B. Scanner, Videokameras, Druckern … und ist gegenüber den bisher bekannten seriellen Bus-Systemen ein Kandidat mit einer sehr hohen Datenübertragungsgeschwindigkeit.

All diese Neuerungen haben aber auch eine Schattenseite. Sehr einfache Interfaces und Anschlussmöglichkeiten von kleinen Geräten sind nicht mehr möglich. Eine Verbindung mit einem USB Gerät herzustellen ist komplex und kann nur mit Hilfe von speziellen Interfacebausteinen und speziellen Treibern bewältigt werden. Daher möchte ich in dieser Arbeit eine Interfaceplatine vorstellen, mit deren Hilfe es möglich ist, eine einfache Kommunikation mit dem PC über USB herzustellen, um z. B. Messwerte zu übertragen. Ein Schwerpunkt meiner Arbeit ist die Abänderung eines Treibers für eigene USB Geräte, die Ansteuerung unter Windows mit C++ sowie ein Softwareinterface auf Basis der DLL Technologie, um einen Zugriff mit JAVA-Programmen auf den USB zu ermöglichen.

Leseprobe


Inhaltsverzeichnis

1. Einleitung

2. Einführung in den USB

2.1. Grundlegendes über den USB

2.2. Die Datenübertragung

2.2.1. Transferarten

2.2.2. BUS Topologie

2.2.3. Kommunikationsmodell und Endpoints

2.2.4. Enumeration/Renumeration

3. Verschiedene USB-Host-Controller

3.1. Gegenüberstellung unterschiedlicher Controller

3.2. Der AN2131

3.3. Ein einfaches Programmbeispiel

4. Ein EZUSB-Interface mit EEPROM

4.1. Grundlegendes

4.2. Aufbau und Funktion

4.2.1. Die Ports

4.2.2. Das EEPROM

5. Die EZ-USB Programmierung

5.1. Programmiertools und Vorgehensweise

5.2. Eine Abfrage des IO-Ports in C++

5.3. Setzen des IO-Ports C ++

5.4. Beispiel eines Datentransfers vom AN2131 zum Windows-PC

5.5. Aufspielen eigener Firmware auf den AN2131 mit einer C++Funktion

5.5.1. Beschreibung und Vorteile

6. USB – Treiberprogrammierung

6.1. Grundlegendes

6.2. Die Vendor ID

6.3. Das Driver – Development – Kit

6.4. Die Treiberdateien *.INF und *.SYS

6.5. Treiber generieren

6.6. eventuell auftretende Probleme

7. EZUSB Programmierung in JAVA

7.1. Grundlegende Probleme mit dem USB in Java

7.2. Die Wrapper Klassen

7.3. Eine DLL für Java Anwendungen

7.4. Ein Programmbeispiel

Zielsetzung und Themenbereiche

Die vorliegende Arbeit befasst sich mit der Entwicklung und Implementierung einer Interfaceplatine zur Kommunikation über den Universal Serial Bus (USB). Ziel ist es, eine einfache Anbindung von Peripheriegeräten an einen PC zu ermöglichen, wobei der Schwerpunkt auf der Treiberanpassung, der C++-basierten Ansteuerung unter Windows und der Schaffung einer Software-Schnittstelle zur Einbindung in Java-Applikationen liegt.

  • Entwurf und Realisierung einer USB-Interfaceplatine auf Basis des AN2131SC-Controllers.
  • Entwicklung und Modifikation von Treibern für spezifische USB-Anwendungen unter Windows.
  • Programmierung von Firmware und C++-Schnittstellen zur Hardware-Kommunikation.
  • Realisierung einer DLL-basierten Softwarebrücke zur Steuerung von USB-Hardware durch Java-Programme.

Auszug aus dem Buch

5.5. Aufspielen eigener Firmware auf den AN2131 aus einer C++ Funktion

Wie im Kapitel 5.1 beschrieben ist es möglich, das fertig kompilierte Assembler Programm mittels HEX Datei auf den Chip zu laden. Hierzu habe ich das Prigramm “EZUSB-Control-Panel” verwendet. Allgemein verwendbar ist diese Vorgehensweise aber bei einem fertigen Produkt nicht. Der Kunde kann nicht eigenmächtig erst die Firmware auf das Gerät spielen, bevor es ordnungsgemäß funktioniert.

Daher kann eine HEX – Datei im BIN Format direkt aus einer C++ Funktion auf den 8051 im USB Chip geladen werden.

Die Methode ist die gleiche wie das Setzen der Speicheradresse 00Ah in Kapitel 5.3. Der Unterschied besteht im Request. Kompilierte Binärwerte des Assembler-Programms werden in einem Puffer gespeichert und danach auf den Chip übertragen.

Vorteile dieser Verfahrensweise :

- einfache Updatemöglichkeit des Produktes

- Programmeprom mit Programmierschnittstelle entfällt → geringere Kosten

Zusammenfassung der Kapitel

1. Einleitung: Die Einleitung erläutert die Bedeutung des USB als Hochgeschwindigkeits-Schnittstelle und definiert das Ziel, eine einfache, kostengünstige Interfaceplatine zur Messdatenübertragung zu entwickeln.

2. Einführung in den USB: Dieses Kapitel gibt einen Überblick über die Funktionsweise, die Datenübertragungsraten, die Bus-Topologie sowie das Kommunikationsmodell inklusive der Enumeration.

3. Verschiedene USB-Host-Controller: Hier werden unterschiedliche USB-Bausteine am Markt verglichen und der für die Arbeit gewählte AN2131-Controller detailliert mit seinem internen Aufbau vorgestellt.

4. Ein EZUSB-Interface mit EEPROM: Das Kapitel beschreibt den praktischen Aufbau der Interfacekarte, die aus dem AN2131-Chip, einem EEPROM zur Identifikation und den IO-Schnittstellen besteht.

5. Die EZ-USB Programmierung: Dieser Abschnitt behandelt die Entwicklungsumgebung, den Zugriff auf IO-Ports mittels C++ sowie das gezielte Übertragen von Firmware-Dateien auf den Controller.

6. USB – Treiberprogrammierung: Hier wird erläutert, wie ein Windows-Treiber konzipiert, mit dem Driver Development Kit (DDK) kompiliert und mittels INF- und SYS-Dateien im Betriebssystem installiert wird.

7. EZUSB Programmierung in JAVA: Dieses Kapitel zeigt den Weg auf, wie mittels JNI-Wrapper-Klassen und in C geschriebenen DLLs die systemnahe USB-Hardware für die plattformunabhängige Java-Programmierung zugänglich gemacht wird.

Schlüsselwörter

USB, AN2131SC, Mikrocontroller, Treiberentwicklung, C++, Java, JNI, Wrapper Klassen, DLL, Hardware-Schnittstelle, Firmware, Windows DDK, Datentransfer, Programmierung.

Häufig gestellte Fragen

Worum geht es in der Arbeit grundsätzlich?

Es geht um die Entwicklung einer universellen USB-Interface-Lösung zur einfachen Anbindung von Peripheriegeräten, wie etwa zur Übertragung von Messdaten.

Was sind die zentralen Themenfelder?

Die Arbeit umfasst das Hardwaredesign, die Programmierung von Firmware für den Cypress AN2131, die Windows-Treiberentwicklung und die Integration in Java-Software.

Was ist das primäre Ziel der Arbeit?

Das Ziel ist die Schaffung einer flexiblen Schnittstelle, die es ermöglicht, per C++ oder Java auf USB-Geräte zuzugreifen, ohne auf kommerzielle Entwicklungstools angewiesen zu sein.

Welche wissenschaftliche Methode wurde verwendet?

Es wurde eine praxisorientierte, ingenieurwissenschaftliche Methode gewählt, bestehend aus Analyse bestehender USB-Konzepte, Schaltungsentwurf, Implementierung von Firmware und Treibern sowie dem Testen in einer Java-Applikation.

Was wird im Hauptteil behandelt?

Der Hauptteil gliedert sich in die Hardwarespezifikationen des AN2131, die C++-Programmierung für Windows, die Treibererstellung unter Nutzung des DDK und die Anbindung mittels Java-Wrappern.

Welche Schlüsselwörter charakterisieren die Arbeit?

Die Arbeit wird durch Begriffe wie USB-Programmierung, AN2131, C++, JNI, Treiberentwicklung und DLL-Technologie charakterisiert.

Wie wird das Problem der plattformabhängigen Java-Programmierung gelöst?

Da Java selbst keinen direkten, plattformübergreifenden Zugriff auf den USB-Bus bietet, nutzt die Arbeit JNI-Wrapper-Klassen, die eine in C geschriebene DLL laden, um die Hardware-Kommunikation zu abstrahieren.

Welchen Vorteil bietet das Aufspielen der Firmware über C++?

Das direkte Laden der Firmware aus der C++-Software heraus ermöglicht einfache Produkt-Updates durch den Endanwender und senkt die Kosten, da kein separates EPROM mit Programmierschnittstelle benötigt wird.

Ende der Leseprobe aus 25 Seiten  - nach oben

Details

Titel
USB Programmierung in Java und C++ mit dem EZ USB AN2131 Baustein und Treiberprogrammierung
Hochschule
HAWK Hochschule für angewandte Wissenschaft und Kunst - Fachhochschule Hildesheim, Holzminden, Göttingen  (Fakultät für Naturwissenschaft und Technik HAWK)
Note
1.0
Autor
Niko Cyris (Autor:in)
Erscheinungsjahr
2004
Seiten
25
Katalognummer
V32918
ISBN (eBook)
9783638335119
ISBN (Buch)
9783638652032
Sprache
Deutsch
Schlagworte
Programmierung Java AN2131 Baustein Treiberprogrammierung
Produktsicherheit
GRIN Publishing GmbH
Arbeit zitieren
Niko Cyris (Autor:in), 2004, USB Programmierung in Java und C++ mit dem EZ USB AN2131 Baustein und Treiberprogrammierung, München, GRIN Verlag, https://www.grin.com/document/32918
Blick ins Buch
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
Leseprobe aus  25  Seiten
Grin logo
  • Grin.com
  • Versand
  • Kontakt
  • Datenschutz
  • AGB
  • Impressum