
- •Лекція. Послідовні шини usb і FireWire.
- •1.1. Організація шини usb
- •4.1.2. Модель передачі даних
- •4.1.3. Протокол
- •Мал. 4.4. Послідовності пакетів: а — вивід, б—ввод
- •Мал. 4.5. Потік кадрів usb
- •4.1.4. Типи передач даних
- •4.1.5. Синхронізація при ізохронній передачі
- •4.1.6. Хост
- •4.1.7. Застосування шини usb
- •4.1.8. Розробка власних пристроїв usb
- •4.2. Шина ieee 1394 – FireWire
- •4.2.1. Фізичний рівень мережі
- •4.2.3. Пристрої і адаптери 1394
- •4.2.4. Використання 1394
4.1.2. Модель передачі даних
Кожен пристрій на шині USB (їх може бути до 127) при підключенні автоматично отримує свою унікальну адресу. Логічно пристроєм є набір незалежних кінцевих крапок (endpoint, EP), з якими хост-контроллер (і клієнтське ПО) обмінюється інформацією. Кожна кінцева крапка має свій номер і описується наступними параметрами:
• необхідна частота доступу до шини і допустимі затримки обслуговування;
• необхідна смуга пропускання каналу;
• вимоги до обробки помилок;
• максимальні розміри передаваних пакетів, що приймаються;
• тип передачі;
• напрям передачі (для передач масивів і ізохронного обміну).
Кожен пристрій обов'язково має кінцеву крапку з номером 0, використовувану для ініціалізації, загального управління і опиту стану пристрою. Ця крапка завжди конфігурована при включенні живлення і підключенні пристрою до шини. Вона підтримує передачі типу «управління» (див. нижчий).
Окрім нульової крапки, пристрої-функції можуть мати додаткові крапки, що реалізовують корисний обмін даними. Низькошвидкісні пристрої можуть мати до двох додаткових крапок, повношвидкісні — до 15 точок введення і 15 точок виводу (протокольне обмеження). Додаткові крапки (а саме вони і надають корисні для користувача функції) не можуть бути використані до їх конфігурації (встановлення узгодженого з ними каналу).
Каналом (pipe) в USB називається модель передачі даних між хост-контроллером і кінцевою точкою пристрою. Є два типи каналів: потоки і повідомлення. Потік (stream) доставляє дані від одного кінця каналу до іншого, він завжди однонаправлений. Один і той же номер кінцевої крапки може використовуватися для двох потокових каналів — введення і виводу. Потік може реалізовувати наступні типи обміну: передача масивів, ізохронний і переривання. Повідомлення (message) має формат, визначений специфікацією USB. Хост посилає запит до кінцевої крапки, після якого передається (приймається) пакет повідомлення, за яким слідує пакет з інформацією стану кінцевої крапки. Подальше повідомлення нормально не може бути послане до обробки попереднього, але при відробітку помилок можливе скидання необслужених повідомлень. Двосторонній обмін повідомленнями адресується до однієї і тієї ж кінцевої крапки.
З каналами пов'язані характеристики, відповідні кінцевій крапці (смуга пропускання, тип сервісу, розмір буфера і т. п.). Канали організовуються при конфігурації пристроїв USB. Для кожного включеного пристрою існує канал повідомлень (Control Pipe 0), по якому передається інформація конфігурації, управління і стану.
4.1.3. Протокол
Всі обміни (транзакції) з пристроями USB складаються з двох-трьох пакетів. Кожна транзакція планується і починається за ініціативою контроллера, який посилає пакет-маркер (token packet). Він описує тип і напрям передачі, адресу пристрою USB і номер кінцевої крапки. У кожній транзакції можливий обмін тільки між пристроєм (його кінцевою крапкою), що адресується, і хостом. Пристрій, що адресується маркером, розпізнає своя адреса і готується до обміну. Джерело даних (визначений маркером) передає пакет даних (або повідомлення про відсутність даних, призначених для передачі). Після успішного прийому пакету приймач даних посилає пакет квитування (handshake packet). Послідовність пакетів в транзакціях ілюструє мал. 4.4.
Хост-контроллер організовує обміни з пристроями згідно своєму плану розподілу ресурсів. Контроллер циклічно (з періодом 1,0±0,0005 мс) формує кадрів (frames), в яких укладаються всі заплановані транзакції (мал. 4.5). Кожен кадр починається з посилки маркера SOF (Start Of Frame), який є синхронізуючим сигналом для всіх пристроїв, включаючи хабы. В кінці кожного кадру виділяється інтервал часу EOF (End Of Frame), на час якого хабы забороняють передачу у напрямку до контроллера. У режимі HS пакети SOF передаються на початку кожного мікрокадру (період 125±0,0625 мкс). Хост планує завантаження кадрів так, щоб в них завжди знаходилося місце для транзакцій управління і переривань. Вільний час кадрів може заповнюватися передачами масивів (bulk transfers). У кожному (мікро) кадрі може бути виконане декілька транзакцій, їх допустиме число залежить від довжини поля даних кожній з них.
а
Маркер Дані Квитування
Пристрій чекає Хост чекає
би
Маркер Дані Квитування
Хост чекає Пристрій чекає