Forum: Mikrocontroller und Digitale Elektronik USB 2.0 Gerät konstruieren + WinCE USB Treiber


von peterguy (Gast)


Lesenswert?

Servus zusammen,

ich denke momentan darüber nach, in meiner Freizeit ein USB Gerät zu 
entwickeln, das an ein embedded Windows CE System angeschlossen werden 
kann. Da ich über den USB Bus Datenraten von über 12MBit transportieren 
möchte, sollte der ganze Aufbau USB 2.0 (High Speed) kompatibel sein.

Am liebsten wäre mir ein gängiger µC (z.B. ATMEL, Freescale, Microchip) 
mit eingebautem USB Controller sowie den üblichen Feldbus Controllern 
(CAN, SPI, I2C, RS232, FlexRay,...).
Was wird außer dem µC noch benötigt, um den USB ans laufen zu bringen? 
Gibt es gute Beispielprojekte, Application Notes oder habt ihr vllt. 
praktische Erfahrungen in dem Themengebiet?


Ausserdem möchte ich für das Gerät einen Winows Geräte Treiber 
erstellen. Sehr schön wäre hier ein kostenfreier, generischer Treiber. 
Gibts da was fertiges, mit dem man schnelle Ergebnisse erzieheln kann 
und das auch mit höheren Datenraten klarkommt? Wichtig ist, daß der 
Treiber kompatibel mit Win CE ist, und zum Debuggen wäre es natürlich 
wünschenswert, wenn er auch unter Win XP läuft.

von ARM-Fan (Gast)


Lesenswert?

Was ist denn das überhaupt für ein Windows CE System, das du da hast?
Hat das überhaupt eine USB Host Schnittstelle?

Das USB-Device zu entwickeln ist der einfache(re) Part.

Erzähl erst einmal mehr über den Host.

Hast du Zugriff auf das BSP?
Erstellst du das Image selbst mit dem Platform Builder?

von Ws K. (global667)


Lesenswert?

peterguy wrote:
> Servus zusammen,
>
> ich denke momentan darüber nach, in meiner Freizeit ein USB Gerät zu
> entwickeln, das an ein embedded Windows CE System angeschlossen werden
> kann. Da ich über den USB Bus Datenraten von über 12MBit transportieren
> möchte, sollte der ganze Aufbau USB 2.0 (High Speed) kompatibel sein.
>
> Am liebsten wäre mir ein gängiger µC (z.B. ATMEL, Freescale, Microchip)
> mit eingebautem USB Controller sowie den üblichen Feldbus Controllern
> (CAN, SPI, I2C, RS232, FlexRay,...).
> Was wird außer dem µC noch benötigt, um den USB ans laufen zu bringen?
> Gibt es gute Beispielprojekte, Application Notes oder habt ihr vllt.
> praktische Erfahrungen in dem Themengebiet?
>
>
> Ausserdem möchte ich für das Gerät einen Winows Geräte Treiber
> erstellen. Sehr schön wäre hier ein kostenfreier, generischer Treiber.
> Gibts da was fertiges, mit dem man schnelle Ergebnisse erzieheln kann
> und das auch mit höheren Datenraten klarkommt? Wichtig ist, daß der
> Treiber kompatibel mit Win CE ist, und zum Debuggen wäre es natürlich
> wünschenswert, wenn er auch unter Win XP läuft.

