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.
Inhaltsverzeichnis
- Einleitung
- Einführung in den USB
- Grundlegendes über den USB
- Die Datenübertragung
- Transferarten
- BUS Topologie
- Kommunikationsmodell und Endpoints
- Enumeration/Renumeration
- Verschiedene USB-Host-Controller
- Gegenüberstellung unterschiedlicher Controller
- Der AN2131
- Ein einfaches Programmbeispiel
- Ein EZUSB-Interface mit EEPROM
- Grundlegendes
- Aufbau und Funktion
- Die Ports
- Das EEPROM
- Die EZ-USB Programmierung
- Programmiertools und Vorgehensweise
- Eine Abfrage des IO-Ports in C++
- Setzen des IO-Ports C++
- Beispiel eines Datentransfers vom AN2131 zum Windows-PC
- Aufspielen eigener Firmware auf den AN2131 mit einer C++ Funktion
- Beschreibung und Vorteile
- USB-Treiberprogrammierung
- Grundlegendes
- Die Vendor ID
- Das Driver - Development - Kit
- Die Treiberdateien *.INF und *.SYS
- Treiber generieren
- eventuell auftretende Probleme
- EZUSB Programmierung in JAVA
- Grundlegende Probleme mit dem USB in Java
- Die Wrapper Klassen
- Eine DLL für Java Anwendungen
- Ein Programmbeispiel
Zielsetzung und Themenschwerpunkte
Die Studienarbeit befasst sich mit der Entwicklung und Programmierung eines USB-Interfaces für den AN2131SC Host-Controller von Cypress. Ziel ist es, eine einfache Kommunikation mit einem PC über USB herzustellen und Messwerte zu übertragen. Dabei werden ein Treiber für eigene USB-Geräte unter Windows mit C++ sowie ein Softwareinterface auf Basis der DLL Technologie zur Ansteuerung mit JAVA-Programmen entwickelt.
- USB-Treiberprogrammierung für eigene Geräte
- Kommunikation mit dem AN2131SC Host-Controller
- Softwareinterface mit JAVA-Programmen
- Entwicklung eines EZUSB-Interfaces mit EEPROM
- Datentransfer zwischen dem AN2131 und einem Windows-PC
Zusammenfassung der Kapitel
Die Arbeit beginnt mit einer Einführung in den Universal Serial Bus (USB) und erläutert seine Funktionsweise sowie die Datenübertragung. Unterschiedliche USB-Host-Controller werden vorgestellt, wobei der Fokus auf dem AN2131 liegt. Es wird ein einfaches Programmbeispiel gezeigt, um die Funktionsweise des Controllers zu verdeutlichen. Anschließend wird ein EZUSB-Interface mit EEPROM vorgestellt, das die Basis für die Kommunikation mit dem PC bildet. Die EZ-USB Programmierung wird ausführlich beschrieben, mit Codebeispielen in C++ für die Abfrage und Steuerung des IO-Ports sowie für den Datentransfer. Die Programmierung eigener Firmware auf den AN2131 mit einer C++ Funktion wird dargestellt. Im Anschluss werden die Grundlagen der USB-Treiberprogrammierung erläutert, einschließlich der Vendor ID, des Driver Development Kit und der Treiberdateien *.INF und *.SYS. Die Generierung von Treibern und mögliche Probleme werden besprochen. Abschließend wird die EZUSB Programmierung in JAVA behandelt, wobei die Herausforderungen des USB-Zugriffs in Java, die Wrapper Klassen und die Verwendung einer DLL für Java-Anwendungen erläutert werden.
Schlüsselwörter
Die Arbeit konzentriert sich auf die Themen USB-Treiberprogrammierung, AN2131SC Host-Controller, EZUSB-Interface, EEPROM, C++ Programmierung, JAVA-Anbindung und Datentransfer über USB.
- 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