Pull to refresh

Comments 11

Можно придумать открытый способ идентификации устройств, выдать всем устройствам его поддерживабщим одинаковые VID+PID на шине USB, и сделать свою собственную шину, где проблема с драйверами будет решена.
Хорошая идея.

Свою собственную шину, разумеется, делать не надо. Достаточно только сделать драйвер, который ОС будет запускать для данной пары VID+PID. Этот драйвер запрашивал бы по стандартизированному для данной схемы протоколу более подробную информацию об устройстве (например, 128-битный UUID) и, в зависимости от результата, подгружал уже драйвер конкретного устройства.
По идее, механизм подргузки нужного конкретного драйвера для устройства в зависимости от полученного UUID с точки зрения ОС и есть «шина».
Под словом «шина» обычно имеется в виду физический интерфейс с заданными протоколами обмена. То, что механизм подгрузки одного драйвера другим в некоторых ОС называется «шиной» — это специфика архитектуры и терминологии конкретной ОС.

Хотя с некоторой натяжкой и можно сказать, что шина USB, дополненная протоколом UUID, является уже другой шиной, но все же это вводит в заблуждение. Мы же все-таки ведем речь о сугубо программном решении, которое не изменяет стандартные протоколы обмена USB, а максимум — добавляет класс устройств, аналогично другим USB-классам (HID и т.д.)
Для своих устройств можно ещё по Serial Number делать идентификацию. Или по строке производителя или продукта.
Микрочип вообще молодцы. Они и для MAC-адресов предоставляют решение. Покупать у них чипы 24AA02E48, в каждом из которых прошит уникальный MAC-адрес. Выгодно для мелкосерийного производства устройств с Ethernet.
Silabs еще выдает pid, насколько помню.
Sign up to leave a comment.

Articles