uC / USB-MSD

uC / USB-MSD Stack können Sie Ihre Embedded Target Gerät als USB-Massenspeicher zu verwenden. Ohne die Notwendigkeit, eine Kernel-Modus-Treiber für den Host-Betriebssystem zu entwickeln, können Sie einfach Plug-in Ihrem Gerät und verwenden Sie es einfach wie eine normale Festplatte. Dies ist möglich, weil die Mass Storage Class ist eine der Standard-Geräte-Klassen, die von der USB Implementers Forum definiert. Nahezu alle großen Betriebssystem auf dem Markt unterstützt diese Geräteklassen out of the box. Keine benutzerdefinierten Kernel-Modus-Treiber erforderlich. Da fast jeder größeren OS bereits Kernel-Modus-Treiber für USB-Massenspeicher, gibt es keine Notwendigkeit, Ihre eigenen zu implementieren. Ihr Zielgerät wird als Massenspeicher erkannt werden und kann direkt zugegriffen werden.
Plug and Play

Nehmen wir an, Ihr Zielsystem ist eine Digitalkamera. Mit uC / USB-MSD Stack, können Sie Videos oder Fotos von dieser Kamera bequem mit Ihrem Dateisystem Explorer. Alles was Sie tun müssen, ist die Kamera zum Host verbinden. Das ist alles. Key Features der uC / USB-MSD Stack

  • Kann mit RAM, Flash, parallele, serielle Flash-Speicher oder mechanische Antriebe eingesetzt werden
  • Unterstützung für USB 1.1 und USB 2.0 Übertragungsraten
  • Easy t o Einsatz
  • Einfach zu portieren
  • Keine eigene USB-Host-Treiber erforderlich
  • Portable, effizient, kommentierte ANSI C Quellcode
  • OS-Abstraktion: Die Verwendung mit einem RTOS, kein OS für MSD nur Geräte erforderlich
  • Hardware Abstraction Layer ermöglicht eine schnelle Zugabe von Unterstützung für neue Geräte
Typische Anwendungen
  • Digital-Kamera
  • USB-Stick
  • MP3-Player
  • DVD-Player
  • Jedes Ziel mit USB-Schnittstelle: Einfacher Zugriff auf Konfigurations-und Datendateien
Bedarf
Target-System
Hardware

Ihr Zielsystem muss einen USB-Controller. Die Speicheranforderungen sind ca. 10kB ROM und ca. 1kB RAM (Nur für die Pufferung-Systeme mit weniger RAM verwenden können ebenfalls verwendet werden). Zusätzlich Speicher für die Datenspeicherung ist natürlich erforderlich, in der Regel entweder on-board Flash-Speicher (parallel oder seriell) oder einer externen Flash-Speicherkarte ist nicht erforderlich.

Software

Ein Echtzeit-Kernel ist nur erforderlich, wenn Ihre Anwendung mehrere Aufgaben verwendet. Bei Verwendung von uC / USB-MSD Stack als die einzige Aufgabe, ein RTOS nicht benötigt wird. uC / USB-MSD Stack erfordert den USB-Stack, die Masse ist im Preis inbegriffen.
Entwicklungsumgebung

Eine ANSI-konforme C-Compiler erforderlich. Wenn Ihr Compiler hat einige Einschränkungen, lass es uns wissen und wir werden Sie informieren, wenn sie Probleme beim Kompilieren der Software verursacht. Jeder Compiler für 16/32/64-bit CPUs oder DSPs, dass wir wissen, der verwendet werden kann. Die meisten 8-Bit-Compiler kann auch verwendet werden.
Ein C + +-Compiler ist nicht erforderlich, kann aber verwendet werden. Das Anwendungsprogramm kann daher auch in C + + programmiert werden, falls gewünscht.
Wie funktioniert es?

Weit verbreitete Unterstützung für USB-und USB-Geräte-Klassen
Fast jede größere Betriebssystem, das USB-Unterstützung bietet, sieht Kernel-Modus-Treiber für das USB-Gerät als auch Klassen. Eine dieser Klassen ist der Mass Storage Class.

