Microsoft ccid windows 7
Конечно, полностью от казаться от использования драйверов при работе с USB-устройствами нельзя, организация шины требует подключения целого стека драйверов, однако в данном случае рассматривается использование в стеке USB только стандартных драйверов, имеющихся по умолчанию в операционной системе.
Все сказанное ниже проверялось тестировалось под операционной системой MS Windows XP (2000 и выше). Для UNIX-систем сказать ничего не могу, с ними в этом плане пробел.
Итак, самые распространенные типы стандартных устройств:
- MSC — Mass Storage Class
- CDC — Serial Device Class
- HID — Human Interface Device
- CCID — Circuit Card Interface Device
Класс MSC малопригоден для организации удобного и простого обмена с приложением. Данный класс можно использовать, если устройство имеет большой объем FLASH-памяти с файловой системой и требуется дать к нему доступ.
Так же можно упомянуть такой класс устройств как CCID, его можно использовать вместе с драйвером usbccid.sys, штатно доступном начиная с Windows XP SP2. Это класс, который используют ридеры смарт-карт, а так же некоторые USB-токены.
Класс USB-CCID довольно интересен в случае, если требуется создать обеспечить быстрый обмен (он позволяет передавать данные быстрее HID и обеспечивает меньшие задержки чем CDC-класс), однако довольно специфичен, т.к. с ним требуется работать в рамках APDU-посылок.
Теперь рассмотрим работу с каждым классом устройсв более подробно:
Работа с устройством MSC класса
Данный класс не очень удобен для работы, т.к. требует большое количество обрабатывающего кода и завязывается на работу с файловой системой. Однако, с устройством данного класса. Интересен он становится, если устройство имеет свою файловую систему или просто большой объем внутреней памяти.
Стоит так же заметить, что во встроенном загрузчике микроконтроллера LPC134x, есть функция заливки через MSC-устройство. В данном режиме память микроконтроллера представляется в виде FLASH-диска и запись прошивки производится простым копированием файла через стандартный менеджер.
В принципе, работа с устройствами MSC можно производить и без файловой системы, путем прямого чтения/записи диска. Для этого требуется просто открыть при помощи функции CreateFile непосредственно устройство:
Работа с устройством CDC класса
При использовании класса CDC после подключения устройства в системе создается виртуальный COM-порт, общение с которым со стороны операционной системы совершенно не отличается от работы с физическим COM-портом. На урове WinAPI работа с таким устройсвом сводится к вызовам функций CreateFile, WriteFile, ReadFile и CloseHandle.
Идеальный вариант, если до этого устройство использовало COM-порт для общения с PC. В данном случае не требуется никаких переделок в программном обеспечении на стороне PC, да и вообще решение является шаблонным. Любое устройство с COM-портом через переходник можно повесить на USB. В некоторой серийной продукции (мне попадались такие бесперебойники) переход на шину USB осуществлялся именно путем внедрения конвертора USB-COM.
Так же вариант с использованием CDC-класса хорош тем, что протокол асинхронный и в нем можно отсылать блоки данных любой длины.
Однако, стоит помнить, что класс устройства стандартный, в Windows для обеспечения его работы есть драйвер usbserial.sys, однако тот же конвертор FTDI FT232хх использует собственную реализацию протокола CDC и все-таки требует установку драйвера.
Работа с устройством HID-класса
Хоть HID-устройсва и предназначаются для взаимодействия с джойстиками и клавиатурами, они без проблем конфигурируются для передачи произвольных данных пользователя. Довольно серьезный недостаток HID — блоки данных могут быть только фиксированного размера, который устанавливается в HID-дескрипторе.
Основная сложность при работе с HID-устройством — получить его имя в системе. После того, как имя получено работать с устройством можно с помощью функций CreateFile, WriteFile, ReadFile и CloseHandle. Один момент, который стоит упомянуть, первым байтом в передаваемом функциям Read/WriteFile идет идентификатор посылки, обычно это 0. Таким образом, если размер блока данных HID равен 64 байта, в функцию требуется передавать 65 байт. Этот байт используется в драйвере и не уходит в устройство.
Каким же образом получить имя HID-устройства, лучше всего посмотреть в библиотеке по ссылке в конце статьи.
Работа с устройством CCID-класса
Первая особенность работы по CCID, требуется выбрать ATR-строку и протокол T=0 или T=1. Лучше всего выбирать T=1, т.к. в нем есть APDU Case 4. Наверное, уже все перепугались кучей непонятных слов. Сам протокол описывается в стандарте ISO 7816-12 (имеется соответствующий ГОСТ/ИСО), так же формат APDU посылок можно посмотреть в ISO 7816-3 и ISO 7816-4. К сожалению, стандарты эти платные, но хорошо поискав, всю необходимую информацию из них все же можно найти в открытом доступе.
Общение с устройством производится при помощи функций SCardConnect, SCardTransmit. Функция SCardTransmit занимается непосредственно приемом-передачей данных.
APDU посылка состоит из заголовка и блока данных. На нее обязательно требуется ответить хотя бы 2 байтами: код возврата, 90 00 в случае если все в порядке и другое значение (по стандарту 6х хх). Если есть данные они идут в начале, а код возврата дописывается 2 байтами в конец посылки. Основные коды, которые могут пригодится при работе описаны в таблице (в реальности, кодов ошибок довольно много):
| Возврат SW1 SW2 | Описание ошибки |
| 90 00 | Все в порядке |
| 67 00 | Неверная длина входных данных |
| 6D 00 | Неподдерживаемая команда |
| 68 00 | Неверное значение CLA |
| 6C xx | Неверная длина выходного буфера, xx — рекомендуемая длина |
| 6A 80 | Неверные данные |
Теперь непосредственно форматы посылок (T=1):
Т.е. есть 4 класса APDU команд: без данных, с данным в устройство, с возвратом данных из устройства и с передачей данных сразу в обе стороны. CLA — класс команды, INS — код команды, P1 и P2 — параметры команды. Так же при разрабтке стоит учитывать, что операционная система может сама в отдельных случаях попытаться послать устройству набор стандартных APDU-команд.
Выбор VID и PID
Напоследок вопрос о выборе VID и PID. По этим значениям происходит привязка к устройству драйверов в случае если устройство не относится к стандартному классу. Если с одинаковыми PID и VID пытаться подключать устройсва разных классов могут возникнуть проблемы с драйверами, т.к. предполагается что каждое устройство имеет уникальные VID и PID.
Уникальность гарантируется тем, что ассоциация USB.org продет VID-ы (Vendor ID), стоит он около 2000$. После покупки, имеется диапазон PID, в котором можно произвольно выбирать PID значения для работанных устройств. В хоббийной практике, можно выбирать любые значения. Вообще, шанс того, что взятая с потолка комбинация VID/PID окажется задействованной и это где-то всплывет, очень мал. Так же у разработчиков демо-плат, к примеру Keil-а, есть в примерах заданные идентификаторы. Их так же можно использовать в самодельных конструкциях. Но вот при запуске устройства в более-меннее крупную серию все же придется покупать VID (или договариваться с какой-нибудь конторой, чтобы они «отсыпали» пару PID-ов из своего диапазона, хотя договоренность эта получится по большому счету устной).
Ссылки
О сайте
Подборка статей и отчетов о различных математических и электронных экспериментах.
ASEDrive IIIe
Надёжная конструкция смарт-карт ридера обеспечивает долгий срок службы при высоких эксплуатационных нагрузках и исключает повреждение используемых смарт-карт. Устройство имеет большой ресурс контактной группы – смарт-карту можно подключать/отключать не менее 200,000 раз! Данное преимущество достигается за счёт того, что контакты не скользят по поверхности карты в процессе её подключения/отключения, а опускаются на контактную площадку карты только после полного вхождения карты в смарт-карт ридер. Внутренний механизм ридера обеспечивает бережное отношение к самим картами, не оставляя полос и царапин на пластине и чипе карты, что также способствует длительной эксплуатации смарт-карт. Также для подключения смарт-карт ридера к компьютеру не требуется установки специальных драйверов.
Смарт-карт ридер имеет малые габариты и вес, что позволяет комфортно использовать его на стационарных рабочих местах сотрудников.
Устройство поддерживает работу с любыми смарт-картами, в том числе эмбоссированными и платёжными, имеет строгий дизайн и зоны для нанесения Вашего логотипа.
Рекомендуется для использования на стационарных рабочих местах, где необходима двухфакторная аутентификация пользователей. Является стандартом в государственных организациях и крупнейших российских компаниях.
В режиме работы ASE mode:
- T=0 (ISO 7816, часть 3)
- T=1 (ISO 7816, часть 3)
- EMV
- CAC
- 2/3 BUS I2C
- Extended I2C Memory Cards
В режиме работы CCID:
- T=0 (ISO 7816, часть 3)
- T=1 (ISO 7816, часть 3)
- EMV
- CAC
- 5V (ISO7816 Class A)
- 3V (ISO7816 Class B)
- 1.8V (ISO7816 Class C)
- FCC Class B
- VCCI
- CE
- Все версии (32/64-бит), начиная с Windows XP (в режимах работы CCID и ASE mode)
- Microsoft Windows 98SE, 2000 (в режиме работы ASE mode)
- Все версии, поддерживаемые разработчиком дистрибутива
Пробуем Windows Embedded Standard 7 — версию Windows 7, которая будет получать обновления еще год
Последнее время среди пользователей Windows 7 царит уныние и расстройство, ведь с 14 января 2020 года Microsoft прекратит ее поддержку. Неплохая операционная система была, но всему свое время, надо давать дорогу молодым.
Windows 7 начала свой путь 22 октября 2009 года, то есть к 14 января 2020 будет уже больше 10 лет.
реклама
Что же делать тем пользователям, кто по тем или иным причинам не хочет уходить с Windows 7 на новую и продвинутую Windows 10? Ведь завершение поддержки — это смерть ОС. За год там накопится столько незакрытых уязвимостей, что пользоваться ею будет крайне опасно.
У меня есть старый ноутбук, Windows 7 для которого подходит гораздо лучше, чем Windows 10. Поэтому я тоже озаботился вопросом завершения поддержки Windows 7 и стал искать выход.
И выход нашелся, пусть и довольно неожиданный. Одна из редакций Windows 7, а именно — Windows Embedded Standard 7, будет получать обновления до 13 октября 2020 года, то есть еще больше года.
реклама
А ее редакции в виде Windows Embedded POSReady 7 и Windows Embedded Compact 7, будут получать обновления до 12 октября 2021 года и 13 апреля 2021 года соответственно.
Что же это за зверь такой — Windows Embedded и почему о нем мало кто слышал?
реклама
Microsoft Windows Embedded — семейство встраиваемых операционных систем Microsoft Windows для применения в специализированных устройствах. Существует несколько категорий продуктов для создания широкого спектра устройств, начиная от простых контроллеров реального времени и заканчивая POS-системами, такими как киоск самообслуживания или кассовый аппарат и промышленными системами. Windows Embedded доступна через специализированных дистрибьюторов Microsoft и должна поставляться конечному потребителю только вместе с устройством. Отличается более выгодной ценой по сравнению с настольными версиями, возможностями блокировки образа (Lockdown), продленным сроком доступности и продажи (до 15-ти лет).
Добавлю, что Windows Embedded еще и потребляет ресурсов меньше, чем обычная Windows 7, поэтому для слабых ноутбуков это то, что доктор прописал.
Неудивительно, что домашний пользователь никогда не слышал про нее. К счастью — отличия Windows Embedded Standard 7 от Windows 7 Professional небольшие, а трудности установки, русификации и обновления я сейчас вам подробно объясню.
Я не буду скачивать образ Windows Embedded Standard 7 с торрент трекера, так как это пиратство и в сборках от дяди Васи может быть что угодно: и троян, и майнер, которые не будут видеть антивирусы.
Поэтому идем на сайт Microsoft по ссылке и нажимаем «Download».
реклама
Сайт предложит несколько частей архива, выбирайте нужную вам разрядность галочками и скачивайте.
После скачивания, в папке загрузки будут лежать несколько частей архива.
Щелкайте по первой части архива и он распакуется в iso файл.
Теперь надо воспользоваться программами UltraISO или Rufus и записать образ на флешку.
Вот содержимое образа.
Но не торопитесь извлекать флешку! Надо сразу добавить и файл русификации.
Его тоже скачиваем с сайта Microsoft по ссылке.
Жмите «Download», в открывшемся списке выбирайте нужный язык галочкой.
Все готово к установке.
Меню установки отличается от такового у Windows 7 Professional, но каждый, кто хоть раз устанавливал Windows 7 — легко разберется.
Тут выбираем первый пункт.
Выбираем язык.
Далее идет установка. На мой старый ноутбук с медленным HDD устанавливалась довольно долго.
Стартовое окно отличается от обычной Windows 7.
Смотрим, что получилось.
Вот окно свойств системы и диспетчер задач. Памяти ест совсем немного. Пробный период равен 30 дням. Его можно законно продлить до 120 или 180 дней.
Теперь перейдем к русификации. Открываем панель управления.
Выбираем место хранения файла с языком.
Теперь надо включить файл подкачки, он по умолчанию отключен. Как и гибернация. Не придется вводить знакомые до боли powercfg -h off
Далее я опробовал обновление с помощью UpdatePack7R2 от simplix. Все прекрасно обновляется.
Но на таком медленном железе процесс длится очень долго, несколько часов, гораздо быстрее интегрировать UpdatePack7R2 в образ Windows.
После вышеописанных манипуляций мы имеем практически обычный Windows 7, но более шустрый и занимающий меньше места на жестком диске. И о поддержке обновлениями можно не беспокоиться еще больше года.
Я оставлю его у себя на ноутбуке и рекомендую вам попробовать.

