Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций ТСИ.doc
Скачиваний:
5
Добавлен:
26.09.2019
Размер:
1.97 Mб
Скачать

Классы устройств / Драйверы класса

Операционные системы главной ЭВМ обычно имеют драйверы, которые группируют функции по общим признакам устройств, называемым классами. Например, класс может включать устройства хранения, звуковые, связи и пользовательского интерфейса, но не ограничиваться перечисленным. Ссылки на драйверы класса для данного устройства могут быть в двух описателях: устройства и интерфейса. Для большинства устройств может быть подобран стандартный драйвер u1076 для данного класса, который поддерживает большинство функций или команд. Если устройство не имеет стандартного драйвера для данного класса, то оно должно поставляться вместе со специфическим файлом «*.inf» или драйвером для его поддержки.

Микроконтроллеры с модулем usb

Фирма Microchip Technology выпускает микроконтроллеры PIC16C745/765, которые имеют периферийный модуль USB, функционирующий в соответствии со спецификацией USB Vl.l. Модуль USB поддерживает передачи управления и прерывания (ввод/вывод) для низкой скорости 1,5 Мбит/с. При реализации функций могут поддерживаться 3 номера оконечной точки (0, 1,2) при общем количестве 6 оконечных точек.

Приемопередатчик

На кристалле микроконтроллера интегрирован приемопередатчик USB, включающий линейные драйверы D+/D- и обеспечивающий физический стык с линией. А также стабилизатор, который обеспечивает напряжением питания 3,3В, линейные драйверы D+/D- и внешний вывод VUSB. Этот вывод предназначен для подтягивания линии D- к высокому уровню через резистор 1,5 кОм±5%, что, в соответствии со стандартом USB, определяет устройство как низкоскоростное. Для стабильности на выводе VUSB требуется конденсатор 10 нФ±20%. На рисунке представлена схема устройства на базе микроконтроллера PIC16C765 с питанием от шины USB.

Регистры управления и состояния модуля usb

Регистры управления и состояния модуля USB размещены в банке 3 памяти данных микроконтроллера.

Модуль USB управляется при помощи 7 регистров управления и состояния, также имеются регистры управления каждой оконечной точкой и направлением буфера оконечной точки.

Регистр флагов прерываний модуля usb (uir)

Регистр прерываний модуля USB (UIR) содержит флажки прерываний для источников прерывания модуля USB. Каждому из этих флажков соответствует бит разрешения прерывания в регистре управления прерываниями модуля USB (UIE). Если прерывания запрещены, то установка флажков прерываний может быть обнаружена в режиме программного опроса и затем обработана. Общий флажок прерывания модуля USB (USBIF) для прерывания микропроцессора расположен в регистре PIRl, состояние которого формируется логическим объединением по ИЛИ всех одиночных источников прерывания модуля USB. Установленный бит прерывания в регистре UIR после обработки должен быть сброшен программно записью «0» в соответствующий разряд.

U-0

U-0

R/C - 0

R/C - 0

R/C - 0

R/C - 0

R/C - 0

R/C - 0

-

-

STALL

UIDLE

TOK_DNE

ACTIVITY

UERR

USB_RST

7

0

Регистр флажков прерываний модули USB: «UIR» (адрес 190h)

R = читаемый разряд,

С - сбрасываемый разряд,

U = зарезервированный разряд,

-n = значение после сброса:

Разряды 7-6: Зарезервированы, читаются как «0»

Разряд 5: STALL: Устанавливается, если передан ответ взаимодействия STALL.

Разряд 4: UIDLE: Устанавливается при переполнении таймера останова, если в течение 3 мс сигналы шины USB находятся в состоянии останова. Таймер останова сбрасывается, когда шина USB активна. Если UIDL = 1 , то модуль USB может быть переведен в режим останова установкой бита SUSPND в регистре UCTRL.

Разряд 3: TOK_DNE: Устанавливается, если обработка текущего маркера завершена. Для выявления номера оконечной точки и направления, используемые для обработки этого маркера, считывается регистр USTAT. Сброс этого бита сбрасывает регистр USTAT или, если был обработан следующий маркер, загружает в USTAT сохраненное в STAT состояние.

Разряд 2: ACTIVITY: Устанавливается, если на шине обнаружено активное состояние. Этот бит в режиме останова обычно не маскируется. Перед установкой режима останова необходимо разрешить это прерывание установкой соответствующего бита в регистре UIE.

Разряд I: UERR: Устанавливается, если обнаружена какая-либо ошибка. Для идентификации ошибки необходимо считать регистр флажков ошибок (UE1R).

Разряд 0: USB_RST: Устанавливается, если в течение не менее 2.5 мс сигналы шины USB находятся в состоянии сброс. Бит устанавливается после того как условие сброса USB снимается. Программа обработки данного прерывания должна установить в регистре адреса 00h и подключить оконечную точку с номером 0.

Примечание. Биты могут изменяться, если только SUSPND = 0 (UCTRL).