Шина USB: структура, призначення, функціонування
Критерії архітектури шини USB, її будова та принцип функціонування. Взаємодія компонентів шини USB. Електричні і механічні специфікації шини. Кодування сигналів синхронізації. Тестування, налагодження, відновлення. Типи пакетів і їх ідентифікатори.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 22.03.2011 |
Размер файла | 590,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Шина USB: структура, призначення, функціонування
курсова робота з інформатики
Зміст
- Розділ 1. Аналіз, передумови
- Розділ 2. Будова, принцип функціонування
- Розділ 3. Тестування, налагодження, відновлення
- Література
Розділ 1. Аналіз, передумови
USB (Universal Serial Bus - універсальна послідовна шина) є промисловим стандартом розширення архітектури PC, орієнтованим на інтеграцію з телефонією і пристроями побутової електроніки. Шина розроблена порівняно недавно - специфікація версії 1.0 була опублікована в січні 1996 року, - і в ній відобразилися сучасні досягнення різних областей комп'ютерної техніки. Архітектура USB визначалася наступними критеріями:
Легко реалізоване розширення периферії PC.
Дешеве рішення, що підтримує швидкість передачі до 12 Мбіт/с.
Повна підтримка в реальному часі передачі аудіо - і стислих відеоданих.
Гнучкість протоколу для змішаної передачі ізохронних даних і асинхронних повідомлень.
Інтеграція в технологію пристроїв, що випускаються.
Доступність в PC всіх конфігурацій і розмірів.
Забезпечення стандартного інтерфейсу, здатного швидко впровадитися в продукцію.
Відкриття нових класів пристроїв, що розширюють PC.
З погляду кінцевого користувача привабливі такі риси USB:
Простота кабельної системи і підключень.
Ізоляція подробиць електричного підключення від кінцевого користувача.
Периферія, автоматичний зв'язок пристроїв з драйверами і конфігурація, що самоідентифікується.
Можливість динамічного підключення і реконфігурування периферії.
З середини 1996 року багато фірм випускають PC з вбудованим контроллером USB, реалізовуваним прямо чіпсетом системної плати. Спочатку USB єхидно розшифровували як "Unused Serial Bus" - "невживана послідовна шина", але ситуація, схоже, змінилася. З'явилися модеми, клавіатури, сканери, динаміки та інші пристрої введення-виведення з підтримкою технології USB, а також монітори з USB-адаптерами - такий монітор грає роль хаба для підключення інших пристроїв.
Розділ 2. Будова, принцип функціонування
USB забезпечує обмін даними між хост-комп'ютером і множиною одночасно доступних периферійних пристроїв. Розподіл пропускної спроможності шини між підключеними пристроями планується хостом і реалізується їм за допомогою посилки маркерів. Шина дозволяє підключати, конфігурувати, використовувати і відключати пристрої під час роботи хосту і самих пристроїв - динамічне (або "гаряче") підключення і відключення.
Пристрої (Device) USB можуть бути хабами, "функціями" або їх комбінацією. Хаб (Hub) забезпечує додаткові точки підключення пристроїв до шини. "Функції" (Function) USB надають системі додаткові можливості, наприклад підключення до ISDN, цифровий джойстик, акустичні колонки з цифровим інтерфейсом і т.п. Пристрій USB повинен мати інтерфейс USB, що забезпечує повну підтримку протоколу USB, виконання стандартних операцій (конфігурація і скидання) і стандартне представлення інформації, що описує пристрій. Багато пристроїв, що підключаються до USB, мають в своєму складі і хаб і "функції".
Роботою всієї системи USB управляє хост-контроллер (host controller), що є програмно-апаратною підсистемою хост-комп'ютера.
Фізичне з'єднання пристроїв USB здійснюється по топології багатоярусної зірки.
Центром кожної зірки є хаб, кожний кабельний сегмент сполучає дві точки - хаб з іншим хабом або з функцією. В системі з USB є один (і лише один) хост-контроллер, розташований на вершині піраміди пристроїв і хабів USB. Хост-контроллер інтегрується з кореневим хабом (root hub), що забезпечує одну або декілька точок підключення - портів. Контроллер USB, що входить до складу чіпсетів більшості сучасних системних плат, звичайно має вбудований двопортовий хаб.
Логічно пристрій, підключений до будь-кого хаба USB і конфігурований (див. нижче), може розглядатися як безпосередньо підключений до хост-контроллера.
"Функції" є пристроями USB, здатними передавати або приймати дані або управляючу інформацію по шині. Типово "функції" є окремими периферійними пристроями з кабелем, що підключається до порту хаба. Проте фізично в одному корпусі може бути і декілька "функцій" із вбудованим хабом, який забезпечує їх підключення до одного порту. Ці комбіновані пристрої для хосту є хабами з постійно підключеними пристроями - "функціями".
Кожна "функція" надає конфігураційну інформацію, що описує її можливості і вимоги до ресурсів. Перед використанням "функція" повинна бути конфігурована хостом - їй повинна бути виділена смуга в каналі і вибрані специфічні опції конфігурації.
Прикладами "функцій" є:
Покажчики - миша, планшет, світлове перо.
Пристрої введення - клавіатура або сканер.
Пристрій виведення - принтер, звукові колонки (цифрові).
Телефонний адаптер ISDN.
Хаб - ключовий елемент системи Plug-and-Play в архітектурі USB. Хаб є кабельним концентратором, точки підключення називаються портами хаба. Кожний хаб перетворює одну точку підключення в їх множину. Архітектура має на увазі можливість з'єднання декількох хабів.
Біля кожного хаба є один висхідний порт (upstream port), призначений для підключення до хоста або хаба верхнього рівня. Решта портів є низхідними (downstream ports) і призначені для підключення функцій або хабів нижнього рівня. Хаб може розпізнати підключення або відключення пристроїв до цих портів і управляти подачею живлення на їх сегменти. Кожний з цих портів індивідуально може бути дозволений або заборонений і конфігурований на повну або обмежену швидкість обміну. Хаб забезпечує ізоляцію сегментів з низькою швидкістю від високошвидкісних.
Хаби можуть мати нагоду управління подачею живлення на низхідні порти, причому передбачається керована установка обмеження на струм, споживаний кожним портом.
Система USB розділяється на три рівні з певними правилами взаємодії (аналогічно семирівневій моделі OSI). Пристрій USB ділиться на інтерфейсну частину, частину пристрою і власне функціональну частину. Хост теж ділиться на три частини - інтерфейсну, системну і ПЗ пристрою. Кожна частина відповідає тільки за певне коло задач, логічна і реальна взаємодія між ними ілюструє рис.1.
Рис.1. Взаємодія компонентів USB
В дану структуру входять наступні елементи:
Фізичний пристрій USB - пристрій на шині, що виконує функції, що цікавлять кінцевого користувача.
Client SW - програмне забезпечення, відповідне конкретному пристрою, виконуване на хост-комп'ютері. Воно може бути складовою частиною ОС (наприклад, підтримка принтера) або спеціальним продуктом, що підтримує пристрій.
USB System SW - системна підтримка USB операційною системою, незалежна від конкретних пристроїв і клієнтського ПО.
USB Host Controller - апаратні і програмні засоби, що забезпечують підключення пристроїв USB до хост-комп'ютера.
Стандарт USB визначає електричні і механічні специфікації шини.
Інформаційні сигнали і живлячої напруги 5 В передаються по чотирьох-провідному кабелю. Для сигналу використовуються диференціальний спосіб передачі по двох проводах D+ і D - Рівні сигналів передавачів в статичному режимі повинні бути нижче 0,3 В (низький рівень) або вище 2,8 В (високий рівень). Приймачі повинні витримувати вхідну напругу в межах - 0,5. +3,8 В. Передавачі повинні мати нагоду переходу у високоімпедансний стан для забезпечення двонаправленої півдуплексної передачі даних по одній парі дротів.
Передача по двох проводах USB не обмежується лише диференціальними сигналами. Окрім диференціального приймача, кожний пристрій має й лінійні приймачі сигналів D+ і D-, а передавачі цих ліній управляються індивідуально. Це дозволяє розрізняти багато станів лінії, що використовуються для організації апаратного інтерфейсу, Стан Diff0 і Diff1 визначаються по різниці потенціалів на лініях D+ і D - більше 200 мВ за умови, що на одній з них потенціал вище за поріг спрацьовування Vse. Стан, при якому на обох входах D+ і D - присутній низький рівень, називається лінійним нулем (SEO - single-ended zero). Інтерфейс визначає наступні стани:
Data J State і Data К State - стан передаваного біта (визначаються через стан Diff0 і Diff1).
Idle State - пауза на шині.
шина хаб кодування ідентифікатор
Resume State - сигнал "пробудження" для виведення пристрою з "сплячого" режиму.
Start Packet (SOP) - початок пакету (перехід з "Idle" в "К").
End Packet (EOP) - кінець пакету.
Disconnect - пристрій відключений від порту.
Connect - пристрій підключений до порту.
Reset - скидання пристрою.
Стан визначаються поєднаннями диференціальних і лінійних сигналів, причому для повної і низької швидкостей стан Diff0 і Diff1 мають протилежне призначення. В декодуванні станів Disconnect, Connect і Reset береться до уваги і час знаходження ліній (більше 2,5 мс) в певних станх.
Шина має два режими передача. Повна швидкість передачі сигналів USB складає 12 Мбіт/с, низька - 1,5 Мбіт/с. Для повної швидкості використовується екранована вита пара з імпедансом 90 Ом і завдовжки сегменту до 5 м, для низької - невитий і неекранований кабель при довжині сегменту до 3 м. Низькошвидкісні кабелі і пристрої дешевше високошвидкісних. Одна і та ж система може одночасно використовувати обидва режими, перемикання для пристроїв здійснюється прозоро. Низька швидкість призначена для роботи з невеликою кількістю пристроїв, що не вимагають високої пропускної спроможності каналу.
Швидкість, що використовується пристроєм, підключеним до конкретного порту, визначається хабом по рівнях сигналів на лініях D+ і D-, зміщуваних резисторами навантажень R2 приймачів-передавачів (див. рис.2,3).
Рис.2. Підключення повношвидкісного пристрою
Рис.3. Підключення низькошвидкісного пристрою
Сигнали синхронізації кодуються разом з даними по методу NRZI (Non Return to Zero Invert), його роботу ілюструє рис.4. Кожному пакету передує поле синхронізації SYNC, що дозволяє приймачу настроїтися на частоту передавача. Окрім сигнальної пари, кабель має лінії VBus і GND для передачі живлячої напруги 5 В до пристроїв. Перетин провідників вибирається відповідно до довжини сегмента для забезпечення гарантованого рівня сигналу і живлячої напруги.
Рис.4. Кодування даних по методу NRZI
Стандарт визначає два типи роз'ємів (табл.1).
Таблиця 1
Призначення виведень роз'єму USB
Контакт |
Ланцюг |
|
1 |
Vcc |
|
2 |
- Data |
|
3 |
+Data |
|
4 |
Ground |
Роз'єми типу "А" застосовуються для підключення до хабів (upstream connector). Вони встановлюються на кабелях, не від'єднуваних від пристроїв (наприклад, від клавіатури, миші і т.п.). Відповідна частина до них встановлюється на низхідних портах (downstream port) хабів.
Роз'єми типу "В" (downstream connector) встановлюються на пристроях, від яких сполучний кабель може від'єднуватися (наприклад, на принтери і сканери). Відповідна частина встановлюється на сполучному кабелі, протилежний кінець якого має роз'єм типу "А".
Роз'єми типів А і В розрізняються механічно, що виключає можливість петльових з'єднань портів хабів, які недопустимі в USB. Чотирьохконтактні роз'єми мають ключі, що виключають неправильне приєднання. Конструкція роз'ємів забезпечує більш пізнє з'єднання і раннє від'єднання сигнальних ланцюгів в порівнянні з живлячими. Для полегшення розпізнавання роз'єму USB на корпусі пристрою ставиться позначення, наведене на рис.5.
Рис.5. Позначення роз'єму USB
Живлення пристроїв USB можливе як від кабелю (bus-powered devices), так і від власного блоку живлення (self-powered devices). Хост забезпечує живленням безпосередньо до нього підключені пристрої. Кожний хаб, у свою чергу, забезпечує живлення пристроїв, підключених до його низхідних портів. При деяких обмеженнях топології USB допускає вживання хабів, що живляться від шини. На рис.6 наведений приклад схеми з'єднання пристроїв USB. Тут клавіатура, перо і миша можуть харчуватися від шини.
Мал.6. Приклад підключення пристроїв USB
USB має розвинену систему управління енергоспоживанням. Хост-комп'ютер може мати власну систему управління енергоспоживанням (power management system), до якої логічно підключається й однойменна система USB. Програмне забезпечення USB взаємодіє з цією системою, підтримуючи такі системні події, як призупинення (SUSPEND) або відновлення (RESUME). Крім того, пристрої USB можуть самі бути джерелами подій, відпрацьовуваних системою управління енергоспоживанням.
З погляду передачі даних, кожний пристрій USB є набором незалежних кінцевих точок (endpoint), з якими хост-контроллер може обмінюватися інформацією. Кінцеві точки описуються наступними параметрами:
Необхідна частота доступу до шини і допустимі затримки обслуговування.
Необхідна смуга пропускання каналу.
Номер точки.
Вимоги до обробки помилок.
Максимальні розміри переданих і прийнятих пакетів.
Тип обміну.
Напрям обміну (для суцільного і ізохронного обміну).
Кожний пристрій обов'язково має кінцеву точку з номером 0, що використовується для ініціалізації і загального управління логічним пристроєм, а також опитування його стану. Ця точка завжди конфігурована при включенні живлення і підключенні пристрою до шини і підтримує передачі типу "управління" (див. нижче).
Окрім нульової точки, пристрої-"функції" можуть мати додаткові точки, власне і реалізуючі корисні обміни даними. Низькошвидкісні пристрої можуть мати до двох додаткових точок, повношвидкісні - до 16 точок введення і 16 точок виведення (протокольне обмеження). Всі ці точки не можуть бути використані до їх конфігурації (встановлення злагодженого з ними каналу).
Каналом (pipe) в USB називається модель передачі даних між хост-контроллером і кінцевою точкою (endpoint) пристрою. Є два типи каналів: потоки (stream) і повідомлення (message).
Потік доставляє дані від одного кінця каналу до іншого, він завжди однонаправлений. Один і той же номер кінцевої точки може використовуватися для двох потокових каналів - введення і виведення. Потік може використовувати наступні типи обміну: суцільний, ізохронний і переривання. Доставка завжди йде в порядку "перший увійшов - першим вийшов", з погляду USB дані потоку неструктуровані.
Повідомлення (на відміну від потоків) мають формат, визначений специфікацією USB. Обмін повідомленнями відрізняється від потоків: хост посилає запит до кінцевої точки, після якого передається (або приймається) пакет повідомлення, за яким слідує пакет з інформацією стан кінцевої точки. Подальше повідомлення нормально не може бути послано раніше обробки попереднього, але при відроблянні помилок можливе й скидання необслужених повідомлень. Двосторонній обмін повідомленнями адресується до одного й того ж номера кінцевої точки. Для доставки повідомлень використовується тільки обмін типу "управління".
З каналами пов'язані характеристики, відповідні вимогам кінцевої точки (смуга пропускання, тип сервісу розмір буфера і т.п.). Канали організовуються при конфігурації пристроїв USB. Один канал повідомлень (Control Pipe 0), по якому передається інформація конфігурації, управління і стани, обов'язково існує для кожного включеного пристрою.
USB підтримує ряд режимів зв'язку, як однонаправлених, так і двонаправлених. Передача даних проводиться між ПЗ хоста і конкретною кінцевою точкою пристрою. Пристрій може мати декілька кінцевих точок, зв'язок з кожною з них (канал) встановлюється незалежно від інших. Архітектура USB допускає чотири базові типи передачі даних:
Управляючі посилки (Control transfers), що використовуються для конфігурації під час підключення і в процесі роботи для управління пристроями. Протокол забезпечує гарантовану доставку даних. Довжина поля даних управляючої посилки не перевищує 64 байт на повній швидкості і 8 байт на низькій.
Суцільні передачі (Bulk data transfers) порівняно великих пакетів без жорстких вимог до часу доставки (наприклад, від сканера або до принтера). Ці передачі займають всю вільну смугу пропускання шини, незайняту іншими класами передач. Пакети мають поле даних розміром 8, 16, 32 або 64 байт. Пріоритет цих передач найнижчий, вони можуть припинятися при великому завантаженні шини. Допускаються тільки на повній швидкості передачі.
Переривання (Interrupt) - короткі (до 64 байт на повній швидкості і до 8 байт на низькій) передачі типу символів або координат, що вводяться. Переривання мають спонтанний характер і повинні обслуговуватися не повільніше, ніж того вимагає пристрій. Межа часу обслуговування встановлюється в діапазоні 1-255 мс для повної швидкості і 10-255 мс для низької.
Ізохронні передачі - безперервні передачі в реальному часі, що займають попередньо злагоджену частину пропускної спроможності шини і мають задану затримку доставки. В разі виявлення помилки ізохронні дані передаються без повтору - недійсні пакети просто ігноруються. Типовим прикладом ізохронних даних є цифрова передача голосу. Тут пропускна спроможність визначається вимогами до якості передачі, а затримка доставки може бути критичною, наприклад, при реалізації телеконференцій.
Смуга пропускання шини ділиться між усіма встановленими каналами. Виділена смуга закріплюється за каналом, і, якщо встановлення нового каналу вимагає такої смуги, яка не вписується у вже існуючий розподіл, запит на виділення каналу відкидається.
Архітектура USB передбачає внутрішню буферизацію всіх пристроїв, причому чим більшої смуги пропускання вимагає пристрій, тим більшим повинен бути його буфер. USB повинна забезпечувати обмін з такою швидкістю, щоб затримка даних у пристрої, викликана буферизацією, не перевищувала одиниць мілісекунд.
Ізохронні передачі класифікуються за способом синхронізації кінцевих точок - джерел або одержувачів даних - з системою: розрізняють асинхронний, синхронний і адаптивний класи пристроїв, кожному з яких відповідає свій тип каналу USB.
Розділ 3. Тестування, налагодження, відновлення
Всі обміни (трансакції) по USB складаються з трьох пакетів. Кожна трансакція планується і починається за ініціативою контроллера, який посилає пакет-маркер (Token Packet). Цей пакет описує тип і напрям передачі, адресу пристрою USB і номер кінцевої точки.
У кожній трансакції можливий обмін тільки між пристроєм (його кінцевою точкою) і хостом, що адресується. Пристрій USB, що адресується маркером, розпізнає свою адресу і готується до обміну. Джерело даних (визначене маркером) передає пакет даних (або повідомлення про відсутність даних, призначених для передачі). Після успішного прийому пакету приймач даних посилає пакет підтвердження (Handshake Packet).
Планування трансакцій забезпечує управління потоковими каналами. На апаратному рівні використання відмови від трансакції (NACK) при недопустимій інтенсивності передачі оберігає буфери від переповнювання або переспустошення. Маркери знехтуваних трансакцій повторно передаються у вільний для шини час. Управління потоками дозволяє гнучко планувати обслуговування одночасних різнорідних потоків даних.
Стійкість до помилок забезпечується наступними властивостями USB:
Висока якість сигналів, забезпечувана диференціальними приймачами і передавачами і екрануванням кабелів.
Захист полів управління і даних CRC-кодами.
Виявлення підключення і відключення пристроїв і конфігурація ресурсів на системному рівні.
Самовідновлення протоколу з використанням тайм-ауту при втраті пакетів.
Управління потоком для забезпечення ізохронності і управління апаратними буферами.
Незалежність одних функцій від невдалих обмінів з іншими функціями, забезпечувана конструкцією каналів.
Для виявлення помилок передачі кожний пакет має контрольні поля CRC-кодів, що дозволяють знаходити всі одиночні і подвійні бітні помилки. Апаратні засоби знаходять помилки передачі, а контроллер автоматично проводить триразову спробу передачі. Якщо ці повтори безуспішні, повідомлення про помилку передається клієнтському ПЗ для програмної обробки.
Байти передаються по шині послідовно, починаючи з молодшого біта. Всі посилки організовані в пакети. Кожний пакет починається з поля синхронізації SYNC, яке представляється послідовністю станів "KJKJKJKK" (кодовану по NRZI), наступну після стану IDLE. Останні два біти (КК) є маркером початку пакету SOP, що використовується для ідентифікації першого біта ідентифікатора пакету PID. Ідентифікатор пакету є 4-бітним полем PID [3: 0], що ідентифікує тип пакету (табл.2), за яким слідують в якості контрольних ті ж 4 біти, але в інверсному значенні.
Таблиця 2
Типи пакетів і їх ідентифікатори PID
Тип PID |
Ім'я PID |
PID [3; 0] |
Вміст і призначення |
|
Token |
OUT |
0001 |
Адреса "функції" і номер кінцевої точки - маркер трансакції "функції" |
|
Token |
IN |
1001 |
Адреса "функції" і номер кінцевої точки - маркер трансакції хоста |
|
Token |
SOF |
0101 |
Маркер початку кадру |
|
Token |
SETUP |
1101 |
Адреса "функції" і номер кінцевої точки - маркер трансакції з управляючою точкою |
|
Data |
DATA0 DATA1 |
0011 1011 |
Пакети даних з парним і непарним PID чергують для точної ідентифікації підтверджень прийому |
|
Handshake |
ACK |
0010 |
Підтвердження безпомилкового прийому пакету |
|
Handshake |
NAK |
1010 |
Приймач не зумів прийняти або передавач не зумів передати дані. Може використовуватися для управління потоком (неготовність). В трансакціях переривань є ознакою відсутності необслужених переривань |
|
Handshake |
STALL |
1110 |
Кінцева точка вимагає втручання хоста |
|
Special |
PRE |
1100 |
Преамбула передачі на низькій швидкості |
У пакетах-маркерах IN, SETUP і OUT наступними є адресні поля: 7-бітна адреса "функції" і 4-бітна адреса кінцевої точки. Ці поля дозволяють адресувати до 127 функцій USB (нульова адреса використовується для конфігурації) і по 16 кінцевих точок в кожній "функції".
У пакеті SOF є 11-бітне поле номера кадру (frame number field), послідовно (циклічно) збільшуване для чергового кадру.
Поле даних може мати розмір від 0 до 1023 цілий байт. Розмір поля даних залежить від типу передачі й узгоджується при встановленні каналу
Поле C-RC-коду присутнє у всіх маркерах і пакетах даних, воно захищає всі поля пакету, виключаючи PID. CRC для маркерів (5 біт) і даних (11 біт) підраховується по різних формулах.
Кожна трансакція ініціюється хост-контроллером посилкою маркера і завершується пакетом квітування. Послідовність пакетів в трансакціях ілюструє рис.7.
Рис.7. Потік кейрів USB
Хост-контроллер організовує обміни з пристроями згідно своєму плану розподілу ресурсів. Контроллер циклічно (з періодом 1 мс) формує кадри (frames), в які укладаються всі заплановані трансакції. Кожний кадр починається з посилки маркера SOF (Start Frame), який є синхронізуючим сигналом для всіх пристроїв, включаючи хаби. В кінці кожного кадру виділяється невеликий інтервал часу EOF (End Frame), на час якого хаби забороняють передачу у напрямку до контроллера. Кожний кадр має свій номер. Хост-контроллер оперує 32-бітним лічильником, але в маркері SOF передає тільки молодші 11 біт. Номер кадру збільшується (циклічно) під час EOF. Хост планує завантаження кадрів так, щоб у них завжди знаходилося місце для трансакцій управління і переривання. Вільний час кадрів може заповнюватися суцільними передачами (bulk transfers).
Для ізохронної передачі актуальне питання синхронізації пристроїв і контроллера. Можливі три варіанти:
Синхронізація внутрішнього генератора пристрою з маркерами SOF.
Підстроювання частоти кадрів під частоту пристрою.
Узгодження швидкості передачі (прийому) пристрою з частотою кадрів.
Підстроювання частоти кадрів контроллера можливе, природно, під частоту внутрішньої синхронізації тільки одного пристрою. Підстроювання здійснюється за допомогою механізму зворотного зв'язку, який дозволяє змінювати період кадру в межах (±) 1 бітного інтервалу.
USB підтримує підключення і відключення пристроїв у процесі роботи. Нумерація пристроїв шини є постійним процесом, що відстежує динамічні зміни фізичної топології.
Всі пристрої USB підключаються через порти хабів. Хаби визначають підключення і відключення пристроїв до своїх портів і повідомляють стан портів у відповідь на запит від контроллера. Хост дозволяє роботу порту і адресується до пристрою через канал управління, використовуючи нульову адресу - USB Default Address. Всі пристрої адресуються цією адресою при початковому підключенні або після скидання. Хост визначає, являється новий підключений пристрій хабом або функцією, і призначає йому унікальну адресу USB. Хост встановлює з цим пристроєм канал управління (control pipe), використовуючи призначену адресу і нульовий номер точки призначення.
Якщо новий пристрій є хабом, хост визначає підключені до нього пристрої, призначає ним адреси і встановлює канали. Якщо новий пристрій є "функцією", повідомлення про підключення передається диспетчером USB зацікавленому програмному забезпеченню.
Коли пристрій відключається, хаб автоматично забороняє відповідний порт і повідомляє про відключення контроллеру, який видаляє відомості про даний пристрій зі всіх структур даних. Якщо відключається хаб, то процес видалення виконується для всіх підключених до нього пристроїв. Якщо відключається "функція", повідомлення посилається зацікавленому ПЗ.
Нумерація пристроїв, підключених до шини (bus enumeration), здійснюється динамічно по мірі їх підключення (або включення їх живлення) без якого-небудь втручання користувача або клієнтського ПЗ. Процедура нумерації виконується таким чином:
1. Хаб, до якого підключився пристрій, інформує хост про зміну стану свого порту відповіддю на опитування стану. З цієї миті пристрій переходить в стан "Attached" (підключено), а порт, до якого він підключився, в стан "Disabled".
2. Хост уточнює стан порту.
3. Взнавши порт, до якого підключився новий пристрій, хост дає команду скидання і дозволу порту.
4. Хаб формує сигнал RESET для даного порту (10 мс) і переводить його в стан "Enabled". Підключеному пристрою дозволяється споживати від шини струм живлення в межах 100 мА. Пристрій переходить в стан Powered (включено), всі його регістри переводяться в початковий стан, і він озивається на звертання за нульовою адресою.
5. Доти, поки пристрій не одержить унікальну адресу, він доступний по черговому каналу, по якому хост-контроллер може визначити максимально допустимий розмір поля даних пакету.
6. Хост повідомляє пристрою його унікальну адресу, і він переводиться в стан Addressed (адресовано).
7. Хост зчитує всі конфігурації пристрою, включаючи і заявлений струм споживання від шини. Процес зчитування може затягнутися на декілька кадрів.
8. Виходячи зі зчитаної інформації, хост конфігурує всі наявні кінцеві точки даного пристрою, який переводиться в стан Configured (конфігуровано). Тепер хаб дозволяє пристрою споживати від шини повний струм, заявлений в конфігурації. З погляду пристрою, він стає готовим до використання.
Коли пристрій відключається від шини, хаб повідомляє про це хост і робота порту забороняється, а хост обновляє свою поточну топологічну інформацію.
Можливості шини USB дозволяють її використовувати для підключення найрізноманітніших пристроїв - від клавіатури і миші, які поки себе непогано відчувають і на традиційних інтерфейсах, до цифрових аудіосистем, які окрім як до USB або FireWire в PC підключати нікуди. Не торкаючись "корисних" властивостей пристроїв, ради яких вони і створювалися, зупинимося на їх інтерфейсній частині, зверненій до шини USB. Всі пристрої повинні підтримувати набір спільних операцій, перерахованих нижче.
Динамічне підключення і відключення має на увазі можливість цих дій у будь-який момент часу. Ці події відстежуються хабом, який повідомляє про них хост-контроллер і виконує скидання підключеного пристрою. Пристрій після сигналу скидання повинен озиватися на нульову адресу, при цьому він не конфігурований і не припинений.
Після призначення адреси, за яке відповідає хост-контроллер, пристрій повинен озиватися тільки на свою унікальну адресу.
Конфігурація пристроїв, виконувана хостом, є необхідним кроком для їх використання. Для конфігурації звичайно використовується інформація, зчитана з самого пристрою. Пристрій може мати багато інтерфейсів, кожному з яких відповідає власна кінцева точка, що представляє хосту функцію пристрою. Крім того, інтерфейс у конфігурації може мати альтернативні набори характеристик, зміна наборів підтримується протоколом. Для підтримки адаптивних драйверів дескриптори пристроїв та інтерфейсів мають поля класу, підкласу і протоколу.
Передача даних можлива за допомогою одного з чотирьох типів передач (див. вище). Для кінцевих точок, що допускають різні типи передач, після конфігурації доступний тільки один з них.
Управління енергоспоживанням є дуже розвиненою функцією USB. Для пристроїв, що живляться від шини, потужність є обмеженим ресурсом. Будь-який пристрій при початковому підключенні не повинен споживати від шини струм, що перевищує 100 мА. Робочий струм (не більше 500 мА) заявляється в конфігурації, і якщо хаб не зможе забезпечити пристрою заявлений струм, він не конфігурується, і, отже, не може бути використаний.
Пристрій USB повинен підтримувати режим припинення (Suspended Mode), в якому його споживаний струм не повинен перевищувати 500 мкА. Пристрій повинен автоматично припинятися при припиненні активності шини.
Можливість віддаленого пробудження (Remote Wakeup) дозволяє припиненому пристрою подати сигнал хост-комп'ютеру, який теж може знаходитися в припиненому стані. Можливість віддаленого пробудження описується в конфігурації пристрою, і при конфігурації ця функція може бути й заборонена.
Хаб в USB виконує функції комутації сигналів і роздачі живлячої напруги, а також відстежує стан підключених до нього пристроїв, повідомляючи хост про зміни. Хаб складається з двох частин - контроллера (Hub Controller) і повторювача (Hub Repeater), повторювач є керованим ключем, що з'єднує вихідний порт із вхідним. Він також має засоби підтримки скидання і припинення передачі сигналів. Контроллер містить регістри для взаємодії з хостом. Доступ до цих регістрів здійснюється по специфічних командах звернення до хаба. Ці команди дозволяють конфігурувати хаб, управляти низхідними портами і спостерігати їх стан.
Низхідні (Downstreani) порти хабів можуть перебувати в наступних станах:
Powered (живлення відключене) - стан, в якому на порт не подається живлення (можливо тільки для хабів, комутуючих живлення). Вихідні буфери переводяться у високоімпедансний стан, вхідні сигнали ігноруються.
Disconnected (від'єднаний) - порт не передає сигнали ні в одному напрямі, але здатний знайти подію підключення пристрою. Знайшовши підключення (по відсутності стан SEO протягом 2,5 мкс), порт переходить в стан "Disabled", а по рівнях вхідних сигналів (DIFFO або DIFF1 в стані IDLE) він визначає швидкість підключеного пристрою.
Disabled (заборонений) - порт може передавати тільки сигнал скидання (по команді від контроллера), сигнали від порту (окрім виявлення відключення) не сприймаються. Після виявлення відключення (2,5 мкс стан SEO) порт переходить в стан "Disconnect", а якщо відключення знайдено "сплячим" хабом, контроллеру буде посланий сигнал Resume.
Enabled (дозволений) - порт передає сигнали в обох напрямах. По команді контроллера або після виявлення помилки кадру порт переходить в стан "Disabled", а після виявлення відключення - в стан "Disconnect".
Suspended (припинений) порт передає сигнал перекладу в стан призупинення ("сплячий режим"). Якщо хаб перебуває в активному (не "сплячому") стані, сигнали через цей порт не пропускаються ні в одному напрямі. Проте "сплячий" хаб сприймає сигнали зміни стану незаборонених портів, забезпечуючи можливість подачі сигналів, що "будять", від пристрою, що активізувався, навіть через ланцюжок "сплячих" хабів.
Стан кожного порту ідентифікується контроллером хаба за допомогою окремих регістрів. Крім того, є загальний регістр, біти якого відображають факт зміни стану кожного порту (що фіксується під час EOF). Це дозволяє хост-контроллеру швидко опитувати стан хаба, а в разі виявлення змін спеціальними трансакціями уточнювати стан.
Хост-комп'ютер спілкується з пристроями через контроллер. Хост має наступні обов'язки:
Виявлення підключення і від'єднання пристроїв USB.
Маніпулювання потоком управління між пристроями і хостом.
Управління потоками даних.
Збір інформації про стан і статистики.
Забезпечення енергозбереження підключеними пристроями
Системне ПО контроллера управляє взаємодією між пристроями і їх програмним забезпеченням, що функціонує на хост-комп'ютері. Області взаємодії наступні:
Нумерація і конфігурація пристроїв.
Ізохронні передачі даних.
Асинхронні передачі даних.
Управління енергоспоживанням.
Інформація про управління пристроями і шиною.
По можливості, ПО USB в цих областях використовує існуюче системне ПО хост-комп'ютера - наприклад, Advanced Power Management (АРМ) для управління енергоспоживанням пристроїв USB.
Література
1. Вермань А.Ф., Апатова Н.В. Інформатика. - К.: Форум, 2000.
2. Вильховченко С. Современный компьютер: устройство, выбор, модернизация. - СПб.: Питер, 2000. - 512 с.
3. Глушаков С.В., Мельников И.В. Персональный компьютер: Учебный курс. - Харьков: Фолио, М.: ООО "Издательство АСТ", 2000.
4. Гук М. Аппаратные средства IBM PC: Карманная энциклопедия. - СПб.: Питер, 1999.
5. Гук М. Аппаратные средства IBM PC: Энциклопедия. - СПб.: Питер, 2000.
6. Гук М. Интерфейсы ПК: Справочник. - СПб.: Питер, 1999.
7. Информатика. Базовый курс. / Симонович С.В. и др. - СПб: Издательство "Питер", 1999.
8. Інформатика: Комп'ютерна техніка. Комп'ютерні технології: Підручник для вузів / За ред. О.І. Пушкаря. - К.: Академія, 2002.
9. Леонтьев В.П. Новейшая энциклопедия персонального компьютера - М.: ОЛМА-ПРЕСС, 2003.
10. Локазюк В.М., Савченко Ю.Г. Надійнсть, контроль, діагностика і модернізація ПК: Посібник для вузів / Під ред.В.М. Локазюка. - К.: Академія, 2004. - 376 с.
11. Модернизация и обслуживание ПК: Базовый курс / Пер. с. англ.Д.М. Шевеля. - К.: БЕК; М.: ЭНТРОП; СПб.: Корона принт, 2000. - 592 с.
12. Соломенчук В.Г. Аппаратные средства персональных компьютеров. - СПб.: БХВ-Петербург, 2003. - 512 с.
Размещено на Allbest.ru
Подобные документы
Обчислення максимальної довжини загальної шини в мережах Ethernet. Типи середовищ передачі даних в мережах Ethernet. Підключення до загальної шини в мережах10Base-5. Конструкція tap-адаптера "зуб вампіра". Основні характеристики коаксіальних кабелів.
лекция [2,7 M], добавлен 18.10.2013Визначення та структура мікропроцесора, алгоритм роботи. Види процесорної пам’яті. Частота системної шини. Огляд мікропроцесорів AMD Phenom. Структура ринку сучасних мікропроцесорів, найбільш поширені архітектури. Охорона праці при роботі з комп'ютером.
курсовая работа [5,9 M], добавлен 03.01.2015Функціонування мікрокомп’ютерів з шинною організацією. Системні локальні шини. Організація та структура пам’яті. Базова система введення-виведення. Режими роботи процесора I80286. Програмна модель процесора. Регістри процесора та умови програмування.
курсовая работа [326,1 K], добавлен 06.06.2013Паралельність розвитку комп’ютерної архітектури, принципові способи її введення. Шина даних процесора, її сутність і розрядність. Архітектура подвійної незалежної шини, корпуса та гнізда мікропроцесорів. Характеристика технологій MMX, 3Dnow, Enhanced.
контрольная работа [39,6 K], добавлен 21.10.2009Дослідження призначення та видів мережевих технологій - погодженого набору стандартних протоколів та програмно-апаратних засобів, достатнього для побудови локальної обчислювальної мережі. Комбінування архітектури комутаційної матриці й загальної шини.
реферат [523,1 K], добавлен 18.02.2011Шина як набір проводів (ліній), що з'єднує різні компоненти комп'ютера для підведення до них живлення й обміну даними. Огляд різних типів шин, їх особливості, недоліки та переваги. Порівняльна характеристика головних відмінностей, майбутнє розвитку шин.
доклад [117,3 K], добавлен 26.09.2009Технічні характеристики універсальної послідовної шини. Конструктивні особливості інтерфейсу USB. Передача даних через нього за допомогою хоста. Загальний опис, встановлення та використання USB-USB моста у режимі прямого з’єднання та в режимі мережі.
реферат [966,9 K], добавлен 25.03.2011Історія та технологія виробництва мікропроцесорів, їх види, їх програмне забезпечення та способи використання. Розрядність головної шини як головного чинника при проектуванні системної платні і систем пам'яті. Архітектура корпуса і гнізда мікропроцесорів.
контрольная работа [29,5 K], добавлен 21.10.2009Проектування архітектури гри "Тетріс". Аналіз вимог до неї. Вивчення особливостей реалізації, кодування та тестування програми. Алгоритм побудови робочого поля. Вибір мови програмування. Розробка і налагодження тексту програми. Інструкції з експлуатації.
курсовая работа [460,9 K], добавлен 04.03.2014Оперативна пам'ять як один з найважливіших елементів комп'ютера. Історія, розвиток та принцип функціонування пам'яті з довільним доступом (RAM - Random Access Memory). Будова, принцип організації, функціонування. Аналіз процесорів MMX, їх продуктивність.
курсовая работа [176,6 K], добавлен 31.10.2014