Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Послідовні шини USB і FireWire.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
292.86 Кб
Скачать

1.1. Організація шини usb

USB забезпечує обмін даними між хост-компьютером і безліччю периферійних пристроїв (ПУ). Згідно специфікації USB, пристрої (devices) можуть бути хабами, функціями або їх комбінацією. Устройство-хаб (hub) тільки забезпечує додаткові точки підключення пристроїв до шини. Пристрій-функція (function) USB надає системі додаткові функціональні можливості, наприклад підключення до ISDN, цифровий джойстик, акустичні колонки з цифровим інтерфейсом і тому подібне Комбінований пристрій (compound device), що містить декілька функцій, представляється як хаб з підключеними до нього декількома пристроями. Пристрій USB повинен мати інтерфейс USB, що забезпечує повну підтримку протоколу USB, виконання стандартних операцій (конфігурація і скидання) і надання інформації, що описує пристрій. Роботою всієї системи USB управляє хост-контроллер (host controller), що є програмно-апаратною підсистемою хост-компьютера. Шина дозволяє підключати, конфігурувати, використовувати і відключати пристрою під час роботи хоста і самих пристроїв.

Шина USB є хост-центрической: єдиним провідним пристроєм, який управляє обміном, є хост-комп'ютер, а всі приєднані до неї периферійні пристрої — виключно ведені. Фізична топологія шини USB — багатоярусна зірка. Її вершиною є хост-контроллер, об'єднаний з кореневим хабом (root hub), як правило, двопортовим. Хаб є пристроєм-розгалуджувачем, він може бути і джерелом живлення для підключених до нього пристроїв. До кожного порту хаба може безпосередньо підключатися периферійний пристрій або проміжний хаб; шина допускає до 5 рівнів того, що каскадує хабов (не рахуючи кореневого). Оскільки комбіновані пристрої усередині себе містять хаб, їх підключення до хабу 6-го ярусу вже неприпустимо. Кожен проміжний хаб має декілька низхідних (downstream) портів для підключення периферійних пристроїв (або хабов, що пролягають нижче) і один висхідний (upstream) порт для підключення до кореневого хабу або низхідного порту вищестоящого хаба. Логічна топологія USB — просто зірка: для хост-контроллера хабы створюють ілюзію безпосереднього підключення кожного пристрою. На відміну від шин розширення (ISA, PCI, РС Card), де програма взаємодіє з пристроями за допомогою звернень по фізичних адресах елементів пам'яті, портів введення-виводу, перериванням і каналам DMA, взаємодія додатків з пристроями USB виконується тільки через програмний інтерфейс. Цей інтерфейс, що забезпечує незалежність звернень до пристроїв, надається системним ПО контроллера USB.

На відміну від громіздких дорогих шлейфів паралельних шин АТА і особливо шини SCSI з її різноманітністю роз'ємів і складністю правил підключення, кабельне господарство USB просте і витончене. Кабель USB містить одну екрановану виту пару з імпедансом 90 Ом для сигнальних ланцюгів і одну неекрановану для подачі живлення (+5 В), допустима довжина сегменту — до 5 м. Для низької швидкості може використовуватися невитий неекранований кабель завдовжки до 3 м (він дешевший). Система кабелів і коннекторів USB не дає можливості помилитися при підключенні пристроїв (мал. 4.1, а і б). Для розпізнавання роз'єму USB на корпусі пристрою ставиться стандартне символічне позначення (мал. 4.1, в). Гнізда типу «А» встановлюються тільки на низхідних портах хабов, вилки типу «А» — на шнурах периферійних пристроїв або висхідних портів хабов. Гнізда і вилки типу «В» використовуються тільки для шнурів, що від'єднуються від периферійних пристроїв і висхідних портів хабов (від «дрібних» пристроїв — мишей, клавіатур і тому подібне кабелі, як правило, не від'єднуються). Окрім стандартних роз'ємів, показаних на малюнку 4.1, застосовуються і мініатюрні варіанти (мал. 4.2, в, г, д). Хаби і пристрої забезпечують можливість «гарячого» підключення і відключення. Для цього роз'єми забезпечують раніше з'єднання і пізнє від'єднання живлячих ланцюгів по відношенню до сигнальних, крім того, передбачений протокол сигналізації підключення і відключення пристроїв. Призначення виводів роз'ємів USB приведене в табл. 4.1, нумерація контактів показана на мал. 4.2. Всі кабелі USB «прямі» — в них з'єднуються однойменні ланцюги роз'ємів.

Мал. 4.1. Коннектори USB: а—вилка типу «А», б—вилка типу «В», в — символічне позначення.

Мал. 4.2. Гнізда USB: а – типу «А»; б – типу «В»; у – мініатюрне типу «В».

Таблиця 4.1. Призначення виводів роз'єму USB

Контакт (мал. 4.2)

Ланцюг

1

V Bus (+5В)

2

D-

3

D+

4

GND

