Поиск по сайту:

 


По базе:  

микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > AVR

реклама

 




Мероприятия:




22.14. Управление IN конечными точками

IN пакеты посылаются контроллером USB устройства после получения запроса от хоста. Все данные могут быть записаны ЦПУ, которое разрешает доступ или нет к банку данных, когда он полон. Сначала нужно сконфигурировать конечную точку.

Бит TXINI устанавливается аппаратно, когда текущий банк освобождается. Это приводит к прерыванию, если бит TXINE установлен. В тоже время устанавливается бит FIFOCON. ЦПУ записывает данные в FIFO и сбрасывает бит FIFOCON, что позволяет USB контроллеру отправить данные. Если IN конечная точка состоит из нескольких банков, сброс бита FIFOCON также приводит к переключению на следующий банк данных. После этого содержимое битовTXINI и FIFOCON обновляется аппаратно в соответствии с состоянием нового банка.

Бит TXINI всегда должен быть сброшен перед сбросом бита FIFOCON.

Бит RWAL всегда отражает состояние текущего банка. Этот бит установлен, если данные могут быть записаны программой в банк , и сбрасывается аппаратно, если банк полон.

22.14.1. Детальное описание

Данные записываются ЦПУ согласно следующей последовательности действий:

  • когда банк пуст, возникает прерывание конечной точки (EPINTx), если разрешено (TXINE установлен), то устанавливается TXINI. ЦПУ, в зависимости от архитектуры программы, также может опрашивать TXINI или FIFOCON,
  • ЦПУ подтверждает прием запроса на прерывания путем сброса бита TXINI,
  • ЦПУ может записать данные в текущий банк ( записать в UEDATX),
  • ЦПУ может освободить банк сбросив бит FIFOCON, если записаны все данные, что означает следующее:
    • проведено "N" записей в UEDATX,
    • аппаратно сброшен RWAL.

Если конечная точка использует двойной банк, то второй может считываться хостом при записи ЦПУ данных в первый (текущий). Затем, после сброса ЦПУ FIFOCON, следующий банк может быть уже готов (свободен), и TXINI устанавливается мгновенно.

22.14.1.1. Аварийное прекращение (abort)

В некоторых ситуациях хостом может быть осуществлена стадия "abort" :

  • В управляющих транзакциях: получен OUT пакет нулевой длины во время IN передачи,
  • При изохронной IN передаче: OUT конечной точкой получен OUT пакет нулевой длины в течение IN передачи из IN конечной точки.

Бит 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).



<-- Предыдущая страница Оглавление Следующая страница -->





 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru
©1998-2023 Рынок Микроэлектроники