Forum: Offtopic Welches Buch für USB ?


von Thorsten (Gast)


Lesenswert?

Hallo,

ich möchte mich intensiver mit USB beschäftigen und suche gute
Literatur zu dem Thema. Natürlich gibts die Spezififkation, doch die
überfordert mich teilweise etwas. Ich habe jedoch festgestellt, daß bei
dem Thema immer wieder folgende Bücher erwähnt werden:

1)
USB Complete: Everything You Need to Develop Custom USB Peripherals
Jan Axelson
scheint wohl DIE Bibel zu sein

2)
USB 2.0 Handbuch für Entwickler
Jan Axelson
deutsche Übersetzung von 1) ?

3)
USB 2.0 und USB 1.1
Hans-Joachim Kelm

Kennt jemand diese Bücher oder gibts Alternativen bzw. was würdet ihr
empfehlen?

Gruß
Thorsten

von René König (Gast)


Lesenswert?

Meiner Meinung nach ist 2) das Buch, wenn es um den USB geht. Danach
kannst Du auch locker die Specification lesen. Buch 3) habe ich auch
hier, aber das war rausgeschmissenes Geld.

Im Übrigen ist 2) tatsächlich nur die Übersetzung von 1), aber sehr gut
gelungen (IMO).

von T.Stütz (Gast)


Lesenswert?

zu 1)
USB Complete: Everything You Need to Develop Custom USB Peripherals
Jan Axelson

Hab ich, ist ok, behandelt alles was nötig ist

zu 2+3) kenn ich nicht

Ich dann noch:

USB Design by Example
John Hyde
ISBN 0-471-37048-7

einfach geschrieben , behandelt nicht nur das Gerät
sondern auch das drumherum

Gruss

von Rufus T. Firefly (Gast)


Lesenswert?

Um einen Überblick zu erlangen "Hyde - USB Design by Example".
Ist aber in Details und vor allem, wenn es um reale Beispiele geht, arg
dürftig. Obendrein ist zumindest mein Exemplar im doppelten Sinne des
Wortes ziemlich angestaubt - es ist recht alt, beschreibt nur USB1.1
und kennt so gut wie keinen derzeit üblichen USB-Controller.
Auf meinem ist daher auch eine physikalische Staubschicht ...

Partiell hilfreich sind sicherlich auch die Dokumentation und
Application notes zum ExUSB-Controller von Cypress (früher
AnchorChips), den gibt es schon recht lange und es wird nach wie vor
recht viel damit entwickelt.

In etwa in welche Richtung geht Dein Interesse? Möchtest Du eher
allgemein wissen, was mit USB möglich sein kann, interessiert Dich die
Treiberentwicklung für Host-Rechner (Windows/Linux/Mac) oder
interessiert Dich die Entwicklung von USB-Devices?

von Thorsten (Gast)


Lesenswert?

Danke für eure Antworten.

@Rufus

Ich spiele zur Zeit etwas mit dem PIC18F4550. Auf Basis des
HID-Referenzdesigns von Microchip kann ich jetzt schon Text auf ein LCD
ausgeben und LEDs toggeln :) Aber so wirklich viel verstanden habe ich
von dem ganzen Kram nicht. Leider ist HID sehr langsam, mehr als ein
paar hundert Byte/s gehen wohl nicht. Aber da fängt es schon an: warum
geht nicht mehr? Also m. a. W. ich möchte ein umfassendes Verständnis
bekommen, so das ich dann in der Lage bin, ein USB-Device zu
entwickeln, welches USB auch eineigermaßen sinnvoll ausnutzt. Dazu
gehört dann auch die Treiberentwicklung auf PC-Seite (WinXP). Nur ich
denke, es macht keinen Sinn  mit Treiber anzufangen, wenn man die
Hardware nicht verstanden hat. Ich habe einfach zu viele
USB-Bruchstücke im Kopf, die ich nicht geordnet bekomme :)

