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.
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?
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ß
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.
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.
> 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.
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.
>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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.