Avr287 demonstrációs host USB HID és USB háttértár, avr dolgozó-with-usb, programozás
Translation adatlap AVR287 [1] Az Atmel, leírja a példa a fogadó eszköz USB HID (billentyűzet, egér, és az egyéb beviteli / kimeneti eszközök) és USB-tároló (flash meghajtók, külső merevlemezek). Egyéb példák a fogadó a AVR USB chip megtalálható a LUFA könyvtárban [2].
• A példa alapján a könyvtár AVR® USB OTG Csökkentett Host
• Működik a chips AT90USB647 / AT90USB1287
• Támogatja a letölthető és nem letölthető szabványos USB egér
• USB hub funkció (csak az USB Mass Storage eszközök Storage)
• Mass Storage:
- feldolgozott rövidített blokk parancsokat (Csökkentett blokk parancsok, RBC)
- SFF-8020i feldolgozott blokk parancs vagy MMC-2 (ATAPI)
- jellemzően a UFI, külső hajlékonylemez-eszköz (floppy disk, FDD)
- feldolgozó egység parancsok SFF-8070i
- Átlátszó SCSI parancs készlet

Ábra. 1-1. fogadó alkalmazás HID és Mass Storage
Most már egyre több perifériás eszközök csatlakoztatására használhatók USB interfész. A rendelkezésre álló gazda funkciók beágyazott alkalmazások lehetővé teszi számukra, hogy támogassák interakció szabványos USB-eszközt, és az ilyen kérelmet kap nagy előnye a piacon. E dokumentum -, hogy leírja, hogyan kell kezdeni a végrehajtását USB host alapuló alkalmazások USB HID (USB egér) Class osztályú és USB Mass Storage (adattároló eszköz, flash drive, külső meghajtó). A végén egy egyszerű példát egyidejű vezérlését mikrokontroller AT90USB (sorozat chipek Atmel Series-7 támogatásával USB) eszköz osztályok USB HID és USB Mass Storage, a támogatást a fájlrendszer (FAT12 / FAT16 / FAT32). Magától értetődik, hogy a felhasználó ismeri az AVR USB firmware keretében Atmel, valamint HID és MassStotage szabványok, amely megtalálható az oldalon usb.org.
Példa indításához az ajánlott díjat USBKEY, hanem alkalmazható bármely más tábla, melyen van szerelve egy mikrokontroller vagy AT90USB647 AT90USB1287 (például userial [3]).
[2.1 Egy kis elmélet: hogyan osztályú USB HID]
2.1.1. A konfiguráció a HID. Osztályú USB HID eszközt igényel kontroll végpont (Ctrl végpont, ep0. Szigorúan véve, a jelenléte az ilyen egy végpont szükséges minden olyan eszköz USB), egy végpont megszakítás (az átvitel az USB-eszközről adatokat a gazda) és egy választható végpont Megszakítás OUT (adatátvitelt a gazdától az USB-eszköz). Ep0 általában vett részt benne csak az USB eszköz felsorolás folyamatot. Endpoint megszakítás IN úgy tervezték, hogy továbbítja jelentés az USB-eszközt a gazda (fő közlekedési egér leírja a kurzort, és a gombra kattintva). Endpoint megszakítási OUT továbbítására használjuk jelenteni OUT (pl a csapatok a fény a kívánt LED NumLock, a CapsLock, ScrollLock a billentyűzeten), a gazdától az USB-eszközt. A szabvány szerint egér USB szükség van egy vezérlő végponti Ctrl végpont, ep0 és egy végpont megszakítás.
2.1.2. Adatátvitel. Függelék USB HID (USB egér) használ egy egyszerű közötti adatcsere a fogadó és az egeret. Host-kutatások az egér rendszeres időközönként P (lekérdezési időközt, a lekérdezési intervallum) jelenlétére vonatkozó új adatok, valamint az egér válaszként elküldi az adatokat, ha van, különben küldi a NAK token (No nyugtázás), hogy elmondja a gazda, hogy az adatok még. Küldött adatok a fogadó, az úgynevezett jelentés. Valójában ez csak egy blokk byte egy bizonyos formátumban. A szerkezet a jelentés az alábbiakban látható:
[2.2. Egy kis elmélet: milyen az USB Mass Storage Class]
2.2.1. Configuration Mass Storage. Az alkalmazás egy Mass Storage 2 végpontok típusú ömlesztett (egy másik OUT) végrehajtására adatátvitel és állapotát. Endpoint 0 (Ctrl végpont, ep0) kizárólag olyan felsorolás, a hibakezelés, és annak érdekében, hogy meghatározzák az érték a LUN (logikai egység száma).
2.2.2. Adatátvitel. Kommunikáció USB Mass Storage kérelem alapja az SCSI parancsokat. Más szóval, a Mass Storage alkalmazás vezérli egy sor SCSI parancsokat a fogadó, hogy ellenőrizzék a fájlok. Mivel a LUN Mass Storage osztály segítségével egyetlen eszköz segítségével egyszerre több tároló.