Dateisystem verwenden Unterstützung von Host-OS
Wenn Sie Plug-in ein Gerät, das uC / USB-MSD benutzt, wird es als Massenspeicher erkannt werden können und wie eine normale Festplatte genutzt werden. Wenn das Gerät beim Einstecken unformatierte-in, das Host-Betriebssystem wird Sie das Gerät Format bieten. Sie können jedes Dateisystem des Hosts zur Verfügung stellt. Typischerweise FAT verwendet wird, sondern auch andere Dateisysteme wie NTFS sind ebenfalls möglich. Wenn Sie eines dieser Dateisysteme verwenden, wird der Host in der Lage zu lesen und zu schreiben, um das Gerät mit uC / USB-MSD Stack Speicher-Funktionen, die definieren, unstrukturierte Lese-und Schreibvorgänge. So brauchen Sie nicht extra Dateisystem-Code zu entwickeln, wenn Sie nur wollen, um die Daten auf dem Zielsystem aus der Host-Seite zugreifen. Dies ist typischerweise der Fall für einfache Lagerung Anwendungen, wie z. B. USB-Speicher-Sticks oder USB-ATA auf Brücken.
Nur bieten Dateisystem-Code auf dem Zielsystem ggf.
Wenn Sie die Soll-Daten aus der Ziel-Anwendung selbst zugreifen möchten, müssen Sie die erforderlichen Dateisystem Programmcode auf dem Zielrechner. In diesem Fall können Sie Interesse an uC / FS, Micrium das Dateisystem für Embedded-Anwendungen.

FAQs

Benötige ich ein Echtzeit-Betriebssystem (RTOS) an uC / USB-MSD zu benutzen? Nein, wenn Sie Ihre Zielanwendung ist ein reiner Storage-Anwendung. Ja, wenn Ihr Ziel hat andere Dinge zu tun. Sie brauchen nicht ein RTOS, wenn alles, was Sie läuft uC / USB-MSD als die einzige Aufgabe auf dem Zielgerät Stack wollen. Wenn Ihre Zielanwendung ist mehr als nur ein Speichermedium und Bedürfnisse auf andere Aufgaben gleichzeitig auszuführen, benötigen Sie ein RTOS, die die Multi-Tasking-Griffe.
Benötige ich ein Dateisystem zu verwenden uC / USB-MSD Stack?
Nein, wenn Sie Zugriff auf die Soll-Daten nur aus dem Host. Ja, wenn Sie wollen, um das Ziel von Daten innerhalb des Zielbereichs selbst zuzugreifen. Es gibt keine extra Dateisystem-Code benötigt, wenn Sie nur wollen, um die Daten auf dem Zielsystem aus der Host-Seite zugreifen. Das Host-Betriebssystem bereits mehrere Dateisysteme. Sie haben zu bieten Dateisystem Programmcode auf dem Zielsystem nur, wenn Sie die Daten aus der Ziel-Anwendung selbst zugreifen wollen.
Benötige ich ein Kernel-Mode-Treiber auf dem Host-OS?
Mit No uC / USB-MSD Stack, Ihr Zielgerät als Massenspeicher und dem Host-OS erkannt wird sieht der Fahrer aus der Box. Einfach Plug-in Ihrem Gerät und verwenden Sie es.
Brauche ich einen USB-Bulk-Stack?
uC / USB-MSD Stack sitzt oben auf dem USB-Bulk-Stack. Der Großteil Stack ist notwendig, um niedrigere USB-Kommunikation umgehen und kommt mit uC / USB-MSD.
Hintergrundinformationen
USB: Kurzübersicht
Der "Universal Serial Bus" (USB) ist ein externes Bus-Architektur für den Anschluss von Peripheriegeräten an einen Host-Computer. Es ist ein Industriestandard, die von der USB-Implementers Forum und wegen seiner vielen Vorteile, die es genießt eine riesige Industrie breite folgenden beibehalten. Im Laufe der Jahre eine Reihe von USB-fähigen Peripheriegeräten auf dem Markt erschien, z. B. Drucker, Tastaturen, Mäuse, Digitalkameras etc. Unter den Top-Vorteile des USB sind:
  • Ausgezeichnete Plug-and-play-Funktionen, damit Geräte mit dem Host-System ohne Neustart hinzugefügt werden ("hot-plug"). Plugged-In-Geräte werden durch den Host und die entsprechenden Treiber erkannt werden sofort geladen.
  • USB ermöglicht eine einfache Erweiterung von Host-Systemen ohne Host-interne Erweiterungskarten.
  • Geräte-Bandbreiten können von ein paar Kb / s Bandbreite auf Hunderte von Mb / s.
  • Eine breite Palette von Paketgrößen und Datenübertragungsraten unterstützt.
  • USB bietet interne Fehlerbehandlung. Zusammen mit den bereits erwähnten Hot-Plug-Fähigkeit Dies verbessert die Robustheit.
  • Die Bestimmungen für die Stromversorgung angeschlossener Geräte verzichten auf die Notwendigkeit für zusätzliche Stromversorgung für viele Low-Power-Geräte.
  • Mehrere Transfer-Modi werden unterstützt, die die breite Anwendbarkeit des USB gewährleistet.