Beschäftige mich gerade auch mit USB. Als Controller bietet sich ein 
Cypress an (-> http://www.cypress.com/products/?gid=9 ). Die kosten 
nicht viel und man braucht nur noch ein Flash für den Code.
Zur Treiberentwicklung unter Windows brauchst du das 
DriverDevelopmentKit von MS (-> 
http://msdn.microsoft.com/en-us/library/aa972908.aspx )(-> 
http://support.microsoft.com/kb/323594/de).
Mehr kann ich zum DDK leider noch nicht sagen, weil ich es bei mir noch 
nicht zum laufen bekommen habe.
Die Wikipedia.de Seite über USB ist auch ganz informativ und auf 
mikrocontroller.net (also hier) gibt es auch einen Wikieintrag.

Gruß

von Christian R. (supachris)


Lesenswert?

Also empfehlenswert ist der Cypress FX2. Da hast du zwar kein CAN und 
solche Späße, aber mit CAN usw. kenn ich keinen der auch wirklich 2.0 
HighSpeed schafft. Die Firmware für den FX2 ist schnell erstellt, ist 
ganz einfach. Triber gibts entweder den Cypress für 2000, XP und Vista 
oder die LibUSB, als open source, oder den hier 
Beitrag "Generischer USB Treiber für Windows mit C++ API" oder halt wie da ganz 
unten erwähnt den WinUSB. Mit den Quellen steht die Chance nicht 
schlecht, dass man das unter CE hinbekommt, wenn man ein CE-Profi ist.

von peterguy (Gast)


Lesenswert?

Mal ein paar Details zu dem Host:
Also als WinCE Host möchte ich das PXA320Colibri Modul von Toradex 
verwenden. ( 
http://www.toradex.com/De/Products/Colibri_XScale_Computer_Modules_Overview_PXA255_PXA270_PXA270M_PXA300_PXA310_PXA320_ARM/Colibri_PXA320 
)
Für erste Tests erstmal mit dem Evaluierungsboard, später soll evtl. ein 
eigenes Trägerboard verwendet werden.
Soweit ich weiß liefert Toradex die Colibri Module mit WinCE 6.0 aus und 
legt auch alle Sourcen des BSP offen.
Was ich schon rausgefunden habe ist, daß die Colibrimodule anscheinend 
nicht direkt High Speed USB unterstützen. Man ist wohl gezwungen hierfür 
noch einen extra Baustein zu verwenden.


Zu den Cypress Controllern fürs Device:
Handelt es sich hierbei um µCs mit integriertem USB Controller oder sind 
das spezielle USB-Bausteine mit abgespecktes µC Funktionalität. Falls 
zweiteres, ist es möglich, einen µC an den Cypress zu hängen und den 
Cypress als externen Communication Controller einzusetzten? Denn die 
Unterstützung von Feldbussen und zusätzlichen I/Os wäre mir sehr 
wichtig.


Zum Windows-Treiber: Ich habe zwischenzeitlich mal ein wenig gesucht und 
bin jetzt auf dem Stand, daß ein Windows 2000/XP Treiber normalerweise 
auch unter WinCE laufen sollte, ohne umfangreiche Anpassungen 
vorzunehmen. Also könnte ich wirklich erst das USB-Device entwickeln und 
am Heim-PC testen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Ich habe zwischenzeitlich mal ein wenig gesucht und
> bin jetzt auf dem Stand, daß ein Windows 2000/XP Treiber normalerweise
> auch unter WinCE laufen sollte, ohne umfangreiche Anpassungen
> vorzunehmen

Naja, Du musst den Treiber auf jeden Fall für jedes der Systeme neu 
übersetzen - der PXA320 ist ein vollkommen anderer Prozessor als ein 
x86.

Cypress FX2 sind "vollwertige" µCs, Du wirst halt gegebenenfalls für die 
von Dir angedachten Schnittstellen noch irgendwelche Interfaces 
benötigen.

von Christian R. (supachris)


Lesenswert?

CAN usw. kannst du ja an den externen Daten- und Adressbus des FX2 
klemmen, das ist ja ein vollwertiger 8051 Prozessor mit USB Interface. 
Das FrameWork nimmt dir da die ganze USB Arbeit ab, und du kannst 
einfach auf die Endpoint-Buffer zugreifen.

von ARM-Fan (Gast)


Lesenswert?

>Soweit ich weiß liefert Toradex die Colibri Module mit WinCE 6.0 aus und
>legt auch alle Sourcen des BSP offen.

Das würde ich bezweifeln.
Normalerweise bekommst du nur ein Binary BSP von diesen Anbietern,
da es sich dabei um ihr Kern-Know-How handelt, dass sie sich über
Jahr erarbeitet haben.

Ein BSP im Source-Code kostet seeehr viel Geld.
Wir reden da von hohen 5-stelligen Beträgen.

Will heißen: Du kannst zwar für die dazu passende HW ein Image bauen
und es dir passend zurechtkonfigurieren und deine Applikation dazufügen.

Aber ans Eingemachte kommst du auf diese Weise nicht.

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.