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.
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
Also die PICs habe ich mir auch schon angesehen. Ich benötige aber unter anderem einen Controller der 1x USB 2.0 (Device) und 2x CAN 2.0B unterstützt. So wie ich das gesehen habe, können das die PICs nicht bieten.
Ich rudere jetzt mal zurück. Wenn ich USB 2.0 OTG statt USB 2.0 auswähle, gibt es einen PIC32, der auch 2x CAN unterstützt. Die sehen doch ganz gut aus. Auch weil sie nur etwa 1/3 so teuer sind. Ich schau mir die mal genauer an. Der PIC32MX795F512H/L finde ich interessant.
Tikonteroga schrieb: > 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. Wie häufig?
Kurt schrieb: > Wie häufig? Gängige Zykluszeiten, sind alle 1 s, 100 ms und 10 ms, wobei die Datenmenge tendenziell abnimmt, wenn sich die Zyklen verkürzen.
Treiber musst du nicht unbedingt selbst entwickeln, für Interrupt und BULK geht z.B. WinUSB hervorragend. LibUSB-win32 wäre auch was passendes.
Tikonteroga schrieb: > Gängige Zykluszeiten, sind alle 1 s, 100 ms und 10 ms, wobei die > Datenmenge tendenziell abnimmt, wenn sich die Zyklen verkürzen. Ich wollte vorschlagen alles mit HID zu machen, aber da kommst Du wohl nicht mit der Datenmenge hin.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.