У шині використовується диференціальний спосіб передачі сигналів D+ і D- по двох проводах. Швидкість пристрою, підключеного до конкретного порту, визначається хабом по рівнях сигналів на лініях D+ і D-, що зміщуються резисторами навантажень приймачів: пристрої з низькою швидкістю «підтягають» до високого рівня лінію D-, з повною — D+. Підключення пристрою HS визначається на етапі обміну конфігураційною інформацією — фізично на перших порах пристрій HS повинен підключатися як FS. Передача по двох проводах в USB не обмежується диференціальними сигналами. Окрім диференціального приймача, кожен пристрій має лінійні приймачі сигналів D+ і D-, а передавачі цих ліній управляються індивідуально. Це дозволяє розрізняти більше двох станів лінії, використовуваних для організації апаратного інтерфейсу.

Введення високої швидкості (480 Мбіт/с — всього в 2 рази повільніше, ніж Gigabit Ethernet) вимагає ретельного узгодження приймачів і лінії зв'язку. На цій швидкості може працювати тільки кабель з екранованою витою парою для сигнальних ліній. Для високої швидкості апаратура USB повинна мати додаткові спеціальні приймачі. На відміну від формувачів потенціалу для режимів FS і LS, передавачі HS є джерелами струму, орієнтованими на наявність резисторів-терминаторов на обох сигнальних лініях.

Швидкість передачі даних (LS, FS або HS) вибирається розробником периферійного пристрою відповідно до потреб цього пристрою. Реалізація низьких швидкостей для пристрою обходиться декілька дешевше (приймачі простіші, а кабель для LS може бути і неекранованою невитою парою). Якщо в «старій» USB пристрою можна було, не замислюючись, підключати в будь-який вільний порт будь-якого хаба, то в USB 2.0 за наявності пристроїв і хабов різних версій з'явилися можливості вибору між оптимальними, неоптимальними і непрацездатними конфігураціями.

Хаби USB 1.1 зобов'язані підтримувати швидкості FS і LS, швидкість підключеного до хабу пристрої визначається автоматично по різниці потенціалів сигнальних ліній. Хаби USB 1.1 при передачі пакетів є просто повторителями, що забезпечують прозорий зв'язок периферійного пристрою з контроллером. Передачі на низькій швидкості досить марнотратно витрачають потенційну пропускну спроможність шини: за той час, на який вони займають шину, високошвидкісний пристрій може передати даних в 8 разів більше. Але ради спрощення і здешевлення всієї системи на ці жертви пішли, а за розподілом смуги між різними пристроями стежить планувальник транзакцій хост-контроллера.

У специфікації 2.0 швидкість 480 Мбіт/с повинна уживатися з колишніми, але при такому співвідношенні швидкостей обміни на FS і LS «з'їдять» можливу смугу пропускання шини без жодного «задоволення» (для користувача). Щоб цього не відбувалося, хабы USB 2.0 набувають рис комутаторів пакетів. Якщо до порту такого хаба підключений високошвидкісний пристрій (або аналогічний хаб), то хаб працює в режимі повторителя, і транзакція з пристроєм на HS займає весь канал до хост-контроллера на весь час свого виконання. Якщо ж до порту хаба USB 2.0 підключається пристрій або хаб 1.1, то по частині каналу до контроллера пакет проходить на швидкості HS, запам'ятовується в буфері хаба, а до старого пристрою або хабу йде вже на його «рідній» швидкості FS або LS. При цьому функції контроллера і хаба 2.0 (включаючи і кореневий) ускладнюються, оскільки транзакції на FS і LS розщеплюються і між їх частинами уклинюються високошвидкісні передачі. Від старих (1.1) пристроїв і хабов всі ці тонкощі ховаються, що і забезпечує зворотну сумісність. Цілком зрозуміло, що пристрій USB 2.0 зможе реалізувати високу швидкість, тільки якщо по дорозі від нього до хост-контроллеру (теж 2.0) будуть, зустрічатися тільки хабы 2.0. Якщо це правило порушити і між ним і контроллером 2.0 опиниться старий хаб, то зв'язок може бути встановлена тільки в режимі FS. Якщо така швидкість пристрій і клієнтське ПО влаштує (наприклад, для принтера і сканера це виллється тільки в більший час очікування користувача), то підключений пристрій працювати буде, але з'явиться повідомлення про неоптимальну конфігурацію з'єднань. По можливості її (конфігурацію) слід виправити, благо перемикання кабелів USB можна виконувати на ходу. Пристрої і ПО, критичні до смуги пропускання шини, в неправильній конфігурації працювати відмовляться і категорично зажадають перемикань. Якщо ж хост-контроллер старий, то всі переваги USB 2.0 виявляться недоступними користувачеві. В цьому випадку доведеться міняти хост-контроллер (міняти системну плату або набувати PCI-карту контроллера). Контроллер і хабы USB 2.0 дозволяють підвищити сумарну пропускну спроможність шини і для старих пристроїв. Якщо пристрої FS підключати до різних портів хабов USB 2.0 (включаючи і кореневий), то для них сумарна пропускна спроможність шини USB зросте в порівнянні з 12 Мбіт/с в стільки раз, скільки використовується портів високошвидкісних хабов.

