uC / USB-Bulk

uC / USB-Bulk-Stack wurde entwickelt, um auf jedem Embedded-System mit einem USB-Client-Controller arbeiten. Eine Hardware Abstraction Layer macht es möglich, leicht zu schreiben oder vorhandene Hardware-Zugriff Routinen. Es kann mit USB 1.1 verwendet werden. oder USB 2.0 Geräten. Der Stack besteht aus einem Embedded-Seite, die im Source-Code-Form geliefert wird, und einen Treiber für den PC, die typischerweise als verbracht ausführbare Datei (. Sys), sondern ist auch als Quellcode verfügbar. Der Zweck des USB-Bulk-Stack ist für Entwickler, um schnell und schmerzlos ermöglichen entwickeln Software für ein Embedded-Gerät mit einem PC via USB kommunizieren. Die Kommunikation ist wie ein einziges, hohe Geschwindigkeit, zuverlässigen Kanal (sehr ähnlich zu einer TCP-Verbindung). Im Grunde kann der PC die Daten an das Embedded Target zu schicken, um die Embedded Target erhalten diese Bytes und antworten mit einer beliebigen Anzahl von Bytes. Der PC ist der USB-Host, ist das Ziel der USB-Client. Der USB-Standard definiert 4 Typen von Kommunikation:

  • Control,
  • Isochronen,
  • Interrupt
  • Und Schüttgut.
Die Erfahrung zeigt, dass für die meisten Geräte eingebettet, Bulk-Modus werden die Kommunikations-Modus der Wahl ist. Es ermöglicht Nutzung der vollen Bandbreite der USB-Bus.
Geschwindigkeit

Die höchstmögliche Übertragungsrate über USB 1.1 (12 Mbit / s) Geräten beträgt ca. 1.1 MByte pro Sekunde. Diese Datenrate kann in der Tat auf schnelles System, wie zB ARM7 erreicht werden.
Was ist inbegriffen
Die folgende Tabelle zeigt den Inhalt aller Unterverzeichnisse USB Bulk-Stack:

Directory Inhalt
Doc enthält die USB-Bulk-Stack-Dokumentation
Treiber enthält die Kernel-Modus-USB-Treiber für den PC (Win32, NT-Plattform), die kompilierten Treiber (. Sys). der. inf-Datei für die Installation erforderlich (USB Bulk Stack-full-Source-Version enthält den Quellcode und ein Projekt für MSVC 6.0)
SampleApp Enthält eine PC Beispielprojekt zu helfen, bringen und das System testen
USBBulkStack enthält die USB-Treiber für die Ziel-Hardware
Features
  • High-Speed-
  • Der Stack kann mit oder ohne RTOS eingesetzt werden.
  • Start / Testanwendung geliefert
