Logo

embedded24.net - USB HID Host Treiber für Windows



USB Schnittstellen für Steuerungsaufgaben zu verwenden ist allgemein üblich in der Elektronik. Es gibt unzählige Mikrocontroller mit USB von einer ganzen Menge Hersteller, welche die notwendige Firmware schon mitbringen. Aber auf PC Seite ist es immer noch mit einigem Aufwand verbunden, wenn man den USB nutzen will. Sparen Sie sich die Mühe und verwenden Sie die AHID Bibliothek.



Funktionen


- AHid_Init(): Initialisiert den Treiber.
- AHid_Register(): Registriert die Schnittstelle.
- AHid_Deregister(): Entfernt eine Schnittstelle.
- AHid_Write(): Schreibt Daten.
- AHid_Read(): Ließt Daten ein.
- AHid_Request(): Fordert einen Feature Report an.
- AHid_Attached(): Stellt Anschluß an den USB fest.
- AHid_Find(): Sucht die Schnittstelle am Bus.
- AHid_Identify(): Unterscheidet mehrere gleichartige HID Geräte.
- AHid_Info(): Zeigt Treiber-Infos an.



Konzept


Die Bibliothek wird durch einmaligen Aufruf der Funktion AHid_Init() initialisiert. Mit AHid_Register() erhält man Zugriff auf das gewünschte USB-Gerät. Die Funktion öffnet eine Schnittstelle für den Datentransfer.
AHid_Write() sendet Daten an das USB-Gerät. Hierbei wird ein Interrupt- oder Control-Transfer (Feature Report) verwendet (je nach Festlegung bei der Registrierung)


AHid Host Driver Application

Bild: Transfer zwischen USB-Gerät und Host-Anwendung


Der Datenempfang erfolgt durch AHid_Read(). Bei Interrupt-Transfers wird ein eigener Thread gestartet, der fortlaufend die Schnittstelle auf ankommende Daten hin prüft. Sobald Daten vorliegen, wird an die Anwendung eine RECEIVED-Nachricht verschickt. Innerhalb der Nachrichtenschleife kann man dann auf diese Daten mit AHid_Read() zugreifen. Der Empfang von Feature Reports unterscheidet sich etwas von diesem Ablauf. Feature Reports müssen nämlich aktiv angefordert werden, was die Funktion AHid_Request() erledigt. Nach erfolgreichem Erhalt des Feature Reports wird wiederum eine RECEIVED-Nachricht verschickt und AHid_Read() erledigt dann den Rest.
Durch dieses Konzept werden alle eingehenden Daten (unabhängig vom Transfertyp) an eine Stelle der Nachrichtenschleife transportiert. Das erleichtert das Erstellen einer Zustandsmaschine.

Die Funktion AHid_Attached() stellt fest, ob das USB-Gerät am Bus angeschlossen oder entfernt wurde und gibt einen entsprechenden Wert zurück. AHid_Find() macht in etwa das Gleiche. Die Funktion sucht das USB-Gerät und gibt über den Rückgabewert den entsprechenden Zustand aus.
AHid_Info() hat im normalen Betrieb keine Funktion. Es zeigt lediglich ein paar Informationen über die AHID Bibliothek an.



Features


- HID USB Host Treiber DLL fuer Windows
- Unterstützung fuer USB Verbundgeräte
- Mehrer gleichartige USB Geräte an unterschiedlichen Ports möglich
- Automatische Geräte-Erkennung
- Multithread-Ansatz für nicht blockierenden Datentransfer
- Basiert auf dem Windows Nachrichten-System
- Arbeitet mit Input, Output und Feature Reports
- Erlaubt unterschiedliche Report Id's
- Empfohlen für niedrige und hohe Datenraten


AHID Driver Info


Diese kleine Applikation fragt die Parameter Ihres USB-Gerätes ab und sagt Ihnen, wie Sie Ihr USB-Gerät bei der AHID.DLL registrieren müssen. Die VID und PID Ihres USB-Gerätes ist alles was Sie hierzu benötigen.



Version 08/2015


Die freie Version der AHID.DLL sowie viele Demo-Beispiele stehen zum Download auf www.ahidlib.com bereit.

- AHID.DLL
- AHID Demo C++ (WIN32 API, VS 2010 Express)
- AHID Demo C++/CLI (VS 2010 Express)
- AHID Demo C# (VS 2010 Express)
- AHID Demo VB (VS 2010 Express)
- AHID Demo LabVIEW (LabVIEW 2012)
- AHID Demo Scilab (Scilab 5.4.1)
- AHID Demo Matlab



Kontakt


Für Fragen oder bei Problemen schreiben Sie bitte an die folgende E-Mail Adresse:


info(at)ahidlib.com