y"> · Драйвери режиму ядра:
o Успадковані драйвери;
o Драйвери файлової системи;
o відеодрайвером;
o Драйвери PnP (Plug And Play):
§ Драйвери WDM.
· Драйвери користувальницького режиму:
o Драйвери віртуальних пристроїв.
1.2Шіна USB
Специфікація USB була розроблена консорціумом компаній, включаючи Intel і Microsoft. Метою нового стандарту було забезпечення організації недорогий средньошвидкісною шини в таких областях застосування, як передача цифрових зображень, комп'ютерна телефонія та мультимедійні гри. Поточними версіями специфікації USB є версії 1.1 і 2.0 (у другу закладені більш високі швидкісні характеристики).
Гранична швидкість передачі даних по шині USB специфікації 1.1 становить 12 Мбіт/с (Full Speed). Повільні пристрої використовують низьку швидкість передачі - 1,5 Мбіт/с (Low Speed). Стандарт USB версії 2.0 підтримує фізичну швидкість передачі до 480 Мбіт/с (High Speed). Дані передаються послідовно по парі провідників. Харчування для деяких пристроїв доступно по окремих провідникам живлення і заземлення (для пристроїв з невеликим енергоспоживанням).
Пристрої USB можуть бути підключені 5-метровим кабелем (а практично - і більш довгим). Використання USB-хаба (hub - концентратор) дозволяє збільшити дальність розміщення пристроїв від хост-контролера, а так само кількість пристроїв, що підключаються до однієї шині USB. Послідовно можна підключити до п'яти хабів, забезпечивши довжину з'єднання 30 метрів. До хост-контролера можна підключити до 127 пристроїв, шинний адресу яких встановлюється динамічно при підключенні пристроїв.
Рис. 2. Мережа USB-пристроїв
Робота програміста, що створює драйвер зовнішнього (що не знаходиться на материнській платі) USB пристрою зводиться до того, щоб скористатися програмним інтерфейсом системних драйверів шини USB, спілкування з яким відбувається за допомогою пакетів, званих URB (USB Request Block ) пакетами. Робота з регістрами USB контролерів на материнській платі тепер стала долею вузького кола фахівців - розробників материнських плат і операційних систем. Всім іншим розробникам USB-пристроїв в операційній системі Windows пропонується досить розвинений програмний інтерфейс WDM-драйверів, які беруть на себе всі апаратно-орієнтовані операції.
. 2.1 Внутрішня організація шини USB
Всі операції з передачі даних по шині USB ініціюються хостом. Периферійні пристрої не можуть самі почати обмін даними, вони можуть тільки реагувати на команди хоста. Розглянемо загальну схему обміну даними по шині USB.
Система USB розділяється на три логічних рівня з певними правилами взаємодії. Пристрій USB містить інтерфейсну, логічну і функціональну частини. Хост теж ділиться на три частини: інтерфейсну, системну і програмне забезпечення. Кожна частина відповідає тільки за певне коло завдань. Логічне і реальна взаємодія між ними показано на малюнку 3.
Рис. 3. Взаємодія компонентів USB
Таким чином, операція обміну даними між прикладною програмою і шиною USB виконується шляхом передачі буферів пам'яті через такі рівні:
· рівень клієнтського програмного забезпечення в хості - зазвичай представляється драйвером пристрою USB, забезпечує взаємодію користувача з операційною системою з одного боку і системним драйвером з іншого;
· рівень системного програмного забезпечення USB в хості (USBD, Universal Serial Bus Driver) - керує нумерацією пристроїв на шині, управляє розподілом пропускної здатності шини і потужності харчування, обробляє запити користувальницьких драйверів;
· хост-контролер інтерфейсу шини USB (HCD, Host Controller Driver) - перетворює запити введення/виводу в структури даних, за якими хост-контролер виконує фізичні транзакції, працює з регістрами хост-контролера.
Рівень клієнтського програмного забезпечення визначає тип передачі даних, необхідний для виконання затребуваної прикладною програмою операції. Після визначення типу передачі даних цей рівень передає системному рівню наступне:
· буфер пам'яті, званий клієнтським буфером;
· пакет IRP, який вказує тип необхідної операції. Безпосередньою обробкою запиту займається системний драйвер USB.
Рівень системного драйвера USB необхідний для управління ресурсами USB. Він відповідає за виконання наступних дій:
· розподіл смуги пропускання шини USB;
· призначення логічних адрес пристроїв кожній фізичній U...