Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описывается, как написать драйвер для простого устройства контроллера периферийной шины (SPB) или для периферийного устройства, подключенного к SPB. Категория SPB включает такие автобусы, как I²C и SPI. Поставщик оборудования для устройства контроллера SPB предоставляет драйвер контроллера SPB для управления аппаратными функциями в контроллере. Этот драйвер может поддерживать семейство аналогичных устройств контроллера. Поставщик оборудования для периферийного устройства, подключенного к SPB, предоставляет периферийный драйвер SPB для управления аппаратными функциями на периферийном устройстве. Этот драйвер может поддерживать семейство периферийных устройств на разнообразных аппаратных платформах, которые совместимы с SPB.
В версиях Windows до Windows 8 операционная система получила информацию от подключенных к SPB устройств на материнской плате пк только косвенно через встроенное ПО платформы. Начиная с Windows 8, поставщики оборудования могут предоставлять драйверы Windows для прямого управления их контроллерами SPB и периферийными устройствами, подключенными к SPB, и делать эти устройства доступными для использования операционной системой и приложениями. Дополнительные сведения см. в статье "Драйверы контроллера SPB " и драйверы периферийных устройств SPB.
SPBs часто используются для подключения периферийных устройств с низкой скоростью к микросхемам материнской платы и модулям System on a Chip (SoC). Интегральная схема требует для подключения к последовательной шине меньше контактов, чем к параллельной шине, которая передает несколько битов данных за один такт. Как правило, SPB используются в приложениях, зависящих от затрат, в которых низкое число пин-контактов и простые подключения являются более важными, чем скорость передачи данных. Так как SPBs работают на низких скоростях и требуют мало электрических подключений, они часто используются в приложениях, где необходимо экономить энергию батареи.
Например, системная плата компьютера на ноутбуке может использовать шину IІC для взаимодействия с устройством с низкой скоростью, которое отслеживает уровень батареи. Аналогичным образом модуль SoC на смарт-телефоне или другом мобильном устройстве может использовать шину IІC для подключения к устройству датчика, например акселерометру, устройству GPS или датчику температуры.
SPB не является шиной Plug and Play. Периферийные устройства обычно имеют фиксированные подключения к SPB и не могут быть удалены. Даже если периферийное устройство может быть отключено из слота в SPB, слот обычно выделен для этого устройства. Во время запуска системы встроенное ПО ACPI на аппаратной платформе перечисляет периферийные устройства, подключенные к SPB для диспетчера Plug and Play, и указывает аппаратные ресурсы, выделенные каждому устройству.
Среди этих ресурсов есть идентификатор подключения, который определяет связь устройства с SPB. Идентификатор подключения инкапсулирует сведения (например, адрес шины и частота часов шины), необходимые контроллеру SPB для установления подключения к устройству. Другие аппаратные ресурсы могут включать прерывание, к которому драйвер подключает его ISR. Однако аппаратные ресурсы для устройства не включают память для регистров устройств. Подключенный к SPB периферийный прибор не имеет отображения в памяти и может быть доступен исключительно через SPB. Дополнительные сведения см. в разделе Идентификаторы подключений для SPB-Connected периферийных устройств.
SpB не предоставляет никаких средств, предназначенных для передачи запросов прерываний от периферийных устройств процессору. Вместо этого подключенное к SPB периферийное устройство сигнализирует прерывание через отдельный аппаратный путь, который находится за пределами SPB и контроллера SPB. Программа службы прерываний (ISR) для периферийного устройства, подключенного к SPB, должна выполняться на IRQL = PASSIVE_LEVEL, чтобы она могла синхронно отправлять запросы для последовательного доступа к аппаратным регистрам устройства через SPB. Дополнительную информацию см. в статье "Прерывания с SPB-Connected периферийных устройств".