Ez a fejezet ismerteti az USB Host komponens szoftverstruktúráját, és elmagyarázza annak használatát egy USB Host alkalmazás létrehozásához. Ez a szoftverkomponens csak az MDK-Professional felhasználói számára érhető el.
Az USB Host komponens egyszerűsíti az USB-eszközök csatlakoztatását lehetővé tevő mikrovezérlő rendszerek szoftverfejlesztését. Az USB Host komponens jellemzői a következők:
- Megfelel az USB 2.0 specifikációnak.
- Támogatja az USB Hosthoz csatlakoztatható HID, MSC, CDC és Custom USB eszközosztályokat.
- Támogatja a vezérlési, megszakítási és tömeges átviteli típusokat.
RTE komponensek
A következő ábra az RTE komponensek és a mikrokontroller USB Host perifériájának (USB vezérlő) kapcsolatait mutatja. Az RTE komponensek konfigurációs fájlokat és felhasználói kódsablonokat biztosítanak. A konfigurációs fájlok konfigurálják az RTE komponenseket, a hardver interfészeket, a memória erőforrásokat és az USB Host paramétereit. A felhasználói kódsablonok biztosítják a vázat a különböző USB eszközosztályok támogatásának megvalósításához.
Az USB Hostként működő mikrokontroller alkalmazás létrehozásának lépései a következők:
- Az alkalmazáshoz szükséges RTE komponensek kiválasztása.
- Engedélyezze és konfigurálja az USB Host illesztőprogramot.
- Konfigurálja az USB Hostot, amely összekapcsolja az USB Middleware-t a mikrokontroller USB perifériájával.
- Konfigurálja a rendszer erőforrásait az USB Host komponens erőforrásigényének megfelelően.
- A csatlakoztatott USB-eszközök paramétereinek konfigurálása.
- Az alkalmazáskód implementálása a különböző USB-eszközosztályok támogatásához biztosított kódsablonok segítségével.
- Az alkalmazás hibakeresése az USB-komponens beépített mechanizmusainak használatával.
RTE komponens kiválasztása
Az RTE komponens kiválasztása néhány lépésben történik:
- Az USB komponensből:
- Válassza ki az USB:CORE-t, amely biztosítja az USB kommunikációhoz szükséges alapvető funkciókat.
- Állítsa az USB:Host-ot ‘1’-re. Ez egy USB Hostot hoz létre a csatlakoztatott USB-eszközökkel való kommunikációhoz.
- Válassza ki a kívánt USB-osztályok támogatását (HID/MSC/CDC/Custom Class). Például válassza az USB:Host:HID lehetőséget, hogy csak a HID osztályú eszközöket támogassa.
- A Drivers komponensből:
- Válassza ki az alkalmazásnak megfelelő USB Host illesztőprogramot.
- A Device komponensből:
- A validációs kimenetnek megfelelően további eszközspecifikus illesztőprogramokra lehet szükség.
- A CMSIS komponensből:
- Válassza ki a CMSIS:CORE-t a processzorhoz való alapvető interfész biztosításához.
- Válassza ki az alkalmazáshoz szükséges megfelelő CMSIS:RTOS vagy CMSIS:RTOS2.
USB-illesztőprogram és vezérlő
A mikrokontroller USB host-illesztőprogramját és USB-vezérlőjét megfelelően kell konfigurálni. Ez konkrétan azt jelenti:
- A Drivers Component alatt kiválasztott USB Host Driver jellemzően az RTE_Device.h konfigurációs fájl segítségével van konfigurálva. Bár ez a fájl több lehetőséget is biztosít, általában elegendő az ehhez az illesztőprogramhoz kapcsolódó USB Host periféria engedélyezése. Egyes mikrokontrollerek olyan beállításokat igényelhetnek, amelyek a fizikai réteg interfészhez (PHY), az USB VBUS tápellátáshoz és a túláramvédelemhez kapcsolódnak.
- A mikrokontroller USB-vezérlőjének jellemzően speciális órajel-beállításokra van szüksége. A követelmények megértéséhez olvassa el a mikrokontroller felhasználói kézikönyvét. Alternatívaként lemásolhatja egy USB Host példa beállítását, amelyet különböző értékelőlapokhoz biztosítanak.
USB Host konfiguráció
Az USBH_Config_n.c fájl további beállításokat tartalmaz az adott USB Hosthoz:
- A Driver Number a kiválasztott USB Controller szerint van beállítva. Egyetlen USB eszközvezérlő esetén ez ‘0’ lesz.
- Egyes mikrokontrollerek különböző hardveres vezérlőinterfészeket használhatnak. A helyes beállítás kiválasztásához tekintse meg a kiválasztott mikrokontroller felhasználói kézikönyvét.
A rendelkezésre álló beállítások részletes listáját a Konfiguráció menüpontban találja.
Rendszererőforrás-konfiguráció
A megfelelő működéshez az USB Host komponensnek szüksége van néhány rendszerkonfigurációs beállításra. A követelmények a következők:
- 512 bájt plusz veremméret. Ez az eszköz fájljában (
Stack_Size
) konfigurálható. - Az USB eszközkomponens CMSIS-RTOS szálakat használ. Az RTX v5 használata esetén nincs szükség az RTX-beállítások módosítására, mivel minden erőforrás statikusan kerül kiosztásra. RTX v4 használata esetén a következő beállításokat kell megváltoztatni a fájlban:
- Növelje az egyidejűleg futó felhasználói szálak számát az USB Host által igényelt szálak számával
- Növelje a felhasználói szálak számát.provided stack size by number of threads required by USB Host
- Increase Total stack size for threads with user-provided stack size by size of threads required by USB Host
- Enable User Timers
For more information, tekintse meg az USB Host komponens erőforrásigénye című részt.
Csatlakoztatható USB-eszközök konfigurálása
Az USBH_Config_HID.h, USBH_Config_MSC.h, USBH_Config_CDC.h vagy USBH_Config_CustomClass.h állományban megadhatja az USB Host által támogatott egyidejű USB-eszközök számát. Ez hatással van arra, hogy mennyi memória lesz lefoglalva az alkalmazásban az USB-eszközök csatolására. A Példák azt mutatják be, hogyan kell konfigurálni egy USB Hostot a különböző HID, MSC vagy CDC perifériás eszközökkel való együttműködésre.
User Code Implementation
fájlok funkciósablonokat biztosítanak a különböző USB eszközosztályok támogatásához az USB Hoston. A rendelkezésre álló funkciókat az USB Host komponens Referencia szakasza ismerteti. Ezek a rutinok a mikrokontroller-alkalmazás igényeihez igazíthatók, ha az alapértelmezettől eltérő funkciókra van szükség.
A következő sablonok állnak rendelkezésre az USB Host komponenshez:
Sablon neve | Cél |
---|---|
USBH_MSC.c | Az MSC eszközök támogatásához szükséges funkciók. A sablon itt található. |
USBH_PL2303.c | A Prolific PL2303 USB-soros RS232 adapter támogatásához szükséges funkciók. A sablon itt található. |
USBH_User_CustomClass.c | Szükséges függvények bármely USB eszközosztály támogatásához. A sablon itt található. |
Hibakeresés
Az USB Host komponens könyvtár formájában kerül terjesztésre, és nem teszi lehetővé annak közvetlen kódhibakeresését. Azonban könnyen konfigurálható úgy, hogy hibakeresési eseményeket generáljon, és dinamikus betekintést nyújtson a komponens működésébe.
A következő változatok választhatók ki az USB:CORE szoftverkomponenshez a Manage Run-Time Environment ablakban:
- Debug: ez a változat támogatja az eseményjegyzeteket a és nagyon könnyen elemezhetővé teszi az USB Host Component belső működését az alkalmazás hibakeresése során. Az eseményrögzítő támogatása alább ismerteti, hogyan kell ezt a változatot konfigurálni és használni.
- Release: Ez a változat nem tartalmaz további hibakeresési kódot. Ezt a változatot használja az alkalmazás telepítésekor.
Az alábbi ábra a Debug változat kiválasztását mutatja.
Az USB Host:Debug Events leírja az USB Device Componentben megvalósított eseményeket.
Event Recorder Support
egy hatékony eszköz, amely láthatóvá teszi a program dinamikus végrehajtását.
Az USB Host komponens a hibakeresési események széles körét generálja az eseményrögzítő számára, és megvalósítja a szükséges infrastruktúrát az interfészhez.
Az eseményrögzítő használatához szükséges egy olyan kép létrehozása, amely támogatja az eseménygenerálást. A szükséges lépések a következők:
- : az RTE kezelési párbeszédpanelen válassza ki az USB:CORE szoftverkomponens Debug változatát.
- : az RTE kezelési párbeszédpanelen engedélyezze a Compiler:Event Recorder szoftverkomponenst.
- Győződjön meg arról, hogy az Event Recorder inicializálása lehetőleg a CMSIS-RTOS2 RTX v5 használata esetén, vagy alternatívaként az alkalmazáskódban lévő funkció meghívásával történik.
- Eseményrögzítő konfigurációja: ha szükséges, állítsa be az eseményrögzítő alapértelmezett konfigurációját.
- Készítse el az alkalmazáskódot, töltse le a célhardverre, és indítsa el a hibakeresési munkamenetet.
Most, amikor az USB Host eseményinformációt generál, az megtekinthető a .
Event Recorder konfigurációja
Ez a szakasz az eseményrögzítő konfigurációs beállításait ismerteti. A használathoz az USB:CORE szoftverkomponens hibakeresési változata szükséges; további információkért lásd az Eseményrögzítő támogatása című fejezetet.
USB eseménygenerálás konfigurációja
Az USB:CORE hibakeresési változat kiválasztásával a USB_Debug.c
fájl hozzáadódik a projekthez. Ezzel a fájllal külön-külön beállíthatja az USB-mag, az illesztőprogramok és az eszközosztályok eseménygenerálási konfigurációját. A fájl elérhető az USB Device és Host komponensekhez.
A következő beállítások állnak rendelkezésre az egyes modulok eseménygenerálási konfigurációjához:
- Off azt jelenti, hogy a modul nem generál eseményeket
- Errors azt jelenti, hogy a modul csak hibaeseményeket generál
- Errors + API azt jelenti, hogy a modul hiba és API-hívás eseményeket generál
- All azt jelenti, hogy a modul minden elérhető eseményt generál. Ez a hiba- és API-hívási eseményeken kívül működési és részletes eseményeket is tartalmaz.
Eseményazonosítók
Az USB Host komponens a következő eseményazonosítókat használja:
komponens | eseményazonosító |
---|---|
USBH_Core | 0xB0 |
USBH_Driver | 0xB1 |
USBH_CC. | 0xB2 |
USBH_CDC | 0xB3 |
USBH_HID | 0xB4 |
USBH_MSC | 0xB5 |