Hallo zusammen, ich weiss nicht ob das hier her gehört, aber ich versuchs einfach mal. Ich will ein Protokoll, was bereits existiert über USB übertragen. Will also nur die Übetragungsschicht austauschen. Meiner Meinung nach müsste es sowas wie eine Tunnel Klasse sein, aber leider komme ich bei der Vielzahl der USB Klassen nicht mehr zurecht. Und den virtuellen COM Port habe ich schon verboten bekommen von meinem Chef. Kann mir da jemand helfen? Grüße Philipp
Wie schnell mußt du Daten übertragen? Schau dir mal die HID-Klasse an. Treiberentwicklung auf PC-Seite entfällt bei den meißten Betriebssystemen und Firmwareimplementierungen gibts von vielen Herstellern gratis.
Hat Dein Chef das auch irgendwie begründet? Ich wüßte sonst keine Klasse mit der Du das machen könntest (vielleicht noch die IrDA-Bridge-Klasse mißbrauchen, aber das wäre auch ein virtueller COM) Bleibt fast nur noch eine Custom-Klassen, was aber auch auf PC-Seite einen Treiber erfordert. Mußt Du wirklich das Protokoll übertragen. Vielleicht wäre es einfacher nur die Daten mit der HID-Klasse zu übertragen. Gruß Dirk
Also bisher lief alles über serielle Schnittstelle, die Geschwindigkeit sollte also nicht so das Problem sein, kann ich denn mit der HID-Klasse auch z.B. Isochronen Transfer benutzen oder geht da nut Interrupt? Philipp
@Dirk Nein ich muss nur die Nutzdaten übertragen, wenn ich mit der HID Klasse auch Isochronen Transfer hinbekomm, dann wäre das wohl die Lösung.
Was sind das für Daten? Warum brauchst Du den isochronen Transfer.? Der ist mit HID nicht möglich.
Es sind viele Geräte von einem Sensor Hersteller, die angesprochen werden müssen. Wenn es z.B. eine Lichtschranke ist, dann solllte es funktionieren mit Interrupt, aber wenn z.B. ein Abstandsmesser sein soll, der seine ganzen Messdaten versendet wird das denke ich schiwerig oder?
Es besteht immer noch die Möglichkeit keine Standard-Klasse sondern ein eigenes Protokoll zu verwenden. Dann brauchst Du aber einen eigenen Device-Treiber. Alternativ kannst Du auch die libusb verwenden und deren generischen USB-Treiber verwenden. Dann brauchst Du keinen Device-Treiber zu schreiben sondern kannst mit einer normalen Anwendung im User-Mode das USB-Gerät ansprechen. Damit kannst Du dann auch alle Übertragungsarten verwenden.
warum geht Interrupt nicht bei einem Abstandsmesser? Was braucht der für Datenraten? Interrupt schafft immerhin 64kbyte/s, pro Pipe.
64KByte/s klingt schonmal ganz ordentlich. Für Grafiken wird das wohl nicht reichen, aber da kann man dann ja noch als zweite Function eine Video Klasse mit einbeziehen. Also schonmal vielen Dank, wenn ich mein Testboard habe, dann werde ich bestimmt sehr oft hier posten :)
ach eine frage noch, was bedeutet pro pipe ? wieviel pipes gibt es denn maximal ?
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.