Имя целевого usb что это
Оно пришло на смену старому, а точнее — устаревшему загрузочному меню линеек Windows 9x и Windows NT, и вобрало в себя все плюсы старого меню (которых немного, а точнее, один — возможность выбора запускаемой операционной системы и способа ее запуска), а также обзавелось новыми, своими собственными, плюсами и минусами. Естественно, к плюсам следует отнести большую функциональность загрузочного меню. Ну, а к минусам — сложность настройки.
Давайте не будем говорить об отличиях в работе и хранении нового загрузочного меню — эти разговоры носят теоретический характер и смогут заинтересовать только специалистов узкого профиля, которым по каким-то причинам захочется вникнуть в формат хранения нового загрузочного меню (оно хранится в виде куста реестра). Давайте пока вообще не будем говорить о работе с новым загрузочным меню. Вместо этого в начале статьи лучше поговорить о способе удаления и установки нового загрузочного меню.
Если хорошенько вдуматься, можно прийти к выводу, что это сделать довольно сложно. Действительно, Microsoft совершенно не позаботилась о такой возможности, как удаление установленной операционной системы Windows Vista. Если вы попробуете найти пункт удаления Windows Vista в мастере установки и удаления новых программ и компонентов, то у вас не получится. Единственное, что может прийти в голову, так это отформатировать раздел с установленной операционной системой Windows Vista.
И нужно признать, что это правильное решение — однако оно не поможет вам избавиться от нового загрузочного меню (новое загрузочное меню устанавливается на активный раздел; как правило, если на вашем компьютере установлено несколько операционных систем, активным разделом является раздел с предыдущей версией операционной системы Windows).
Так как же все-таки удалить новое загрузочное меню Windows Vista и перейти к использованию предыдущего загрузочного меню (файла boot.ini)? На самом деле сделать это не так уж и сложно — достаточно воспользоваться программой командной строки bootsect.exe, расположенной в каталоге boot установочного диска Windows Vista. Данная программа поддерживает два синтаксиса запуска.
bootsect.exe /NT52
bootsect.exe /NT60
В обоих синтаксисах в качестве второго параметра нужно указывать либо раздел диска, на котором находится загрузочное меню, либо опцию ALL, чтобы применить изменения для всех разделов диска, либо воспользоваться опцией SYS, чтобы применить изменения для системного раздела диска.
Вместо опции /NT52 можно использовать опцию /XP, а вместо опции /NT60 — опцию /LH. Дополнительные сведения об опциях программы bootsect.exe можно узнать при помощи команды bootsect.exe /help.
Простые способы настройки загрузочного меню
Ну вот, теперь, после рассмотрения такого важного вопроса, как удаление и установка нового загрузочного меню всеми желающими, можно перейти и к более мелким проблемам.
Если даже после того, как вы прочитали предыдущую часть статьи, на вашем компьютере все еще стоит новое загрузочное меню Windows Vista, значит, пришла пора настроить его. Сделать это можно несколькими способами, которые в контексте данной статьи мы разобьем на простые и сложные.
К сложным способам, без сомнения, относится использование командной строки bcdedit.exe. Этот способ мы рассмотрим в конце нашей статьи. К простым же способам относятся все остальные, о которых мы поговорим прямо сейчас. А точнее, начиная со следующего раздела.
Комментарии ( 33 )
емнип, с интервалом в 1 мс, но «низкоскоростные» устройства могут опрашиваться не каждый раз, а, например раз за 10 циклов опроса
автор молодец! давно хотел освоить УСБ но никак не доходили руки да и не понимал ничего. тут все описано просто, красиво и понятно. так держать!
Настройка загрузочного меню при помощи bcdedit.exe
Если тех возможностей настройки нового загрузочного меню, которые предоставляют пользователю стандартные диалоги и графические программы Windows Vista, не хватает, следует воспользоваться программой командной строки bcdedit.exe.
Использование этой программы довольно запутанно, поэтому, прежде чем решиться на столь нелегкий шаг, как изучение и использование возможностей bcdedit.exe, не забудьте припомнить все те возможности, доступ к которым можно получить рассмотренными выше простыми способами. Быть может, то, что вы хотите сделать с помощью bcdedit.exe, можно сделать и при помощи графических диалогов Windows?
Использовать программу bcdedit.exe можно только с правами администратора (на самом деле все изменения в загрузочное меню вносятся от имени системы, однако для того, чтобы операционная система разрешила внести изменения, вы должны обладать правами администратора).
Просмотр текущего содержимого загрузочного меню
При помощи программы bcdedit.exe можно как просматривать текущее содержимое нового загрузочного меню Windows Vista, так и изменять его и выполнять другие административные задачи.
Просмотр содержимого загрузочного меню выполняется очень просто — достаточно запустить программу bcdedit.exe без параметров. Пример полученного вывода представлен ниже.
Конфигурация системы – это средство, которое помогает определить проблемы, препятствующие правильной загрузке Windows. Можно запустить Windows с выключенными общими службами и программами, которые выполняются во время запуска, а затем снова включать их одну за другой. Если проблема не возникает, когда служба выключена, но возникает, когда ее включают, эта служба может быть причиной проблемы.
В следующей таблице описаны вкладки и настройки средства «Конфигурация системы»:
- Нормальный запуск. Запуск Windows обычным способом. Этот способ используется для запуска Windows после использования двух других способов для устранения неполадок.
- Диагностический запуск. Запуск Windows только с основными службами и драйверами. Это способ может помочь избежать проблем с основными файлами Windows.
- Выборочный запуск. Запуск Windows с основными службами и драйверами, а также с другими выбранными службами и автоматически выполняемыми программами.
- Безопасная загрузка: минимальная. При запуске открывается графический интерфейс Windows (Проводник Windows) в безопасном режиме с запуском только важных системных служб. Сеть отключается.
- Безопасная загрузка: альтернативная оболочка. При запуске открывается командная строка Windows в безопасном режиме с запуском только важных системных служб. Сеть и графический интерфейс отключается.
- Безопасная загрузка: восстановление службы Active Directory. При запуске загружается графический интерфейс Windows в безопасном режиме с запуском только важных системных служб и службы Active Directory.
- Безопасная загрузка: Сеть. При запуске загружается графический интерфейс Windows в безопасном режиме с запуском только важных системных служб. Сеть будет включена.
- Без заставки. При загрузке не появится экран приветствия Windows.
- Журнал загрузки. Сохраняет всю информацию о процессе загрузки в файл %SystemRoot%Ntbtlog.txt.
- Базовый видеорежим. При запуске загружается графический интерфейс Windows в минимальном режиме VGA. Вместо драйверов имеющегося видеоадаптера загружается стандартные драйверы VGA.
- Информация о загрузке OS. При запуске отображаются имена драйверов, которые загружаются.
- Количество процессоров. Ограничивает количество процессоров, которое используется в многопроцессорной системе. Если флажок установлен, при загрузке используется только количество процессоров, которое указано в списке.
- Максимальный объем памяти. Определяет максимальный объем физической памяти, который операционная система использует для имитации конфигурации нехватки памяти. Значение в текстовом поле отображается в мегабайтах (МБ).
- Блокировка PCI. Запрещает Windows перераспределять ресурсы I / O и IRQ на локальной шине PCI. Установленные в BIOS ресурсы I / O и памяти сохраняются.
- Настройки. Позволяет отладку в режиме ядра для разработки драйверов устройств.
- Глобальные параметры отладки. Определяет параметры соединения отладчика на этом компьютере для обеспечения взаимодействия отладчика ядра с хостом отладчика. Соединение отладчика между хостом и целевыми компьютерами может быть последовательным, стандарта IEEE 1394 или USB 2.0.
- Порт отладки. Определяет использование последовательного типа связи и последовательного порта. Порт по умолчанию – COM 1.
- Быстродействие. Определяет скорость передачи, когда порт отладки выбрано и связь налаживания последовательный. (Этот параметр необязателен.) Допустимые значения скорости: 9600, 19200, 38400, 57600 и 115200. Быстродействие по умолчанию составляет 115200 бит / с.
- Канал. Определяет тип связи налаживания 1394 и номер канала. Значение канала должно быть десятичным целым числом от 0 до 62 включительно и совпадать с номером канала, который использует главный компьютер. Указанный канал не зависит от физического порта 1394 выбранного адаптера. Значение по умолчанию для канала – 0.
- Целевое имя USB. Определяет строковое значение для типа отладки USB. Строка может иметь любое значение.
Содержит список всех служб, которые запускаются при загрузке компьютера, и сведения об их текущем состоянии («работает» или «остановлено»). На вкладке «Службы» можно включить или выключить запуск отдельных служб во время загрузки, чтобы определить, какие службы вызывают проблемы загрузки.
Выберите Скрыть все службы Microsoft, чтобы в списке служб отображались только приложения сторонних разработчиков. Чтобы отключить службу для последующего запуска компьютера, снимите флажок службы. Если на вкладке «Общие» выбран параметр «Выборочный запуск», нужно выбрать параметр «Обычный запуск» или установить флажок службы, чтобы она запускалась при следующей загрузке.
Внимание! Отключение служб, которые обычно запускаются во время загрузки, может привести к неполадкам в работе некоторых программ или к нестабильности системы. Не выключайте службы из списка, пока не убедитесь, что они не критически важны для работы компьютера. Выбор команды Отключить всё не приведет к отключению некоторых защищенных служб Microsoft, необходимых для запуска операционной системы.
Содержит список приложений, которые запускаются при загрузке компьютера, а также имя их издателя, путь к исполняемому файлу и расположение раздела реестра или ярлыка, который запускает приложение.
Чтобы выключить запуск элемента при следующей загрузке, снимите флажок напротив него. Если на вкладке «Общие» выбран параметр «Выборочный запуск», нужно выбрать параметр «Обычный запуск» или установить флажок элемента, чтобы он запускался при следующей загрузке.
Примечание: Отключение запуска приложений, которые обычно выполняются при загрузке, может привести к тому, что связанные с ними приложения будут запускаться медленнее или не будут работать как следует.
Конфигурация системы
Намного больше возможностей по настройке загрузочного меню Windows Vista предоставляет программа Конфигурация системы, запустить которую можно при помощи файла msconfig.exe.
С помощью вкладки Загрузка данной программы можно выполнить следующие действия:
определить время бездействия пользователя во время отображения загрузочного меню Windows, по истечении которого будет загружена операционная система по умолчанию;
изменить некоторые параметры загрузки операционной системы. Делается это при помощи множества флажков, расположенных на вкладке Загрузка программы Конфигурация системы.
Давайте рассмотрим эти флажки и команды bcdedit.exe, которые они заменяют.
Безопасный режим. Данный флажок эквивалентен командам вида bcdedit.exe /set safeboot и bcdedit.exe /set safebootalternateshell . Он позволяет выбрать способ загрузки операционной системы по умолчанию. Вы можете выбрать либо обычную загрузку (если снимете данный флажок), либо загрузку в безопасном режиме, либо загрузку в безопасном режиме с поддержкой командной строки, либо загрузку в режиме восстановления каталога Active Directory.
Без GUI. Эквивалент команды вида bcdedit.exe /set quietboot . Он отключает отображение заставки при загрузке операционной системы.
Журнал загрузки. Эквивалент команды вида bcdedit.exe /set bootlog . Его установка приведет к тому, что система во время загрузки будет записывать данные загрузки в ветвь реестра HKLMSYSTEMCurrentControlSetBootLog, а после инициализации smss.exe и проверки целостности файловой системы перенесет содержимое данной ветви реестра в файл NTBTLOG.TXT каталога %systemroot%.
Данный режим можно использовать в том случае, если необходимо проследить список драйверов и служб, которые пытаются запуститься при запуске операционной системы.
Базовое видео. Данный флажок эквивалентен команде вида bcdedit.exe /set vga . Его установка говорит о том, что операционная система должна быть запущена с использованием стандартного графического драйвера vga.sys.
Данный режим следует использовать в том случае, если вы обнаружили, что из-за недавно установленного графического драйвера система не может загрузиться.
Информация об OC. Эквивалент команды вида bcdedit.exe /set sos . При его установке во время запуска Windows на экране будет отображаться список всех загружаемых драйверов и служб.
Число процессоров. Эквивалент команды вида bcdedit.exe /set numproc . Он позволяет указать число процессоров, установленных на вашем компьютере, которые сможет использовать операционная система.
Максимум памяти. Эквивалент команды вида bcdedit.exe /set truncatememory . Он позволяет указать адрес памяти, расположенная за которым часть памяти будет игнорироваться Windows.
Блокировка PCI. Данный флажок эквивалентен команде вида bcdedit.exe /set usefirmwarepcisettings . Он позволяет запретить PCI-устройствам выполнение динамического назначения IRQ и других ресурсов ввода-вывода.
Обнаружение HAL. Эквивалентен команде вида bcdedit.exe /set detecthal . Он позволяет указать на то, что при запуске операционная система должна определять версию HAL и файла ядра.
Отладка. Эквивалентен команде вида bcdedit.exe /set debug . Он позволяет указать на то, что при запуске операционная система должна загружать отладчик ядра.
Порт отладки. Эквивалентен командам вида bcdedit.exe /set debugport и bcdedit.exe /set debugtype . Он определяет порт для передачи отладочных данных.
Скорость. Эквивалентен команде вида bcdedit.exe /set baudrate . Он определяет скорость передачи отладочных данных по последовательным портам, используемую при включенном режиме отладки.
Канал. Эквивалентен команде вида bcdedit.exe /set channel . Он определяет канал, который будет использоваться при передаче отладочной информации по порту 1394.
Имя целевого USB. Эквивалентен командам вида bcdedit.exe bcdedit /dbgsettings targetname: и bcdedit.exe /set debugtype . Он определяет конечное имя USB, используемое при передаче отладочной информации по порту USB.
Дополнительные параметры загрузки в MSCONFIG
Вам нужно четко понять одну вещь. Раздел расширенной загрузки служебной программы настройки системы или MSCONFIG создан для устранения неполадок. Однако путаница возникает, когда конечный пользователь находит эту опцию. Мы настоятельно рекомендуем вам оставить эти настройки по умолчанию и не изменять их.
Количество процессоров
Откройте диспетчер задач и перейдите на вкладку «Производительность». Обратите внимание на количество ядер процессора и памяти.
Теперь введите MSCONFIG в строке «Выполнить» и нажмите клавишу Enter. Перейдите в раздел загрузки и нажмите на Расширенные опции кнопка
Установите флажок «Число процессоров» и выберите значение, меньшее максимально доступного в раскрывающемся списке. Максимальное значение, которое вы увидите, будет таким же, как и в диспетчере задач.
Перезагрузитесь, а затем проверьте, сколько процессоров и объем памяти доступны для ОС.
Я уверен, что вы испытаете более низкую производительность по сравнению с тем, что было при загрузке компьютера в конфигурации по умолчанию. Хотя я не уверен, почему существуют эти настройки, но я предполагаю, что это помогает разработчикам понять, как их приложение работает при низкой конфигурации оборудования, не меняя фактическую конфигурацию оборудования. То же самое можно сказать и о Windows.
Теперь давайте посмотрим на другие разделы:
Блокировка PCI
PCI — это аппаратная шина для добавления компонентов к компьютеру. BIOS или ОС могут определить требования к ресурсам и автоматически назначить их, чтобы не возникало конфликта. Раньше это было полезно, поскольку Windows брала на себя эту задачу.
Судя по тому, что я видел на форумах, лучше не ставить галочку, если у вас нет проблем с подключенным оборудованием. Windows может взять на себя это, но мы не торопимся, за исключением того, что при проверке это приводит к BSOD.
Если вы проверили блокировку PCI и получаете BSOD, обязательно загрузитесь в безопасном режиме, а затем отключите блокировку PCI с помощью msconfig. Вам может потребоваться загрузочное USB-устройство, чтобы войти в конфигурацию расширенной загрузки.
Отлаживать
Это вариант разработчика, где отлаживать ядро, инструменты отладки подключены к ОС. Опять же, это непотребительский вариант, и его следует оставить как есть. Установив флажок «Отладка», вы можете настроить остальные параметры, включая порт отладки, канал, целевое имя USB и скорость передачи данных. При использовании вам придется отключить или приостановить BitLocker и безопасную загрузку на компьютере.
Многое можно сделать с помощью bcdedit инструмент в Windows 10, который также предлагает / dbgsettings как один из вариантов. Вы можете использовать его для отключения подписи драйвера, включения или отключения выполнения данных и т. Д.
Вы также увидите другие настройки для Максимальный объем памяти, Глобальные настройки отладки, так далее.
Здесь ясно одно. Это не потребительские опции, и вы не можете использовать их для ускорения работы компьютеров. Эти дополнительные параметры являются инструментами отладки, и они были там, сколько я себя помню. В Windows много таких инструментов, и не используйте их, если вы не занимаетесь аппаратной отладкой.
Появилось немного свободного времени, и я решил написать небольшую «внеплановую» статью.
Итак, из предыдущей статьи, мы знаем, что для обмена данными используются некие виртуальные каналы – «конечные точки». Давайте рассмотрим, как происходит обмен.
Обмен данными по USB
Нужно помнить, что интерфейс USB предусматривает использование разветвлителей – хабов. Более того, допускается каскадное включение хабов. Следовательно, необходимо как-то идентифицировать конкретное USB устройство в «гирлянде» из хабов и USB устройств. Для этого каждому устройству присваивается адрес.
Здесь остановимся немного подробнее. Адрес кодируется 7 битами. Изначально (в момент подключения), устройство, грубо говоря, само себе назначает адрес 0. Этот адрес зарезервирован стандартом как раз для вновь подключаемых устройств. Далее, в процессе инициализации (об этом поговорим позже), хост присваивает устройству уникальный адрес отличный от 0, а адрес 0 «освобождается» для вновь подключаемых устройств.
И так, для того чтобы передать данные конкретному устройству, нужно знать адрес устройства и номер виртуального канала «внутри» устройства (адрес «конечной точки»).
Как мы уже выяснили, сразу после включения, устройство имеет особый, «нулевой» адрес. Каждое устройство, согласно стандарту, имеет «нулевую конечную точку» типа Control. Соответственно, сразу после подключения, хост может начинать обмениваться данными с новым устройством (адрес = 0, номер конечной точки = 0).
Рассмотрим, как происходит обмен данными.
Сам обмен осуществляется пакетами. Стандартом предусмотрено несколько типов пакетов. «Побайтно» мы пока разбирать пакеты не будем, но коснемся этого вопроса в практической части.
Дело в том, что часть работы по формированию и передаче пакетов (например, вопросы синхронизации, расчет контрольных сумм и т. д.) возьмет на себя USB периферия МК. Для тех, кто хочет сразу углубиться в биты и байты могу порекомендовать ознакомиться с разделом 8 официальной спецификации USB 2.0
Пока нам достаточно знать, что существуют «пакеты данных» и несколько типов «служебных пакетов».
USB и Plug and Play
Давайте рассмотрим, что с нашим устройством будет происходить дальше, после того как хост определил подключение нового устройства и готов начать обмен данными. Нам нужно ненадолго подняться на «высокий» уровень – уровень ОС.
Дело в том, что в стандарт USB поддерживает концепцию Plug and Play (подключи и играй). Данная концепция подразумевает, что пользователю достаточно «воткнуть» устройство в соответствующий порт ПК. Дальше ОС автоматически определит тип подключенного устройства, найдет подходящий для данного устройства драйвер, сконфигурирует устройство и т. д. (правда, это конечно в идеале :))
Для того чтобы вся эта красота работала, стандартом USB предусмотрены некие общие требования для всех устройств:
1. Каждое устройство содержит «собственное описание» (дескриптор устройства).
2. Есть некий, общий для всех USB устройств, механизм который позволяет ОС прочитать дескриптор устройства для того, чтобы идентифицировать устройство, узнать его характеристики.
3. Есть некий, общий для всех USB устройств, механизм который позволяет ОС выполнить первичную конфигурацию устройства (например, присвоить устройству новый адрес, о чем мы говорили выше).
Данными вещами (чтение дескриптора устройства, идентификация устройства) занимается некая служба ОС, которая отвечает за базовую поддержку USB.
После того как устройство будет идентифицировано и проведена некая первичная инициализация, данная служба передаст управление устройством драйверу, который «закреплен» за данным типом устройств (или конкретно за этим устройством).
Что будет, если служба не сможет найти «подходящий» драйвер для данного устройства знают все :)
Теперь возвращаемся на наш «низкий» уровень.
Начало работы с устройством. Стандартные заросы.
На практике, для чтения дескриптора устройства и первичной инициализации используются та самая «нулевая конечная точка». Есть несколько предусмотренных стандартом запросов (Standard Device Requests), которые должны обрабатываться всеми USB устройствами. Пока приведу несколько примеров таких запросов:
GET_DESCRIPTOR – запрос на получения дескриптора устройства. Данный запрос содержит дополнительную информацию о том, какой именно дескриптор должно вернуть (в устройстве «хранится» несколько разных дескрипторов, но об этом позже).
GET_CONFIGURATION – запрос на получение текущей конфигурации устройства.
SET_ADDRESS – данный запрос используется для присвоения устройству «нормального» (отличного от 0) адреса. Сам адрес содержится в запросе.
Нужно понимать, что запрос — это не более чем стандартизированная структура данных, которая содержит код запроса (bRequest) и дополнительные данные. Ответы на каждый из запросов тоже, естественно, стандартизированы.
Кроме стандартных запросов, которые устройство «обязано» поддерживать, можно определить «свои» запросы, специфические для конкретного устройства (класса устройств).
Заодно, для того чтобы показать как выглядит тот самый дескриптор устройства приведу пример:
Пока это просто иллюстрация того, как выглядит дескриптор, вникать в значение полей не стоит, этим мы займемся в следующей статье.
На этом, предлагаю завязывать с голой теорией и постепенно переходить к практике. В следующей статье начнем потихоньку писать код.
Диалог Загрузка и восстановление
С помощью диалога Загрузка и восстановление (рис. 2) вы довольно просто сможете выполнить следующие действия:
выбрать операционную систему, которая будет загружаться по умолчанию. По умолчанию загружается последняя из установленных операционных систем Windows Vista;.
определить время бездействия пользователя во время отображения загрузочного меню Windows, по истечении которого будет загружена операционная система по умолчанию. По умолчанию интервал, изменяемый данной настройкой, равен 30 с;
определить время бездействия пользователя при отображении окна дополнительных вариантов загрузки (можно вызвать нажатием клавиши F8 во время отображения нового загрузочного меню Windows Vista, а также отображается автоматически в том случае, если работа операционной системы была прекращена неожиданно), по истечении которого будет выполнен обычный запуск операционной системы. Следует заметить, что данную настройку можно изменить только с помощью данного диалога (или, разумеется, с помощью программы bcdedit.exe). По умолчанию интервал, изменяемый данной настройкой, равен 30 с.
Чтобы отобразить диалог Загрузка и восстановление, сначала необходимо вызвать диалог Система (при помощи комбинации клавиш Win+Pause), после чего выбрать ссылку Дополнительные параметры системы. В появившемся диалоге Свойства системы нужно перейти на вкладку Дополнительно и нажать на кнопку Параметры… в области Загрузка и восстановление.
Запуск Windows в режиме выборочного запуска
Если проблема сохранится после перезагрузки, выполните одну или обе (если нужно) задачи:
В данном цикле статей будет рассмотрен под разными углами интерфейс USB (USB 2.0) Попробуем разобраться, как он работает и закрепить полученные знания практически. «Копать» мы будем достаточно глубоко, не коснемся только физического уровня передачи данных (вернее коснемся вскользь). Физический уровень возьмет на себя соответствующий периферийный модуль МК.
Все примеры, которые я буду приводить, будут привязаны к линейке МК AT91SAM7S. Так как эта линейка МК не очень популярна в Сообществе, я постараюсь акцентировать внимание на работе самого интерфейса и по минимуму затрону специфические для этого МК особенности реализации.
Примеры будут базироваться на «глубоко модернизированном» и достаточно низкоуровневом примере реализации USB от Atmel. Готовые библиотеки рассматривать не будем. Не по тому, что это плохо, просто наша цель разобраться — как работает интерфейс.
В качестве практического задания – давайте поставим целью создать CDC-ACM устройство. На практике, за сокращением CDC-ACM стоит «обыкновенный» виртуальный СОМ-порт. С терминологией разберемся позже, пока скажем так: на уровне ОС устройство будет автоматически распознаваться как последовательный интерфейс (COM-порт в Win, /dev/ttyS в Linux и т. д.).
Общие сведения.
USB –последовательный интерфейс, используемый для подключения периферийных устройств. Соответственно, существуют понятие «главное устройство» (хост, он управляет обменом данными через интерфейс, выступает инициатором обмена) и «периферийное устройство» (клиент, в процессе обмена данными «подчиняется» хосту).
Логика работы у хоста и клиента принципиально отличается, соответственно нельзя напрямую соединять устройства «хост – хост» и «клиент – клиент».
Есть специальные устройства – хабы, которые подключаются в качестве клиента к одному хосту и, в тоже время, выступают хостом для других периферийных устройств. Хабы используют для «разветвления» шины USB.
Полагаю, изложенные факты общеизвестны, двигаемся далее.
Физический уровень.
Физически интерфейс USB использует 4 провода: «земля (GND)», «+5В (VBUS)», «D+», «D-». Первые два могут использоваться для питания периферийного устройства (максимальный ток 500 мА). Два последних служат для передачи данных (обозначение D+ и D- условны, с электрическими потенциалами это никак не связанно).
Как я уже сказал, физическую передачу данных через D+ и D- нам обеспечит USB модуль МК.
Нам нужно знать следующее:
1. Питание на периферийное устройство подается сразу после подключения к USB разъему хоста. Сам разъем сконструирован таким образом, что первыми входят в «зацепление» контакты «GND» и «VBUS», только потом «D+» и «D-».
2. Подключение устройства к USB разъему хоста не означает, что хост сразу определит подключение нового устройства. Если не вдаваться в подробности, подключение/отключение устройства хост определяет по наличию вешней подтяжки на линиях D+ и D-. Такая формулировка очень упрощена, детально ознакомиться с вопросом можно в разделе 7.1.7.3 официальной спецификации USB 2.0.
В нашем случае, для того чтобы «заявить о себе» нужно подтянуть линию D+ посредством сопротивления 1.5 кОм к напряжению 3.3 вольта. Если мы уберем данную подтяжку – хост определит отключение устройства.
Подтяжку можно сделать постоянной (в таком случае хост будет определять подключение / отключение устройства одновременно с подключением / отключением устройства к разъему USB), либо управлять подтяжкой через ключ, дергая ногой МК (тогда наше устройство сможет самостоятельно подключатся и отключатся от хоста).
Логический уровень
На логическом уровне, обмен данными происходит через некоторые логические, виртуальные каналы внутри одного физического USB интерфейса. Такие каналы называют «Конечными точками» (EndPoints).
Конечные точки (каналы) бывают 4 видов:
Control – данный тип канала используется хостом для управления периферийным устройством. Хотя иногда данный тип канала используется для передачи данных.
Bulk — данный тип канала используется для обмена данными. Гарантирование целостности данных и гарантированная доставка данных для данного типа канала реализована «в железе». Однако скорость передачи данных по такому каналу ограничена.
Isochronous — данный тип канала в основном используется для обмена потоковыми данными. Целостность и доставка данных не контролируются, зато скорость значительно выше чем для Bulk каналов.
Interrupt – используются для реализации подобия «прерываний». Такие «прерывания» являются логическими, и никак напрямую не связанны с аппаратными прерываниями МК или прерываниями ОС.
Минимальная реализация USB устройства требует наличие всего одного Control канала (так называемая «нулевая конечная точка»). Остальные типы каналов, как и их количество определяет разработчик устройства исходя из функций устройства.
Однако, существуют некоторые стандартизированные классы USB устройств. Для каждого такого класса количество каналов, их типы и назначение установлено стандартом для данного класса устройств.
Мы стремимся создать устройство класса CDC (communications device class). Использование стандарта, в данном случае, избавит нас от необходимости писать драйвер для ОС. Как правило, драйвера для стандартных классов устройств уже «вшиты» во все популярные ОС.
Детально ознакомляться с типами каналов будем по ходу реализации нашего устройства. Забегая наперед, скажу, что в нашем устройстве будет 3 канала. Control канал для управления и два Bulk канала для предачи данных по направлению «ПК-МК» и, соответственно «МК-ПК».
Первая — вводная статья получилась слишком теоретической.
В следующей статье мы поговорим о дескрипторах USB устройства и рассмотрим процедуру инициализации устройства (запрос дескрипторов хостом и т. д.). Увы, но опять будет много теории, запаситесь терпением. :) Ничего, нам осталось «пережевать» дескрипторы устройств, после чего появятся примеры кода.
MSConfig или же Утилита настройки системы это встроенный в Windows инструмент, который позволяет управлять элементами автозагрузки, параметрами загрузки, службами и загрузкой в безопасном режимеи т. д. Под загрузочным разделом есть Расширенные опции кнопка. Этот раздел дает вам доступ к параметрам настройки, таким как количество процессоров, объем памяти, отладка и глобальные настройки отладки. Имейте в виду, что эти варианты являются последним средством диагностики ваших систем для опытных пользователей. В этом посте мы подробно рассмотрим эти дополнительные параметры загрузки в MSCONFIG в Windows 10.
Загрузка Windows в режиме диагностического запуска
- Откройте окно «Конфигурация системы».
- На вкладке Общие выберите Диагностический запуск, нажмите кнопку ОК , а затем выберите Перезагрузка .
- Возникновение проблемы означает, что повреждены основные файлы и драйверы Windows.
Если проблема не возникает, воспользуйтесь режимом выборочного запуска, чтобы выяснить причину проблемы, включая и выключая отдельные службы и программы, выполняемые при запуске.
Читайте также: