Hallo zusammen, ich schreibe gerade meine Bachelor Arbeit bei einem großen Sensor Hersteller. Die wollen Ihre Sensoren vom serieller Schnittstelle auf USB umstellen. Die meisten Geräte die angeschlossen werden, sind Lichtschranken, es existieren aber auch komplexere Sensoren. Da man an den Sensoren keine Veränderungen vornehmen will muss ich ja prinzipiell nur sowas wie einen seriell über usb Tunnel bauen. Nachdem ich mich ein bisschen in USB eingelsen habe, habe ich gemerkt, dass das ganze nicht so einfach wird, wie ich das gerne hätte ... aber das ist man als Informatiker ja gewohnt. Lange Rede kurzer Sinn, kennt jemand ein Buch, das man empfehlen kann, das einigermaßen gut auf diese Thematik eingeht. Habe das USB 2.0 Buch von Kelm vor mir liegen und komme damit nicht wirklich zurecht, weil mir einfach zu viele Dinge fehlen. Falls es kein Buch gibt, dann vielleicht HowTos im Netz. Über eure Hilfe würde ich mich sehr freuen :) Grüße Nils
Fachliteratur, Fachbuch, USB2.0 RS Best.-Nr.: 492-7735 Hersteller: REDLINE Hersteller-Teile-Nr.: ISBN 3-8266-1511-5 37,75 Netto Aus dem RS-Components Katalog MW
Zum "Basteln" das Buch "Messen/Steuern/Regeln mit USB" von Burkhard Kainka aus dem Franzis-Verlag: http://www.b-kainka.de/usb.htm ist aber schon von 2000, noch keine Neuauflage erschienen.
"... muss ich ja prinzipiell nur sowas wie einen seriell über usb Tunnel bauen" Warum das Rad zweimal erfinden? So etwas gibt es von mehreren Herstellern als fix-und-fertig-Lösung; - FTDI FT232R - Prolific PL2303 - SiLabs CP2102 Alle der genannten Hersteller liefern auch fix-und-fertig programmierte Devicetreiber, die dem PC eine serielle Schnittstelle vor"gaukeln", so daß auf dem PC laufende Software nicht weiter angepasst werden muss.
Hi Nils, meine liebsten Bucher: Jan Axelson: USB Handbuch für Entwickler Jan Axelson: USB complete Ersteres in deutscher Übersetzung, letzteres in englisch aber sehr gut zu verstehen. Das Messen-Steuern-Regeln-Buch kann ich nicht empfehlen, das solltest Du leihen statt kaufen. Ich bin auch sicher, dass es zumindest von diesem Autor keine aktuellere Fassung mehr geben wird: Die besprochene Hardware ist nicht mehr käuflich. Vor der USB-RS232-Fertiglösung kann ich nur warnen: Wahr ist, dass es damit kaum Entwicklungsaufwand gibt. Falsch ist, dass da immer was Funktionierendes dabei raus kommt. Im Allgemeinen wird durch den Treiber ein sog. virtueller COMM-Port eingerichtet. Ein wesentlicher Nachteil von RS232 gegenüber USB ist aber, dass die Software mindestens die Port-Nummer kennen muss (COM1, COM2...). Leider werden die virtuellen COM-Ports gelegendlich neu nummeriert, ich habe da noch keine zuverlässige Lösung gefunden. Und es ist bei prof. Lösungen dem Anwender nicht zuzumuten jedesmal nach dem Booten den die COM-Portnummer zu ermitteln. Außerdem, und das ist vielleicht noch wichtiger, haben die USB2Seriell-Adapter/Chips ein gewisses Delay beim Datentransfer. Viele Applikationen melden dann eine Fehler wenn das Device z.B. nicht schnell genug antwortet. MfG Martin
Die Bücher von Jan Axelson habe ich mir auch mal angesehen und ich war sehr enttäuscht. Meiner Meinung nach gehen diese zu speziell auf einzelne Mikrocontroller mit USB-Funktionalität (z. B. PIC) ein. Diese Infos kann ich mir auch aus dem kostenlosen USB-Framework von Microchip ziehen. Ich hätte mir eine umfassende, allgemeine und verständliche Beschreibung von USB gewünscht und das leistet dieses Buch meiner Meinung nach leider nicht. Aber es ist halt sicher auch schwierig, einen solch komplexen Bus verständlich darzustellen. Mußt halt selbst sehen, was für dich geeignet ist.
@martin: deine aussage, das eine USB-RS232-Fertiglösung nichts taugt halte ich für gewagt. schau dir mal die dzt. aktuellen in-curcuit emulatoren an, die basieren fast alle auf solchen lösungen (z.B. arm-usb-ocd von olimex, avrjtagicemkii von atmel,..). und es sagt auch nimend, daß du eine virtuelle com schnittstelle einsetzen mußt. @nils: als erste info-quele im netz würde ich dir folgendes empfehlen: http://www.beyondlogic.org/usbnutshell/usb1.htm betreffend literatur: Jan Axelson: USB complete halte ich auch nicht für besonders gelungen. leider ist mri auch noch nichts besseres über den weg gelaufen. gruss gerhard
Jan Axelson - USB 2.0 Handbuch für Entwickler habe ich auch, und finde es auch sehr gut. Es gibt eine kleine Übersicht über Controller-Chips mit Auswahlhilfe. Code für Firmware (hier ein CY7C63743) und auch für Treiber auf einem PC sind abgedruckt. Das Buch beschreibt auch ganz gut die Kommunikation zwischen Gerät und PC.
@gerhard: Klar, die USB-RS232-Fertiglösung wird massenhaft eingesetzt was m.E. nicht bedeutet, dass es auch gut ist. Es ist eben sehr einfach bestehende COM-Lösungen zu portieren und im Rahmen einer Entwicklung ist das ja auch o.k., da kann der Entwickler ja mal schaun wie die Ports gerade heissen. Nutz man dagegen einen anderen Treiber als den virtuellen COM-Port, dann bedarf AFAIK dies zumindes PC-seitig eines Treibers und schon is die Einfachheit futsch. Treiber der Hersteller kannsu nich verteiben wegen VID und PID und so geht's grad weidda .... Sicherlich weiss ich nich alles (deshalb lese ich ja so gerne hier) aber meine Erfahrungen waren überwiegend negativ. Bei meinen Projekten läuft es deshalb immer auf eine HID raus, das macht einfach keinen Ärger (wenn's mal läuft). gruss Martin
Läuft immer auf eine HID raus ? Heisst das du benutzt die HID Klasse einfach als Tunnel für die Daten, die du übertragen willst und lässt dann die Software, die du auf dem USB Gerät hast die Arbeit erledigen ? gruss Nils PS Virtueller COM kommt nicht in Frage, da ich sonst ne Themaverfehlung hätte bei meiner Arbeit :)
Hallo Martin Enke! Leider hast du dich mit dem Thema Fertiglösung anscheinen nicht lange genug beschäftigt, weil du z.B. beim FTDI-Bausteinen nicht unbedingt auf eine virtuelle COM angewiesen bist. Du kannst den Baustein auch mit dem D2XX-Treiber verwenden und mittels Bibliothek, die man sich von FTDI-CHIP runterladen kann, das USB-Gerät öffnen, ohne virtuellen COM. Du kannst das Gerät mittels Nummer oder mittels Namen oder mittels Seriennummer öffnen und darauf zugreifen. @Martin Außerdem, und das ist vielleicht noch wichtiger, haben die USB2Seriell-Adapter/Chips ein gewisses Delay beim Datentransfer. Ich habe noch nie ein USB-Gerät entdeckt, welches das nicht hat. Kein USB-Gerät kann von sich aus Daten senden, sondern muss warten bis der PC die Abfrage durchführt. Im USB-Standard sind sogar die Abfragefrequenzen für USB Low,Full oder High-Speed angegeben. Ich bin sehr zufrieden mit meinen FTDI-Lösungen und sie laufen wirklich prächtig. Zudem kann man die Abfragegeschwindigkeit auf das USB-Gerät auf 1ms reduzieren, standardmäßig ist sie auf 16ms eingestellt. Ich hänge das Gerät an und das Programm findet sofort das Gerät und öffnet es. Also Nils, lass dich nicht verunsichern. Andererseits würde ich es für sehr kompliziert halten, hier extra PC-Treiber programmieren zu müssen. Auch die Einarbeitungszeit und Fehlerbehebung bei der Treibererstellung darf nicht unterschätzt werden. Ich kann nur meine Erfahrungen wiedergeben. Mich würde aber interessieren, wofür du dich entschieden hast. Tschüss Martin
Hallo Martin, ich bin schon verunsichert genug, dafür brauch ich die anderen nicht :) Haben heute das "IAR KickStart Kit for LPC2148" bestellt. Hoffe es kommt die nächsten Tage, damit ich mal versuchen kann ein USB Gerät anzusprechen. Ich muss mal mit meinem Betreuer reden, ob wir nicht einfach einen Tunnel verwenden, d.h. wir suchen und eine bekannte USB Klasse raus und senden über diese Daten. Oder ist es zu unschön eine Lichtschranke als HID Interface zu benutzen? Grüße Nils
@Martin - martin.8435441(at)gmx.at also gut, ich werde mich nochmals mit den FTDI-Dingern beschäftigen. Das mit dem Delay meine ich anders: Wenn eine App auf RS232 programmiert ist erwartet sie ggf. Reaktionen auf Anfragen, ganz änlich wie bei USB. Schaltet man nun einen USB/Seriell-Adapter dazwischen verzögert sich diese Komunikation weil die Anfrage PC -> Gerät länger dauert und die Antwort Gerät -> PC ebenfalls länger dauert. Davon weiss die App aber nix und meldet, falls nicht tolerant genug programmiert, ein timeout. @Nils Langner Nutzt man zur Datenübertragung die HID-Norm dann braucht man PC-seitig keinen Treiber schreiben sondern kann einfach mittels einer Hand voll API Daten übertragen. Die HID-Definition ist deshalb relativ weit gefasst und ermöglicht auch eine schnelle Übetragung zumindest vom Gerät zum PC. Allerdings muss dann der Controller im Gerät dieses Protokol unterstützen. Die meisten Controller-Produzenten liefern deshalb ein HID-Beispielcode den man dann nur noch ändern muss. Kann ich nur empfehlen... Martin
Hallo, ein aktuelles Buch gibt es von Bernhard Redemann. "Steuern und Messen mit USB." www.b-redemann.de Die im Buch beschriebene Hardware vertreibt www.segor.de. Das Buch selber habe ich von Redemann direkt bezogen. Es beschreibt die FTDI Typen FT232BM und Co und auch den FT2232. Wenn man mit englisch so einiger massen klar kommt, so genügt eigentlich auch die FTDI - Doku. Herr Redemann hat ein Buch für den Praktiker geschrieben, dass für Deine Zwecke hilfreich sein könnte. Ich würde die neuesten FTDI - Module mit dem FT232RL empfehlen. Dieser Typ kommt ohne externen Quarz aus. Beim Elektonik Laden findest Du unter http://elmicro.com/de/ft232r.html für 21 Euro ein fertiges Modul. Für 18 Euro gibt es das Mini-Modul MM232R. Der FT232RL kann übrigens wie der FT2232 den synchronen Bit-Bang-Mode. Gruss Klaus.
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.