Поиск по сайту: |
|
По базе: |
|
Главная страница > Обзоры по типам > Микроконтроллеры > AVR |
|
||||||||||||
22.14. Управление IN конечными точкамиIN пакеты посылаются контроллером USB устройства после получения запроса от хоста. Все данные могут быть записаны ЦПУ, которое разрешает доступ или нет к банку данных, когда он полон. Сначала нужно сконфигурировать конечную точку. Бит TXINI устанавливается аппаратно, когда текущий банк освобождается. Это приводит к прерыванию, если бит TXINE установлен. В тоже время устанавливается бит FIFOCON. ЦПУ записывает данные в FIFO и сбрасывает бит FIFOCON, что позволяет USB контроллеру отправить данные. Если IN конечная точка состоит из нескольких банков, сброс бита FIFOCON также приводит к переключению на следующий банк данных. После этого содержимое битовTXINI и FIFOCON обновляется аппаратно в соответствии с состоянием нового банка. Бит TXINI всегда должен быть сброшен перед сбросом бита FIFOCON. Бит RWAL всегда отражает состояние текущего банка. Этот бит установлен, если данные могут быть записаны программой в банк , и сбрасывается аппаратно, если банк полон. 22.14.1. Детальное описание Данные записываются ЦПУ согласно следующей последовательности действий:
Если конечная точка использует двойной банк, то второй может считываться хостом при записи ЦПУ данных в первый (текущий). Затем, после сброса ЦПУ FIFOCON, следующий банк может быть уже готов (свободен), и TXINI устанавливается мгновенно. 22.14.1.1. Аварийное прекращение (abort) В некоторых ситуациях хостом может быть осуществлена стадия "abort" :
Бит KILLBK используется для аннулирования последнего записанного банка. Лучший способ для осуществления аварийного прекращения - это выполнить следующие действия: Таблица 22.1. Аварийное прекращение потока 22.15. Режим изохронной передачи данных 22.15.1. Антипереполнение Если хост пытается считать данные из пустого банка при IN передаче, то может возникнуть антипереполнение. В этой ситуации возникает прерывание UNDERFI. Если хост в течении OUT передачи пытается послать пакет в уже полный банк, то также может возникнуть антипереполнение. Обычно ЦПУ не достаточно быстро. Пакет теряется. В течение OUT передачи ЦПУ не может засечь ошибку антипереполнения, т.к. оно должно лишь считывать данные, если они готовы (RXOUTI=1 or RWAL=1). 22.15.2. Ошибка CRC Если USB контроллер получает от хоста неправильный пакет, то может возникнуть ошибка CRC. В этой ситуации возникает прерывание STALLEDI. Это не предотвращает возникновения прерывания RXOUTI. 22.16. Переполнение Если хост пытается записать данные в банк, который слишком мал для них, то течение OUT передачи в управляющей, изохронной, сплошной (bulk) конечной точке или конечной точки прерываний может возникнуть переполнение. В этой ситуации возникает прерывание OVERFI (если разрешено). Отправляется подтверждение приема пакета, возникает прерывание RXOUTI (если разрешено). Банк заполняется первыми байтами пакета. В течение IN передачи ЦПУ не может отследить ошибку переполнения, т.к. он может только записывать данные, если банк готов их принять (TXINI=1 or RWAL=1).
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|