11.06.2016 11152

С уществует небольшая группа программ, которые для своей работы, чаще всего для сохранения данных, требуют обязательного подключения к компьютеру внешнего носителя. Это могут быть бухгалтерские или какие-нибудь иные специальные приложения. Подобная необходимость также может возникнуть при работе с системами виртуализации, к которым нужно подключить физические флешки. Но что, если флешки под рукой не оказалось, а выполнить работу в программе всё же надо?


В такой ситуации выручит небольшая бесплатная программка под названием . Предназначается она в основном для монтирования уже готовых образов дисков, но также может использоваться для создания RAM -дисков, то есть таких, которые существуют только в оперативной памяти компьютера. При этом пользователь может задать тип виртуального устройства, присвоить ему букву, а также установить нужные атрибуты.

В использовании программа очень проста и удобна, разве что без поддержки русского языка. Чтобы добавить носитель, жмём кнопку «Mount new» и в открывшемся окошке настраиваем параметры монтирования.

Опция «Source» позволяет выбрать источник образа. Им может быть прикрученный (Image file) или загруженный в ОЗУ (Image file in RAM) файл образа, а также пустой диск из оперативной памяти (Empty RAM drive) . Если вам нужна виртуальная флешка, указываем путь к ISO или иного поддерживаемого формата образу.

Настройки «Volume options» можно оставить по умолчанию, да и для виртуализации флешки они не имеют значения, понадобиться они могут разве что при загрузке образа в память и создании диска из памяти. Куда больший интерес представляют настройки «Mount options» .

Опция «Drive letter» задаёт букву диска.

«Drive type» - тип образа.

Таких типов четыре:

  • Auto (программа сама выбирает тип)
  • Floppy (флоппи-диск)
  • CD/DVD (оптический диск)
  • HDD (флешка или съёмный жёсткий диск) .

В нижней части окошка также будут два чекбокса «Read-only drive» и «Mount as removable media» . Если вы собираетесь производить на виртуальный диск запись, первую галочку нужно снять. Вторая же напротив, должна быть установлена дабы система не распознала подвох и определила смонтированный образ как флешку. Установив такие настройки, жмём «ОК» . Вот и всё, теперь вы можете работать с образом как с обычным съёмным носителем.

Опции, которые вам могут понадобиться при работе с виртуальной флешкой находятся в меню «Drive actions» .

Доступны команды:

  • Open (открыть)
  • Dismount (размонтировать)
  • Save to image file (сохранить как новый образ в нужном формате)
  • Extend size (расширить)
  • Format (отформатировать)

К дополнительным опциям относится Set media read-only (запрет записи) и Set media writable (разрешение записи) .

Привет друзья! Огромное число пользователей персонального компьютера используют . Дело в том, что это очень удобно, вы можете установить на виртуальную машину любую операционную систему (гостевую) и пользоваться ей как настоящей, инсталлируйте на неё все ваши любимые программы и пользуйтесь ей как обычной системой, если вы заразите её вирусами или по каким-либо причинам она у вас перестанет загружаться, то вы очень просто восстановите её из бэкапа или установите заново, всё это произойдёт без ущерба вашей основной операционной системе (хостовой), установленной на ваш компьютер.

В процессе работы с виртуальной машиной у вас может появиться (и не раз) потребность загрузить её с загрузочной флешки, например, чтобы проверить, является флешка загрузочной или нет. Общепринятый ручной способ создания файла USB.vmdk, связующего флешку и виртуальную машину, не является самым простым, поэтому я предлагаю вам воспользоваться очень простой программой Virtual Machine USB Boot 1.5, уверен, что после прочтения статьи вы удивитесь, как просто она работает. Но в работе программы, особенно с последней операционной системой Windows 10 есть нюансы, так что читайте статью внимательнее.

Итак, идём на официальный сайт утилиты и скачиваем нужный вам установщик.

http://reboot.pro/files/download/339-virtual-machine-usb-boot/

Можете скачать портабельную версию программы, а можете скачать установщик.

