Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 303

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 297 298 299 300 301 302 < 303 > 304 305 306 307 308 309 .. 528 >> Следующая

состояния дескриптора и устанавливает бит прерывания RXB в регистре
событий USB-контроллера.
• Ошибка проверки контрольной суммы (CRC Error). При обнаружении этой
ошибки контроллер закрывает буфер приема, устанавливает бит ошибки CR :=
1 в слове состояния дескриптора и устанавливает бит прерывания RXB в
регистре событий USB-контроллера.
• Ошибка проверки алгоритма вставки/удаления бит-стаффинга. Если
обнаруживается данная ошибка, то принятый кадр сохраняется в буфере
памяти, заполняется его слово состояния и последним в нем устанавливается
бит AB(Frame Aborted) := 1. Передача данных. При передаче данных
пользователь должен предварительно загрузить данные в буфер FIFO
выбранной конечной точки. Для этого пользователь должен подготовить
данные для передачи в буферах памяти, заполнить слово состояния
соответствующего буферного дескриптора и установить бит STR := 1 в
регистре команд USB-контроллера. Далее USB-контроллер перепишет данные в
соответствующий FIFO-буфер конечной точки (endpoint) и будет ожидать
появления маркера IN, при получении которого он начнет передачу данных в
сеть.
Если при получении IN-маркера данные в буфере FIFO не готовы или в
регистре конфигурации выбранной Endpoint USEPx установлено значение битов
THS = 10, то в ответ на маркер IN посылается пакет с отрицательным
подтверждением NAK. Значение битов THS определяет тип пакета
подтверждения, который может быть передан в ответ на получение маркера
IN.
539
КОММУНИКАЦИОННЫЕ МИКРОКОНТРОЛЛЕРЫ И СИСТЕМЫ НА ИХ ОСНОВЕ
Когда все данные текущего буферного дескриптора переданы и в слове
состояния установлен бит последнего дескриптора пакета L = 1 (Last), то
контроллер добавляет к пакету поле контрольной суммы и завершает передачу
пакета.
В ответ на передачу пакета данных USB-контроллер ожидает от хоста
получения пакета подтверждения. Если в течение определенного времени
подтверждение не получено, то в слове состояния последнего дескриптора
переданного пакета устанавливается бит ТО := 1 (Time Out).
Обратите внимание, что пользователь должен самостоятельно заполнять поля
DATA0/ DATA1 РЮ в передаваемом пакете.
Основные ошибки, регистрируемые при передаче, перечислены ниже.
• Незаполнение буфера FIFO передатчика (underrun). При возникновении этой
ошибки контроллер специально нарушает процедуру вставки бит-стаффинга,
прекращает передачу из буфера, закрывает буфер, устанавливает бит ошибки
UN := 1 в слове состояния дескриптора и устанавливает бит прерывания ТХЕ
в регистре событий USB-контроллера.
• Истек тайм-аут ожидания ответа (Timeout). Если установлен бит RTE = 1 в
регистре конфигурации, то при возникновении этой ошибки USB-контроллер
делает попытку повторной передачи пакета, на который не пришло
подтверждение. Если же бит RTE = О или вторая попытка повторной передачи
тоже завершилась неудачей, то контроллер закрывает буфер передачи,
устанавливает бит ошибки ТО := 1 в слове состояния дескриптора и
устанавливает бит прерывания ТХЕ в регистре событий USB-контроллера.
• Данные для передачи не готовы (TxData not Ready). Данная ошибка
возникает, когда контроллер получил IN-маркер, а буфер FIFO передачи
соответствующей конечной точки пуст, или если конечная точка
запрограммирована на посылку подтверждений NAK или STALL. При обработке
данной ошибки контроллер устанавливает бит прерывания ТХЕ в регистре
событий USB-контроллера.
Прием служебных маркеров. При приеме маркера SOF (Start of Frame) USB-
контроллер регистрирует маскируемое прерывание SOF и увеличивает значение
в ячейке FRAME_N в памяти параметров (рис. 5.66), подсчитывая количество
принятых маркеров SOF. Если SOF-маркер был принят без ошибок, то в ячейке
FRAME_N будет установлен бит V := 1.
Прием маркера PRE USB-контроллер выполняет (т. е. не игнорирует этот
пакет) только при работе в режиме host (но генерировать PRE-маркеры в
режиме host контроллер не может). Появление этого маркера сообщает о
начале низкоскоростной передачи данных.
Настройка USB-контроллера в МРС823. Память параметров USB-контроллера.
Память параметров USB-контроллера состоит из двух частей: память основных
параметров USB-контроллера (табл. 5.39) и память параметров каждой из
конечных точек (табл. 5.40). Память основных параметров обычно
располагается в области протокол-независимых параметров ЭСС2-контроллера
по адресу, который вычисляется как USBBase = (IMMR & 0xFFFF0000)+0x3C00.
О 1 2 3 4 5 6 7 8 9 10 11 12 13
14 15
Зарезервировано
Frame Number
Рис. 5.66. Формат ячеек FRAME_N
540
ОРГАНИЗАЦИЯ КОММУНИКАЦИОННЫХ ПРОЦЕССОРНЫХ МОДУЛЕЙ в кмк
Таблица 5.39
Память основных параметров USB-контроллера
Адрес Название Размер, бит Описание
USBBASE+00 EPOPTR 16 Указатель на начало памяти параметров
Endpoint 0
USBBASE+02 EP1PTR 16 Указатель на начало памяти параметров
Endpoint 1
USBBASE+04 EP2PTR 16 Указатель на начало памяти параметров
Endpoint 2
USBBASE+06 EP3PTR 16 Указатель на начало памяти параметров
Endpoint 3
Предыдущая << 1 .. 297 298 299 300 301 302 < 303 > 304 305 306 307 308 309 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed