Alkalmazás létrehozása

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.

usb_host_blocks_config_files.png

USB Host felépítése

Az USB Hostként működő mikrokontroller alkalmazás létrehozásának lépései a következők:

  1. Az alkalmazáshoz szükséges RTE komponensek kiválasztása.
  2. Engedélyezze és konfigurálja az USB Host illesztőprogramot.
  3. Konfigurálja az USB Hostot, amely összekapcsolja az USB Middleware-t a mikrokontroller USB perifériájával.
  4. Konfigurálja a rendszer erőforrásait az USB Host komponens erőforrásigényének megfelelően.
  5. A csatlakoztatott USB-eszközök paramétereinek konfigurálása.
  6. 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.
  7. 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:

  1. 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.
  2. A Drivers komponensből:
    • Válassza ki az alkalmazásnak megfelelő USB Host illesztőprogramot.
  3. A Device komponensből:
    • A validációs kimenetnek megfelelően további eszközspecifikus illesztőprogramokra lehet szükség.
  4. 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.

USBH_RTE.png

RTE komponensek kiválasztása

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.

usbh_debug_variant.png

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:

  1. : az RTE kezelési párbeszédpanelen válassza ki az USB:CORE szoftverkomponens Debug változatát.
  2. : az RTE kezelési párbeszédpanelen engedélyezze a Compiler:Event Recorder szoftverkomponenst.
  3. 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.
  4. 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.
  5. 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.

USBH_USB_Debug_c.png

USB_Debug.c fájl az eseménygenerálás konfigurációjához

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