Az öngyártott USB-eszközök kezelő nélkül történő használata

Munka öngyártott USB eszközökkel driver nélkül

Természetesen teljes mértékben jelennek meg a használatát illesztőprogramok használata USB-eszközök nem igényelnek a szervezet busz csatlakozás a illesztőprogramkészlettel, de ebben az esetben figyelembe vesszük a használatát USB stack csak a szokásos illesztőprogramok alapértelmezés szerint az operációs rendszer.

Tehát a legelterjedtebb típusú szabványos eszközök:

  • MSC - Mass Storage Class
  • CDC - Soros eszközosztály
  • HID - emberi interfész eszköz
  • CCID - áramköri kártyaolvasó eszköz

Az MSC osztály nem alkalmas az alkalmazással történő kényelmes és egyszerű csere megszervezésére. Ez az osztály akkor használható, ha a készülék nagy mennyiségű FLASH memóriát tartalmaz egy fájlrendszerrel és hozzáférést igényel.

Class USB-CCID elég érdekes, ha azt szeretné, hogy hozzon létre, hogy biztosítsa a gyors csere (ez továbbítja az adatokat a gyorsabb, mint a HID és így alacsonyabb késleltetést, mint a CDC-osztály), de nagyon különleges, mert vele együtt az APDU-parcellák keretében kell dolgoznia.

Most nézzük meg a munkát az egyes eszközök csoportjával részletesebben:

Az MSC osztály eszközzel való munkavégzés

Ez az osztály nem nagyon kényelmes a munka számára, mert nagy mennyiségű feldolgozási kódot igényel, és kötődik a fájlrendszerhez való munkához. Azonban ennek az osztálynak a készülékével. Érdekesnek tűnik, ha az eszköz saját fájlrendszerrel vagy csak nagy mennyiségű belső memóriával rendelkezik.

Elvileg az MSC eszközökkel való munkát fájlrendszer nélkül, lemez leolvasásával / írásával lehet elvégezni. Ehhez egyszerűen csak nyissa meg az eszközt a CreateFile függvény segítségével:

Egy CDC osztályú eszközzel dolgozik

Amikor a CDC osztály eszköz csatlakoztatása után a rendszer létrehoz egy virtuális COM-port, a kommunikáció, amely része az operációs rendszer teljesen más, mint a munka egy fizikai COM port. Szintjén munka WinAPI ustroysva csökken hívások CreateFile funkció WriteFile, readfile és CloseHandle.

Ideális, ha az eszköz előtt COM portot használt a PC-vel való kommunikációhoz. Ebben az esetben nincs szükség a szoftverben a PC oldalra történő átdolgozásra, és általában a megoldás sablon megoldás. Bármely eszköz, amely COM porttal rendelkezik az adapteren keresztül, felcsatolható az USB-n. Néhány soros termékben (ilyen szünetmentes eszközökkel találkoztam) az USB buszra való átállást pontosan USB-COM átalakító alkalmazásával végezték.

Ezenkívül a CDC osztály használatának lehetősége is jó, mert a protokoll aszinkron, és bárhonnan bármilyen hosszúságú adatblokkot küldhet.

Ugyanakkor érdemes megjegyezni, hogy az eszköz osztály Windows szabványos, hogy biztosítsák annak a munkának usbserial.sys driver, azonban ugyanezek az átalakító FTDI FT232hh használja saját végrehajtását a CDC protokoll és még mindig szükség van az illesztőprogram telepítése.

HID-osztályú eszközzel való munkavégzés

Bár HID-ustroysva és célja, hogy kölcsönhatásba lépnek a joystick és billentyűzethez, akkor zökkenőmentesen kialakítva, hogy továbbítja a felhasználó tetszőleges adat. Meglehetősen hátrányos HID - adatblokkot csak akkor lehet egy rögzített méretű, amely be van állítva HID-leíró.

A fő probléma, ha egy HID eszközzel dolgozik, hogy a név a rendszerbe kerüljön. Amint a nevet érkezik a készülék működtetéséhez segítségével CreateFile funkciót, WriteFile, readfile és CloseHandle. Érdemes még megemlíteni az első bájt az átviteli Read / WriteFile funkciók parcella azonosító, általában 0. Így, ha az adatblokk mérete 64 bájt HID, a funkciót el kell küldenie a 65 bájt. Ezt a bájtot a meghajtóban használják, és nem lép be a készülékbe.

A HID eszköz nevének megismerése leginkább a cikk végén olvasható a könyvtárban.

Egy CCID osztályú eszközzel dolgozik

A CCID-nél végzett munka elsődleges jellemzője, hogy ki kell választani az ATR-vonalat és a protokollt T = 0 vagy T = 1. A legjobb választani T = 1, mert ebben benne van az APDU 4. eset. Valószínűleg már mindenki megrémült egy halom, nem világos szóval. A protokoll maga a szabványban leírt ISO 7816-12 (van egy megfelelő GOST / ISO), valamint parcellák APDU méret lehet találni az ISO 7816-3 és az ISO 7816-4. Sajnálatos módon ezek a szabványok díj alapúak, de ha jól keresnek, az összes szükséges információ továbbra is nyilvánosan elérhető.

A készülékkel történő kommunikáció az SCardConnect, SCardTransmit funkciók használatával történik. Az SCardTransmit funkció közvetlen adatátvitelt biztosít.

Az APDU egy fejlécből és egy adatblokkból áll. Ez feltétlenül szükséges, hogy válaszoljon legalább 2 byte: visszatérési kód 90 00 ha minden rendben van, és egy másik értéket (normál 6x xx). Ha bizonyíték van arra vannak az elején, és a visszatérési kód végéhez a 2 byte-os csomagok. Kulcskódokról jöhet munkahelyi táblázatban leírt (a valóságban, sok hibakódok):

Vissza SW1 SW2

Most közvetlenül a csomagformátumok (T = 1):

  • APDU 1. eset:
  • APDU 2. eset:
  • APDU 3. eset:
  • APDU 4. eset:

    Ie 4. APDU parancs osztály: nincs adat, az adatokat a készülék a készülék adatait és visszatérő egyszerre adatátviteli mindkét irányban. CLA - osztályú csapat, INS - parancskódot, P1 és P2 - a parancs paramétereit. Csak amikor razrabtke figyelembe kell venni, hogy maga az operációs rendszer alkalmazása bizonyos esetekben megpróbálja elküldeni a készülék egy sor standard APDU-irányító.

    VID és PID kiválasztása

    Végül a VID és a PID kiválasztásának kérdése. Ezen értékek esetén a meghajtó az eszközhöz van kötve abban az esetben, ha az eszköz nem tartozik a szabványos osztályhoz. Ha különböző osztályú eszközöket próbál összekötni ugyanazokkal a PID és VID eszközökkel, akkor problémák merülhetnek fel az illesztőprogramokkal. Feltételezzük, hogy minden készüléknek van egy egyedi VID és PID.

    Számos cikk és jelentés különböző matematikai és elektronikus kísérletekről.

    Kapcsolódó cikkek