logo
ЗФ / Вопросы-Ответы (ВМСиС)

32. Что такое транзакция?

Транзакция (от английского transaction — сделка) это, в широком смысле, серия операций по обмену информацией, в результате которой в систему вносятся изменения. 

Все обмены (транзакции) по USB состоят из трех пакетов. Каждая транзакция планируется и начинается по инициативе хост-контроллера, который посылает маркер-пакет (т. е. пакет типа token). Он описывает тип и направление передачи, адрес устройства USB и номер конечной точки. В каждой транзакции возможен обмен только между устройством (его конечной точкой) и хостом. Адресуемое маркером устройство распознает свой адрес и готовится к обмену. Источник данных, определенный маркером, передает пакет данных или уведомление об отсутствии данных, предназначенных для передачи. После успешного приема пакета приемник данных посылает пакет подтверждения (т.е. пакет типа Handshake).

Где А - передача данных от хоста, Б - передача данных хосту. Периферийное устройство не может выдавать на шину какую-либо информацию по собственной инициативе и не может самостоятельно посылать запросы прерываний.

Спецификация USB определяет следующие типы транзакций. Передача команды:

Изохронная передача данных:

Передача данных с подтверждением:

Изохронный прием данных:

Прием данных с подтверждением: