Структура програмного забезпечення USB

Sep 01, 2022

Інтерфейс шини

Інтерфейс шини USB забезпечує взаємозв'язок між електричним рівнем і рівнем протоколу. З точки зору взаємозв’язку, подібні інтерфейси шини забезпечуються пристроєм і хостом одночасно, наприклад машина послідовного інтерфейсу (SIE). Інтерфейс шини USB реалізований головним контролером.

Система USB використовує головний контролер для керування передачею даних між хостом і пристроєм USB. Інтерфейс між ним і головним контролером залежить від визначення апаратного забезпечення головного контролера. У той же час система USB також відповідає за керування ресурсами USB, такими як пропускна здатність і енергія шини, що дає змогу клієнтам отримувати доступ до USB. Система USB також складається з трьох основних компонентів:

Драйвер хост-контролера (HCD) може відображати різні пристрої хост-контролера в системі USB. Інтерфейс між HCD і USB називається HCDI. Конкретний HCDI визначається операційною системою, яка підтримує різні головні контролери. Універсальний головний драйвер контролера (uhcd) знаходиться в нижній частині програмної структури, і він керує головним контролером. Uhcd зв’язується з хост-контролером USB і керує ним, і він прихований від інших частин системного програмного забезпечення. Найвищий рівень системного програмного забезпечення спілкується з головним контролером через програмний інтерфейс uhcd.

Драйвер USB (usbd), який базується на драйвері uhcd, забезпечує інтерфейс рівня драйвера для задоволення вимог існуючого дизайну драйвера пристрою. Usbd забезпечує архітектуру передачі даних у формі пакетів запитів введення-виведення (IRP), які складаються з вимог до передачі даних через певні канали. Крім того, через usbd клієнт виглядає як абстракція пристрою, щоб полегшити абстракцію та керування. Як частина абстракції, usbd має конвеєр за замовчуванням. За допомогою якого можна отримати доступ до всіх пристроїв USB для стандартного керування USB. Цей канал за замовчуванням описує логічний канал для зв’язку між usbd і USB-пристроєм.

Хост програмне забезпечення

У деяких операційних системах системне програмне забезпечення USB не надається. Це програмне забезпечення спочатку використовувалося для надання інформації про конфігурацію та структури завантаження драйверів пристроїв. У цих операційних системах драйвер пристрою використовує інтерфейс, наданий програмою, замість прямого доступу до структури USBDI (USB Driver Interface).

USB клієнтське програмне забезпечення

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

Кожен рівень хоста виконує такі функції:

Виявляти під’єднані та від’єднані USB-пристрої.

Керуйте потоком даних між хостом і USB-пристроєм.

Статус підключення USB і статистика активності.

Керуйте електричним інтерфейсом між основним контролером і USB-пристроєм, включаючи обмежене енергопостачання.

HCD забезпечує абстракцію головного контролера та абстракцію точки зору головного контролера даних, що передаються через USB. Usbd забезпечує абстракцію USB-пристроїв і передачі даних між клієнтами usbd і функціями USB. Система USB сприяє передачі даних між клієнтами та функціями, а також служить точкою керування для стандартизованого інтерфейсу пристроїв USB. Система USB забезпечує можливість керування буфером і дозволяє синхронізувати передачу даних із потребами клієнтів і функціями.