Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Агуров П.В. -> "Интерфейсы USB. Практика использования и программирования" -> 105

Интерфейсы USB. Практика использования и программирования - Агуров П.В.

Агуров П.В. Интерфейсы USB. Практика использования и программирования — СПб.: БХВ-Петербург, 2004. — 576 c.
ISBN 5-94157-202-6
Скачать (прямая ссылка): interface2004.djvu
Предыдущая << 1 .. 99 100 101 102 103 104 < 105 > 106 107 108 109 110 111 .. 166 >> Следующая

Конечно, объем книги не позволит нам привести полное описание этого процессора и, тем более, языка С и ассемблера. Полное описание процессора и дополнительную информацию о нем можно найти на сайте Atmel (www.atmel.com). В нашей книге мы ограничимся тем минимумом информации, который потребуется для реализации простого устройства.
13.1. Структурная схема AT89C5131
Контроллер АТ89С5131 содержит специальный аппаратный модуль, который позволяет микропроцессору обеспечивать обмен данными по USB-интерфейсу (рис. 13.1). Для этого необходимы опорные синхроимпульсы с частотой 48 МГц, которые вырабатываются контроллером синхронизации. Эти синхроимпульсы используются для формирования 12 МГц тактовых импульсов из принятого дифференциального потока данных USB и передачи данных на высокой скорости, соответствующей требованиям к USB-устройствам. Формирование синхроимпульсов выполняется цифровой сис-
Глава 13. HlD-устройство на основе Atmel АТ89С5131
323
темой ФАПЧ (DPLL, Digital Phase Locked Loop). Коэффициент деления задается битами USBCDx регистра USBCLK.
48 МГц
DPLL 12 МГц
USB буфер
SIE
UR
Интерфейс микроконтроллера С51
Рис. 13.1. Структурная схема USB-модуля в микропроцессоре АТ89С5131
Блок последовательного интерфейса (SIE, Serial Interface Engine) выполняет следующие функции:
? NRZI-кодирование и декодирование данных;
? вставку и извлечение бита;
? формирование битов проверки на четность (CRC-кодирование и декодирование);
? автоматическое формирование сигналов ACK и NACK;
? идентификацию типа передатчика;
? контроль адресов;
? восстановление синхроимпульсов (при помощи DPLL).
Функциональный интерфейсный модуль (UFI, Universal Function Interface) обеспечивает интерфейс между микропроцессорами и SIE. Он управляет обменом на пакетном уровне с минимальными программными затратами, выполняющими запись и считывание FIFO-буфера конечной точки.
Для экономии места остальные функциональные составляющие, показанные на рис. 13.2 (источники прерываний, USB-регистры и т. д.), мы рассмотрим при описании регистров микропроцессора, необходимых нам для работы.
324
Часть IV. Создание USB-устройств
XTAL1 -XTAL2-.
ALE н PSEN .
RD-WR-
Q Q
а <л
Ii
Ш U
EUART +
BRG
RAM
256x8
Їс51 Щ~ core тт ¦idfa
Timer О Timer 1
INT CIlI
52Kx8 Flash
EEPROM 4Kx8
ERAM
1KX8
і
Й й *
N OD г 2 « И
H сл от 1 ІІ,
, I I I Parallel то Ports I I ,I « Ext. BUS I
Ро«і о 'OH 1 »ort 2 РОГІЗ Port 4
Boan
oil O 'oil 1 »ort 2 Port 3 Port 4
ШТГ T
III ITT I
Key Watch USB Regu-
Board Dog lator
Tf
Рис. 13.2. Структурная схема AT89C5131
13.2. USB-регистры AT89C5131
Микроконтроллер АТ89С5131 содержит несколько ключевых регистров, с помощью которых производится конфигурирование и обмен по интерфейсу USB. Обычные регистры, присутствующие во всех контроллерах семейства 8051, мы не описываем.
13.2.1. Регистр USBCON
Регистр usbcon (байт, адрес OxBC) — основной управляющий регистр USB-модуля. После сброса регистр принимает значение ООООООООЬ.
Регистр содержит следующие биты:
? [7] usbe — бит включения модуля USB. Установка бита включает USB-контроллер. Сброс бита отключает и сбрасывает USB-контроллер;
? [6] suspcLK — бит приостановки синхронизации USB. Установка бита отключает вход 48 МГц синхроимпульсов (продолжение детектирования все еще возможно). Сброс включает вход 48 МГц синхроимпульсов;
? [5] sdrmwup — бит передачи удаленного пробуждения. Устанавливается для вызова внешнего прерывания USB-контроллера при удаленном пробуждении. Резюме исходящего потока передается, если только бит rmwupe установлен, все USB-синхроимпульсы активизированы и USB-шина на-
Глава 13. HID-устройство на основе Atmel АТ89С5131
325
ходилась в состоянии приостановки (состояние suspend) не менее 5 мс. Сбрасывается программно;
? [4] зарезервирован. Всегда считывается как 0. Не пытайтесь установить этот бит;
? [3] uprsm — резюме исходящего потока (только чтение). Устанавливается аппаратно после установки бита sdrmwup, если бит rmwupe был также установлен. Сбрасывается аппаратно после передачи резюме исходящего потока;
? [2] rmwupe — бит разрешения удаленного пробуждения. Устанавливается для разрешения запроса резюме исходящего потока ведущего устройства. Сбрасывается после отображения резюме исходящего потока в rsminpr. Замечание: не устанавливайте этот бит, если у ведущего устройства для прибора не установлена функция device_remote_wakeup;
? [1] confg — конфигурационный бит. Устанавливается после корректной обработки запроса set_configuration с ненулевым значением. Сбрасывается программно после получения запроса set_configuration с нулевым значением. Сбрасывается аппаратно при аппаратном сбросе или после обнаружения сброса на шине USB;
? [0] fadden — бит разрешения функции адресации. Устанавливается программным обеспечением прибора после успешного завершения транзакции set_address. В последующем он не должен сбрасываться программно. Сбрасывается аппаратно при аппаратном сбросе или после обнаружения сброса на шине USB. Когда этот бит сброшен, используется функция адресации по умолчанию (нулевая конечная точка).
Предыдущая << 1 .. 99 100 101 102 103 104 < 105 > 106 107 108 109 110 111 .. 166 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100