•  

 

 USB (Universal Serial Bus – універсальна послідовна шина) є промисловим стандартом розширення архітектури ПК, орієнтованим на інтеграцію з телефонією і пристроями побутової електроніки. Версія 1.0 була опублікована на початку 1996 року, більшість пристроїв підтримує версію 1.1, яка вийшла восени 1998 року, – в ній були усунуті знайдені проблеми першої редакції. Весною 2000 року опублікована специфікація USB 2.0, в якій передбачено 40-кратне підвищення пропускної здатності шини. Спочатку (у версіях 1.0 і 1.1) шина забезпечувала дві швидкості передавання інформації: повна швидкість FS (full speed) – 12 Мбіт/с і низька швидкість LS (Low Speed) – 1,5 Мбіт/с. У версії 2.0 визначена ще й висока швидкість HS (High Speed) – 480 Мбіт/с, яка дозволяє суттєво розширити обсяг пристроїв, які підключаються до шини. В одній і тій же системі можуть бути присутні і одночасно працювати пристрої зі всіма трьома швидкостями. Шина з використанням проміжних хабів позволяє з’єднувати пристрої, віддалені від комп’ютера на відстань до 25 м.

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

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

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

Рисунок 4.9 – Гнізда USB: а – тип «А», б – тип «В» стандартні, в, г – мініатюрні типу «В»

         

Таблиця 4.13 – Призначення виводів роз’єму USB

 

Контакт

Коло

1

VBus (+5B)

2

D–

3

D+

4

GND

 

 

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

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

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

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

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

          Кожен пристрій на шині USB (їх може бути до 127) при підключенні автоматично отримує свою унікальну адресу. Логічно пристрій являє собою набір незалежних кінцевих точок (endpoint, EP), з якими хост-контролер (і клієнтське ПЗ) обмінюються інформацією. Кожна кінцева точка має свій номер і описується такими параметрами:

·       необхідна частота доступу до шини і допустимі затримки обслуговування;

·       необхідна смуга пропускання каналу;

·       вимоги до обробки посилок;

·       максимальні розміри переданих і прийнятих пакетів;

·       тип передавання;

·       напрям передавання (для передавання масивів і ізохронного обміну).

          Кожний пристрій обов’язково містить кінцеву точку з номером 0, яка використовується для ініціалізації, загального управління і опитування стану пристрою. Ця точка завжди встановлена при включенні живлення і підключенні пристрою до шини. Вона підтримує передавання типу «керування».

          Окрім нульової точки, пристрої-функції можуть мати додаткові точки, які реалізовують корисний обмін даними. Низькошвидкісні пристрої можуть мати до двох додаткових точок, повношвидкісні – до 15 точок введення і 15 точок виведення (протокольне обмеження). Додаткові точки (а лише вони і надають корисні для користувача функції) не можуть бути використані до їх конфігурування (встановлення узгодженого з ними каналу).

          Каналом (pipe) в USB називається модель передавання даних між хост-контролером і кінцевою точкою пристрою. Існують два типи каналів: потоки і повідомлення. Потік (stream) доставляє дані від одного кінця каналу до іншого, він завжди однонаправлений. Один і той же номер кінцевої точки може використовуватись для двох потокових каналів – введення і виведення. Потік може реалізовувати такі типи обміну: передавання масивів, ізохронний і переривання. Повідомлення (message) має формат, визначений специфікацією USB. Хост надсилає запит до кінцевої точки, після якого передається (приймається) пакет повідомлення, за яким слідує пакет з інформацією стану кінцевої точки. Наступне повідомлення нормально не може бути надіслане до обробки попереднього, але при обробці помилок можливий скид не обслужених повідомлень. Двосторонній обмін повідомленнями адресується до однієї і тієї ж кінцевої точки.

          З каналами пов’язані характеристики, які відповідають кінцевій точці (смуга пропускання, тип сервісу, розмір буфера і т. п.) канали організовуються при конфігуруванні пристрою USB. Для кожного ввімкненого пристрою існує канал повідомлень (Control Pipe 0), по якому передається інформація конфігурування, управління і стану.

Всі обміни (транзакції) з пристроями USB складаються з двох-трьох пакетів. Кожна транзакція планується і починається за ініціативою контролера, який надсилає пакет-маркер (token packet). Він описує тип і напрямок передавання, адресу пристрою USB і номер кінцевої точки. В кожній транзакції можливий обмін лише між кінцевою точкою і хостом. Адресований маркером пристрій розпізнає свою адресу і готується до обміну. Джерело даних (визначене маркером) передає пакет даних (або повідомлення про відсутність даних, призначених для передавання). Після успішного приймання пакета приймач даних відсилає пакет квитування (handshake packet). Послідовність пакетів в транзакціях ілюструє рис 4.10.

 