USB-Grundlagen
USB ist die Abkürzung für "Universal Serial Bus". Ein USB-System hat ein asymmetrisches Design. Jeder einzelne Rechner kann mit mehreren Geräten in einem Baum-artigen Weise verbunden werden mit Hilfe spezieller Geräte-Hub. Sie können bis zu 127 Geräte an einen einzelnen Host, aber der Graf muss der Hub-Geräten sowie zählen. Das Design des USB verbessert die Plug-and-play-Funktionen, indem sie Geräte an das System ohne einen Neustart des PC hinzugefügt werden. USB-Kommunikation gehören Vorkehrungen für Stromversorgung der angeschlossenen Geräte, so dass mehrere Geräte mit minimalem Strombedarf kann ohne extra Netzteile verwendet werden. USB können Peripheriegeräte wie Tastaturen, Mäuse, Digitalkameras, Scannern, Druckern verbinden, Netzwerkkomponenten und Festplatten. Wenn ein neues Gerät ist das erste Mal angeschlossen ist, zählt die Gastgeber es und versucht, das Gerät erforderlichen Treiber laden, um sie auszuführen. Die Endpoint-Typen USB-Standard definiert 4 Typen von Kommunikation: Control, isochron, Interrupt-und Schüttgut. Control-Transfers sind in der Setup-Phase verwendet. Der Antrag kann grundsätzlich wählen Sie eine der 3 anderen Arten übertragen. Für die meisten Anwendungen eingebettet ist, ist die beste Wahl, Bulk, da es die höchste Datenraten ermöglicht. Control Transfers In der Regel verwendet, um ein Gerät zu konfigurieren. Es kann auch gerätespezifische Zwecke verwendet werden. Dient zur Befestigung an einem Gerät zu konfigurieren und kann für andere Geräte-spezifische Zwecke, einschließlich der Kontrolle über andere Leitungen auf dem Gerät verwendet werden. Isochrone Transfers Typisch für Anwendungen, die garantierte Geschwindigkeit benötigen verwendet. Isochrone Übertragung ist schnell, aber mit möglichem Datenverlust. Eine typische Anwendung ist audio, die eine konstante Datenrate erfordert. Interrupt Transfers Geräte, die typischerweise durch schnelle Antworten (bounded Latenz gewährleistet Notwendigkeit verwendet).
Bulk Transfers
Geräte, die typischerweise durch verbrauchen oder erzeugen Daten in relativ großen Mengen eingesetzt und bursty. Bulk Transfer haben große dynamische Breite in Transmission Con-Constraints. Es können alle noch verfügbaren Bandbreite, aber keine Garantien für die Bandbreite oder Latenzzeit. Da der USB-Bus ist normalerweise nicht sehr beschäftigt, es ist in der Regel 90% oder mehr von der verfügbaren Bandbreite für USB-Transfers. Setup-Phase / Enumeration Bevor das Ziel mit dem Host kommunizieren können, muss der Host-Informationen aus dem Ziel zu erhalten. Diese Information ist in der Aufbauphase gesammelt. Die Information wird in den Deskriptoren, die in den konfigurierbaren Abschnitt der Stack enthalten sind. Der wichtigste Teil für die Identifizierung des Zielgerät sind die Produkt-ID und Vendor ID. Während der Aufbauphase, die Host-Adresse zuweisen auch an den Client. Dieser Teil der Installation wird als Enumeration. Größe und / Vendor IDs
A Hersteller-ID kann aus dem USB Implementers Forum erhalten, Inc. (www.usb.org). Dies ist nur erforderlich, wenn Sie die Entwicklung des Produkts beenden; während der Entwicklungsphase, können Sie den Anbieter und Produkt-IDs als Muster geliefert werden. Anwendung starten
Die Anwendung starten (in der Anwendung Unterordner) ist eine modifizierte Echo-Server, die zur Prüfung des Stacks werden kann. Die Anwendung empfängt Daten Byte für Byte, jedes einzelne Byte-Schritten und sendet sie zurück an den Host. Source-Code der Start.c:
Die Anwendung starten wird natürlich später von Ihrem realen Anwendung ersetzt werden. Für die Zwecke des Erhaltens der Stack und läuft sowie einen ersten Test machen, den Start-Anwendung sollte nicht geändert werden, sondern kompiliert und gelinkt mit Ihrem Projekt.
Der Kernel-Modus-Treiber (PC) Um mit einem Ziel (Client) läuft der Stack kommunizieren, müssen Sie den USB-Bulk-Kernel-Modus-Treiber auf Ihrem Windows-PC installieren. Normalerweise geschieht dies, sobald der Stack läuft über Ihre Ziel-Hardware. Warum ist ein Treiber notwendig? In Microsoft ™ s Windows-Betriebssysteme, die gesamte Kommunikation mit realen Hardware wird mit der Kernel-Modus-Treiber implementiert. Normale Anwendungen laufen in "user mode". Im User-Modus, Zugriff auf die Hardware ist nicht gestattet. Alle Zugriffe auf Hardware über das Betriebssystem erfolgen. Das Betriebssystem nutzt ein "Kernel-Mode Driver", um die tatsächliche Hardware-Zugriff. Mit anderen Worten: Jedes Stück Hardware erfordert einen oder mehrere Kernel-Modus-Treiber funktionieren. Windows liefert Treiber für die meisten gängigen Hardware, aber es funktioniert nicht mit einem generischen Treiber lose Kommunikation kommen. Es kommt mit Treibern für bestimmte Klassen von Geräten wie Tastatur, Maus und Massenspeicher (USB-Stick). Dies macht es möglich, eine USB-Maus verbinden und nicht mit einer Treiber dafür zu installieren: Windows alreadys hat einen Treiber dafür. Leider gibt es keine generischen Kernel-Modus-Treiber ermöglicht die Kommunikation, die auf jede Art von Gerät im Bulk-Modus. Deshalb ist ein Kernel-Modus-Treiber geliefert, um mit dem USB-Stack arbeiten werden muss. Unterstützte Plattformen Das Kernel-Modus-Treiber funktioniert auf allen NT-Plattformen geben. Dazu gehören Windows 2000 und Windows XP (Home und Professional). Windows NT selbst unterstützt keine USB-, Win98 ist nicht der Fahrer mit der Beispielanwendung Sample-Anwendungen sowohl für das Ziel (Client) unterstützt und den PC (Host) werden mitgeliefert. Die Beispielanwendung für den PC ist als Quellcode incl. geliefert. MSVC 6,0 Arbeitsbereich und als ausführbare Datei, die Beispielanwendung für das Ziel als Quellcode geliefert nur. Die Beispielanwendung können verwendet werden, um den korrekten Einbau und einwandfreie Funktion des USB-BULK-Gerät zu testen. Die PC-Beispielanwendung zunächst versucht, eine Verbindung herzustellen, um das Ziel durch die Öffnung des Geräts. Schlägt dies fehl, wird eine Fehlermeldung angezeigt. Wenn eine Verbindung hergestellt werden kann, es tauscht Daten mit dem Ziel, die Prüfung der USB-Anschluss. Ausführen der Beispielanwendung Die Beispielanwendung in beiden Quellcode und in ausführbarer Form in der SampleApp Verzeichnis wie SampleApp \ SampleApp.exe versorgt wird. Zum Ausführen der Beispielanwendung, starten Sie einfach die ausführbare Datei, zum Beispiel durch Doppelklick. Wenn der USB BULK Gerät nicht an Ihren PC angeschlossen oder der Treiber nicht installiert ist, erhalten Sie die folgende Meldung angezeigt. Wenn die Verbindung zum USB BULK Device funktioniert einwandfrei, wird das Sample Application schreibe ein Byte gelesen und danach ein Byte. Wenn ein Fehler im Lesen oder Schreiben Prozess tritt ein Meldungsfeld erscheint. In der USB BULK Gerät läuft eine Anwendung, erhöht den Wert der empfangenen Byte und sendet es zurück. Die Beispielanwendung liest dieses Byte und prüft seinen Wert. Dies wiederholt sich 2 Mal, wenn ein Fehler auftritt. In jedem Fall erscheint eine Meldung auf, Sie zu informieren, ob alles funktioniert oder wenn ein Fehler aufgetreten.

» weitere Informationen auf Englisch

Members Login
username
password
New MemberRegister Here
Newsletter Signup