Цифровые микроконтроллеры

Полезные ссылки

Транзакции установки Обработка транзакций периферийного устройства USBV2.0
Транзакции установки - это специальные транзакции между хостом и устройством, используемые в ходе управляющих передач. Управляющие передачи должны выполняться с использованием конечных точек без атрибутов пинг-понга.

Транзакция установки должна быть как можно скорее обработана пользовательским программным обеспечением. Она используется, чтобы передать запросы от хоста в устройство. Эти запросы обрабатываются USB-устройством и могут требовать большего количества параметров. Эти параметры передаются устройству транзакцией данных OUT, которая следует за транзакцией установки. Эти запросы могут также возвращать данные. Данные поступают в хост со следующей транзакцией данных IN, которая следует за транзакцией установки.

Когда передача установки принята USB-конечной точкой, то аппаратно производятся следующие действия:
• USB-устройство автоматически подтверждает пакет установки;
• устанавливается бит RXSETUP в регистре UDP_CSRx;
• генерируется запрос прерывания от конечной точки, задержанный до тех пор, пока RXSETUP не будет сброшен. Это прерывание поступает в процессор, если для этой конечной точки разрешены прерывания.

Таким образом, пользовательское программное обеспечение должно обнаружить установку RXSETUP путём опроса состояния регистра UDP_CSRx или захвата прерывания, прочитать пакет установки в буфер FIFO, а затем сбросить бит RXSETUP Бит RXSETUP не может быть сброшен перед прочтением пакета установки в буфер FIFO. В противном случае USB-устройство примет следующую передачу данных OUT и запишет её поверх пакета установки в буфер FIFO.

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

2009 © Copyright