Рисунок 4.10 – Послідовності пакетів: а – виведення; б – введення

 

          Хост-контролер організовує обмін з пристроями відповіно до свого плану розподілу ресурсів. Контролер циклічно (з періодом 1 і 0                   ± 0,0005 мс) формує кадри (frames), в яких містяться всі заплановані транзакції (рис. 4.11). Кожен кадр починається з надсилання маркера SOF (Start Of Frame), який є синхронізуючим сигналом для всіх пристроїв включно з хабами. В кінці кожного кадру виділяється інтервал часу EOF (End Of Farme), на час якого хаби забороняють передавання за напрямком до контролера. В режимі HS пакети SOF передаються на початку кожного мікрокадру (період 125±0,0625 мкс). Хост планує завантаження кадрів так, щоб в них завжди знаходилось місце для транзакцій управління і переривань. Вільний час кадрів може заповнюватись передачами масивів (bulk transfers). В кожному мікрокадрі може бити виконано декілька транзакцій, їх допустима кількість залежить від довжини поля даних кожної з них.

Рисунок 4.11 – Потік кадрів USB

 

 

 

Для виявлення помилок передавання кожний пакет має контрольні поля CRC-кодів, які дозволяють виявляти всі одинарні і подвійні бітові помилки. Апаратні засоби виявляють помилки передавання, а контролер автоматично виконує трикратну спробу передавання. Якщо повторювання безуспішні, повідомлення про помилку передається клієнтському ПЗ.

          Всі подробиці організації транзакцій від клієнтського ПЗ ізолюються контролером USB і його системним програмним забезпеченням.

          Архітектура USB допускає чотири базові типи передавання даних.

§    Керувальні посилки (control transfers) використовуються для конфігурування пристроїв під час їх підключення і для управління пристроями в процесі роботи. Протокол забезпечує гарантовану доставку даних.

§    Передавання масивів даних (bulk data transfers) – це передавання без будь-яких зобов’язань щодо затримки доставки і швидкості передавання. Передавання масивів можуть займати всю смугу пропускання шини, вільну від передавання інших типів. Пріоритет цього передавання найнижчий, вони можуть призупинятись при сильному завантажені шини. Доставка гарантована – при випадковій помилці виконується повтор. Передавання масивів доречні для обміну даними з принтерами, сканерами, пристроями зберігання і т. п.

§    Переривання (interrupt) – короткі передачі, які мають спонтанний характер і повинні обслуговуватись не повільніше, ніж того потребує пристрій. Межа часу обслуговування встановлюється в діапазоні                10 – 225 мс для низької, 1 – 225 мс для повної швидкості, для високої швидкості можна замовити і 125 мкс. При випадкових помилках обміну виконується повтор. Переривання використовуються, наприклад, при введені символів з клавіатури або для передавання повідомлення про переміщення миші.

§    Ізохронні передачі (isochronous transfers) – неперервні передачі в реальному часі, які займають попередньо узгоджену частину пропускної здатності шини з гарантованим часом затримки доставки. Дозволяють на повній швидкості організувати канал зі смугою 1,023 Мбайт/с (або два по 0,5 Мбайт/с), зайнявши 70% доступної смуги (залишок можна заповнити і менш ємнісними каналами). На високій швидкості кінцева точка може отримати канал до 24 Мбайт/с (192 Мбіт/с). У випадку виявлення помилки ізохронні дані не повторюються – недійсні пакети ігноруються. Ізохронні передачі потрібні для потокових пристроїв: відеокамер, цифрових аудіопристроїв (колонки USB, мікрофон), пристроїв відтворення і запису аудіо- і відеоданих (CD і DVD). Відеопотік (без компресії) шина USB має можливість передавати лише на високій швидкості.

          Смуга пропускання шини розподіляється між всіма встановленими каналами. Виділена смуга закріплюється за каналом, і, якщо встановлення нового каналу потребує такої смуги, яка не вписується у вже існуючий розподіл, запит на виділення каналу відкидається.

          Архітектура USB передбачає внутрішню буферізацію всіх пристроїв, причому чим більшої смуги пропускання потребує пристрій, тим більше має бути його буфер. Шина USB повинна забезпечувати обмін з такою швидкістю, щоб затримка даних в пристрої, викликана буферізацією, не перевищувала декількох мілісекунд.

          Основні області використання USB.

