Sovelluksen luominen

Tässä luvussa kuvataan USB Host -komponentin ohjelmistorakenne ja selitetään sen käyttö USB Host -sovelluksen luomiseen. Tämä ohjelmistokomponentti on vain MDK-Professionalin käyttäjien käytettävissä.

USB Host -komponentti yksinkertaistaa sellaisten mikrokontrollerijärjestelmien ohjelmistokehitystä, joihin voidaan liittää USB-laitteita. USB Host Componentin ominaisuudet ovat:

  • Toteaa USB 2.0 -spesifikaation.
  • Tuki HID-, MSC-, CDC- ja Custom USB Device Classes -luokille, jotka voidaan liittää USB Hostiin.
  • Tuki ohjaus-, keskeytys- ja massasiirtotyypeille.

RTE-komponentit

Seuraavassa kuvassa on esitetty RTE-komponenttien suhteet mikrokontrollerin USB-isäntäperiferiaan (USB-ohjain). RTE-komponentit tarjoavat konfiguraatiotiedostoja ja käyttäjäkoodin malleja. Konfiguraatiotiedostoissa konfiguroidaan RTE-komponentit, laitteistorajapinnat, muistiresurssit ja USB Host -parametrit. Käyttäjäkoodimallit tarjoavat luurangon eri USB-laiteluokkien tuen toteuttamiseen.

usb_host_blocks_config_files.png

USB Hostin rakenne

Vaiheet USB Hostina toimivan mikrokontrollerisovelluksen luomiseksi ovat seuraavat:

  1. Valitse sovelluksessasi tarvittavat RTE-komponentit.
  2. Ota käyttöön ja määritä USB-isäntäajuri.
  3. Konfiguroi USB-isäntä, joka yhdistää USB-väliohjelmiston mikrokontrollerin USB-oheislaitteeseen.
  4. Konfiguroi järjestelmän resurssit USB-isäntäkomponentin resurssivaatimusten mukaisesti.
  5. Konfiguroi liitettyjen USB-laitteiden parametrit.
  6. Toteuta sovelluskoodi käyttämällä koodimalleja, jotka tarjotaan tukemaan eri USB-laiteluokkia.
  7. Debuggaa sovelluksesi käyttämällä USB-komponentin sisäänrakennettuja mekanismeja.

RTE-komponentin valinta

RTE-komponentin valinta tapahtuu muutamassa vaiheessa:

  1. USB-komponentista:
    • Valitse USB:CORE, joka tarjoaa USB-kommunikaatioon vaadittavan perustoiminnallisuuden.
    • Säädä USB:Host arvoksi ’1’. Tämä luo yhden USB-isäntäkoneen kommunikointia varten liitettyjen USB-laitteiden kanssa.
    • Valitse haluttu tuki USB-luokille (HID/MSC/CDC/Custom Class). Valitse esimerkiksi USB:Host:HID, jos haluat tukea vain HID-luokan laitteita.
  2. Ajurit-komponentista:
    • Valitse sovellukseesi sopiva USB-isäntäajuri.
  3. Laitekomponentista:
    • Lisälaitekohtaisia laiteajureita saatetaan tarvita validointituloksen mukaan.
  4. CMSIS-komponentista:
    • Valitse CMSIS:CORE, joka tarjoaa ydinrajapinnan prosessoriin.
    • Valitse sopiva CMSIS:RTOS tai CMSIS:RTOS2, jota sovellus edellyttää.
USBH_RTE.png

RTE-komponenttien valinta

USB-ohjain ja -ohjain

