Реферат: Сучасні інтерфейси інформаційно-вимірювальних систем електро-механічних об’єктів
PING - хост перевіряє готовність точки ENDP пристрою ADDR;
Пакет даних завжди передається вслід за запитом. До складу пакету (Рис.6) входять дані і контрольна сума. CRC16. На розмір пакету даних накладають обмеження тип передачі і режим роботи шини USB.
Рисунок 6 - Пакет даних
Існують наступні маркери даних:
DATA0 - парний пакет даних;
DATA1 - непарний пакет даних;
DATA2, МDATA3 - додаткові маркери, які використовуються при ізохронному обміні на високошвидкісній шині.
Маркери даних дозволяють не тільки ідентифікувати пакет, але ще і контролювати цілісність потоку за рахунок їх визначеної послідовності.
Маркери підтвердження (рис.7) призначені для повідомлення про результати обміну даними і стану точки пристрою.
Рисунок 7 - Маркер підтвердження.
Маркери вміщують наступну інформацію:
АСК - дані отримані без помилок і будуть оброблені;
NAK - для точки OUT - дані отримані без помилок, але нема можливості їх обробити, і тому потрібна повторна передача даних. Для точки IN - дані не готові, хост може повторити запит пізніше;
STALL - точка находиться в стані HALT і не може виконувати свої функції без втручання хосту. Хост не повинен повторювати запит;
NYЕT - дані отримати без помилок і будуть оброблені. Наступний пакет точка прийняти не готова. Даний маркер має місце на високошвидкісній шині для передачі BULK і використовується точками OUT.
До інших пакетів відносяться SOF, PRE, ERR, SPLIT, які мають спеціалізоване призначення. Так наприклад пакет SOF використовується для синхронізації і передається хостом з визначеним інтервалом часу.
На шині USB існує чотири типи передачі даних. Вони відрізняються передаваємим об’ємом даних, пріоритетом доставки і системою контролю і усунення помилок.
Найбільш частіше використовується тип - BULK. Для даного типу передачі гарантована доставка даних без помилок, при цьому час доставки не гарантовано і залежить від завантаженості шини. Контроль даних на рівні пакету - сумою CRC16 і на рівні потоку, де парний та непарний пакет мають відповідні маркери - DATA0, DATA1. У випадку помилки приймаюча сторона не вертає маркер підтвердження, тоді на передаючій стороні запускається механізм автоматичного повтору передачі. Розмір пакету даних може бути випадковим, в тому числі рівним нулю, але не повинен перевищувати максимально допустиме значення. Для високошвидкісної шини USB максимальне значення складає 512 байт, для повношвидкісної - 8, 16, 32 або 64 байта. Типова передача даних для повношвидкісної шини для цього режиму ілюструється рис.8.
Рисунок 8 - BULK - передача даних
Хост, при роботі на повношвидкісній шині, на протязі двох циклів передає дані пристрою та отримує підтвердження. В третьому циклі, після отримання даних, пристрій повідомляє про неможливість обробити дані.
Для високошвидкісної шини після прийому другого пакету точка відповість підтвердженням NYET. Це дозволяє хосту призупинити передачу третього пакету даних і контролювати його готовність коротким запитом PING. Продовжити передачу можна буде після отримання підтвердження АСК.
BULK - прийом ілюстрований рис.9.
Рисунок 9 - BULK - прийом даних
Хост посилає запит IN і підтвердження отримання даних маркером АСК. У другому циклі точка не готова передати дані, тому замість пакету даних вона посилає маркер NAK. Після отримання відмови хост повторює запит через деякий час. Останній цикл закінчується маркером STALL. Даний маркер посилає точка, яка не може виконувати по якимось причинам свої функції; такий стан точки називається HALT. В подібній ситуації для відновлення роботи точки потрібно втручання хосту. Точка, яка находиться в стані HALT, ніяк не впливає на роботу інших точок.
Інший тип передачі - INTERRUPT. Такий тип використовується при необхідності обміну даними через заданий часовий інтервал. Хост гарантує обмін з заданим інтервалом і враховує це при розподілі завантаження шини.