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

реклама

 
радиационно стойкие ПЗУ Миландр

Продажа силового и бронированного кабеля и провода в Москве




Arduino Uno R3 Atmega328
готовый модуль
Лучшая Цена 335 руб




Стартовый набор с большим набором аксесуаров
Arduino Uno R3 Atmega328
Лучшая Цена 2211 руб



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 (495) 514 4110. e-mail:info@eust.ru
©1998-2016 ООО Рынок Микроэлектроники