Mikrokontrollerin USB-isäntäohjain ja USB-ohjain on konfiguroitava oikein. Tämä tarkoittaa erityisesti seuraavaa:

  • Ajurikomponentissa valittu USB-isäntäajuri on yleensä konfiguroitu RTE_Device.h-konfigurointitiedoston avulla. Vaikka tässä tiedostossa on useita vaihtoehtoja, yleensä riittää, että kyseiseen ohjaimeen liittyvä USB Host -oheislaite otetaan käyttöön. Jotkin mikrokontrollerit saattavat vaatia asetuksia, jotka liittyvät fyysisen kerroksen rajapintaan (PHY), USB VBUS -virtaan ja ylivirtasuojaukseen.
  • Mikrokontrollerin USB-ohjain tarvitsee tyypillisesti erityisiä kelloasetuksia. Tutustu mikrokontrollerin käyttöoppaaseen vaatimusten ymmärtämiseksi. Vaihtoehtoisesti voit kopioida USB Host -esimerkin asetukset, jotka on toimitettu eri evaluointilevyille.

USB Hostin konfigurointi

Tiedosto USBH_Config_n.c sisältää lisäasetukset tietylle USB Hostille:

  • Ajurin numero asetetaan valitun USB-ohjaimen mukaan. Yksittäisille USB-laiteohjaimille se on ’0’.
  • Jotkut mikrokontrollerit voivat käyttää erilaisia laitteisto-ohjainrajapintoja. Tutustu valitun mikrokontrollerin käyttöoppaaseen oikean asetuksen valitsemiseksi.

Kohdassa Configuration (Konfigurointi) on yksityiskohtainen luettelo kaikista käytettävissä olevista asetuksista.

System Resource Configuration (Järjestelmäresurssien konfigurointi)

Kunnollinen toiminta edellyttää, että USB-isäntäkomponentti vaatii joitakin järjestelmän konfigurointiasetuksia. Vaatimukset ovat:

  • Lisäpinon koko 512 tavua. Tämä voidaan määrittää laitteen tiedostossa (Stack_Size).
  • USB-laitekomponentti käyttää CMSIS-RTOS-säikeitä. Jos käytetään RTX v5:tä, RTX-asetuksiin ei tarvitse tehdä muutoksia, koska kaikki resurssit varataan staattisesti. Jos käytetään RTX v4:ää, sinun on muutettava seuraavia asetuksia tiedostossa:
    • Lisää yhtäaikaisten käynnissä olevien käyttäjäketjujen määrää USB-isäntäkoneen tarvitsemien ketjujen määrällä
    • Lisää käyttäjäketjujen lukumäärää.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

Lisätietoja, tarkista USB Host -komponentin Resurssivaatimukset-osiosta.

Liitettävien USB-laitteiden konfigurointi

Komponenteissa USBH_Config_HID.h, USBH_Config_MSC.h, USBH_Config_CDC.h tai USBH_Config_CustomClass.h voit määrittää USB Hostin tukemien samanaikaisten USB-laitteiden määrän. Tämä vaikuttaa muistin määrään, joka varataan sovelluksessasi USB-laitteiden liittämistä varten. Esimerkeissä näytetään, miten USB-isäntä konfiguroidaan toimimaan vuorovaikutuksessa erilaisten HID-, MSC- tai CDC-oheislaitteiden kanssa.

Käyttäjäkoodin toteutus

-tiedostot tarjoavat toimintomalleja, joilla tuetaan USB-isännän eri USB-laiteluokkia. Käytettävissä olevat toiminnot on selitetty USB Host -komponentin Reference-osiossa. Näitä rutiineja voidaan mukauttaa mikrokontrollerisovelluksen tarpeisiin, jos tarvitaan oletustoiminnoista poikkeavia toimintoja.

USB-Host-komponenttiin on saatavilla seuraavat mallit:

Mallin nimi Tarkoitus
USBH_MSC.c Tarvittavat toiminnot MSC-laitteiden tukemiseksi. Malli löytyy täältä.
USBH_PL2303.c Tarvittavat toiminnot Prolific PL2303 USB-sarja- RS232-sovittimen tukemiseen. Malli löytyy täältä.
USBH_User_CustomClass.c Tarvittavat funktiot minkä tahansa USB-laiteluokan tukemiseen. Malli löytyy täältä.

Debuggaus

USB Host-komponentti jaetaan kirjastomuodossa eikä salli sen suoraa koodin debuggausta. Se voidaan kuitenkin helposti konfiguroida tuottamaan virheenkorjaustapahtumia ja tarjoamaan dynaaminen näkyvyys komponentin toimintaan.

