0,00 €

V košarici ni izdelkov.

0,00 €

V košarici ni izdelkov.

More
    DomovRevijaNova številkaImplementacija USB v ugnezdenih sistemih

    Implementacija USB v ugnezdenih sistemih

    Microchip Technology Inc.
    Avtor: Robert Perkel, Inženir za aplikacije v poslovni enoti 8-bitnih mikrokontrolerjev Microchip Technology
    Čeprav je USB izredno pogost serijski komunikacijski protokol, ki se nahaja na velikih mikrokontrolerjih (MCU) in mikroprocesorjih (MPU), ga v ugnezdenih sistemih ni vedno mogoče najti.

    To je posledica večjega števila dejavnikov: zahtev glede električnih signalov, dodatnih stroškov protokola in razpoložljivosti enostavnejših komunikacijskih protokolov, kot so Serial Peripheral Interface (SPI), I2C ali UART. Čeprav USB ne bo nadomestil enostavnejših komunikacijskih protokolov, je vredno razmisliti o njegovi uporabi v prenosnih napravah.

    Obstajata dva načina za dodajanje USB v zasnovo – bodisi z uporabo aplikacijsko specifičnega integriranega vezja (ASIC) bodisi z izbiro mikrokontrolerja s podporo za USB-strojno opremo. Vsak pristop ima svoje prednosti in slabosti.

    Implementacija USB z uporabo ASIC čipov
    Preprost način za dodajanje USB v zasnovo je uporaba ASIC-a, ki notranje obdeluje USB komunikacijo in izpisuje želene podatke in signale. Eden najpogostejših USB ASIC-ov je USB-UART most, ki je (relativno) transparenten vmesnik za prenos podatkov iz USB gostitelja v ugnezden sistem. Pogosto ima obliko virtualnih COM vrat na gostitelju, ki jih je mogoče odpreti s serijsko terminalsko aplikacijo za dvosmerno komunikacijo. Pogosto ti ASIC vključujejo tudi druge funkcionalnosti, kot so USB-I2C, nadzor I/O linije, analogno vzorčenje in tako naprej. Te naprave so pripravljene za vključitev v zasnovo, zato je njihova implementacija minimalna, kar jih naredi idealne za dodajanje v zasnovo v zadnjem trenutku.

    Vendar pa obstaja nekaj omejitev pri uporabi teh ASIC-ov. Ena od pomanjkljivosti je, da gre za enoten pristop. Če obstaja funkcionalnost, ki je z ASIC-om ni mogoče doseči, je ta pristop neizvedljiv. Druga slabost so dodatni sestavni deli, ki se dodajo seznamu materialov (BOM). Ti deli zahtevajo prostor na tiskanem vezju in povečajo stroške zasnove.

    Implementacija USB z mikrokontrolerjem
    Če je že pred izbiro mikrokontrolerja znano, da bo potrebna USB-komunikacija, je dobra izbira naprava z vgrajenimi USB-periferijskimi napravami. Takšne naprave so na voljo v široki paleti mikrokontrolerjev, od visoko učinkovitih 8-bitnih do visoko zmogljivih 32-bitnih naprav. Izbira pravega mikrokontrolerja je odvisna od namena uporabe.

    Za preproste aplikacije, kot so tipkovnice, miške in pretvorniki USB-UART, so primerni 8-bitni mikrokontrolerji. Te naprave združujejo majhnost, zmanjšano porabo energije, nizko ceno in delovanje z napetostjo +5 V.

    Za računsko intenzivne aplikacije je priporočljivo uporabiti 32-bitne mikrokontrolerje, ki so zmogljivejši in imajo več prostega pomnilnika. Vendar so 32-bitni mikrokontrolerji lahko dragi, veliki in imajo omejen razpon delovne napetosti. V spodnji tabeli so prikazane prednosti in slabosti različnih pristopov.

    Izdelava USB aplikacij na AVR® DU
    Na voljo je veliko različnih mikrokontrolerjev z USB perifernimi napravami. V tem poglavju se bomo osredotočili na družino mikrokontrolerjev AVR® DU [1], duhovnega naslednika družine mikrokontrolerjev XMEGA® D.

    Družina AVR DU prinaša več izboljšav v primerjavi s starejšimi napravami. Med drugim ne potrebuje več zunanjega kristala, kar zmanjša BOM stroške. Družina DU vsebuje tudi integriran linearni regulator napetosti (LDO) za USB vezje, če je mikrokontroler napajan z 3,9 V ali več. Nazadnje, družina AVR DU vsebuje funkcijo Program and Debug Interface Disable (PDID), ki trajno zaklene napravo in prepreči, da bi se mikrokontroler ponovno prebral, izbrisal ali programiral.

    Naslednji primeri so preproste aplikacije, razvite na družini AVR DU [1]. Ti primeri uporabljajo MPLAB® Code Configurator (MCC), brezplačno orodje, ki konfigurira in generira API za vgrajene strojne periferne naprave z vključeno knjižnico USB Stack Library. Knjižnica naravno podpira Communications Device Class (CDC) in Human Interface Devices (HID), kot so tipkovnice in miške.

    CDC aplikacija: USB na SPI/I2C
    Ta primer izvaja pretvornik USB v SPI/I2C, ki deluje brez posebnega gonilnika. To se doseže z identifikacijo mikrokontrolerja kot generične naprave razreda CDC. Večina operacijskih sistemov ima generični gonilnik za to vrsto komunikacije, ki uporabniku omogoča pošiljanje in sprejemanje podatkov brez namestitve posebnega gonilnika.

    Slika: Odpiranje projekta USB-SPI/I2C v MCC

    Za začetek serijskega delovanja uporabnik pošlje mikrokontrolerju posebej oblikovan »stavek«. Podatki, ki jih prejme mikrokontroler, se razčlenijo in pretvorijo (če je mogoče) v delovanje vodila SPI ali I2C. Nato mikrokontroler poroča o napakah ukazov, napakah komunikacije (samo I2C) ali podatkih, ki so bili prebrani med izmenjavo. Za SPI so »stavki« oblikovani na naslednji način:

    spi eeprom/dac/usd

    Kjer »eeprom«, »dac« in »usd« označujejo komponente na Curiosity Nano Explorer [2], ki se uporabljajo v tej aplikaciji. Naslednji odlomek je primer »stavka« uporabnika za komunikacijo z napravo EEPROM (25CSM04) na Explorer plošči. Ta ukaz prebere identifikacijski register pomnilniškega čipa.

    spi eeprom 9F 00 00 00 00 00

    FF 29 CC 00 01 00

    I2C ima tri podobne, vendar različne oblike za „stavke“, saj je I2C vodilo skupno za vse priključene naprave.

    i2c r
    i2c w
    i2c wr

    Podobno kot pri SPI, je hiter test za prebrati ID proizvajalca senzorja – v tem primeru senzorja temperature MCP9808.

    i2c 1c wr 06 02

    00 54

    Ta primer je na voljo na Github [3].

    HID aplikacija: USB tipkovnica
    Preprost, a lahko prilagodljiv primer USB komunikacije je implementacija tipkovnice. Običajno, ko tipkovnica zazna pritisk tipke, se gostitelju pošlje poročilo, ki navaja tipko(-e), ki jo(-ih) uporabnik pritiska. Ko se tipka sprosti, se pošlje novo poročilo, ki navaja, da je uporabnik sprostil tipko(e).
    Ta primer je izveden drugače. Namesto da poroča o eni sami tipki ali gumbu, kot standardna tipkovnica, ta primer poroča o več tipkah za en sam pritisk gumba, da ustvari funkcionalne makre. Na primer, pritisk na SW0 na AVR64DU32 Curiosity Nano pošlje poročilo s tipkami „AVR DU“ na gostiteljski računalnik. LED na Curiosity Nano prikazuje stanje Caps Lock na gostiteljskem sistemu.

    Poleg Curiosity Nano je prek Curiosity Adapter Board [4] priključen tudi 2×2 Click. Gumbi so dodeljeni makrom: CTRL + C (kopiraj), CTRL + V (prilepi), CTRL + Z (razveljavi) in CTRL + X (izreži). Dodatno je mogoče priključiti zunanji gumb za pošiljanje ALT + F4 gostitelju. Ta primer je na voljo na Githubu [3].

    Zaključek
    Čeprav je USB eden najbolj zapletenih tipov serijske komunikacije v ugnezdenih sistemih, je njegova razširjenost pomembna dodana vrednost za zasnove.
    USB se lahko enostavno doda v zasnovo z uporabo ASIC na račun večjega BOM ali pa se lahko izbere mikrokontroler z vgrajeno USB-strojno opremo.
    Od tam boste morali odločiti, ali vaš mikrokontrolerski dizajn zahteva moč 32-bitne naprave ali pa bo za dizajn zadostovala enostavnejša, a stroškovno učinkovitejša 8-bitna naprava, kot je družina AVR DU.

    O avtorju:
    Robert Perkel je inženir za aplikacije pri podjetju Microchip Technology. V tej vlogi razvija tehnične vsebine, kot so opombe k aplikacijam, prispevki in videi. Odgovoren je tudi za analizo primerov uporabe perifernih naprav ter razvoj primerov kode in predstavitev. Perkel je diplomiral na Virginia Tech, kjer je pridobil naziv Bachelor of Science iz računalniškega inženirstva.

    Viri:
    1: https://www.microchip.com/en-us/products/microcontrollers-and-microprocessors/8-bit-mcus/avr-mcus/avr-du

    1. https://www.microchip.com/en-us/development-tool/EV58G97A
      3: https://github.com/microchip-pic-avr-examples/avr64du32-serial-bridge-mplab-mcc
    2. https://www.microchip.com/en-us/development-tool/AC164162

    Opomba: Ime in logotip Microchip sta registrirani blagovni znamki podjetja Microchip Technology Incorporated v ZDA in drugih državah. Vse druge blagovne znamke, ki so morda tu omenjene, so last njihovih podjetij.

    https://www.microchip.com

    Politika zasebnosti

    Spoštujemo vašo zasebnost in se zavezujemo, da bomo osebne podatke, pridobljene prek spletnega informacijskega sistema, skrbno varovali in jih brez vaše privolitve ne bomo posredoval tretji osebi oziroma jih uporabili v druge namene. Ker obstajajo v spletnem informacijskem sistemu določene povezave na druge, zunanje spletne strani, ki niso vezane na nas, ne prevzemamo nobene odgovornosti za zaščito podatkov na teh spletnih straneh.

    Hkrati se zavezujemo, da bomo po svojih najboljših možnih močeh varovali podatke in zasebnost obiskovalcev spletne strani .

    Da bi preprečili nepooblaščen dostop do pridobljenih podatkov ali njihovo razkritje, ohranili natančnost osebnih podatkov in zagotovili njihovo ustrezno uporabo, uporabljamo ustrezne tehnične in organizacijske postopke za zavarovanje podatkov, ki jih zbiramo.

    Več: https://svet-el.si/politika-zasebnosti