ROS USB — различия между версиями
(→См. также) |
(→USB Core) |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 25: | Строка 25: | ||
**OHCI (Open Host Controller Interface Standard) - Все типы передачи реализованы (основная, iso, управления, прерывания) | **OHCI (Open Host Controller Interface Standard) - Все типы передачи реализованы (основная, iso, управления, прерывания) | ||
**UHCI (Universal Host Controller Interface Standard) - полностью отсутствует. Вполне реализуема, если использовать OHCI-драйвер в качестве основы и драйвер Haiku. | **UHCI (Universal Host Controller Interface Standard) - полностью отсутствует. Вполне реализуема, если использовать OHCI-драйвер в качестве основы и драйвер Haiku. | ||
− | *EHCI (Enhanced Host Controller Interface) - Реализованы два типа передачи: основной и управления. Прерывания и изохронные переводы не осуществляются. | + | *EHCI (Enhanced Host Controller Interface) (USB 2.0)- Реализованы два типа передачи: основной и управления. Прерывания и изохронные переводы не осуществляются. |
*USBHUB - драйвер для управления портом и концентраторами. Статус реализации неизвестен. Из-за нереализованных типов передачи, устройства, которые используют эти типы будут недоступны. | *USBHUB - драйвер для управления портом и концентраторами. Статус реализации неизвестен. Из-за нереализованных типов передачи, устройства, которые используют эти типы будут недоступны. | ||
Строка 43: | Строка 43: | ||
*Базовая поддержка клавиатуры почти реализована. | *Базовая поддержка клавиатуры почти реализована. | ||
*Для поддержки USB Накопителей необходима доработка драйверов '''mountmgr'''/'''partmgr'''. Так же необходимы '''mountvol''' и многие другие компоненты, отсутствующие в PnP. | *Для поддержки USB Накопителей необходима доработка драйверов '''mountmgr'''/'''partmgr'''. Так же необходимы '''mountvol''' и многие другие компоненты, отсутствующие в PnP. | ||
+ | |||
+ | ===Отсутствующая поддержка=== | ||
+ | *поддержка USB Audio – будет реализована в драйвере '''''usbaudio.sys''''' | ||
+ | *поддержка USB Printing – будет реализована в драйвере '''''usbprint.sys''''' | ||
+ | *поддержка USB Serial – будет реализована в драйвере '''''usbser.sys''''' | ||
+ | |||
+ | == Работа над USB == | ||
+ | *[[ROS USB Vgal|Работа Вадима Галянта над USB]] | ||
+ | *[http://code.reactos.org/changelog/reactos?cs=72725 Начальный коммит USB-audio] | ||
==См. также== | ==См. также== |
Текущая версия на 11:27, 2 июня 2019
Содержание
[убрать]USB-стек в ReactOS
Данная статья частично является переводом официальной вики. Последнее обновление 08-12-2015
Стек USB обеспечивает взаимодействие между USB-устройствами и соответствующими драйверами и приложениями. Он состоит из нескольких файлов, каждый из которых выполняет свою функцию. На данный момент, реализация USB-стека выполнена не полностью.
ПРИМЕЧАНИЕ: Существует проблема при загрузке ReactOS с жесткого диска/LiveCD при подключенной флешке. Любое подключенное USB-устройство может вызвать критическую ошибку. Во избежание этого отключите все USB-устройства при загрузке системы.
Обзор
Основной целью является написание USB-стека, который будет:
- использовать стандарт USB v1.1-2.0
- использовать API WDM (NT 5)
- совместим со всеми USB-устройствами и драйверами (которые придерживаются стандарта)
Цели
- Первая цель: USB HID (human input devices) и поддержка USB-накопителей.
- Вторая цель: поддержка аудио-устройств и др.
- После: тестирование и отладка.
Из-за сложности и размера работы, точная дата завершения неизвестна.
Статус
USB Core
- Есть две спецификации стандарта USB 1.1. Их используют мыши, клавиатуры и др.:
- OHCI (Open Host Controller Interface Standard) - Все типы передачи реализованы (основная, iso, управления, прерывания)
- UHCI (Universal Host Controller Interface Standard) - полностью отсутствует. Вполне реализуема, если использовать OHCI-драйвер в качестве основы и драйвер Haiku.
- EHCI (Enhanced Host Controller Interface) (USB 2.0)- Реализованы два типа передачи: основной и управления. Прерывания и изохронные переводы не осуществляются.
- USBHUB - драйвер для управления портом и концентраторами. Статус реализации неизвестен. Из-за нереализованных типов передачи, устройства, которые используют эти типы будут недоступны.
Поддержка USB-накопителей
Поддержка USB-накопителей реализована в драйвере USBSTOR и полностью работает. Драйвер проверен в WinXP + USBEHCI + USBSTOR. Поддержка USB-накопителей требует контроля передачи информации, осуществляемой в USBEHCI.
Поддержка HID
Фреймворк HID состоит из пяти драйверов:
- HIDUSB - драйвер интерфейса для шины USB. В настоящее время поддерживаются USB-мыши. Так же реализована базовая поддержка USB-клавиатур.
- HIDCLASS - драйвер класса для HIDUSB и др. Поддержка мышей и клавиатур будет реализована позже.
- MOUHID - драйвер мыши для USB HID Standard. Полностью реализован и работает.
- KBDHID - драйвер клавиатуры для USB HID Standard. Реализован на 90%.
- HIDPARSE - драйвер для анализа отчетов дескрипторов. Реализован для мышей, для клавиатуры необходима реализация HidParser_TranslateUsage для работы Caps Lock, Num Lock и Scroll Lock.
Что уже работает
- Поддержка мыши была протестирована в Windows XP с ReactOS-драйверами USBOHCI + HIDUSB + HIDCLASS + MOUHID + HIDPARSE. Стек USB + HID также работает в ReactOS.
- Базовая поддержка клавиатуры почти реализована.
- Для поддержки USB Накопителей необходима доработка драйверов mountmgr/partmgr. Так же необходимы mountvol и многие другие компоненты, отсутствующие в PnP.
Отсутствующая поддержка
- поддержка USB Audio – будет реализована в драйвере usbaudio.sys
- поддержка USB Printing – будет реализована в драйвере usbprint.sys
- поддержка USB Serial – будет реализована в драйвере usbser.sys