Ich möchte einen LPC1345- Mikrocontroller verwenden, um einen USB-Hub zu betreiben. Dank dieser Frage weiß ich, dass ein einzelnes USB-Gerät verwendet werden kann, um als mehrere Klassen zu fungieren, aber wie viele?
Der USB-Hub hätte vier Steckplätze, also müssten vier MSD-Klassen implementiert werden, wenn ich das richtig verstehe. Es wäre auch schön, die DFU-Klasse zu haben, falls ich die Firmware zu einem späteren Zeitpunkt aktualisieren muss.
Gibt es im USB-Standard eine Begrenzung, wie viele Klassen in einem zusammengesetzten Gerät implementiert werden können, oder gibt es eine Eigenschaft eines bestimmten Controllers, die ich untersuchen müsste, um festzustellen, ob der Controller dazu in der Lage ist?
Die Anzahl der Endpunkte in einem Gerät ist begrenzt (16). Wenn Sie nur einen Endpunkt pro Schnittstelle benötigen (dort haben Sie die Möglichkeit, die Klasse anders als in einem Gerätedeskriptor angegeben anzugeben), können Sie 15 Klassen haben. Vielleicht möchten Sie sich den Konfigurationsdeskriptor jedes modernen Nicht-Smartphones, Bluetooth-Dongles oder einer Webcam ansehen - alle sind normalerweise ziemlich groß und enthalten mehrere Klassen.
Wenn man sich die USB 2.0-Spezifikation ansieht, scheint es, dass ein zusammengesetztes Gerät, auch bekannt als ein einzelnes Gerät mit mehreren Schnittstellen, durch die Anzahl der Schnittstellen in einer einzelnen Konfiguration begrenzt wäre.
Da bNumInterfaces eine Größe von 1 Byte hat, bedeutet dies, dass die theoretische Grenze 255 ist. Mehr als praktisch.
Passant
CL.