Nicht nur, dass diese Vorteile führen zu breiter Akzeptanz am Markt, aber dies wiederum hat mehrere Vorteile, wie gut, wie niedrige Kosten für USB-Kabel und Stecker oder eine breite Palette von USB-Stack-Implementierungen. Last but not least die gängigen Betriebssysteme wie Microsoft Windows XP, Mac OS X oder Linux bieten hervorragende Unterstützung für USB. Wichtige USB Standard-Versionen
USB 1.1 (September 1998)

Diese Standard-Version unterstützt isochrone und asynchrone Datenübertragung. Es hat eine doppelte Geschwindigkeit der Datenübertragung von 1,5 Mb / s für niedrige Geschwindigkeit und 12 Mb / s für Geräte mit voller Geschwindigkeit. Die maximale Kabellänge zwischen Host und Device ist fünf Meter. Bis zu 500 mA Strom kann auf Low-Power-Geräte verteilt werden. USB 2.0 (April 2000)
Wie alle bisherigen USB-Standards, ist USB 2.0 vollständig vorwärts und rückwärts kompatibel. Vorhandene Kabel und Stecker können wiederverwendet werden. Eine neue "High Speed" Übertragungsgeschwindigkeit von 480 Mb / s (40-mal schneller als USB 1.1 bei voller Geschwindigkeit) wurde hinzugefügt. USB Systemarchitektur
Ein USB-System besteht aus drei Teilen, einem Host-Seite, eine Vorrichtung Seite und einem physikalischen Bus zusammen. Die physikalischen Bus wird durch das USB-Kabel vertreten und verbindet Host und Device. Das USB-System-Architektur ist asymmetrisch. Jeder einzelne Rechner kann an mehrere Geräte in einer Baumstruktur wie Mode 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.
USB-Host
Ein USB Host besteht aus einem USB-Host-Controller-Hardware und-Software-Stack eine geschichtete. Diese Host-Stack enthält einen Host-Controller-Treiber (HCD), die die Funktionalität des Host-Controller-Hardware bietet, die USB-Treiber (USBD) Schicht, die das hohe Niveau Funktionen USB-Gerätetreiber in Bezug auf die Funktionalität des HCD, und unter der Voraussetzung verwendet implementiert schließlich der USB-Device-Treiber, die Verbindungen zu USB-Geräten zu etablieren. Der Fahrer Klassen sind auch hier und vor Ort zu gewährleisten generischen Zugriff auf bestimmte Arten von Geräten wie Drucker oder Massenspeicher.
USB-Hub
Zwei Divisionen der Geräte vorhanden sein: Hubs und Funktionen. Hubs bieten die Möglichkeit, zusätzliche USB-Befestigungspunkte bieten. Funktionen bieten Möglichkeiten zum Host und sind in der Lage, Daten übertragen oder empfangen oder Kontrolle der Informationen über den USB-Bus. Jedes Peripheriegerät USB-Gerät stellt mindestens eine Funktion, kann aber mehr als eine Funktion zu implementieren. Ein USB-Drucker zum Beispiel vorsehen, Dateisystem wie Zugang zusätzlich zu drucken. Eere, behandeln wir den Begriff USB-Gerät als gleichbedeutend mit Funktionen und wird nicht als Hubs. Jedes USB-Gerät enthält Konfigurations-Informationen, die ihre Fähigkeiten und Ressourcen-Anforderungen zu beschreiben. Bevor sie verwendet werden kann, müssen USB-Geräte durch den Host konfiguriert werden. Wenn ein neues Gerät zum ersten Mal angeschlossen wird, zählt es dem Host, fordert die Konfiguration aus dem Gerät und führt die eigentliche Konfiguration. Im Falle von uC / USB-MSD, Ihre Embedded-Gerät wird als USB-Massenspeicher-Gerät und dem Host-OS bietet dem Fahrer angezeigt out of the box. Das entlastet Sie von der Notwendigkeit, einen benutzerdefinierten Treiber, um mit Ihrem Zielgerät kommunizieren zu entwickeln.
Deskriptoren

