USB-Programmierung
Möchte ich das Programm mit einem microcontroller (AVR) zur Kontrolle einige leds über USB. Es ist nur aus Interesse, wie die Erstellung und Programmierung von USB-Geräten.
Es gibt einige AVR-mikrocontroller, die Unterstützung des USB-Protokolls oder ich könnte die Umsetzung des USB-Protokolls in einer anderen mikrocontroller selbst, aber ich Frage mich, was zu verwenden, um schreiben Sie Ihre eigenen Treiber auf dem computer.
Mein level in-system-Programmierung: total noob (deshalb die Frage)
Also, was ist die Literatur, Sie würden die Menschen Rat zu Holen gute Kenntnisse in der USB-Technologie und wie schreiben Sie Ihre eigenen Fahrer und darüber hinaus?
P. S.: ich weiß:
- C (wahrscheinlich werden es brauchen hier)
- Java (wahrscheinlich brauchen Sie nicht es hier)
- Python, (Hoffnung können Sie es hier)
- assembler (hoffentlich brauche ihn nicht hier XD).
- ...
P. P. S: Treiber-Entwicklung unterscheidet sich für verschiedene Betriebssysteme. Ich benutze Linux und Windows, so dass jedes material in Bezug auf eines oder beide dieser Systeme ist willkommen.
InformationsquelleAutor der Frage EDWH | 2010-11-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, obwohl Sie sich entwickeln können und schreiben Sie Ihren eigenen USB-Treiber, die Schönheit von USB ist, dass Sie nicht brauchen, um schreiben Sie Ihre eigenen Treiber. die USB Implementers Forum definiert hat Klasse Spezifikationen für alle standard-device-Klassen. Wenn Sie Ihr Gerät passen in ein standard-Gerät der Klasse hat der Fahrer bereits für Sie geschrieben!
Wenn Sie wirklich wollen, um sich mit USB-Entwicklung, Sie beginnen sollte durch eine überprüfung der USB-approved class specification documents.
InformationsquelleAutor der Antwort J Edward Ellis
Wenn Sie in Rahmen für AVR-mikrocontroller mit hardware-USB, dann werfen Sie einen Blick in LUFA, und wenn Sie in AVRs mit software USB dann schauen Sie in V-USB. Sie haben beide implementiert, viele USB-Klassen an, so dass Sie nicht haben, um es auf eigene Faust tun - nur Sie verwenden.
InformationsquelleAutor der Antwort avra
Das klingt nach einem großartigen Projekt! Ich würde vorschlagen, beginnen mit etwas ein wenig einfacher, da Sie - wie Sie sagen - ein "totaler n00b". Ich bin mir nicht sicher, welche hardware du derzeit hast (oder im Kopf haben), aber was ich vorschlagen würde für den totalen Anfänger ist das STK500. Es ist ein Entwicklungs-board, das sehr gut unterstützt Linux und Windows, und geben Ihnen die Flexibilität. Es kommt mit LEDs und Schaltern gebaut, für Ihre Projekte, aber Sie brauchen, um einen mikrocontroller. Und für die, die ich empfehlen ATMega32, ein großer Mehrzweck-IC, die auch gut unterstützt und hat sehr viel Dokumentation auf der web.
Sobald Sie sich mit diesen ich schlage vor, Sie tun Ihre Entwicklung unter Linux mit avr-gcc (stellen Sie sicher, dass auch die Installation der avr-libc). Wenn Sie mit Ubuntu-es ist einfach, alle Pakete, die Sie benötigen:
Diese sollten Sie aufstehen und laufen. Ich würde empfehlen zu Googeln um Hilfe schreiben Ihre ersten Programme, die aber eine andere gute Quelle ist die online-Materialien für diese Klasse an der Cornell.
Genug, um Ihre Füße nass mit AVR-Mikrocontrollern und Entwicklungstools. Der Himmel ist die Grenze, an diesem Punkt, aber da Sie sagte, Sie wollen in den USB-empfehle ich die ausgezeichnete V-USB Rahmen, um Ihre ATMega32 als USB-Gerät. Nach, dass, wie Sie sagen, die Schritte, die zu spiegeln sind die LEDs ein Stück Kuchen :).
InformationsquelleAutor der Antwort Devrin
Für libusb-Varianten info Lesen diese
InformationsquelleAutor der Antwort avra
Könnten Sie uns libusb. Es ist mächtig und cross-Plattform.
Aber das, was Sie zu tun versuchen ist eine ziemlich einfache Bedienoberfläche. Sie können umgehen, die meisten die Komplexität durch die Verwendung HIDAPI, denke ich.
http://www.signal11.us/oss/hidapi/
HID-Geräte verwenden oft generischen Treiber, die verpackt kommen in die OS. So dass Sie nicht wirklich haben, um zu schreiben, alle Treiber immer, Sie machen einfach Ihr Gerät kompatibel mit dem generischen Treiber, und passen Sie die client-software.
Ich denke, das ist es, was in der Regel in der Hobby-Elektronik Bereich, das ist, was du bist interessiert hier.
HIDAPI wird sogar empfohlen, für die einfache Kommunikation mit HID-Geräte in libusb FAQ da es ein bisschen komplizierter, es zu tun auf allen Plattformen mit libusb.
InformationsquelleAutor der Antwort CptAJ
Einen guten Weg zu gehen, ist einfach zu entwickeln, die ein HID-Gerät, da der Treiber ist gebaut, um die meisten höheren Betriebssystemen und ziemlich flexibel, für einfache IO -, wie Sie sprechen. Eine andere gute option ist nur mit einem USB-RS232-Gerät oder software. Ich verwende Bilder, die eine Reihe von schönen Geräten mit USB onboard.
InformationsquelleAutor der Antwort kenny
Ich gebaut hatte meinen eigenen Prüfstand basiert auf der ARDUINO UNO und ich war mit dem ionlabs Programmierer vom Typ usbasp und es funktionierte perfekt in Ordnung, aber es nicht erlauben, zu konvertieren, wird die TTL wieder auf Rs-232 und daher konnte ich nicht die Funktionen, wie serielle.print() und ich hatte mit der Installation der ftdi-Kabel, die mir erlaubt, dies zu tun.
Die Treiber waren die libusb 1.xx funktioniert ganz gut.
Wenn Sie möchten, um den AVR zu Programmieren können Sie die ARDUINO-software-bundle oder das stino zum hochladen der Programme.
Sie müssen wissen, c(nur die Grundlagen).
InformationsquelleAutor der Antwort NULL-POINTER
Erstellte ich eine USB-Tastatur-adapter haben im letzten Jahr für meine Hausarbeit. Ich habe nicht die host-Programmierung, sondern verwendet vorhandenen code, den Sie im web finden.Aber ich habe Programm die Geräte-Seite und ich bekam viel Hilfe von dieser website Teensy Schauen Sie in Ihrem "Code Library", die code für Tastatur, Maus und andere. Auch das USB-Protokoll Handbuch wird immer nützlich sein, und Sie sollten immer Fragen Sie es, wenn Sie Dinge tun, mit USB.
InformationsquelleAutor der Antwort Ravin
Frage ich mich, ob Ihre AVB fungiert als host oder device. Ich denke, dein board ist ein usb-Gerät, und Sie müssen, um das Licht der leds auf dem board. Also, es kann ein guter Weg, um zu initialisieren dein board als HID-Gerät. Um dieses Ziel zu erreichen, müssen Sie eine HID-gadget-software-stack laufen auf dem board. Referenzen wie folgt:
InformationsquelleAutor der Antwort Kai Qiu
Microsoft-Dokumentation Bereich des WDK (Windows Development Kit) ist kürzlich auf MSDN verfügbar. Es gibt einen Abschnitt auf USB, obwohl Sie am besten sein würde zu Lesen, die früheren Abschnitte der ersten, insbesondere das "Getting Started" - Gebieten. Sie nehme an, Sie werden mit C als Programmiersprache für die Treiber-Entwicklung.
Für Linux, die Linux USB website sollte in der Lage sein, um Sie in die richtige Richtung. Insbesondere werden Sie wollen, dass die Programming Guide for Linux USB Device Drivers.
InformationsquelleAutor der Antwort Orbling