Хаб є ключовим елементом системи Рnр в архітектурі USB. Хаб виконує безліч функцій:

• забезпечує фізичне підключення пристроїв, формуючи і сприймаючи сигнали відповідно до специфікації шини на кожному зі своїх портів;

• управляє подачею живлячої напруги на низхідні порти, причому передбачається установка обмеження на струм, споживаний кожним портом;

• відстежує стан підключених до нього пристроїв, повідомляючи хост про зміни;

• виявляє помилки на шині, виконує процедури відновлення і ізолює несправні сегменти шини;

• забезпечує зв'язок сегментів шини, що працюють на різних швидкостях.

Хаб стежить за сигналами, пристроями, що генеруються. Несправний пристрій може не вчасно «замовкнути» (втратити активність) або, навпаки, щось «бурмотіти» (babble). Ці ситуації відстежує найближчий до пристрою хаб і забороняє висхідні передачі від такого пристрою не пізніше, ніж по межі (мікро) кадру. Завдяки пильності хабов ці ситуації не дозволять несправному пристрою заблокувати всю шину.

Кожен з низхідних (downstream) портів може бути дозволений або заборонений, а також конфігурований на високу, повну або обмежену швидкість обміну. Хаби можуть мати світлові індикатори стани низхідних портів, керовані автоматично (логікою хаба) або програмно (хост-контроллером). Індикатор може бути парою світлодіодів — зелений і жовтий (янтарний) або один світлодіод з кольором, що змінюється. Стан порту представляється таким чином:

• не світиться — порт не використовується;

• зелений — нормальна робота;

• жовтий — помилка;

• зелений миготливий — програма вимагає уваги користувача (Software attention);

• жовтий миготливий — апаратура вимагає уваги користувача (Hardware attention).

Висхідний (upstream) порт хаба конфігурується і зовні представляється як повношвидкісний або високошвидкісний (тільки для USB 2.0). При підключенні порт хаба USB 2.0 забезпечує терминацию по схемі FS, в режим HS він переводиться тільки по команді контроллера.

На мал. 4.3 приведений варіант з'єднання пристроїв і хабов, де високошвидкісним пристроєм USB 2.0 є тільки телекамера, передавальна відеопотік без компресії. Підключення принтера і сканера USB 1.1 до окремих портів хаба 2.0, та ще і розв'язка їх з аудіопристроями, дозволяє їм використовувати смугу шини по 12 Мбіт/с кожному. Таким чином, із загальної смуги 480 Мбіт/с на «старі» пристрої (USB 1.0) виділяється 3х12=36 Мбіт/с. Взагалі-то можна говорити і про смугу в 48 Мбіт/с, оскільки клавіатура і миша підключені до окремого порту хост-контроллера USB 2.0, але ці пристрої «освоять» тільки малу дещицю з виділених їм 12 Мбіт/с. Звичайно, можна підключати клавіатуру і мишу до порту зовнішнього хаба, але з погляду підвищення надійності системні пристрої введення краще підключати найбільш коротким (по кількості кабелів, роз'ємів і проміжних пристроїв) способом. Невдалою конфігурацією було б підключення принтера (сканера) до хабу USB 1.1 — під час роботи з аудіопристроями (якщо вони високої якості) швидкість друку (сканування) падатиме. Непрацездатною конфігурацією з'явилося б підключення телекамери до порту хаба USB 1.1.

При плануванні з'єднань слід враховувати спосіб живлення пристроїв: пристрої, що харчуються від шини, як правило, підключають до хабам, що харчується від мережі. До хабам, що харчується від шини, підключають лише малопотужні пристрої — так, до клавіатури USB, що містить усередині себе хаб, підключають мишу USB і інші пристрої-покажчики (трекбол, планшет).

Управління енергоспоживанням є вельми розвиненою функцією USB. Для пристроїв, що харчуються від шини, потужність обмежена. Будь-який пристрій при підключенні не повинен споживати від шини струм, що перевищує 100 мА. Робочий струм (не більше 500 мА) заявляється в конфігурації. Якщо хаб не може забезпечити пристрою заявлений струм, воно не конфігурується і, отже, не може бути використано.

Пристрій USB повинен підтримувати режим припинення (suspended mode), в якому його споживаний струм не перевищує 500 мкА. Пристрій повинен автоматично припинятися при припиненні активності шини.

Мал. 4.3. Приклад конфігурації з'єднань

Можливість видаленого пробудження (remote wakeup) дозволяє припиненому пристрою подати сигнал хост-компьютеру, який теж може знаходитися в припиненому стані. Можливість видаленого пробудження описується в конфігурації пристрою. При конфігурації ця функція може бути заборонена.