Seuraavat variantit voidaan valita USB:CORE-ohjelmistokomponentille Manage Run-Time Environment -ikkunassa:

  • Debug: tämä variantti tukee tapahtumamerkintöjä ja tekee USB Host Componentin sisäisen toiminnan analysoinnista erittäin helppoa sovelluksen virheenkorjauksen aikana. Tapahtumatallennustuki alla selittää, miten tämä variantti määritetään ja käytetään.
  • Release: Tämä variantti ei sisällä ylimääräistä debuggauskoodia. Käytä tätä muunnelmaa, kun sovellus otetaan käyttöön.

Alla olevassa kuvassa näytetään Debug-vaihtoehdon valinta.

usbh_debug_variant.png

Kohdassa USB Host:Debug Events kuvataan USB Device Component -komponentissa toteutetut tapahtumat.

Event Recorder Support

on tehokas työkalu, joka antaa näkyvyyttä ohjelman dynaamiseen suoritukseen.

USB-host-komponentti tuottaa laajan joukon vianmääritystapahtumia tapahtumatallenninta varten ja toteuttaa tarvittavan infrastruktuurin rajapinnan sen kanssa.

Tapahtumatallentimen käyttämiseksi on luotava kuva, jossa on tapahtumien tuottamisen tuki. Tarvittavat vaiheet ovat:

  1. : valitse RTE-hallintaikkunassa USB:CORE-ohjelmistokomponentin Debug-variantti.
  2. : ota RTE-hallintaikkunassa käyttöön ohjelmistokomponentti Compiler:Event Recorder.
  3. Varmistu siitä, että Event Recorder alustetaan mieluiten, jos käytetään CMSIS-RTOS2 RTX v5:tä, tai vaihtoehtoisesti kutsumalla funktiota sovelluskoodissa.
  4. Tapahtumatallentimen konfigurointi: Säädä tarvittaessa tapahtumatallentimen oletuskonfiguraatiota.
  5. Kehitä sovelluskoodi, lataa se kohdelaitteistoon ja käynnistä debug-istunto.

Nyt kun USB-ohjain tuottaa tapahtumatietoja, niitä voidaan tarkastella.

Tapahtumatallentimen konfigurointi

Luvussa kuvataan Tapahtumatallentimen konfigurointiasetukset. Käyttö edellyttää USB:CORE-ohjelmistokomponentin debug-muunnosta; katso lisätietoja kohdasta Tapahtumatallentimen tuki.

USB-tapahtumien tuottamisen konfigurointi

Valitsemalla USB:CORE:n debug-muunnos lisätään tiedosto USB_Debug.c projektiin. Tämän tiedoston avulla voit määrittää tapahtumien tuottamisen konfiguraation USB-ytimelle, ajureille ja laiteluokille erikseen. Tiedosto on käytettävissä USB Device- ja Host-komponenteille.

USBH_USB_Debug_c.png

USB_Debug.c-tiedosto tapahtumien tuottamisen konfigurointia varten

Seuraavat asetukset ovat käytettävissä kunkin moduulin tapahtumien tuottamisen konfigurointia varten:

  • Pois päältä tarkoittaa, että moduuli ei tuota mitään tapahtumia
  • Virheet tarkoittaa, että moduuli tuottaa vain virhetapahtumia
  • Virheet + API tarkoittaa, että moduuli tuottaa virhe- ja API-kutsutapahtumia
  • Kaikki tarkoittaa, että moduuli tuottaa kaikki käytettävissä olevat tapahtumat. Virhe- ja API-kutsutapahtumien lisäksi tämä sisältää toiminta- ja yksityiskohtaiset tapahtumat.

Tapahtumatunnukset

USB-isäntäkomponentti käyttää seuraavia tapahtumatunnuksia:

Komponentti Tapahtuman ID
USBH_Core 0xB0
USBH_Driver 0xB1
USBH_CC. 0xB2
USBH_CDC 0xB3
USBH_HID 0xB4
USBH_MSC 0xB5