Ein Gerät, Berichte über seine Attribute Deskriptoren. Deskriptoren sind Datenstrukturen mit einem Standard-Definition-Format. Ein USB-Gerät hat ein Gerät Schlagwort, welche Informationen für das Gerät und alle seine Konfigurationen enthält. Es enthält auch die Anzahl der Konfigurationen das Gerät unterstützt. Für jede Konfiguration eine Konfiguration Schlagwort enthält Konfigurations-Informationen. Die Konfiguration Schlagwort enthält auch die Zahl der Schnittstellen durch die Konfiguration zur Verfügung. Eine Schnittstelle Gruppen die Endpunkte in logische Einheiten. Jede Schnittstelle Schlagwort enthält Informationen über die Anzahl der Endpunkte. Jeder hat seine eigene Endpunkt Endpunkt Schlagwort, das den Endpunkt der Adresse, Transfer-Typen etc. Staaten Wie man sehen kann, bilden die Deskriptoren einen Baum. Die Wurzel ist das Gerät mit dem Schlagwort n Konfiguration Deskriptoren als Kinder, von denen jeder m-Interface-Deskriptoren, die ihrerseits k Endpoint-Deskriptoren jeder hat. Transfer-Typen Der USB-Standard definiert 4 Typen übertragen: Kontrolle, isochron, Interrupt-und Schüttgüter. 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, wenn es an den Host angeschlossen konfigurieren. Es kann auch für andere Geräte bestimmten Zwecken, einschließlich der Kontrolle über andere Leitungen auf dem Gerät verwendet werden. Isochrone Übertragungen Typisch für Anwendungen, bei denen garantiert erstklassiger Geschwindigkeit benötigen verwendet. Isochrone Übertragung ist schnell, aber mit möglichem Datenverlust. Eine typische Anwendung ist Audiodaten, 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 verfügt über einen großen dynamischen Breite in Transmission Zwänge. 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 Der Gastgeber muss zunächst Informationen aus dem Ziel zu erhalten, bevor das Ziel kann beginnen Kommunikation mit dem Host. Diese Information ist in der Aufbauphase gesammelt. Die Information wird in den Deskriptoren, die in den konfigurierbaren Abschnitt uC / USB-MSD Stack enthalten sind. Der wichtigste Teil des Zielgerät Identifikation sind die Produkt-und Vendor IDs. Während der Aufbauphase der Host bestimmt ebenfalls eine Adresse an den Client. Dieser Teil der Installation wird als Enumeration. Größe und / Vendor IDs
Ein Vendor-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 die Hersteller-und Produkt-IDs als Muster geliefert werden. Mass Storage Device (MSD) Command Protokolle

Code Command Protocol Specification Block Comment
01h Reduzierte Block Commands (RBC) T10
Project 1240-D Normalerweise verwenden Flash-Geräten RBC Befehl blockiert, sondern kann von jedem RBC-Massenspeicher verwendet werden.
02h SFF-8020i, MMC-2 (ATAPI) Normalerweise ein C / DVD-Gerät verwendet SFF-8020i-oder MMC-2 Kommando-Blöcke für seine Massenspeicher-Schnittstelle.
03h QIC-157 Tape typischerweise von Geräten verwendet.
04h UFI Regel ein Diskettenlaufwerk (FDD)-Gerät.
05h SFF-8070i typischerweise durch Diskettenlaufwerk verwendet (FDD)-Geräte, aber auch andere Geräte können SFF-8070i als auch nutzen.
06h transparent SCSI-Befehlssatz
07h - FFh Reserviert für künftige Verwendung.
uC / USB-MSD Stack unterstützt die transparente SCSI-Befehlssatz (06h) nur. Transport-Protokolle Protokoll Code Protocol Implementation Comment Command 00h / Bulk / Interrupt-Protokoll
(Mit Command Completion Interrupt) USB Mass Storage Class-Control / Bulk / Interrupt (CBI) Transport Command 01h / Bulk / Interrupt-Protokoll (ohne Befehl Abschluss Interrupt) USB Mass Storage Class-Control / Bulk / Interrupt (CBI) zu transportieren. 50h Bulk-Only Transport USB Mass Storage Class-Bulk-Transporte nur
02h-4Fh vorbehalten 51H-FFh vorbehalten
uC / USB-MSD Stack unterstützt Bulk-Transporte nur (50h) nur.
Referenzen

Für weitere Informationen siehe die folgenden Unterlagen:
  • Universal Serial Bus Spezifikation Revision 2.0
  • Universal Serial Bus Mass Storage Class Spezifikation Überblick, Rev 1.2
  • Befehl UFI-Spezifikation: USB Mass Storage Class, UFI Command Spezifikation, Rev 1.0
» weitere Informationen auf Englisch

Members Login
username
password
New MemberRegister Here
Newsletter Signup