Типы USB пакетов
Для USB шины позиционируется четыре типа пакетов. Пакеты-маркеры обозначает какого типа транзакция начинается на шине, пакет данных включает в себя передаваемую структуру данных, пакеты статуса используются для информирования об успешно выполненной транзакции или ошибках произошедших при передаче, и пакеты начала кадра инициируются при генерации нового кадра на шине.
· Маркерные пакеты (Token Packets)
Существуют три типа маркерных пакетов:
1. In - информируют USB устройство, что хост хочет читать данные из устройства
2. Out - информирует USB устройство, что хост хочет передавать данные в устройство
3. Setup - используются для обозначения начала управляющего (Control Transfer) типа передачи данных
Все маркерные пакеты имеют следующий формат:
SYNC | PID | ADDR | ENDP | CRC5 | EOP |
Рисунок 4. Маркерный пакет.
· Пакеты данных (Token Packets)
Существуют два типа пакетов данных, каждый из которых способен содержать до 1024 байтов данных.
- DATA0
- DATA1
У высокоскоростных устройств для пакетов данных определены два других PID-a: DATA2 и MDATA. Пакет данных имеет нижеследующий формат:
SYNC | PID | DATA | CRC16 | EOP |
Рисунок 5. Пакет данных.
- Максимальная полезная загрузка для низкоскоростных устройств составляет 8 байт.
- Максимальная полезная загрузка для полноскоростных устройств составляет 1023 байта.
- Максимальная полезная загрузка для высокоскоростных устройств составляет 1024 байт.
- Данные всегда посылаются целым числом байт. Данные CRC16 вычисляются только для поля данных в пакете и не включают PID, который имеет собственное поле проверки.
· Пакеты подтверждения (Handshake Packets)
Существуют три типа пакетов подтверждения, структура которых имеет только PID поле:
- ACK - подтверждение того, что пакет был успешно принят
- NAK - информирует, что устройство в данный момент не может принимать либо отправлять данные. Также используется в Interrupt транзакциях для информирования хоста, что устройство не имеет новых данных для передачи. Хост никогда не может выдавать ответ NAK. NAK используется в целях управления потоком данных.
- STALL - указывает, что устройство неспособно передавать или получать данные, и требуется вмешательство хоста для снятий состояния останова. Как только конечная точка устройства остановлена, устройство должно продолжить возвращать STALL, пока условие, вызвавшее останов не будет удалено с помощью вмешательства хоста. Хосту запрещено возвращать STALL.
Пакет подтверждения имеет нижеследующий формат:
SYNC | PID | EOP |
Рисунок 6. Пакет подтверждения.
· Пакеты начала кадра (Start of Frame Packets)
SOF пакет состоит из 11-ти битного номера кадра и генерируется хостом каждую 1ms ± 500ns для полноскоростной шины и каждые 125 µs ± 0.0625 µs для высокоскоростной шины.
Пакет начала кадра имеет нижеследующий формат:
SYNC | PID | Frame Number | CRC16 | EOP |
Рисунок 7. Пакет начала кадра.
Дата добавления: 2015-07-24; просмотров: 997;