ПредишенСледващото

Работа с домашно приготвени USB устройства без водачи

Разбира се, от напълно се появи от използването на водачи, когато се използва USB-устройства не могат да налага организирането на автобусни линии от стака шофьор, но в този случай ние считаме използването на USB стека само стандартните драйвери са включени по подразбиране в операционната система.

По този начин, най-често срещаните видове стандартни устройства:

  • MSC - Mass Storage Class
  • CDC - Serial клас Устройство
  • HID - Human Interface Device
  • Устройство Circuit Interface Card - CCID

MSC клас от голяма полза за организацията на удобно и просто приложение, с борсата. Този клас може да се използва, ако устройството има голямо количество FLASH-памет файлова система и искате да дадете достъп до него.

Клас USB-CCID е доста интересно, ако искате да създадете за осигуряване на бърз обмен (тя може да предава данни по-бързо от HID и осигурява по-ниска латентност от CDC-класа), но доста специфична, тъй като с това е необходимо да се работи в рамките на APDU-парцелите.

А сега да разгледаме работата с всеки клас ustroysva повече подробности:

Работа с класове на MSC устройства

Този клас не е много удобно да работите, тъй като Тя изисква голямо количество код за обработка и връзки за работа с файловата система. Въпреки това, с устройството на този клас. Интересно става, ако устройството има своя собствена файлова система, или голяма част от вътрешната памет.

По принцип, работа с устройства MSC може да се извърши без файлова система чрез директен четене / запис диск. Това изисква просто отваряне с CreateFile директно на устройството:

Работа с устройства клас CDC

Когато използвате устройството клас CDC след свързване на системата създава виртуална COM-порт, комуникация, с които част от операционната система, напълно различна от работата с физически COM-порт. На нивото на работа с WinAPI ustroysva намалена до разговори CreateFile функция, WriteFile, ReadFile и CloseHandle.

В идеалния случай, ако това устройство е да се използва COM-порт за комуникация с компютър. В този случай, тя не изисква никакви промени в софтуера, инсталиран на страната на PC, и като цяло решение е шаблон. Всяко устройство с COM-порт чрез адаптер може да се закачи към USB. В поредица от продукти (попаднах на такова bespereboynik) прехода към USB шината се извършва чрез въвеждане на преобразувателя USB-COM.

Просто изпълнение, използващо CDC-клас добре, че асинхронен протокол и може да изпрати блокове данни с всякаква дължина.

Въпреки това, той е да се припомни, че стандарта за клас устройство в Windows за да се гарантира неговата работа има usbserial.sys шофьор, обаче, същият конвертор FTDI FT232hh използва собствен прилагане на протокола, CDC и все още изисква да се инсталира на водача.

Работа с устройството за HID клас

Въпреки че HID-ustroysva и са предназначени да взаимодействат с джойстика и клавиатури, те безпроблемно конфигуриран да предава произволни данни на потребителя. По-скоро сериозен недостатък HID - блокове от данни могат да бъдат само с фиксиран размер, което се намира в HID-ЕВРОВОК.

Основната трудност в работата с HID-устройство - за да получите името му в системата. След като името е получено за работа на устройството с помощта на функцията CreateFile, WriteFile, ReadFile и CloseHandle. Една точка си струва да споменем е първият байт в предаването четене / WriteFile функции е идентификатор парцел, обикновено 0. По този начин, ако размера на блока данни е 64 байта HID, функция трябва да предава 65 байта. Този байт се използва в шофьора и не оставя на устройството.

Как тогава да се получи името на HID-устройство, най-добре е да се търси в библиотеката на линка в края.

Работа с CCID-класа

Първата функция работи CCID, изисква ATR-изберете линия и протокол Т = 0 или T = 1. Най-добре е да изберете T = 1, тъй като тя има APDU дело 4. Вероятно всички вече уплашен куп неразбираеми думи. Самият протокол е описан в стандарт ISO 7816-12 (има съответен ГОСТ / ISO), както и парцели APDU формат може да се намери в ISO 7816-3 и ISO 7816-4. За съжаление, тези стандарти премия, но е добре да се търси, цялата необходима информация от тях все още могат да бъдат намерени в публичното пространство.

Комуникация с устройството се осъществява от SCardConnect, SCardTransmit функции. Функция SCardTransmit участват пряко в приемане и предаване на данни.

APDU публикуване състои от заглавна част и информационния блок. Това е абсолютно необходимо, за да отговори на най-малко 2 байт: код на връщане 90 00, ако всичко е наред и друга стойност (стандартно 6x хх). Ако се докаже, че са в началото, а кодът на връщане се добавя към края на пакети от 2 байта. Ключови кодове, които могат да се окажат полезни по време на работа са описани в таблицата (в действителност, много от кодовете за грешка):

Върнете SW1 SW2

Сега директно формати парцели (Т = 1):

  • APDU Случай 1:
  • APDU Случай 2:
  • APDU Случай 3:
  • APDU дело 4:

    Т.е. 4 е APDU команда клас: няма данни, с данните в данните за устройства от устройството и връщане наведнъж с пренос на данни в двете посоки. CLA - клас екип, INS - команден код, P1 и P2 - параметрите на командата. Точно когато razrabtke трябва да се вземе предвид, че самата операционна система, може в някои случаи да опитате да изпратите устройството до набор от стандартни APDU-команда.

    Избор на VID и PID

    Накрая изборът VID и PID. От тези стойности, ще се свърже с драйвера на устройството, ако устройството не се отнася за стандартен клас. Ако една и съща PID и VID опита да се свърже ustroysva различни класове могат да имат проблеми с драйверите, като се приема, че всяко устройство има уникален VID и PID.

    Подбор на статии и доклади по различни математически и електронни експерименти.

    Свързани статии

  • Подкрепете проекта - споделете линка, благодаря!