ü    Пристрої введення – клавіатури, миші, трекболи, планшетні показники і т.п. Тут USB надає для різних пристроїв єдиний інтерфейс. Доцільність використання USB для клавіатури неочевидна, хоча в парі з мишею USB, (яка підключається до порта хаба, вмонтованого в клавіатуру), скорочується кількість кабелів, які тягнуться від системного блока на стіл користувача.

ü    Принтери. USB 1.1 забезпечує приблизно ту ж швидкість, що і LPT-порт в режимі ECP, але при використанні USB не виникає проблем з довжиною кабелю і підключенням декількох принтерів до одного комп’ютера (правда необхідні хаби). USB 2.0 дозволяє прискорити друк в режимі високої роздільної здатності, за рахунок скорочення часу на передавання великих масивів даних. Однак є проблема зі старим ПЗ, яке безпосередньо працює з LPT-портом на рівні регістрів, – на принтер USB воно друкувати не зможе.

ü    Сканери. Використання USB дозволяє відмовитись від контролерів SCSI або від заняття LPT-порта. USB 2.0 при цьому дозволяє також підвищити швидкість передавання даних.

ü    Аудіопристрої – колонки, мікрофони, головні телефони (наушники). USB дозволяє передавати потоки аудіоданих, достатні для забезпечення найвищої якості. Передавання в цифровому вигляді від самого джерела сигналу (мікрофона з вбудованим перетворювачем і адаптером) до приймача і цифрова обробка в хост-комп’ютері дозволяють позбавитись від наводок, які властиві аналоговому передаванню аудіосигналів. Використання цих аудіокомпонентів дозволяє в ряді випадків позбавитись від звукової карти комп’ютера – аудіокодек (АЦП і ЦАП) виводиться за межі комп’ютера, а всі функції обробки сигналів (мікшер, еквалайзер) реалізовуються центральним процесором лише програмно. Аудіопристрої можуть і не мати власне колонок і мікрофона, а обмежитись перетворювачами і стандартними гніздами («джеками») для підключення звичайних аналогових пристроїв.

ü    Музичні синтезатори і MIDI-контролери з інтерфейсом USB. Шина USB дозволяє комп’ютеру обробляти потоки багатьох каналів MIDI (пропускна здатність традиційного інтерфейсу MIDI вже суттєво нижча можливостей комп’ютера).

ü    Відео- і фотокамери. USB 1.1 дозволяє передавати статичні зображення будь-якої роздільної здатності за прийнятний час, а також передавати потік відеоданих (живе відео) з достатньою частотою кадрів (25 – 30 кбіт/с) лише з невисокою роздільною здатністю або стисненням даних, від якого, звичайно, знижується якість зображення. USB 2.0 дозволяє передавати потік відеоданих з високою роздільною здатністю без стиснення ( і втрати якості). З інтерфейсом USB випускають як камери, так і пристрої захоплення зображення з телевізійного сигналу і TV-тюнери.

ü    Комунікації. З інтерфейсом USB випускають різноманітні модеми, включаючи кабельні і xDSL, адаптери високошвидкісного інфрачервоного зв’язку (IrDA FIR) – шина дозволяє здолати межу швидкості COM-порта (115,2 кбіт/с) не підвіщуючи завантаження центрального процесора. Випускаються і мережеві адаптери Ethernet, які підключаються до комп’ютера по USB. Для з’єднання декількох комп’ютерів в локальну мережу випускаються спеціальні пристрої, які виконують комутацію макетів між комп’ютерами. Об’єднання більше двох комп’ютерів ускладнюється і топологічними обмеженнями USB: довжина сегмента кабелю не повинна перевищувати 5 м, а використовувати хаби для збільшення довжини неефективно (кожен хаб дає всього 5 м додаткового віддалення).

Перетворювач інтерфейсів дозволяють через порт USB, який міститься зараз практично на всіх комп’ютерах, підключати пристрої з найрізноманітнішими інтерфейсами: Centronics і IEEE 1284 (LPT-порти), RS-232C (емуляція UART 16550A – основи COM-портів) і інші послідовні інтерфейси (RS-422, RS-485, V.35…), емулятори портів клавіатури і навіть Game-порта, перехідники на шину ATA, ISA, PC Card і будь-які інші, для яких достатньо продуктивності.