Gecko3 - CCC Event Weblog
Gecko3 - CCC Event Weblog
Gecko3 - CCC Event Weblog
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
6. Firmware<br />
• Ezusb.lib enthält eine Sammlung von Funktionen wie das Lesen und Schreiben des I 2 C<br />
Buses etc.<br />
• USBJmpTb.obj beinhaltet die Interrupt Vector Tables für das USB (INT2) und das<br />
GPIF (INT4).<br />
• Dscr.a51 definiert die gesamten USB Descriptor Tables.<br />
6.2. USB organisation<br />
Der gesamte Datenaustausch läuft bei USB über sogenannte Endpoints (EP). Diese Endpoints<br />
sind mit einer Ausnahme alle unidirektional und ermöglichen einen voneinander unabhängigen<br />
Datenfluss. Der Endpoint 0 ist für Steuerfunktionen, sogenannte Vendor Requests,<br />
reserviert und bidirektional. Die folgende Aufliestung gibt einen Überblick über die<br />
von uns verwendeten Endpoints. Um mehr Informationen zum Thema USB zu erhalten,<br />
verweisen wir auf die einschlägige Literatur [Hyd99], [Cyp06].<br />
• EP0 wird als IN/OUT Endpoint benutzt und ist für Vendor Requests reserviert.<br />
• EP2 ist als OUT Endpoint konfiguriert und wird für alle Datentransfers ausser der<br />
Kommunikation mit dem FPGA verwendet<br />
• EP4 hat die selbe Aufgabe wie EP2 nur als IN Endpoint in die entgegengesetzte Richtung.<br />
• EP6 ist der OUT Endpoint der FPGA Kommunikation und direkt mit dem GPIF<br />
verbunden.<br />
• EP8 hat die selbe Aufgabe wie EP6 nur als IN Endpoint in die entgegengesetzte Richtung.<br />
EP2 und EP4 sind dabei als Interface 0 und EP6 und EP8 als Interface 1 definiert. Im<br />
Kapitel 7 wird das Thema Interfaces ausführlich erklärt. Die Endpoints werden im Bulk-<br />
Transfer Modus betrieben. Bulk-Transfers sind für grosse Datenmengen gedacht, die jedoch<br />
nicht zeitkritisch sind. Diese Eigenschaften sind am besten für unsere Verwendung geeignet<br />
und schliessen die anderen Transferarten aus. Jeder Endpoint ist dabei so konfiguriert, dass<br />
er einen zweimal 512 Byte grossen Buffer besitzt. In diesem Abschnitt ist mit Endpoints<br />
jeweils EP2, EP4, EP6 und EP8 gemeint. Im Technical Reference Manual von Cypress<br />
[Cyp06] können die Konfigurationsmöglichkeiten der Endpoints nachgeschlagen werden. Die<br />
Abbildung 6.1 gibt noch einmal einen gesamt Überblick über die Endpoints und deren Konfigurationen.<br />
18 Matthias Zurbrügg