Forum: Mikrocontroller und Digitale Elektronik Welche USB Klasse


von Phlipp Cordes (Gast)


Lesenswert?

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

von Tobias (Gast)


Lesenswert?

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.

von Dirk D. (dirkd)


Lesenswert?

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

von Philipp (Gast)


Lesenswert?

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

von Philipp (Gast)


Lesenswert?

@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.

von Dirk D. (dirkd)


Lesenswert?

Was sind das für Daten? Warum brauchst Du den isochronen Transfer.?

Der ist mit HID nicht möglich.

von Philipp (Gast)


Lesenswert?

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?

von Dirk D. (dirkd)


Lesenswert?

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.

von willivonbienemaya (Gast)


Lesenswert?

warum geht Interrupt nicht bei einem Abstandsmesser?
Was braucht der für Datenraten?
Interrupt schafft immerhin 64kbyte/s, pro Pipe.

von Philipp (Gast)


Lesenswert?

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 :)

von Philipp (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.