Als erstes Device dachte ich an eine MP3-Box mit nem PIC18F4550 und
einem VS1001 drin, der dann über USB seine Streams bekommt. Naja, was
besseres ist mir jetzt nicht eingefallen. Hab dafür alle Bauteile und
ist mal ein erster Anfang. Da könnte ich dann auch mal den isochronen
Transfer ausprobieren :))

@All

Ich freue ich auf weitere Buchempfehlungen.

Gruß
Thorsten

von René König (Gast)


Lesenswert?

> Leider ist HID sehr langsam, mehr als ein paar hundert Byte/s gehen
wohl nicht.

Da gehen 8 Byte alle 10 ms bei Low-Speed Geräten oder 64 Byte pro ms in
Full-Speed Geräten.

Ich sehe das aber auch so: Bevor Du einen Treiber programmierst, mußt
Du wissen, wie der USB funktioniert. Ich bleibe dabei: Mit Axelsons
Werk bist Du sehr gut bedient. Das Thema HID behandelt er übrigens
ausführlichst.

Treiberprogrammierung kommt in allen mir bekannten USB Büchern jedoch
nicht vor; das ist wieder ein Thema für sich. Das Werk dazu ist aber
das Buch 'Microsoft Windows Driver Model' von Walter Oney (davon gibt
es AFAIK keine Übersetzung).

@Rufus
Setzt Du die Cypress Dinger selbst ein? Die werden hier ja nun des
öfteren empfohlen, und ich schaue auch jedesmal bei Cypress rein. Aber
wie ich das sehe, haben die noch nichtmal FLASH. Das heisst dann doch
für mich, daß ich entweder grundsätzlich einen Treiber mitliefern
(selbst für HIDs) oder aber, wie vor Jahren, mit externen Speicher
hantieren muß. Zum Thema Debuggen finde ich irgendwie auch nicht so
recht was passendes, und darauf möchte ich eigentlich nicht mehr
verzichten. Was zeichnet diese Bausteine denn aus, was haben die für
Vorteile?

von Rufus T. Firefly (Gast)


Lesenswert?

Nein, mit den Cypress-Controllern habe ich selbst nur am Rande mal etwas
herumgespielt. Für eine komplette Neuentwicklung -auch gerade in
Hinsicht auf das Debuggen- würde ich mir die Teile auch nicht unbedingt
antun wollen; der MCS51-Kern hat ja auch so seine Grenzen.
Vorteile sehe ich in der Verfügbarkeit und dem recht geringen Preis.
Und der Tatsache, daß es die Teile schon 'ne ganze Weile lang gibt und
also einiges an Erfahrung darüber zu finden ist. Und wer schon immer
MCS51 programmiert, dem gefällt's halt, weil vertraut.

Eine interessante Alternative gibt es von Atmel; die
AT91SAM7xxx-Familie hat einen ARM7-Kern, 64 bis 256 kByte Flash-ROM, 16
bis 64 kByte RAM, diversem Kleinkram und eben einem
USB-Devicecontroller.
Der ARM7-Kern lässt sich über das JTAG-Interface sehr schön debuggen;
es gibt brauchbare Compiler für ARM7 und obendrein gibt es auch noch
ein bisschen mehr Rechenleistung (ist halt ein 32-Bit-Prozessor).
Allerdings ist diese Prozessorfamilie (die spezifische Atmel-Variante,
nicht der ARM7) noch sehr neu; welcher Händler die bereits verkauft,
entzieht sich meiner Kenntnis.
Olimex jedenfalls hat vor, eine Entwicklungsplatine mit diesem
Prozessor herauszubringen.

von René König (Gast)


Lesenswert?

Oh ja, die schauen sehr interessant aus! Die sind mir auf der
Atmel-Seite noch gar nicht richtig aufgefallen. Die werde ich
garantiert noch genauer unter die Lupe nehmen.