Я скачаю портабельную версию, её можно запустить прямо с флешки (на всякий случай выкладываю её на своём облачном хранилище).

После скачивания запускаем программу Virtual Machine USB Boot 1.5.

В главном окне программы жмём Add (Добавить).

В пункте VM name жмём на стрелочку

и выбираем в выпадающем списке название виртуальной машины, которую мы хотим загрузить с флешки. На моём ноутбуке две виртуальные машины: Windows 10 и Windows 7,

Я хочу загрузить с флешки Windows 10 , поэтому выбираю в списке её.

В пункте Drive to add and boot выбираю загрузочную флешку.

ОК .

Важно : теперь, если у вас запущена VirtualBox, её надо закрыть, так как виртуальную машину будет запускать программа Virtual Machine USB Boot 1.5.

Жмём START .

Запускается виртуальная машина и выходит ошибка: FATAL: No bootable medium found! System halted .

Друзья, дело в том, что программа Virtual Machine USB Boot 1.5 немного некорректно работает с последней версией виртуальной машины VirtualBox - 5.0.14 . и не создаёт автоматически IDE-контроллер для файла vmdk.

Примечание : Для загрузки VirtualBox с USB-флешки программа Virtual Machine USB Boot 1.5 специально создаёт vmdk-файл, именно этот файл соединяет виртуальную машину с USB-флешкой. Данный файл vmdk создаётся в личной папке программы: C:\Users\Имя пользователя\VirtualBox VMs\Windows 10 (название виртуальной машины).

Чтобы не было ошибки «FATAL: No bootable medium found! System halted» при загрузке виртуальной машины с флешки, нам самим нужно создать IDE-контроллер для файла vmdk.

Жмём на кнопку Носители .

Жмём на кнопку в форме ромбика и выбираем Добавить IDE-контроллер .

Контроллер IDE добавлен.

Запускаем программу Virtual Machine USB Boot 1.5 заново

Жмём START .

И виртуальная машина загружается с флешки.

Если вы используете немного устаревшую версию виртуальной машины VirtualBox 4.3.34 , то с ней подобных проблем не будет. Программа Virtual Machine USB Boot 1.5 автоматически создаст IDE-контроллер для файла vmdk.

Иногда бывают такие ситуации, когда приходится работать с утилитами (бухгалтерскими, социальными, которые требуют обязательного наличия в компьютере внешнего носителя). Или же просто необходимо установить новую версию операционной системы. Но, что делать, если нет ни флешки, ни каких-либо свободных CD. Выход есть! Нужна специальная программа , которая будет работать как виртуальная флешка.

OSFmount- спасательный круг для тех, у кого нет под рукой съёмных носителей

OSFmount- это маленькая программка, которая поможет создать накопитель. Это приложение может создать как готовый образ (image) накопителя, так и RAM, который существует только в ОЗУ. Флоппи-винчестер, искусственный оптический диск, и,главное, виртуальная флешка - программа может монтировать все эти образы. Windows 10, Windows 8, Windows 7 виртуальная флешка создастся на любой операционной системе Windows, причём как в 64-битной среде, так и в 32-битной. В mount даже можно определять для искусственного диска определённую букву и устанавливать нужные атрибуты. При этом размер утилиты не дотягивает даже до 2 мегабайт, её размер всего 1,95 Мбайт. Из минусов только то, что программа не поддерживает русский язык.

Инструкция по использованию OSFmount

В использовании она лёгкая и для создания флешки не потребуется много времени и усилий. Итак, как создать виртуальную флешку на компьютере с помощью OSFmount:


Также в работе могут понадобятся некоторые опции, которые открываются после нажатия на «Drive Actions». В этой опции есть следующие:

  • Dismount - для размонтирования;
  • Format- с помощью этой опции можно совершать форматирование;
  • Savetoimagefile - для сохранения в требуемом формате;
  • Open - для открытия;
  • Set media read-only - запрещает запись;
  • Extendsize - служит для расширения;
  • Set media writable -разрешает запись.

Вот так очень легко можно сделать virtual usb flash на компьютере. Образы для virtual flash можно выбирать любые. Но в случае с загрузочным image накопитель придётся отформатировать и открываться она будет только в этом приложении.