Ábra. 2-2. Áttekintése USB Mass Storage alkalmazás. Mivel a gazda rendszerint értékű számítógép, de ugyanebben a példában a gazda fog működni a demonstrációs tábla mikrokontroller AVR.
Sajnos SCSI protokoll túlságosan bonyolult, ezért úgy kell tekinteni, e cikk keretében. További információkért tekintse meg a szokásos „USB Mass Storage Class Bulk-Only Transport leírás” a usb.org oldalon.
[3. Software Architecture Atmel]
Az alábbi ábra azt mutatja, az építészet, a fogadó firmware HID és Mass Storage, ahol a megjelenő kódot fájlokat a projektben használt.

Ábra. 3-1. Építészet Host HID és Mass Storage.
Kezelési osztály HID (egér) van megvalósítva host_mouse_task.c modul, míg a támogatási osztály Mass Storage végre host_ms_task.c modult. Ütemező (nevezett eljárás folyamatosan egy végtelen hurok fő) periodikusan okoz usb_task szubrutin (void), host_mouse_task (void) és host_ms_task (void). A művelet a három alábbi funkciók közül.
• usb_task (void)
- USB mód érzékelés.
- Számlálás USB / USB host eszköz.
• host_mouse_task (void)
- Ez ellenőrzi, hogy az egér csatlakoztatva.
- Adatok érkeznek az egeret, és végrehajtja a felhasználói alkalmazás.
- Ellenőrzi a shutdown a gazdaegér.
• host_ms_task (void)
- Ellenőrzi, hogy Mass Storage tároló eszköz van csatlakoztatva.
- Végrehajtja a felhasználói alkalmazás.
- Ellenőrzések letiltása Mass Storage eszközt a gazda.
Ha egy USB-eszköz van csatlakoztatva a fogadó felsorolás eljárás indul. Rövid felsorolás lehet leírni, mint egy azonosítási folyamat a fogadó USB eszközöket. Ha a firmware ad otthont USB interfész kapcsolatot a készülék alacsony szinten, akkor ellenőrizni kell felelni a készülék kezeli a támogatott interfészek (lista meghatározott conf_usb.h fájl), majd az eljárás host_mouse_task () és host_ms_task () megjelenik egy értesítés csatlakozás (Is_new_device_connection_event () makró return true).
Az aktuális szám elfogadott eszközök fogják vissza Get_nb_device (), ha ez engedélyezett USB_HUB_SUPPORT conf_usb.h opciót a fájl, és a számos interfész fogadható vissza Get_nb_supported_interface () függvényt. Minden egyes interfésze esetében minden eszköz lehetséges programozott hozzáférést a kódok az osztály, alosztály és protokoll révén Macro get_class (i), Get_subclass (i) és Get_protocol (i).
A program ellenőrzi -, hogy a csatlakoztatott eszköz támogatja a felületen az osztály, és ha az interfész eszköz elfogadott, a program beállítja a csatorna funkció vagy host_auto_configure_endpoint User_configure_endpoint (), attól függően, hogy, HOST_AUTO_CFG_ENDPOINT conf_usb.h opciót a fájl legyen az engedélyezett vagy nem.
Ha a beállítás kész, a fogadó küldi Set_configuration () kérelmet, az USB-eszközt, és megy az állami DEVICE_READY (USB-eszköz készen áll a munka).
Egér gazda feladata, ha értesítést kap a kapcsolat, az osztály és a protokoll ellenőrizte, hogy az egér csatlakoztatva. Ha igen, a probléma feloldása IN csatorna, és előkészíti azt az adatátvitelhez. Az alábbiakban a megfelelő kódot kimutatására egér gazda HID:
Ha a feladat háttértároló esemény fogja látni a kapcsolat az új eszköz, hogy támogassa a képessége támogatja több adattároló eszköz úgy néz ki, minden egyes felület minden eszköz. Ha az aktuális interfész tartozik tömegtároló, akkor a jelenlegi tárolt index készülék tömb eszközök tömegtároló DMS [n] és a eszközök maximális számát beírjuk a változó dms_connected. Ezután a feladat beállítja a csatorna és a csatorna OUT, és elindítja az összes USB-meghajtók (Mass Storage Device). Az alábbiakban kód detektálására számos háttértár.
3.2.1. A feladat a fogadó HID, együttműködve az egérrel. Ha az egér csatlakoztatva van, akkor a probléma minden alkalommal először ellenőrzi, hogy érvényes IN csomagot kapott. Ha az adatok rendelkezésre állnak, a program beolvassa az adatokat Host_read_byte () függvény és végrehajt egy algoritmust feldolgozás a felhasználói műveletek (mit kell tenni, hogy kezelni az új adatokat az egérkurzor és a billentyűk). Ezt követően a fogadó parancsot küld IN-Host_read_byte () függvény, akkor a feladat kész fogadni a következő adatcsomag. Az alábbiakban a kód kezelésére a gazda adatait az egeret. Jelezve LED Led3..Led0 állapotát jelzi az egér adat (utánozza felhasználói alkalmazás).
egér adatfeldolgozási műveletek végrehajtására csak demonstrációs célból - irányától függően a kurzor megy be és ki más-jelző LED-ek USBKEY fórumon. A felhasználó használhatja ezt a funkciót „ahogy van”, de valójában ezen a ponton kell lennie a kezelő az adatokat a képre (felhasználói alkalmazás).
3.2.2. fogadó feldolgozási feladatok Mass Storage. Mint már korábban említettük, a Mass Storage alkalmazás egy sor SCSI parancsokat küldeni a fogadó, hogy támogassa az olvasás és írás a lemezre fájlok MSD. Alapvető adatátvitel végezzük host_get_data () és host_send_data (). A felhasználói alkalmazás végre kell hajtania egy kódoló SCSI protokoll fájlrendszer dekóder (lásd. Apnout AVR114 [5]).
Mindez elmélet tűnhet ijesztő, ezért itt egy egyszerű példa, akkor gyorsan próbálja végrehajtási USB host USB HID class, és az USB Mass Storage.
Ebben a konfigurációban az értékelő testület először csatlakozik egy számítógép az USB interfészen keresztül, a munka, mint egy tárolóeszköz USB Mass Storage eszközként, amelyben a minta adatokat. Ezután az értékelési tábla ki van húzva a PC, és csatlakozik a tárolóeszköz Mass Storage (USB flash drive), hogy megmutassa az átadása Mass Storage adatokat. Azt is csatlakoztatható egy szabványos USB egeret a demo ellátás,
megmutatni a munkát a fogadó alkalmazás, amely feldolgozza protokoll USB HID egér.
Függelék host USB HID és Mass Storage lehet végrehajtani olyan AVR, ami egy hardver interfész a host funkciót a szoftvercsomag elérhető Atmel weboldalán.
Kb. Translation: valójában „a AVR minden” túl hangosan. Tény, hogy a számos AVR chipek, amelyek támogatják a funkciója a gazda, nagyon korlátozott - ez csak egy család AVR USB Series7, amely magában foglalja a 2 chip: AT90USB647 és AT90USB1287. Az ok nyilvánvaló -, hogy támogassa egy sor minőségi jellemzők igényel sokkal több memóriát és a teljesítmény, mint áll a klasszikus AVR.
Mindkét szoftver csomag lehet futtatni álló starter bálnák. Abban az időben az írás támogatási csomagok HID gazda és gazda Mass Storage lehet futtatni STK525 táblák és USBKEY (ahol chips vagy AT90USB647 AT90USB1287 telepítve van). Készülék USB háttértároló, amely össze van kötve a fogadó Mass Storage, lehet bármilyen hagyományos USB memory stick, vagy egy starter-kit, működő USB Mass Storage eszközként (lásd. [5, 6]).
fogadó fedélzeten kell dolgozni host mód (csatlakoztatva csatlakozó Miniá). A kártya a hosztmódban igényel konfigurálására és csatlakozó külső tápegység. Az ok nyilvánvaló - a fogadó tábla igénylő élelmiszerek, valamint az USB-eszköz (egér HID vagy Mass Storage Device) igényel tápfeszültséget USB-n keresztül.
[4.3. Szoftver]
4.3.1. Job Description. A probléma a gazda feldolgozó protokoll USB HID egér, ha a készülékhez egy szabványos USB egeret a demo board, majd az egér mozgatásával jelenítse meg a gyújtás LED demo board LED3..LED0. Miután letette a felsorolás, a rendezvény fogadására IN csomag jelenik meg, amikor az egeret mozgatjuk, hogy mikor lesz nyomva. Host szól egér adat az USB interfészen keresztül. Mozgás a X tengely vezérli és égési LED0 LED1 (ha X> 0 fordul LED0, ha X <0 включится LED1), а по оси Y перемещение будет отображаться горением LED2 и LED3 (при Y> 0 bekapcsol LED2, ha Y <0 включится LED3).
A probléma az USB Host Mass Storage gazda egyszer át felsorolás MSD eszköz lehet fájlcsere között rögzített adatok a flash-meghajtó host kártya (memória chip van szerelve a fedélzeten), és az USB MSD készülék. A jobb oldalán a joystick segítségével olvasni a mappa tartalma „OUT” az USB-eszközön MSD, és írd ki a flash-meghajtót fogadó kártya a mappában „IN”. Ezzel szemben, a bal oldalon a joystick segítségével felülírja az adatokat az ellenkező irányba, a DataFlash chip lemez USB MSD készülék.
4.3.2. Konfigurációt. Néhány paramétert kell egyedileg konfigurálható minden típusú mikrokontroller megfelelő működésének biztosítása érdekében a USB host kódot. nem szükséges módosítani az alapvető kódot a szoftver, akkor kell beállítani, hogy az értékek az alábbiakban ismertetjük.
• A konfigurációs USB, a conf_usb.h file:
- lehetővé kell tenni USB_HOST_FEATURE lehetőség USB host funkciót.
- USB_DEVICE_FEATURE engedélyezni kell a lehetőséget, hogy csatlakozzon a PC számítógépen.
- A tömb kell tartalmaznia VID_PID_TABLE VID és PID értékeket támogatott készülékek, ha megengedett HOST_STRICT_VID_PID_TABLE opciót.
- CLASS_SUBCLASS_PROTOCOL tömb kell tartalmaznia osztály HID class egér protokoll. Ahhoz, hogy támogatja a szabványos USB egerek felveendő letölthető (indítható) és letölthető (nem indítható) alosztályok, és hogy támogassa az USB MSD eszközöket kell csatlakoztatni interfész Mass Storage (Mass Storage osztály, SCSI alosztály, csak ömlesztett Protocol). Mindezek az elemek osztály / alosztály / protokoll hozzá kell adni a felhasználó, ha a használni kívánt HUB.
- Lehetővé kell tenni USB_HUB_SUPPORT opciót, ha azt szeretné, hogy több eszközt használ USB MSD.
- HOST_STRICT_VID_PID_TABLE opció vagy engedélyezett vagy tiltott. Hogy támogassa a különböző termékeket különböző gyártók ajánlott tiltani ezt a makrót.
• A konfigurációs USB Mass Storage:
- Lehetővé kell tenni HOST_SYNC_MODE opciót a config.h fájlt a program futtatásához például USB Mass Storage host.
• AVR USB termékek Adatlap (atmel.com)
• USB HID Class (usb.org)
• USB Mass Storage Class (usb.org)
Itt van egy átirat valami homályos kifejezések és rövidítések. Más fogalmak kapcsolódó USB szabvány (végpont jelentés felsorolás, és így leírások. D.), lásd. Cikk USB dióhéjban [4].
ATAPI Advanced Technology Attachment Packet Interface, busz szabvány a számítógépes adatok tárolására. A részleteket lásd. Wikipedia.
DMS Device Mass Storage USB tároló eszköz.
MMC-2 MultiMedia Card 2-es verzió, hogy milyen felület csatlakoztatásához Memory flash-kártya.
MSD Mass Storage Device, USB tárolóeszköz, ugyanaz, mint a DMS.
OTG On The Go, a szó szerinti fordítása "on the fly". Jelentése USB interfész, amely lehet működtetni USB host mód és USB-eszköz módban.
RBC Csökkentett blokk parancsok egy részét a szabványos SCSI parancsokat.
SCSI Small Computer System Interface, standard típusú interfész csatlakozó külső tárolóeszközök és az önálló címmel rekordot.
SFF-8020i szabvány csatlakozó CD-ROM / DVD eszközök alapján az ATA / ATAPI interfésszel.
SFF-8070i szabvány összekötő írási / olvasási eszközök floppy lemezek.
UFI Universal fájl interfész, standard csatlakoztatására írási / olvasási eszközök floppy lemezek.