USB Device realisieren

Gast #3138557
Lesenswert?
• ▲
▼
Hallo,

ich möchte ein USB-Device konstruieren (z. B. mit LPC 2300 oder LPC 
4300), das mit einem Windows PC über USB kommuniziert.

Dabei kommunizieren der Windows PC und das USB-Device über ein 
vorgegebenes Protokoll.

Diese Protokol erlaubt nur den Interrupt- und den Bulk-Transfer.

Es gibt folgende Vorgaben.

1.) Über einen Endpunkt sendet der Windows PC (Master) ereignisgesteuert 
Befehle (Requests), wie z. B. Connect, Disconnt oder StartTransfer an 
das USB-Device (Slave). Dabei kann ein Request im Worst Case 256 Byte 
groß sein. In der Regel sind es aber eher Größenordnungen von 16-32 
Byte.

2.) Über einen Endpunkt sendet das USB-Device ein Response an den 
Windows PC. Dabei kann ein Response im Worst Case 256 Byte groß sein. In 
der Regel sind es aber eher Größenordnungen von 16-32 Byte.

3.) Über einen oder mehrere Endpunkte sendet das USB-Device große 
Datenpacket zyklisch an den Windows PC. Dabei kann ein Datenpacket bis 
zu 65 Kilo Byte groß sein. In der Regel werden es aber ca. 512-1024 Byte 
sein.

Ich habe mir jetzt überlegt für 1.) und 2.) den Interrpupt-Transfer zu 
verwenden und für 3.) den Bulk-Transfer.

Die MCUs LPC2300 und LPC4300 unterstützen soweit ich weiss nur die 
generischen Treiber der Klassen HID, CDC und Massenspeicher. Kann ich 
meinen Anwendungsfall mit einem dieser Treiber effektiv lösen oder 
benötige ich hier einen Gerätespezifischen Treiber und eine Bibliotheke 
(DLL)? Gibt es soetwas vielleicht doch für den LPC4300, sowie das z. B. 
bei Microchip der Fall ist? Hier habe ich so einen Treiber und eine 
Library schon einmal verwendet.
#3138598
Lesenswert?
• ▲
▼
Tikonteroga schrieb:

> Die MCUs LPC2300 und LPC4300 unterstützen soweit ich weiss nur die
> generischen Treiber der Klassen HID, CDC und Massenspeicher.

Nein. Die Controller selber haben keine diesbezüglichen Beschränkungen. 
Die verfügbaren Treiber oder der USB-Stack und NXP vielleicht, aber 
nicht der Chip selber.

> Kann ich
> meinen Anwendungsfall mit einem dieser Treiber effektiv lösen oder
> benötige ich hier einen Gerätespezifischen Treiber und eine Bibliotheke
> (DLL)? Gibt es soetwas vielleicht doch für den LPC4300, sowie das z. B.
> bei Microchip der Fall ist? Hier habe ich so einen Treiber und eine
> Library schon einmal verwendet.

Wenn das Protokoll vergegeben ist, wirst Du wohl einen 
gerätespezifischen Treiber brauchen.

Warum nimmst Du eigentlich nicht einen PIC32? Wenn Du den Microchip 
Stack kennst, kannst Du den hier auch verwenden, und der PIC32 ist in 
einer ähnlichen Leistungklasse wie der LPC2300, eher noch etwas 
schneller.

fchk

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.