USB-51er gibt es zwar auch von anderen Herstellern, aber das Argument
mit dem Preis zieht. Daran habe ich gar nicht mehr gedacht. Ich verbaue
aber auch nicht millionen von Controllern im Jahr.  :-)

von Rufus T. Firefly (Gast)


Lesenswert?

Von Atmel gibt es übrigens auch Flash-lose AVRs (AT76C712/713*) mit
USB-Device-Controller. Bei denen läuft das Programm im RAM, das ähnlich
den EzUSB-Chips per USB-Bootloader oder aus einem externen EEPROM
geladen wird. Netter Abfalleffekt ist hier die deutlich höhere
Geschwindigkeit (48 MHz) im Vergleich zu flashbasierten AVRs (RAM ist
deutlich schneller als Flash-ROM).
Nein, die Harvard-Architektur bleibt auch bei diesen Teilen
unangetastet; das Programm-RAM ist nach dem Laden per Bootloader wie
gewohnt unantastbar und liegt in einem anderen Adressraum als das
normale RAM.
Ein JTAG-Interface haben diese Teile übrigens auch.

Allerdings ist auch hier die Frage der Bezugsquelle mehr als
ungeklärt.



*) http://www.atmel.com/dyn/products/product_card.asp?part_id=3579

von Thorsten (Gast)


Lesenswert?

Was hat das jetzt mit Bücher über USB zu tun? :)

von René König (Gast)


Lesenswert?

> Was hat das jetzt mit Bücher über USB zu tun? :)

Man muß auch mal abschweifen dürfen. :-)

Aber im Ernst: Gesagt ist alles. Aktuelle Bücher für den USB gibt es
halt nicht wirklich viele. Die Franzis-Werke sind IMO nicht gelungen,
Axelson ist großartig und 'USB Design by example' ist nett, aber
nicht wirklich tiefgründig. Auch der Verweis zu den AppNotes der
Hersteller kam, und die sind durchweg erstklassig.

Aber da fällt mir ein: Wenn Du nicht lesen möchtest, kannst Du Dir auch
'Universal Serial Bus System Architecture' anschauen:
http://www.amazon.de/exec/obidos/ASIN/0201309750/qid=1113468985/sr=1-1/ref=sr_1_0_1/302-5808579-9631266

Das Buch ist auch nicht so der Bringer, aber das Video auf der CD ist
spitzenmäßig. Der Autor erklärt Dir dann in ca. 1.5 h den USB.  ;)

@Rufus
Diesen hatte ich auch schon entdeckt. JTAG hat der zwar, aber der mir
vorliegende mkII unterstützt diesen Typen schonmal nicht. Und das mit
dem RAM gefällt mir irgendwie auch nicht. Da macht der ARM schon einen
wesentlich besseren Eindruck. :)

Kaufen können werde ich den hoffentlich beim Distributor. Wenn die den
nicht besorgen können, wer dann?

BTW: Momentan habe ich den F320 von SiLabs im Einsatz:
http://www.silabs.com/tgwWebApp/appmanager/tgw/tgwHome?_nfpb=true&_pageLabel=GenericContentPage&contentObjectId=/public/web_content/products/Microcontrollers/USB/en/USBMCU_matrix.htm

Der hat alles, was ich im Moment brauche: Full-Speed USB, FLASH, ich
kann den debuggen (benötigt nur zwei PINs: 1x Reset, 1xPort-Pin
(letzterer kann aber auch während der Debug-Sitzung genutzt werden,
wenn man aufpasst)), ist rasend schnell, benötigt nur ein absolutes
Minimum an externer Beschaltung (noch nichtmal ein Quarz, trotz USB)
und kommt nicht mit so einem Wahnsinnigen Pincount daher. Nur leider
gibt es von SiLabs keinen Ableger mit etwas mehr PINs, da scheint mir
der ARM gerade recht zu kommen. Mal sehen, was der Sommer so bringt. :)

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.