Установка и создание виртуальной флешки может происходить с помощью различных программ. В данной статье мы рассмотрим самый удобный, как на мой взгляд, способ хранения файлов - облачное хранилище .
Яндекс.Диск, Google Drive и Облако Mail.ru - все это является хранилищами данных. Они одинаковые по функционалу и использованию. Это некая папка которая находится под вашим паролем и которую использовать вы можете с любого компьютера. На всех этих серверах предоставляется достаточное количество бесплатной памяти для хранения файлов разного типа.

Рассмотрим создание такого облака на примере Google Drive
1. Первое, что вам нужно сделать это завести почтовый ящик в Google

2. После создания ящика, вы переходите в “Google” и выбираете “Приложения Google ”. Расположен этот значок в правом верхнем углу.



3. Выбираете вкладку с названием “Диск” и переходите по ней...



4. С помощью ранее созданной почты заходите выполняете вход. И ваш диск (виртуальная флешка) готов к использованию.

Цель разработки - заставить VirtualBox работать без установки и запускаться откуда угодно, например с USB-носителя. Интересно, что утилита полностью написана на скриптах AutoIt (все исходники открыто лежат, но из-за этого, правда, и выглядит не очень изящно. Но главное-то - результат. Итак, скачиваем приложение (у меня это Portable-VirtualBox_v4.1.6-Starter_v6.4.8-Win_all.exe) и запускаем его - программа предложит выбрать путь для распаковки. После этого можно запустить Portable-VirtualBox.exe. Все настройки выставляются автоматически, исправлять что-то вручную (например, пути) не требуется. Появившееся окно - это так называемый лончер. Он появляется один раз и предназначен для загрузки последнего дистрибутива VirtualBox и извлечения оттуда нужных файлов. Интересно, что на этом этапе файлы можно еще и особым образом упаковать, чтобы они занимали меньше места на USB-флешке (хотя при нынешних размерах флешек это едва ли актуально). Жмем на кнопку «Download installation files of VirtualBox», выбираем разрядность системы (например, «Extract the files for 32-Bit system») и ждем, пока лончер сделает все свое дело. Чтобы установщик адаптировал пути под систему (поправил нужные параметры в конфиге VirtualBox.xml), бинарник Portable-VirtualBox.exe нужно запустить еще раз. Вуаля - у нас в распоряжении есть полноценная VirtualBox. Без какой-либо установки в систему.

В трее появится иконка VirtualBox, с помощью которой можно управлять виртуальной машиной и дополнительно настраивать ее. В гостевых ОС по умолчанию работает и USB, и сеть. Но чтобы выпустить гостевую ОС во внешнюю сеть (инет), придется провести некоторые дополнительные манипуляции. В трее надо выбрать «Settings -> Network» и включить опцию «Start VirtualBox with network support». Далее нужно перезапустить Portable-VirtualBox и согласиться на установку драйвера. Процесс организован так, что при завершении работы с виртуальной машиной всё, что было установлено в систему, удаляется. Файлы гостевой ОС разумно разместить прямо на флешке вместе с VirtualBox. У меня эта система одна, поэтому ее можно запускать сразу, без дополнительных манипуляций, указав в параметрах ее имя:

Portable-VirtualBox.exe "leopard"

Учитывая, что виртуальная машина всегда находится не в выключенном состоянии, а в режиме «Save the state», ее запуск происходит очень быстро. Поэтому она всегда готова к работе без лишнего геморроя. И где угодно.

С уществует небольшая группа программ, которые для своей работы, чаще всего для сохранения данных, требуют обязательного подключения к компьютеру внешнего носителя. Это могут быть бухгалтерские или какие-нибудь иные специальные приложения. Подобная необходимость также может возникнуть при работе с системами виртуализации, к которым нужно подключить физические флешки. Но что, если флешки под рукой не оказалось, а выполнить работу в программе всё же надо?


В такой ситуации выручит небольшая бесплатная программка под названием. Предназначается она в основном для монтирования уже готовых образов дисков, но также может использоваться для создания RAM -дисков, то есть таких, которые существуют только в оперативной памяти компьютера. При этом пользователь может задать тип виртуального устройства, присвоить ему букву, а также установить нужные атрибуты.

В использовании программа очень проста и удобна, разве что без поддержки русского языка. Чтобы добавить носитель, жмём кнопку «Mount new» и в открывшемся окошке настраиваем параметры монтирования.


Опция «Source» позволяет выбрать источник образа. Им может быть прикрученный (Image file) или загруженный в ОЗУ (Image file in RAM) файл образа, а также пустой диск из оперативной памяти (Empty RAM drive) . Если вам нужна виртуальная флешка, указываем путь к ISO или иного поддерживаемого формата образу.


Настройки «Volume options» можно оставить по умолчанию, да и для виртуализации флешки они не имеют значения, понадобиться они могут разве что при загрузке образа в память и создании диска из памяти. Куда больший интерес представляют настройки «Mount options» .

Опция «Drive letter» задаёт букву диска.

«Drive type» - тип образа.

Таких типов четыре:

  • Auto (программа сама выбирает тип)
  • Floppy (флоппи-диск)
  • CD/DVD (оптический диск)
  • HDD (флешка или съёмный жёсткий диск) .

В нижней части окошка также будут два чекбокса «Read-only drive» и «Mount as removable media» . Если вы собираетесь производить на виртуальный диск запись, первую галочку нужно снять. Вторая же напротив, должна быть установлена дабы система не распознала подвох и определила смонтированный образ как флешку. Установив такие настройки, жмём «ОК» . Вот и всё, теперь вы можете работать с образом как с обычным съёмным носителем.



Опции, которые вам могут понадобиться при работе с виртуальной флешкой находятся в меню «Drive actions» .

Доступны команды:

  • Open (открыть)
  • Dismount (размонтировать)
  • Save to image file (сохранить как новый образ в нужном формате)
  • Extend size (расширить)
  • Format (отформатировать)

К дополнительным опциям относится Set media read-only (запрет записи) и Set media writable (разрешение записи) .


Какие образа можно использовать для виртуализации флешек? В принципе любые, даже загрузочные, только в этом случае OSFMount может попросить вставить в устройство диск, и чтобы сделать такую виртуальную флешку доступной, придётся её сначала отформатировать. При этом исходный образ скорее всего окажется поврежденным и открыть его можно будет только в OSFMount.

Вам может быть интересно:

Как создать образ диска CD/DVD с помощью бесплатной программы Ashampoo Burning Studio Free Как с помощью утилиты Windows ISO Downloader без лишней мороки найти и скачать любой официальный дистрибутив Windows 7, 8.1 и 10 Утилита ESD Decrypte - легкое конвертирование ESD в загрузочный ISO-образ Windows Windows and Office Genuine ISO Verifier - утилита для проверки подлинности продуктов Microsoft

Здравствуйте, уважаемые читатели моего блога.

Здесь я вам расскажу, как можно получить очень много места для хранения данных в просторах интернета.

Я нашел место для хранения данных около 280 Гб .

Виртуальная флешка.

Как получить? Это очень просто. Есть google, яндекс, mail . Нужно создать аккаунт в каждом из них. У меня есть аккаунты во всех трех системах.

Начнем с яндекса. Нужно создать.

Как создали аккаунт, открываем. При необходимости устанавливаем диск на компьютер. При первом запуске диска, там будет места на 10 Гб. С каждым годом яндекс диск будет вам предоставлять примерно по 1 Гигабайту или по 2 Гигабайта. Все это место бесплатно.

При регистрации аккаунта в яндексе есть необходимость указать номер мобильного телефона . На один номер телефона можно зарегистрировать три аккаунта в яндексе. На всех трех будут вначале по 10 Гб места.

Можно регистрировать больше аккаунтов. Только для этого нужны будут другие номера телефонов. Чем больше аккаунтов будет, тем больше путаницы.

Для хранения моих данных на сегодняшний день место выделено так. В одном 18Гб, в другом 12 Гб и в третьем аккаунте 11Гб.

На картинке видите место на диске одного из аккаунтов.


На яндексе я получил 41 Гб места для хранения моих данных. Это получается, как виртуальная бесплатная флешка.

Тут тоже требуется номер телефона. Можно регистрировать очень много аккаунтов. Но в выпадающее меню с аккаунтами можно вместить всего пять аккаунтов.

Моих аккаунтов в майле три.

В двух из них по 100 Гб места на одном 8 Гб. В майле место для хранения данных имеет название «облако» .

На картинке видно сколько места в облаке


После регистрации аккаунта, будет предоставлено место в 8 Гб.

По мере того, как часто будете пользоваться аккаунтами в майле, вам будут добавлять еще более места.

100+8+100=208, добавляем сюда место с яндекса

Сейчас я нашел место для хранения данных 249Гб.

Иногда бывают такие ситуации, когда приходится работать с утилитами (бухгалтерскими, социальными, которые требуют обязательного наличия в компьютере внешнего носителя). Или же просто необходимо установить новую версию операционной системы . Но, что делать, если нет ни флешки, ни каких-либо свободных CD. Выход есть! Нужна специальная программа, которая будет работать как виртуальная флешка.

OSFmount- спасательный круг для тех, у кого нет под рукой съёмных носителей

OSFmount- это маленькая программка, которая поможет создать накопитель. Это приложение может создать как готовый образ (image) накопителя, так и RAM, который существует только в ОЗУ . Флоппи-винчестер, искусственный оптический диск, и,главное, виртуальная флешка - программа может монтировать все эти образы . Windows 10, Windows 8, Windows 7 виртуальная флешка создастся на любой операционной системе Windows, причём как в 64-битной среде, так и в 32-битной. В mount даже можно определять для искусственного диска определённую букву и устанавливать нужные атрибуты. При этом размер утилиты не дотягивает даже до 2 мегабайт, её размер всего 1,95 Мбайт. Из минусов только то, что программа не поддерживает русский язык.

Инструкция по использованию OSFmount

В использовании она лёгкая и для создания флешки не потребуется много времени и усилий. Итак, как создать виртуальную флешку на компьютере с помощью OSFmount:


Также в работе могут понадобятся некоторые опции, которые открываются после нажатия на «Drive Actions». В этой опции есть следующие:

  • Dismount - для размонтирования;
  • Format- с помощью этой опции можно совершать форматирование ;
  • Savetoimagefile - для сохранения в требуемом формате;
  • Open - для открытия;
  • Set media read-only - запрещает запись;
  • Extendsize - служит для расширения;
  • Set media writable -разрешает запись.

Вот так очень легко можно сделать virtual usb flash на компьютере. Образы для virtual flash можно выбирать любые. Но в случае с загрузочным image накопитель придётся отформатировать и открываться она будет только в этом приложении.

Альтернативной версией этого приложения является Virtual Flash Drive, которая также очень проста и удобна при создании искусственного хранилища информации. Их отличие в том, что в OSTmount больше дополнительных опций и помимо usb flash, можно делать другие искусственные накопители.

Заключение

Теперь становится понятно, даже если под рукой нет никаких внешних носителей, а они очень нужны, то можно в несколько кликов сделать их искусственно созданный аналог.

Начнем с минимума:
include 18f2455 -- библиотека для используемого МК
--
enable_digital_io () -- переключение всех входов на цифровой режим
--
alias Button is pin_B7 -- раз уж у нас подключена кнопка, объявим ее
pin_B7_direction = input -- кнопка у нас работает на вход
--
-- одна строчка - и у нас есть все необходимое для работы с USB CDC
include usb_serial -- бибилотека для работы с usb
--
usb_serial_init () -- --инициализируем USB CDC
forever loop -- основной цикл, выполняется постоянно
usb_serial_flush () -- обновление usb. Данная процедура выполняет все необходимые
-- действия для поддержания соединения с ПК
end loop

Скомпилировав данный код, записав полученный HEX файл в МК при помощи бутлоадера и запустив устройство можно будет наблюдать как в системе опрделится новое устройство: Виртуальный сom-порт.

Теперь, когда устройство уже работает, научим его общаться.

Для чтения принятого байта существует функция usb_serial_read(byte) :boolean. При наличии полученного байта она заносит его в указанную переменную и возвращает true , иначе возвращает false .

Для отправки байта существует процедура usb_serial_data . Она замаскирована под переменную, потому для отправки байта достаточно присвоить ей значение отправляемого байта.

Объявим переменную размером в байт до основного цикла, в основном цикле будем проверять наличие полученных байт, и при их наличии отправлять их обратно.

include 18f2455
--
enable_digital_io ()
--
alias Button is pin_B7
pin_B7_direction = input
--
--
include usb_serial
--
usb_serial_init ()
var byte ch -- объявляем переменную
forever loop -- основной цикл
usb_serial_flush ()
if (usb_serial_read (ch )) then -- если байт получен, он будет записан в ch
usb_serial_data = ch -- отправляем полученный байт обратно
end if
end loop

Компилируем, зажимаем кнопку, передергиваем питание, запуская бутлоадер, меняем прошивку, запускаем.
Устройство снова определилось в системе, теперь нам нужен софт, дабы протестировать работу устройства.

Пока у нас нет своего, используем готовый терминал: я использовал программу RealTerm.
Открываем порт с нужным номером и отправляем данные.


И нам в ответ приходит то, что мы отправили. Значит, все работает как надо.

Софт

Итак, наш микроконтроллер умеет принимать байты и тут же отправлять их обратно. Теперь напишем свой софт для общения с ним (я буду использовать Delphi).

Создаем новый проект, раскидываем по форме необходимые компоненты:
SpinEdit1 - для указания номера порта
Button1 - для установки соединения
Button2 - для разрыва соединения
SpinEdit2 - для ввода байта в десятичном виде
Button3 - для отправки байта
Memo1 - для вывода принятой информации.

Как уже было сказано выше, с com-портом нужно работать так же, как и с обычным текстовым файлом: используя функции CreateFile, WriteFile и ReadFile.

Дабы не вдаваться в подробности, возьмем готовую библиотеку для работы с com-портом: ComPort.

Вешаем на каждую кнопку необходимую задачу и получаем конечный код:

unit Unit1;

interface

Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics , Controls, Forms,
Dialogs, StdCtrls, Spin,ComPort;

Type
TForm1 = class (TForm)
SpinEdit1: TSpinEdit;
Button1: TButton;
Button2: TButton;
SpinEdit2: TSpinEdit;
Button3: TButton;
Memo1: TMemo;
procedure OnRead(Sender: TObject; ReadBytes: array of Byte );
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
Port: TComPort;
public
{ Public declarations }
end;

var
Form1: TForm1;
num: integer;
implementation

Procedure TForm1.Button1Click(Sender: TObject);
begin
Port:= TComPort.Create(SpinEdit1.Value, br115200); //создаем соединение
Port.OnRead:= OnRead; //создаем поток чтения принятых данных
Button2.Enabled:= true ; //активируем кнопку закрытия соединения
end;

Procedure TForm1.Button2Click(Sender: TObject);
begin
Port.Free; //закрываем соединение
Button2.Enabled:= false ; //отключаем кнопку
end;

Procedure TForm1.Button3Click(Sender: TObject);
begin
if Button2.Enabled then Port.Write();
end;

Procedure TForm1.FormDestroy(Sender: TObject);
begin
if Button2.Enabled then
Port.Free;
end;

Procedure TForm1.OnRead(Sender: TObject; ReadBytes: array of Byte );
var
i:integer;
begin
for i:= Low(ReadBytes) to High(ReadBytes) do //проходим по массиву принятых байт
begin
Memo1.Text:= Memo1.Text + "." +InttoHex(ReadBytes[i],2); //добавляем его HEX значение в окно
inc(num); //считаем колв-о принятых байт
end;
if num > 10 then begin
Memo1.Lines.Add("" ); //переносим строку
num:= 0;
end;
end;

Запускаем, устанавливаем соединение, отправляем байты:

Вот и готов наш самый простой терминал для работы с самым простым usb-устройством.

Как видно, чтение и запись происходит динамическими массивами байт.

Обрабатывая получаемую информацию можно составить необходимый протокол обмена, подходящий для текущей задачи.

include 18f2455
--
enable_digital_io ()
--
alias Button is pin_B7
pin_B7_direction = input
--
--
include usb_serial
--
usb_serial_init ()
var byte ch
var byte i -- объявляем вторую переменную
forever loop -- основной цикл
usb_serial_flush ()
if (usb_serial_read (ch )) then -- если байт получен выполняем необходимые действия
case ch of -- перебираем номер байта
0 : usb_serial_data = 0xff
1 : usb_serial_data = Button -- отправка состояния кнопки
OTHERWISE block -- если получено что-то иное
for 16 using i loop -- отправляем 10 байт с данными
usb_serial_data = ch +i -- от ch до ch+15
end loop
end block
end case
end if
end loop

Дополнительные возможности

Если на этом остановиться, получится обычная статья с подробным описанием примера использования библиотеки, коих на просторах сети достаточно. Потому добавлю немного более углубленной информации.

Упрощение отправки данных

Отправлять информацию по одному байту - не всегда удобно. Очень часто может пригодиться библиотека print . Она содержит процедуры по отправке данных всевозможной длины всевозможными форматами: byte,hex,dec,bin,boolean что может упростить вывод данных в программе.
>include print
...
var dword data
print_dword_hex (usb_serial_data , data )

Название всех команд можно посмотреть в файле библиотеки.

Ожидание подключения к ПК

Если перед стартом основного цикла микроконтроллера необходимо предварительно установить соединение с ПК, то можно дописать перед ним строчки
while (usb_cdc_line_status () == 0x00 ) loop
end loop

Привязываем к устройству номер порта

Если оставить все как есть, система при каждом новом подключении будет выделять первый свободный номер порта. А это значит что за ним придется всегда следить.
Для того, что бы этого не происходило, необходимо устройству присвоить уникальное значение серийного номера до подключения библиотеки usb:
Номер может быть любой длины и содержать различные символы.
const byte USB_STRING3 =
{
24 , -- длина массива
0x03 , -- bDescriptorType
"0" , 0x00 ,
"1" , 0x00 ,
"2" , 0x00 ,
"3" , 0x00 ,
"4" , 0x00 ,
"5" , 0x00 ,
"6" , 0x00 ,
"7" , 0x00 ,
"8" , 0x00 ,
"9" , 0x00 ,
"X" , 0x00
}

Меняем имя устройства на свое

Поменять имя устройства, видимое в системе до установки драйверов можно объявив массив с именем, как и серийный номер, это необходимо сделать до подключения библиотеки USB.
const byte USB_STRING2 =
{
28 , --
0x03 , -- bDescriptorType
"D" , 0x00 ,
"e" , 0x00 ,
"m" , 0x00 ,
"o" , 0x00 ,
" " , 0x00 ,
"B" , 0x00 ,
"o" , 0x00 ,
"a" , 0x00 ,
"r" , 0x00 ,
"d" , 0x00 ,
" " , 0x00 ,
"=" , 0x00 ,
")" , 0x00
}

Но увы, после установки драйверов устройство поменяет имя на указанное в.inf файле, потому поменяем имя и там


DESCRIPTION=«Demo CDC»

Организуем автоподключение устройства

Увы, никаких прямых путей выполнить данную задачу нет, потому придется исхитриться.

Прежде всего необходимо присвоить своему устройству уникальное значение производителя и продукта, дабы легко определять его среди сотен других стандартных CDC-прошивок.
VID и PID выдаются за денюжку, потому пойдем по пуути китайцев: втихую возьмем себе заведомо свободные значения.

Прошивка:
В прошивке необходимо объявить две переменные до подключения библиотеки USB

const word USB_SERIAL_PRODUCT_ID = 0xFF10
const word USB_SERIAL_VENDOR_ID = 0xFF10

Вместо FF10 можно вставить любые два слова (2 байта). Конечный результат содержится в прилагаемом архиве.

Драйвера:
Так как драйвера не предназначены для нашей комбинации VID и PID, допишем наши значения в.inf файл вручную:


%DESCRIPTION%=DriverInstall, USB\VID_FF10&PID_FF10


%DESCRIPTION%=DriverInstall, USB\VID_FF10&PID_FF10

Софт:
Для отлова событий подключения\отключения устройства подключим библиотеку ComponentUSB. Не считаю нужным пояснять каждую строчку: все изменения можно увидеть в прилагаемом проекте.

Результат

На скриншоте сложно разглядеть, но кнопка отправки активна только в момент наличия подключенного устройства, при этом каждые 50мс программа подает запрос на получение состояния кнопки (что, впрочем, неправильно, потому как нажатие кнопки должно обрабатываться на МК).

Как видно, организовать обмен данными между МК и ПК через USB - не самое сложное занятие. Полученное соединение можно использовать не только для конечынх целей: оно так же подходит для отладки программы. Ведь отправить на компьютер результаты расчетов, текущие состояния регистров и переменных куда нагляднее, чем моргать парой светодиодов азбукой морзе.

И напоследок: советую заглянуть в исходный код лампы настроения. Там можно найти довольно-таки хороший вариант обработки принимаемых данных для организации удобного протокола обмена.



Эта статья также доступна на следующих языках: Тайский

  • Next

    Огромное Вам СПАСИБО за очень полезную информацию в статье. Очень понятно все изложено. Чувствуется, что проделана большая работа по анализу работы магазина eBay

    • Спасибо вам и другим постоянным читателям моего блога. Без вас у меня не было бы достаточной мотивации, чтобы посвящать много времени ведению этого сайта. У меня мозги так устроены: люблю копнуть вглубь, систематизировать разрозненные данные, пробовать то, что раньше до меня никто не делал, либо не смотрел под таким углом зрения. Жаль, что только нашим соотечественникам из-за кризиса в России отнюдь не до шоппинга на eBay. Покупают на Алиэкспрессе из Китая, так как там в разы дешевле товары (часто в ущерб качеству). Но онлайн-аукционы eBay, Amazon, ETSY легко дадут китайцам фору по ассортименту брендовых вещей, винтажных вещей, ручной работы и разных этнических товаров.

      • Next

        В ваших статьях ценно именно ваше личное отношение и анализ темы. Вы этот блог не бросайте, я сюда часто заглядываю. Нас таких много должно быть. Мне на эл. почту пришло недавно предложение о том, что научат торговать на Амазоне и eBay. И я вспомнила про ваши подробные статьи об этих торг. площ. Перечитала все заново и сделала вывод, что курсы- это лохотрон. Сама на eBay еще ничего не покупала. Я не из России , а из Казахстана (г. Алматы). Но нам тоже лишних трат пока не надо. Желаю вам удачи и берегите себя в азиатских краях.

  • Еще приятно, что попытки eBay по руссификации интерфейса для пользователей из России и стран СНГ, начали приносить плоды. Ведь подавляющая часть граждан стран бывшего СССР не сильна познаниями иностранных языков. Английский язык знают не более 5% населения. Среди молодежи — побольше. Поэтому хотя бы интерфейс на русском языке — это большая помощь для онлайн-шоппинга на этой торговой площадке. Ебей не пошел по пути китайского собрата Алиэкспресс, где совершается машинный (очень корявый и непонятный, местами вызывающий смех) перевод описания товаров. Надеюсь, что на более продвинутом этапе развития искусственного интеллекта станет реальностью качественный машинный перевод с любого языка на любой за считанные доли секунды. Пока имеем вот что (профиль одного из продавцов на ебей с русским интерфейсом, но англоязычным описанием):
    https://uploads.disquscdn.com/images/7a52c9a89108b922159a4fad35de0ab0bee0c8804b9731f56d8a1dc659655d60.png