В 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.12. Управляющая конечная точка

В ответ на запрос SETUP всегда посылается подтверждение приема (ACK)/ При получении нового SETUP пакета возникает прерывание RXSTPI (если разрешено). Прерывание RXOUTI не возникает.

Поля FIFOCON и RWAL не относятся к управляющим конечным точкам. Поэтому программа не должна использовать эти поля для таких конечных точек. При чтении значение этих полей всегда 0. Организация работы управляющих конечных точек осуществляется с помощью следующих битов:

  • Бит RXSTP устанавливается при получении нового запроса SETUP. Он должен быть сброшен программно для подтверждения приема пакета и очистки банка данных конечной точки.
  • Бит RXOUTI устанавливается при получении новых данных от хоста. Он должен быть сброшен программно для подтверждения приема пакета и очистки банка данных конечной точки.
  • Бит TXINI устанавливается, когда банк готов к приему новых данных для передачи хосту. Он должен быть сброшен программно для передачи пакета и очистки банка данных конечной точки.

22.12.1. Управляющая запись

Нижеприведенный рисунок иллюстрирует транзакцию управляющей записи.

В стадии статуса контроллер не обязательно пошлет NAK в ответ на первый IN маркер:

  • если программа "знает" точное количество байт в дескрипторе, который должен быть считан, то она может ожидать в стадии статуса и послать пакет нулевой длины в ответ на следующий IN маркер,
  • или программа может считать байты и проверить значение NAKINI, которое "говорит", что все байты были посланы в хост, и транзакция сейчас находится в стадии статуса.

22.12.2. Управляющее чтение

Нижеприведенный рисунок иллюстрирует транзакцию управляющего чтения.

USB контроллер должен обслуживать одновременно запросы на запись от ЦПУ и USB хоста.

NAK всегда посылается при первой команде стадии статуса. Когда контроллер обнаруживает стадию статуса, все данные записанные ЦПУ стираются, а сброс TXINI ни на что не влияет. Программа проверяет закончена ли передача или прием данных.

В ответ на повторную посылку маркера OUT всегда отправляется подтверждение (ACK). Прием заключается в следующем:

  • установка флага RXOUTI (получены данные от хоста),
  • установка флага TXINI (готов к приему новых данных).

Алгоритм для программы:

установить transmit ready
ожидание (окончания передачи или приема)
если прием окончен, сброс флага и возврат
если окончена передача, продолжить

После получения стадии статуса OUT USB контроллер ожидает получения запроса SETUP. Запрос SETUP имеет наивысший приоритет относительно остальных запросов и ответом на него всегда должно быть подтверждение. Это означает, что при получении SETUP все остальные флаги должны быть сброшены, а также должны быть сброшены все FIFO.

Предупреждение: счетчик байтов сбрасывается при получении нулевого OUT пакета. Это должно учитываться программным обеспечением.

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

OUT пакеты посылаются хостом. Все данные доступны для чтения ЦПУ, которое разрешает доступ или нет к банку данных, когда он пуст.

22.13.1. Обзор

Сначала конечная точка должна быть сконфигурирована. Каждый раз, когда банк данных заполнен, устанавливаются биты RXOUTI и FIFOCON. Это приводит к прерыванию, если установлен бит RXOUTE. Программа может подтвердить получение запроса на USB прерывание сбросом бита RXOUTI. Программа считывает данные и сбрасывает бит FIFOCON для освобождения текущего банка. Если OUT конечная точка состоит из нескольких банков, то сброс бита FIFOCON приводит к переключению на следующий банк. После этого содержимое битов RXOUTI и FIFOCON обновляется аппаратно в соответствии с состоянием нового банка.

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

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

22.13.2.1.

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

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

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



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





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