Ich frage mich nur, ob dies mit USB möglich ist.
Ich bin es gewohnt, ein Gerät mit USB so zu programmieren, dass es ein bestimmter Gerätetyp ist, beispielsweise ein HID oder ein CDC usw.
Ist es möglich, mehrere Gerätetypen in einem USB-Gerät zu kombinieren, sodass ein einzelner Chip (z. B. ein PIC32) gleichzeitig sowohl als HID- als auch als CDC-Gerät angesehen werden kann und die Funktionalität von beiden bietet? Idealerweise mit den zwei Gerätefunktionalitäten, die an verschiedene Teile der Firmware gebunden sind.
Ist dies überhaupt mit USB möglich, oder müsste ich einen kleinen 2-Port-Hub-Chip und 2 daran angeschlossene USB-Geräte haben?
Oder könnte ich es emulieren, indem ich den Chip als Hub sehe und dann "virtuelle" Geräte in der Software daran anschließe?
Hat jemand so etwas schon mal probiert?
Ja, Sie können dies mit einem PIC18 (USB 2.0 mit voller Geschwindigkeit) oder einem anderen PIC mit USB 2.0-Fähigkeit tun.
Microchip hat ein paar Beispiele für zusammengesetzte Geräte, die mit ihrem Stack gebündelt sind. Ich würde mir vielleicht einen davon ansehen und gegebenenfalls anpassen.
USB-Protokollstandard 2.0 Kapitel 9.2.3 // kann als ZIP-Datei von usb.org oder http://www.perisoft.net/engineer/usb_20.pdf gefunden werden
Innerhalb einer einzelnen Konfiguration kann ein Gerät mehrere Schnittstellen unterstützen. Eine Schnittstelle ist ein zusammengehöriger Satz von Endpunkten, die dem Host eine einzelne Funktion oder Funktion des Geräts präsentieren. Das zur Kommunikation mit diesem zugehörigen Satz von Endpunkten verwendete Protokoll und der Zweck jedes Endpunkts innerhalb der Schnittstelle können als Teil einer Geräteklasse oder einer herstellerspezifischen Definition angegeben werden.
Es ist üblich, mehrere Schnittstellen in einem einzigen Gerät zu haben.
Alles, was Sie unterstützen müssen, sind mehrere Schnittstellen oder Hubs mit „virtuellen Geräten“, je nachdem, was Sie einfacher zu implementieren finden.
Endolith
Kortuk