- •Конспект лекций оглавление
- •Общие с ведения о микроконтроллерах
- •Обобщенная структурная схема микроконтроллера
- •Система прерываний
- •Работа системы прерываний
- •Стек данных
- •Микроконтроллеры Intel, Motorola и Microchip
- •Краткое описание особенностей микроконтроллеров
- •Работа сср в режиме шим
- •Примеры контроллеров 18еххх, 16еххх. Характеристики 16 и 18 серии.
- •Периферийные модули
- •Основные характеристики микроконтроллеров
- •Рекомендации по схематическому решению для портов (16 серия)
- •Структура памяти
- •Банк памяти быстрого доступа
- •Регистр выбора банка памяти данных bsr (18 серия)
- •Косвенная адресация, регистра indf и fsr
- •Операция косвенной адресации
- •Механизм косвенной адресации
- •Работа с памятью рiс16fххх
- •Чтение из еерrом-памяти
- •Запись еерrом данных
- •Управление прерываниями Серия рiс16ххх
- •Система прерывании рiс18fхх2
- •Обработка прерываний
- •Контроллеры pic16f87x
- •Карта памяти микроконтроллеров:
- •Структурная схема микроконтроллеров pic16f87x:
- •Служебные регистр:
- •Контроллеры 18 серии
- •Карта памяти микроконтроллеров рiс18f242/442:
- •Регистры конфигурации контроллера:
- •Аппаратный умножитель 8х8
- •Модуль ацп
- •Конфигурация выводов модуля ацп (рiс16f873/76)
- •Источник опорного напряжения
- •Параллельные порты ввода/вывода
- •Последовательный синхронный порт (мssр)
- •Временные диаграммы работы mssp
- •Пример соединения двух мк через spi
- •Режим i2c последовательного порта mssp.
- •Асинхронно-синхронный последовательный порт (usart)
- •Временные диаграммы работы usart в асинхронном режиме
- •Ведомый параллельный порт (psp)
- •Временные диаграммы порта psp
- •Способы кодирования данных
- •Универсальная последовательная шина (usb) Краткий обзор шины
- •Протоколы передачи
- •Питание
- •Оконечные точки
- •Нумерация устройств
- •Описатели
- •Классы устройств / Драйверы класса
- •Микроконтроллеры с модулем usb
- •Приемопередатчик
- •Регистры управления и состояния модуля usb
- •Регистр флагов прерываний модуля usb (uir)
- •Регистр разрешения прерываний модуля usb (uie)
- •Регистр флагов ошибок модуля usb (ueir)
- •Регистр разрешения прерывания по ошибкам модуля usb (ueie)
- •Регистр состояния модуля usb (ustat)
- •Регистр управления модулем usb (uctrl)
- •Регистр адреса usb (uaddr)
- •Регистр состояния программного обеспечения usb
- •Регистры управления оконечными точками (uepn)
- •Буферы оконечных точек
- •Программирование модуля usb
- •Программное обеспечение usb
- •Основные функции и подпрограммы
- •Ресурсы процессора
- •Уровни стека
- •Память программ
- •Память данных
- •Буферные регистры
- •Выбор страниц/Выбор банков
- •Интегрирование подпрограмм usb в программу
Классы устройств / Драйверы класса
Операционные системы главной ЭВМ обычно имеют драйверы, которые группируют функции по общим признакам устройств, называемым классами. Например, класс может включать устройства хранения, звуковые, связи и пользовательского интерфейса, но не ограничиваться перечисленным. Ссылки на драйверы класса для данного устройства могут быть в двух описателях: устройства и интерфейса. Для большинства устройств может быть подобран стандартный драйвер 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).