Hardware Reference
In-Depth Information
rochip verwendet wird. Mit diesem Demo-Board und dem kleinen Anwendungs-
programm „PDFSUSB.exe“ auf der Host-Seite kann eine Kommunikation via USB
praktisch erprobt werden. Das gesamte Projekt samt Programmcode kann von der
Microchip-Website heruntergeladen werden. Der Projekttitel lautet „MCHPFSUSB
v1.2 USB Framework“. Einem Firmware-Entwickler kann es durchaus weiterhelfen,
sich die Quellcodes der Beispielprogramme anzusehen, um sich über die Funk-
tionsweise der USB-Schnittstelle des PIC18F4550 klar zu werden, besonders wenn
es darum geht, nicht in der PIC18F4550-Dokumentation beschriebene Phänomene
entschlüsseln zu können. Soweit derartige Phänomene für das Beispielprojekt von
Belang sind, werden sie allerdings auch in diesem Buch abgehandelt. Ein wesent-
licher Unterschied zwischen dem MCHPFSUSB v1.2 USB Framework und der für
dieses Buch entwickelten Software ist, dass alle Programmteile, die mit USB-Kom-
munikation zu tun haben, im Beispielprojekt dieses Buchs per Interrupt durchlau-
fen werden. Im USB Framework von Microchip erfolgt der Programmablauf im
Polling-Betrieb. Im Buch wurde die Interrupt-Variante gewählt, weil im Gegensatz
zum Microchip-Beispiel recht viel Programmlaufzeit für die eigentliche Anwen-
dungssoftware, nämlich die Steuerung der Gerätefunktionen, verbraucht wird.
Deswegen würde die USB-Schnittstelle seltener bedient werden, wenn sie im Polling
auf Ereignisse abgefragt würde, was zu größeren Latenzzeiten in der Datenübertra-
gung führen würde. Im Folgenden werden Transaktionen in Control Transfers
beschrieben. Vorweg sei erwähnt, dass nach Beendigung einer jeden Transaktion ein
Interrupt erfolgt. Dieser Transaction Complete Interrupt führt zum Aufruf eines
Unterprogramms, in dem nach der Art der Transaktion gefragt und die jeweils ent-
sprechende Reaktion des Geräts veranlasst wird.
5.7 Transaktionen in Control Transfers
Eine Transaktion im Allgemeinen ist die vollständige Übertragung von Daten aus
einem OUT Endpoint in einen IN Endpoint, unabhängig davon, ob die Daten vom
Host zum Gerät übertragen werden oder umgekehrt. Da Control Endpoints im
Unterschied zu allen übrigen Endpoints bidirektional sind, unterscheidet man Trans-
aktionen in Control Transfers als SETUP Transactions, Data Transactions und Status
Transactions [USB 2.0: 5.11.2]. In einem PIC18F4550 bekommt man das Ende einer
Transaktion gemeldet, indem das TRNIF (Transaction complete Interrupt) Bit im
UIR (USB Interrupt Status) Register auf 1 gesetzt wird. Per Software muss untersucht
werden, welcher Art diese Transaktion war und ob sie zu einem Control Transfer IRP
gehört hat oder nicht. Je nach Lage der Dinge müssen dann die richtigen Maßnah-
men für das Empfangen oder Senden der nächsten Transaktion ergriffen werden. Was
das im Einzelnen bedeutet, soll nachfolgend dargestellt werden.
Search WWH ::




Custom Search