Способ идентификации типа операционной системы и устройство USB
METHOD OF IDENTIFICATION OF OPERATING SYSTEM TYPE AND USB DEVICE

Область техники
Настоящее изобретение относится к области разработки встроенных устройств и области связи, в частности к способу и устройству универсальной последовательной шины (Universal Serial Bus, USB) для идентификации типа операционной системы.
Предпосылки создания изобретения
В настоящее время с внедрением системы Microsoft WIN8 относительно предшествующих систем WIN7 и ХР разработан ряд новых функций в системе WIN8, таких как поддержание нового стандартного драйвера сетевого адаптера (например, драйвера сетевого адаптера для модели интерфейса мобильной широкополосной связи (Mobile Broadband Interface Model, MBIM)) в системе WIN8, и для того, чтобы использовать эти функции, вновь добавленные в систему WIN8, устройство USB должно быть в состоянии идентифицировать тип операционной системы, к которой осуществляется доступ. Исходя из этого, важнейшей проблемой, требующей решения, является реализация устройства USB, автоматически идентифицирующего, является ли операционная система, к которой осуществляется доступ, системой WIN8.
В настоящее время имеется три способа автоматической идентификации операционной системы.
Способ первый: драйвер фильтра устройства USB заранее устанавливается на персональном компьютере (ПК), и идентификационный код, согласованный с устройством USB, заранее реализуется в драйвере, например, в рамках системы WINDOWS драйвер ПК будет посылать 0хА1, в рамках системы Macintosh (MAC) драйвер ПК будет посылать 0хА2 и т.д.
Способ второй: когда оптический диск удаляется из привода, различные команды переключения заранее устанавливаются для разных операционных систем с использованием команд интерфейса малых компьютерных систем (small computer system interface, SCSI), тем самым достигается идентификация операционной системы.
Способ третий: автоматическая идентификация системы достигается в процессе энумерации (опознания) устройства посредством дескрипторов операционной системы (ОС) Microsoft (Microsoft Operating System Descriptors, (MODS), расширенных Microsoft.
Для вышеуказанных трех способов, способ первый требует, чтобы драйвер фильтра был заранее установлен до того, как пользователь использует устройство USB, а второй способ требует, чтобы устройство USB было реализовано с оптическим диском, оба способа доставляют пользователю неудобства в процессе использования. В настоящее время только третий способ может идентифицировать, является ли операционная система ПК, к которому устройство USB в настоящий момент осуществляет доступ, базовой системой LINUX или базовой системой не-LINUX, и для базовой системы не-LINUX невозможно достичь различения того, является ли система системой WIN7 или системой WIN8.
Краткое изложение сущности изобретения
Варианты осуществления настоящего изобретения предлагают способ и устройство универсальной последовательной шины (USB) для идентификации типа операционной системы, которые могут автоматически идентифицировать операционную систему (для систем семейства WINDOWS, в частности, они позволяют идентифицировать, является ли система, к которой устройство осуществляет в данный момент доступ, системой WIN8, или системой WIN7, или системой ХР).
Вариант осуществления настоящего изобретения предлагает способ идентификации типа операционной системы, включающий:
после получения доступа к компьютеру, прием устройством USB сообщения с запросом дескриптора операционной системы Microsoft, отправленного текущей операционной системой компьютера, и ответ устройства USB на это сообщение; и
когда компьютер выполняет вторичную энумерацию, определение устройством USB типа операционной системы в соответствии с тем, принято ли конкретное сообщение с запросом дескриптора операционной системы Microsoft.
Вышеупомянутый способ также характеризуется тем, что:
устройство USB поддерживает множество наборов информации о конфигурации USB.
Вышеупомянутый способ также характеризуется тем, что: прием устройством USB сообщения с запросом дескриптора операционной системы Microsoft, отправленного текущей операционной системой компьютера, и ответ устройства USB на это сообщение включает:
после приема сообщения с запросом строчного дескриптора операционной системы (operating system string descriptor), отправленного текущей операционной системой компьютера, отклик устройства USB в виде ответного сообщения, соответствующего допустимому запросу строчного дескриптора операционной системы; и
после приема сообщения с запросом дескриптора признака (operating system feature descriptor) операционной системы, отправленного текущей операционной системой компьютера, отклик устройства USB в виде ответного сообщения, соответствующего корректному запросу дескриптора признака операционной системы.
Вышеупомянутый способ также характеризуется тем, что:
упомянутое конкретное сообщение с запросом дескриптора операционной системы Microsoft включает сообщение с запросом строчного дескриптора операционной системы;
определение устройством USB типа операционной системы в соответствии с тем, принято ли конкретное сообщение с запросом дескриптора операционной системы Microsoft, включает следующее:
если устройство USB приняло сообщение с запросом строчного дескриптора операционной системы, устройство USB определяет, что операционной системой является система WIN8.
Вариант осуществления настоящего изобретения также предлагает устройство универсальной последовательной шины (USB), содержащее:
стек протокола USB, выполненный с возможностью реализации стека протокола USB и поддержки множества наборов информации о конфигурации USB;
модуль обработки сообщения, выполненный с возможностью, после того как устройство USB получает доступ к компьютеру, приема сообщения с запросом дескриптора операционной системы Microsoft и ответа на это сообщение; и
модуль идентификации, выполненный с возможностью, когда компьютер выполняет вторичную энумерацию, определения типа операционной системы в соответствии с тем, принято ли конкретное сообщение с запросом дескриптора операционной системы Microsoft.
Вышеупомянутое устройство USB также характеризуется тем, что:
модуль обработки сообщения выполнен с возможностью приема сообщения с запросом дескриптора операционной системы Microsoft, отправленного текущей операционной системой компьютера, и ответа на это сообщение следующим образом:
после приема сообщения с запросом строчного дескриптора операционной системы, отправленного текущей операционной системой компьютера, отклика в виде ответного сообщения, соответствующего допустимому запросу строчного дескриптора операционной системы; и
после приема сообщения с запросом дескриптора признака операционной системы, отправленного текущей операционной системой компьютера, отклика в виде ответного сообщения, соответствующего корректному запросу дескриптора признака операционной системы.
Вышеупомянутое устройство USB также характеризуется тем, что:
упомянутое конкретное сообщение с запросом дескриптора операционной системы Microsoft включает сообщение с запросом строчного дескриптора операционной системы; и
модуль идентификации выполнен с возможностью определения типа операционной системы в соответствии с тем, принято ли конкретное сообщение с запросом дескриптора операционной системы Microsoft, следующим образом:
когда компьютер выполняет вторичную энумерацию, если принято сообщение с запросом строчного дескриптора операционной системы, модуль идентификации определяет, что операционной системой является система WIN8.
В заключение следует отметить, что внедрение способа и устройства USB для идентификации типа операционной системы, предлагаемых вариантами осуществления настоящего изобретения, может автоматически идентифицировать операционную систему (для систем семейства WINDOWS, в частности, возможна идентификация того, что система, к которой устройство осуществляет доступ в настоящий момент времени, является системой WIN8, или системой WIN7, или системой ХР). В тоже время способ идентификации операционной системы не требует от производителя предоставления драйвера фильтра или функции, использующей оптический диск, что сокращает количество программного обеспечения, установленного на компьютере, и может снизить затраты на разработку и последующее обслуживание, а также одновременно улучшить впечатления от использования устройства USB со стороны пользователя.
Краткое описание чертежей
Фиг. 1 представляет блок-схему алгоритма способа идентификации типа операционной системы в соответствии с вариантом осуществления настоящего изобретения.
Фиг. 2 представляет структурную схему устройства USB в соответствии с вариантом осуществления настоящего изобретения.
Фиг. 3 представляет блок-схему алгоритма реализации способа в соответствии с практическим примером осуществления настоящего изобретения.
Предпочтительные варианты осуществления настоящего изобретения
Примеры осуществления настоящего изобретения будут подробно описаны ниже со ссылкой на приложенные чертежи. Важно отметить, что варианты осуществления и признаки вариантов осуществления настоящего изобретения могут быть объединены друг с другом произвольно и без конфликта.
Фиг. 1 представляет блок-схему алгоритма способа идентификации типа операционной системы в соответствии с вариантом осуществления настоящего изобретения, и, как показано на фиг. 1, способ осуществления настоящего изобретения включает следующие шаги:
На шаге S101, после получения доступа к компьютеру, устройство USB принимает и отвечает на сообщение с запросом MODS, отправленное текущей операционной системой компьютера.
На шаге S102, когда компьютер выполняет вторичную энумерацию, устройство USB определяет тип операционной системы в соответствии с тем, принято ли конкретное сообщение с запросом MODS.
Устройство USB поддерживает множество наборов информации о конфигурации USB.
В способе варианта осуществления может быть решена проблема автоматической идентификации устройством USB того, является ли текущая операционная система системой WIN8, тем самым эффективно используются новые возможности системы WIN8 и отменяется работа производителя по предоставлению драйвера фильтра для пользователя, что позволяет экономить затраты на развитие и последующее обслуживание, а также одновременно улучшает восприятие пользователем устройства USB.
Варианты осуществления настоящего изобретения достигаются посредством технической поддержки, заключающейся в том, что когда выполняется энумерация, устройство USB может поддерживать множество наборов информации о конфигурации, а хостовая операционная система (WINDOWS SP2 и выше) поддерживает MODS.
Предпосылкой является то, что на стороне устройства USB должна реализовываться поддержка множества наборов конфигураций USB, а причина, почему необходимо поддерживать множество наборов конфигураций USB, заключается в том, что поддержка множества наборов конфигураций USB является механизмом реализации системы Microsoft WIN 8. Когда устройство USB получает доступ к компьютеру с WIN8, после того как компьютер с WIN8 обнаружил, что устройство имеет множество наборов конфигураций USB в процессе взаимодействия при энумерации, компьютер будет определять, есть ли необходимость в проведении энумерации устройства множество раз. Если устройство имеет только один набор конфигурации USB, энумерация не будет выполняться дважды.
Когда выполняется энумерация, устройство USB само сообщит, сколько наборов конфигураций поддерживаются в данный момент времени, и каждый набор конфигураций определяет, о каких устройствах устройство USB должно давать отчет при данном наборе конфигурации. Например, упомянутое конкретное устройство USB имеет два набора конфигураций USB, и первым набором из двух наборов может быть устройство сетевого адаптера модели управления Ethernet (Ethernet Control Model, EMC) и устройство оптического привода, а вторым набором может быть: сетевой адаптер MBIM (интерфейс мобильной широкополосной связи) и устройство Т-адаптера.
Во-первых, когда USB осуществляет доступ к хосту семейства ОС WINDOWS в первый раз, хостовая операционная система отправляет запрос строчного дескриптора операционной системы (строчный дескриптор ОС) для определения, содержит ли устройство USB один или более дескрипторов признаков, и осуществляет запись того, откликнулось ли текущее устройство USB ответом на запрос допустимого строчного дескриптора ОС хосту в списке.
Во-вторых, если хостовая операционная система получила ответ на допустимый запрос строчного дескриптора ОС, хостовая операционная система затем отправляет запрос дескриптора признака операционной системы (дескриптора признака ОС) для получения признаков устройства USB.
В-третьих, так как устройство USB имеет множество наборов информации о конфигурации USB, хост выполнит повторную энумерацию устройства USB, и после того как вторая энумерация начнет выполняться, для компьютера с WIN8, хост снова отправит запрос строчного дескриптора ОС на устройство USB, в то время как для компьютера с WIN7/XP хост не будет отправлять такое сообщение. Таким образом, определение того, является ли операционная система, к которой обеспечивается доступ, системой WIN8, могла быть осуществлена посредством вышеупомянутых трех шагов.
Фиг. 2 представляет структурную схему устройства USB в соответствии с вариантом осуществления настоящего изобретения, и, как показано на фиг. 2, устройство 1 USB этого варианта осуществления может содержать:
модуль 11 стека протокола USB, реализующий стек протокола USB, при этом стек протокола USB поддерживает устройство с множеством наборов информации о конфигурации USB;
модуль 12 обработки сообщения, выполненный с возможностью, после того как устройство USB получает доступ к компьютеру, приема сообщения с запросом MODS, отправленного текущей операционной системой компьютера, и ответа на это сообщение; и
модуль 13 идентификации, выполненный с возможностью, когда компьютер выполняет вторичную энумерацию, определения типа текущей хостовой операционной системы, доступ к которой обеспечивается, и в соответствии с типом текущей хостовой операционной системы, переключения на другие типы устройств.
Например, если текущей хостовой операционной системой является система WIN8, требуется, чтобы устройство USB переключилось на устройство сетевого адаптера MBIM и устройство Т-адаптера. Если же текущей системой является система WIN7/VISTA/XP, требуется, чтобы устройство USB переключилось на устройство сетевого адаптера спецификации интерфейса удаленного сетевого драйвера (Remote Network Driver Interface Specification, RNDIS), устройство оптического привода и устройство Т-адаптера. Если текущей хостовой операционной системой является система MAC, требуется, чтобы устройство USB переключилось на устройство сетевого адаптера ЕМС, устройство оптического привода и устройство Т-адаптера.
В варианте осуществления после того, как устройство USB осуществляет доступ к компьютеру с семейством ОС WINDOW, упомянутое USB будет идентифицировать, является ли текущая хостовая операционная система, к которой осуществляется доступ, системой WIN8 в соответствии с тем, отправляет ли текущая операционная система запрос строчного дескриптора ОС MODS в ходе вторичной энумерации, тем самым могут использоваться новые функции, предоставляемые ОС WIN8, и значительно улучшится восприятие пользователя.
Пример применения
Вариант осуществления описывает случай, когда пользователь использует устройство USB в хосте конкретного компьютера в первый раз и как показано на фиг. 3, что включает в себя следующие шаги.
На шаге 201 устройство USB осуществляет доступ к хосту, необходимому для работы.
Работающим хостом может быть персональный компьютер, а также другие устройства, поддерживающие ведущий контроллер USB, например карманный компьютер и т.п. Для операционной системы, работающей на хосте, варианты осуществления адаптированы под систему WIN8. В действительности, другие операционные системы, например операционные системы WIN7, WINDOWS ХР и VISTA, и т.д. могут быть включены в объем настоящего изобретения.
Устройство USB вставляется в компьютер с WIN8, и когда персональный компьютер отправляет сообщение с запросом на получение информации об устройстве USB, устройство USB откликается двумя наборами (или множеством наборов) информации о конфигурации USB, поддерживаемых устройством, на запрос ПК.
На шаге 202, после приема запроса строчного дескриптора ОС, отправленного с хоста на устройство USB, устройство USB откликается ответом, соответствующим корректному запросу строчного дескриптора ОС, в операционную систему.
На шаге 203, после приема запроса дескриптора признака ОС, отправленного с хоста на устройство USB, устройство USB откликается ответом, соответствующим корректному запросу дескриптора признака ОС, в операционную систему.
На шаге 204 ПК снова будет выполнять энумерацию на устройстве USB, и когда устройство USB обнаружит, что текущая операционная система отправляет ему запрос строчного дескриптора ОС снова, устройство USB может определить, что текущей операционной системой является операционная система WIN8 семейства ОС WINDOWS, в противном случае это будет операционная система не-WIN8 семейства ОС WINDOWS.
Обычный специалист в данной области техники может понять, что все или часть шагов в вышеуказанном способе может быть выполнена посредством программы, дающей команды соответствующему аппаратному обеспечению, и эта программа может храниться на машиночитаемой носителе, таком как постоянное запоминающее устройство, диск или оптический диск и т.п. Альтернативно, все или часть шагов вышеуказанных вариантов осуществления могут быть реализованы посредством одной или более интегральных схем. Таким образом, соответствующий модуль/блок в вышеуказанных вариантах осуществления может быть реализован с использованием функционального модуля аппаратного или программного обеспечения. Таким образом, настоящее изобретение не ограничивается какой-либо конкретной комбинацией аппаратных и программных средств.
Приведенное выше описание представляет только предпочтительные варианты осуществления настоящего изобретения и, естественно, настоящее изобретение также может иметь различные другие варианты осуществления и специалист в данной области техники может вносить различные соответствующие изменения и модификации в соответствии с настоящим изобретением в пределах объема и сущности настоящего изобретения, и эти соответствующие изменения и модификации должны быть включены в объем защиты посредством прилагаемой формулы настоящего изобретения.
Промышленная применимость
Внедрение способа и устройства в варианте осуществления настоящего изобретения позволит идентифицировать операционную систему, уменьшить количество программного обеспечения, установленного на компьютере, сэкономить затраты на разработку и последующее техническое облуживание и улучшить восприятие пользователем устройства USB.