Эмуляция com в usb: windows — Эмуляция LPT,COM,USB портов
|Содержание
Драйвер для эмуляции com порта через usb
Компьютеры admin 0 комментариев
Содержание
- 1 ПРОБЛЕМЫ СО СКАЧИВАНИЕМ ИЛИ ИНСТАЛЛЯЦИЕЙ?
- 2 Вас могут заинтересовать:
- 2.1 Advanced Serial Port Monitor
- 2.2 Advanced Serial Data Logger
- 2.3 Advanced TCP/IP Data Logger
- 2.4 Serial Printer Logger
- 2.5 Advanced NMEA Data Logger
Из описания на сайте:
VSPE призвана помочь инженерам программного обеспечения и разработчикам создавать / производить отладку / тестирование приложений, которые используют последовательные порты. Она может создавать различные виртуальные устройства для приема / передачи данных. В отличие от обычных последовательных портов, виртуальные устройства имеют специальные возможности: например, то же устройство может быть открыто несколько раз по различным приложениям, которые могут быть полезны во многих случаях. Вы можете сделать доступными физические данные СОМ порта для нескольких приложений, расшаривать последовательный порт для локальной сети (по протоколу TCP) итд.
Функции:
* Virtual device: connector
* Virtual device: data splitter
* Virtual device: pair
* Mapper device
* User mode device: TcpServer
* User mode device: TcpClient
* User mode device: Serial Redirector
* User mode device: UDP Manager
* User mode device: Bridge
* Python scripting system
* x86 and x86_64 processor architecture support
* VSPE API (C/C++ header and static library) for native language developers
* VSPE API Python bindings for Python developers
* Embedded HTTP server
* Data monitoring
Эмулировать COM-порт помогают соответствующие драйверы и программы, с помощью которых создаётся виртуальный порт в системе. Для начала надо установить АТОЛ-драйвер, соответствующий типу подключаемого оборудования. Для эмуляции COM-порта предназначена программа «Virtual Null Modem». Чтобы осуществить отправку данных на COM-порт без подключения устройства можно использовать бесплатную программу «COM Port Data Emulator».
Утилиты запускают процесс создания виртуального СОМ-порта путём простого включения режима «Эмуляция» через интерфейс программы. Если же был установлен драйвер для эмуляции, то новый виртуальный COM-порт просто будет отображаться в диспетчере устройств. Таким образом можно осуществить подключение оборудования к ПК посредством эмуляции COM-порта. Подключите устройство и переведите его в режим работы по USB, следуя прилагающийся инструкции.
Чтобы проверить, верно ли подключено оборудование, зайдите в режим тестирования драйвера АТОЛ нужного устройства. В открывшемся окне интерфейса следует выбрать вкладку «Настройка свойств», затем нажать кнопку «Поиск оборудования». В параметрах поиска следует выбрать искомое устройство и подождать, пока оно отобразится в списке. Затем это окно можно закрыть и вернуться к предыдущему. Там следует нажать кнопку «Проверка связи», и если установка завершена правильно, то в строке «Результат» отобразятся параметры подключённого оборудования.
Теперь следует настроить верное отображение устройства в 1С. Для этого заходим в раздел «Подключение и настройка торгового оборудования». Там следует выбрать пункт «АТОЛ», а в пункте «Порт» указать «COM1» (если COM-портов несколько и среди них присутствуют реальные, выбираем необходимый виртуальный, который создавался с помощью эмуляции).
Для Win2000 — Windows 10 (2019) (Server, x86, x64). Последняя версия: 2.7.3 build 1108. 8 ноября 2019.
Бесплатное обновление для COM Port Data Emulator (начиная с версии 2.7.0 до последней версии 2.7.3 build 1108. 8 ноября 2019.)
Скачайте файл и замените файлы в папке с программой новыми файлами из архива.
Замечание! Нет необходимости скачивать это обновление, если вы скачаете полный пакет установки.
ПРОБЛЕМЫ СО СКАЧИВАНИЕМ ИЛИ ИНСТАЛЛЯЦИЕЙ?
Если Вы столкнулись с какими-либо проблемами при скачивании или инсталляции, пожалуйста, свяжитесь со службой технической поддержки AGG Software. Подробнее.
Вас могут заинтересовать:
Advanced Serial Port Monitor
Программа, которая, пригодится Вам как для наблюдения за передачей данных другими приложениями, так и непосредственно, для отправки и приема данных через последовательный порт (RS232) Вашего компьютера. Программа позволяет различными способами сохранять данные в файл и визуализировать данные на экране монитора. Она может пригодиться как начинающим, так и профессионалам. подробнее
Advanced Serial Data Logger
Advanced Serial Data Logger обрабатывает данные, полученные через RS232 порт, COM порт или через RS485 при наличии аппаратного конвертора. Программа записывает данные в файл Excel, Access, базу данных и т.п. подробнее
Advanced TCP/IP Data Logger
Advanced TCP/IP Data Logger позволяет захватывать данные, передаваемые по протоколу TCP/IP или UDP и сохранять их в файл, а также передавать в другие приложения Excel, Access или базы данных. Программа в реальном времени собирает данные от любого устройства или инструмента и может использоваться как при работе в локальной сети, так и при работе в Интернет. подробнее
Serial Printer Logger
Serial Printer Logger может заменить ваш старый матричный принтер и собирать данные в реальном времени в текстовые, двоичные лог-файлы, а также непосредственно создавать файлы документов Adobe PDF или MS Word. Эта замена позволит сэкономить ваши деньги, которые вы бы потратили на бумагу, расходные материалы и техническую поддержку устаревшего устройства. подробнее
Advanced NMEA Data Logger
Advanced NMEA Data Logger захватывает данные с последовательного порта или сетевого интерфейса, обрабатывает их в соответствии с вашими нуждами, затем выделяет пакеты данных и трансформирует их в переменных, которые далее передаются в другие приложения Windows — путем отправки нажатия клавиш, или экспортируются через DDE (Dynamic Data Exchange), ODBC, OLE. подробнее
EMULATOR-USB & HP USB ICE Evaluation Board
-
Особенности и преимущества -
Подробнее о продукте
Особенности и преимущества
- Полноскоростной интерфейс USB 1. 1, обеспечивающий скорость загрузки до 150 КБ/с (ADZS-USB-ICE) или высокоскоростной интерфейс USB 2.0, обеспечивающий скорость загрузки до 1,5 МБ/с (ADZS-HPUSB-ICE)
- Возможность работы с фоновым каналом телеметрии (BTC), обеспечивающая не влияющий на основную работу обмен данными со скоростью до 2,0 МБ/с (только ADZS-HPUSB-ICE)
- Работает с уровнями напряжения 1,8 В, 2,5 В и 3,3 В
- Поддерживает работу со всеми оснащенными интерфейсом JTAG процессорами и цифровыми сигнальными процессорами компании ADI
- Выдерживает сигналы с напряжением 5 В и совместим по уровню напряжения 3,3 В с процессорами и цифровыми сигнальными процессорами, питаемыми напряжением 5 В
- Возможность работы с несколькими процессорами
- 14-контактный разъем JTAG
- USB-кабель длиной 3 метра для подключения труднодоступных целевых устройств
- Соответствует основным требованиям директив ЕС
Подробнее о продукте
Выпускаемые компанией Analog Devices недорогой эмулятор с интерфейсом USB и высококачественный эмулятор с интерфейсом USB представляет собой простые, портативные решения с интерфейсом JTAG для отладки процессоров и цифровых сигнальных процессоров компании Analog Devices. Эти мощные эмуляторы с интерфейсом USB могут выполнять различные функции эмуляции, в том числе выполнение программы по шагам и в реальном времени с заранее заданными точками останова, а также просмотр и/или изменение содержимого регистров и памяти. Благодаря возможности автоматически обнаруживать и поддерживать несколько уровней напряжения на линиях ввода/вывода, недорогой USB-эмулятор и высококачественный USB-эмулятор позволяют обмениваться данными со всеми оснащенными интерфейсом JTAG процессорами и цифровыми сигнальными процессорами компании Analog Devices, используя либо полноскоростной порт USB 1.1, либо высокоскоростной порт USB 2.0 на хост-компьютере. Приложения и данные можно легко и быстро проверять и передавать между эмуляторами и отдельно предоставляемой средой разработки и отладки VisualDSP++ (продается отдельно).
Архитектура USB с возможностью быстрого подключения и работы (plug-and-play) позволяет операционной системе хоста автоматически обнаруживать и настраивать эмуляторы. Эмуляторы также можно подключать к хосту и отключать от него, не включая ПК или не выключая его питание. В комплект поставки входит 3-метровый кабель для подключения эмуляторов хост-компьютеру, благодаря чему можно обеспечить доступ к труднодоступным целевым устройствам.
Высококачественный USB-эмулятор также поддерживает работу по каналу фоновой телеметрии (BTC), который предоставляет способ обмена данными между хостом и целевым устройством, не влияющий на характеристики целевой системы при работе в реальном времени.
Наименование компонента:
USB-эмулятор
Наименование компонента: ADZS-USB-ICE
Высококачественный USB-эмулятор
Наименование компонента: ADZS-HPUSB-ICE
Поддержка по работе с инструментами:
Телефон: 1-800-ANALOGD (262-5643)
Связаться с техподдержкой
Для получения дополнительной информации обращайтесь в местные офисы продаж и дистрибьюторов Analog Devices.
{{#each lists}}
{{/each}}
- Windows® 9x/NT 4. 0, Windows 2000, ME или XP
- Процессор Intel Pentium® с тактовой частотой 166 МГц или выше
- 32 МБ ОЗУ и 200 МБ свободного места на жестком диске
- CrossCore Embedded Studio для процессоров компании Analog Devices
- VisualDSP ++ 3.5
Цена указана за одну единицу.
Цены указаны за одну штуку, в долларах США, на условиях ФОБ. Являются рекомендованными розничными ценами в США, приведены только для примерного расчета и могут меняться. Международные цены могут отличаться на величину местных пошлин, налогов, сборов и курсов валют.
Введение в эмуляцию USB-устройств и способы ее использования
Введение
В настоящее время количество устройств становится все больше и больше, и современные операционные системы должны пытаться поддерживать все типы и несколько из них при каждой интеграции , с каждым выпуском. Поддерживать большое количество устройств сложно, дорого, а также трудно тестировать, особенно для устройств plug-and-play, таких как USB-устройства.
Поэтому необходимо создать механизм, облегчающий обслуживание и тестирование старых и новых USB-устройств. И здесь на помощь приходит эмуляция USB-устройств. Таким образом, полная структура, включающая большое количество эмулируемых и проверенных USB-устройств, упростит интеграцию и выпуск. Область применения будет очень широкой: более ранний поиск/обнаружение ошибок еще во время разработки, автоматические тесты, непрерывная интеграция и т. д.
Как эмулировать USB-устройства
Проект USB/IP позволяет совместно использовать USB-устройства, подключенные к локальной машине, чтобы ими могла управлять другая машина, подключенная к сети посредством соединения TCP/IP.
Затем проект USB/IP состоит из двух частей:
- поддержка локального устройства (хост) для обеспечения удаленного доступа ко всем необходимым событиям и данным управления
- удаленное управление, которое перехватывает все необходимые события управления и данные для обработки, как обычный драйвер
Процедура действительна для Linux и Windows, здесь я остановлюсь только на Linux.
Идея эмуляции заключается в замене поддержки удаленных устройств приложением, которое ведет себя точно так же. Таким образом, мы можем эмулировать устройства с программными приложениями, которые соответствуют прокомментированной спецификации протокола USB/IP.
В следующих пунктах я опишу, как настроить и запустить удаленную поддержку и как подключиться к нашему эмулируемому USB-устройству.
Удаленная поддержка
Удаленная поддержка разделена на две части:
- пространство ядра для управления удаленным устройством, как если бы оно было локальным, то есть для проверки обычным драйвером.
- приложение пространства пользователя для настройки доступа к удаленным устройствам.
На этом этапе важно отметить, что эмуляторы устройств после настройки приложением пространства пользователя будут напрямую взаимодействовать с пространством ядра.
Локальная поддержка имеет очень похожую структуру, но в этой статье основное внимание уделяется эмуляции устройства.
Давайте проанализируем каждую часть удаленной поддержки.
Пространство ядра
Прежде всего, чтобы получить функциональность, нам необходимо скомпилировать ядро Linux со следующими параметрами:
CONFIG_USBIP_CORE=m
CONFIG_USBIP_VHCI_HCD=m
драйвер контроллера, который запускается на удаленной машине.
Обычные USB-драйверы также должны быть включены, поскольку они будут проверены и настроены таким же образом из драйверов контроллера виртуального хоста.
Кроме того, есть другие важные параметры конфигурации:
CONFIG_USBIP_VHCI_HC_PORTS=8
CONFIG_USBIP_VHCI_NR_HCS=1
Эти параметры определяют количество портов на виртуальный хост-контроллер USB/IP и количество виртуальных хост-контроллеров USB/IP, как если бы вы добавляли физический хост контроллеры. Это значения по умолчанию, если CONFIG_USBIP_VHCI_HCD включено, при необходимости увеличьте.
Закомментированные параметры и модули ядра уже включены в некоторые дистрибутивы Linux, такие как Fedora Linux.
Давайте посмотрим на пример доступных виртуальных USB-шин и портов, которые мы будем использовать позже.
Ресурсы по умолчанию и реальные ресурсы в примере оборудования:
$ lsusb
Шина 002 Устройство 001: ID 1d6b:0003 Корневой концентратор Linux Foundation 3.0
Шина 001 Устройство 002: ID 0627:0001 Adomax Technology Co., Ltd
Шина 001 Устройство 001 : ID 1d6b:0002 Корневой концентратор Linux Foundation 2.0
$ lsusb -t
/: Шина 02.Порт 1: Dev 1, Класс=root_hub, Драйвер=xhci_hcd/15p, 5000M
/: Шина 01.Порт 1: Dev 1, Класс=root_hub, Драйвер=xhci_hcd/15p, 480M
|__ Порт 1: Dev 2, если 0, Class=Human Interface Device, Driver=usbhid, 480M
$
Теперь загрузим в систему модуль vhci-hcd (конфигурация по умолчанию для CONFIG_USBHC_VHCI_HC_PORTS и CONFIG_USBIP_NR_VHCI_ ):
$ sudo modprobe vhci-hcd
$ lsusb
Шина 004 Устройство 001: ID 1d6b:0003 Корневой концентратор Linux Foundation 3. 0
Шина 003 Устройство 001: ID 1d6b:0002 Корневой концентратор Linux Foundation 2.0
0 Шина 01: Устройство 01: ID 1d6b:0003 Корневой концентратор Linux Foundation 3.0
Шина 001 Устройство 002: ID 0627:0001 Adomax Technology Co., Ltd
Шина 001 Устройство 001: ID 1d6b:0002 Корневой концентратор Linux Foundation 2.0
$ lsusb -t
/: Шина 04.Порт 1: Dev 1, Class= root_hub, Driver=vhci_hcd/8p, 5000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=vhci_hcd/8p, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver= xhci_hcd/15p, 5000M
/: Шина 01.Порт 1: Dev 1, Класс=root_hub, Драйвер=xhci_hcd/15p, 480M
|__ Порт 1: Dev 2, Если 0, Класс=Human Interface Device, Драйвер=usbhid, 480М
$
Драйвер удаленного виртуального хост-контроллера USB/IP будет использовать только настроенные виртуализированные ресурсы. Конечно, эмулированные устройства будут работать точно так же.
Пространство пользователя
Другой необходимой частью проекта USB/IP является инструмент пользовательского пространства usbip , который необходимо использовать для настройки указанного пространства ядра с обеих сторон, хотя, таким же образом, мы только сосредоточиться на удаленной стороне, так как локальная сторона будет представлена эмулятором.
То есть инструмент usbip настроит виртуальный контроллер USB/IP (клиент tcp) в пространстве ядра для подключения к эмулятору устройства (сервер tcp), чтобы установить прямое соединение между ними для настройки USB, событий, данных , и т.п. замена.
Инструмент не зависит от типа устройства и может предоставлять информацию о доступных и зарезервированных ресурсах (дополнительную информацию см. в примерах ниже).
Локальный виртуальный хост-контроллер USB/IP должен указать пару шина-порт, которая будет использоваться для удаленного доступа, это будет то же самое для эмулируемых устройств, но в этом случае эта пара может быть любой, потому что реального устройства нет и резервирование ресурсов не требуется.
Этот инструмент находится в репозитории ядра Linux для полной синхронизации с ним.
Расположение инструмента в репозитории ядра Linux: ./tools/usb/usbip
В некоторых дистрибутивах, таких как Fedora Linux, утилиту usbip можно установить с помощью пакета usbip из репозиториев. Если утилита usbip или связанный с ней пакет не могут быть найдены, следуйте инструкциям в доступном файле README для компиляции и установки. Подходящий пакет rpm также может быть сгенерирован из usbip-emulator репозиторий:
$ git clone https://github.com/jtornosm/USBIP-Virtual-USB-Device.git $ cd USBIP-виртуальное USB-устройство/usbip $ сделать об/мин ... $
Как эмулировать USB-устройства
Эмуляторы создаются на Python и C. Я начал с разработки на C (я сосредоточусь на этой части), но то же самое можно сделать и на Python.
Для разработки C скомпилируйте инструменты эмуляции из репозитория usbip-emulator :
$ git clone https://github.com/jtornosm/USBIP-Virtual-USB-Device.git $ cd USBIP-Virtual-USB-Device/c $ сделать ... $
Все поддерживаемые устройства, имитируемые в данный момент, будут созданы:
- Hid-Keyboard
- HID-Mouse
- CDC-ADM
- HSO
- CDC-Ether
- BT
9006 RPM ( USPM USPM USPM USPM USPM USPM USPM USPM USPM USPM USPM USPM USPM USPM USPM
USPM
USPM USPM
USPM. эмулятор ) также можно сгенерировать с помощью:
$ make rpm ... $
Например, идентификаторы поставщиков и продуктов жестко запрограммированы в коде.
Следующие три примера покажут, как работает эмуляция. Мы используем одно и то же оборудование для эмулятора и удаленного USB/IP, но они могут работать на другом оборудовании. Кроме того, мы резервируем разные ресурсы, чтобы все устройства можно было эмулировать одновременно.
Пример 1: hso
С одного терминала эмулируем устройство hso:
(«1-1» — это парный порт шины для USB-устройства на локальной машине, так как мы эмулируем, он может Это важно только потому, что инструмент usbip должен будет использовать то же имя для запроса эмулируемого устройства)
$ hso -p 3241 -b 1-1 хз началось.... сервер usbip tcp порт: 3241 Автобус-Порт: 3-0:1.0 ...
С другого терминала подключиться к эмулятору:
(localhost, потому что эмулятор работает на том же оборудовании и то же имя для пары bus-port, что и эмулятор)
$ sudo modprobe vhci-hcd
$ sudo usbip --tcp-port 3241 attach -r 127. 0.0.1 - b 1-1
usbip: информация: использование порта 3241 ("3241")
$
Теперь мы можем проверить наличие нового устройства:
(Как мы видели ранее, для этого примера машины виртуализирована шина 3)
$ ip-адрес показать dev hso 0 3: hso0:mtu 1486 qdisc noop состояние DOWN группа по умолчанию qlen 10 ссылка/нет $ rfkill список 0: hso-0: Беспроводная глобальная сеть Мягкая блокировка: нет Жесткая блокировка: нет ... $ лсусб ... Шина 003 Устройство 002: ID 0af0:6711 Опция GlobeTrotter Express 7.2 v2 ... $ лсусб -т ... /: Шина 03.Порт 1: Dev 1, Class=root_hub, Driver=vhci_hcd/8p, 480M |__ Порт 1: Dev 2, если 0, класс = класс производителя, драйвер = hso, 12M ... $
Чтобы высвободить ресурсы:
$ sudo usbip port
Импортированные USB-устройства
====================
Порт 00: <Порт используется> заполнен Скорость (12 Мбит/с)
Опция: GlobeTrotter Express 7.2 v2 (0af0:6711)
3-1 -> usbip://127. 0.0.1:3241/1-1
-> удаленная шина/dev 001/002
$ sudo usbip detach -p 00
usbip: информация: порт 0 теперь отключен!
$
И можем проверить, что устройство выпущено:
$ ip addr show dev hso0 Устройство "hso0" не существует. $ rfkill список ... $ лсусб ... $
После этого мы можем снова эмулировать или остановить эмулируемое устройство с первого терминала (т.е. с помощью Ctrl-C).
Пример 2: cdc-ether
С одного терминала давайте эмулируем устройство cdc-ether (требуется разрешение root, поскольку необработанный сокет должен быть привязан к указанному интерфейсу для плоскости данных):
(«1-1» это пара bus-port для USB-устройства на локальной машине, так как мы эмулируем, это может быть что угодно, это важно только потому, что usbip инструмент должен будет использовать то же имя для запроса эмулируемого устройства)
$ sudo cdc-ether -e 88:00:66:99:5b:aa -i enp1s0 -p 3242 -b 1-1 cdc-эфир запустился. ... сервер usbip tcp порт: 3242 Автобус-порт: 1-1 Адрес Ethernet: 88:00:66:99:5b:aa Производитель: Темиум Сетевой интерфейс для привязки: enp1s0 ...
С другого терминала подключитесь к эмулятору:
(localhost, т.к. эмулятор работает на том же оборудовании и такое же имя для пары шина-порт, что и у эмулятора)
$ sudo modprobe vhci-hcd
$ sudo usbip --tcp-port 3242 attach -r 127.0.0.1 -b 1-1
usbip: информация: использование порта 3242 ("3242")
$
Теперь мы можем проверить что новое устройство присутствует:
(как мы видели ранее, для этого примера машины, шина 3 виртуализирована)
$ ip addr show dev eth0 4: eth0:mtu 1500 qdisc fq_codel состояние НЕИЗВЕСТНО группа по умолчанию qlen 1000 ссылка/эфир 88:00:66:99:5b:aa brd ff:ff:ff:ff:ff:ff $ судо ethtool eth0 ... Ссылка обнаружена: да $ лсусб ... Шина 003 Устройство 003: ID 0fe6:9900 ICS Адвент ... $ лсусб -т ... /: Шина 03.Порт 1: Dev 1, Class=root_hub, Driver=vhci_hcd/8p, 480M |__ Порт 2: Dev 3, если 0, Class=Communications, Driver=cdc_ether, 480M |__ Порт 2: Dev 3, если 1, класс = данные CDC, драйвер = cdc_ether, 480M . .. $
В этом примере мы также можем протестировать плоскость данных.
(IP-переадресация отключена с обеих сторон)
Во-первых, мы можем настроить IP-адрес в эмулируемом устройстве:
$ sudo ip addr add 10.0.0.1/24 dev eth0
$ ip addr show dev eth0
4: eth0:mtu 1500 qdisc fq_codel состояние НЕИЗВЕСТНО группа по умолчанию qlen 1000
ссылка/эфир 88:00:66:99:5b:aa brd ff:ff:ff:ff:ff: ff
inet 10.0.0.1/24 scope global eth0
valid_lft навсегда предпочитаемый_lft навсегда
$
Во-вторых, например, с другой машины, напрямую подключенной к Ethernet (реальной или виртуальной), мы можем настроить интерфейс macvlan в той же подсети для отправки/получения трафик (ping, iperf и т. д.):
$ sudo ip link add macvlan0 link enp1s0 type macvlan mode bridge $ sudo IP-адрес добавить 10.0.0.2/24 dev macvlan0 $ sudo ip link set macvlan0 up $ IP-адрес показать dev macvlan0 3: macvlan0@enp1s0:mtu 1500 qdisc noqueue state UP group default qlen 1000 ссылка/эфир d6:f1:cd:f1:cc:02 brd ff:ff:ff:ff:ff:ff инет 10. 0.0.2/24 масштаб глобальный macvlan0 valid_lft навсегда inet6 fe80::d4f1:cdff:fef1:cc02/64 ссылка на область видимости valid_lft навсегда $ пинг 10.0.0.1 PING 10.0.0.1 (10.0.0.1) 56 (84) байт данных. 64 байта из 10.0.0.1: icmp_seq=1 ttl=64 время=55,6 мс 64 байта из 10.0.0.1: icmp_seq=2 ttl=64 время=2,19РС 64 байта из 10.0.0.1: icmp_seq=3 ttl=64 время=1,74 мс 64 байта из 10.0.0.1: icmp_seq=4 ttl=64 время=1,76 мс 64 байта из 10.0.0.1: icmp_seq=5 ttl=64 время=1,93 мс 64 байта из 10.0.0.1: icmp_seq=6 ttl=64 время=1,65 мс ...
Для освобождения ресурсов:
$ sudo usbip port Импортированные USB-устройства ===================== ... Порт 01: <используемый порт> на высокой скорости (480 Мбит/с) ICS Advent: неизвестный продукт (0fe6:9900) 3-2 -> usbip://127.0.0.1:3245/1-1 -> удаленная шина/dev 001/003 $ sudo usbip отсоединить -p 01 usbip: информация: порт 1 теперь отключен! $
И мы можем проверить, что устройство освобождено:
$ ip addr show dev eth0
Устройство "eth0" не существует.
$ lsusb
...
$
И, конечно же, трафик с другой машины не работает:
From 10.0.0.2 icmp_seq=167 Destination Host Unreachable Из 10.0.0.2 icmp_seq=168 Целевой хост недоступен Из 10.0.0.2 icmp_seq=169 Целевой хост недоступен Из 10.0.0.2 icmp_seq=170 Целевой хост недоступен ...
После этого мы можем снова эмулировать или остановить эмулируемое устройство с первого терминала (т.е. с помощью Ctrl-C).
Пример 3: bt
С одного терминала эмулируем Bluetooth-устройство:
(«1-1» — это парный шинный порт для USB-устройства на локальной машине, так как мы эмулируем, он может Это важно только потому, что инструмент usbip должен будет использовать то же имя для запроса эмулируемого устройства)
$ bt -a aa:bb:cc:dd:ee:11 -p 3243 -b 1-1 бт началось.... сервер usbip tcp порт: 3243 Автобус-порт: 1-1 Адрес BD: aa:bb:cc:dd:ee:11 Производитель: Доверие ...
С другого терминала подключитесь к эмулятору:
(localhost, потому что эмулятор работает на том же оборудовании и такое же имя для пары bus-port, что и эмулятор)
$ sudo modprobe vhci-hcd
$ sudo usbip --tcp -port 3243 attach -r 127. 0.0.1 -b 1-1
usbip: info: использование порта 3243 ("3243")
$
Теперь мы можем проверить наличие нового устройства:
(Как мы видели ранее, для этого примера машина, шина 3 виртуализирована)
$ hciconfig -a hci0: Тип: Первичная шина: USB Адрес BD: AA:BB:CC:DD:EE:11 ACL MTU: 310:10 SCO MTU: 64:8 UP RUNNING PSCAN ISCAN ЗАПРОС Байты RX: 1451 acl: 0 sco: 0 события: 80 ошибки: 0 Байты TX: 1115 acl: 0 sco: 0 команды: 73 ошибки: 0 Особенности: 0xff 0xff 0x8f 0xfe 0xdb 0xff 0x5b 0x87 Тип пакета: DM1 DM3 DM5 Dh2 Dh4 DH5 HV1 HV2 HV3 Политика ссылок: RSWITCH HOLD SNIFF PARK Режим связи: ПОДЧИНЕННЫЙ ПРИНЯТЬ Название: 'BT USB TEST - CSR8510 A10' Класс: 0x000000 Классы обслуживания: не указано Класс устройства: Разное, Версия гиперконвергентной инфраструктуры: 4.0 (0x6) Версия: 0x22bb Версия LMP: 3.0 (0x5) Подверсия: 0x22bb Производитель: Cambridge Silicon Radio (10) $ rfkill список ... 1: hci0: Bluetooth Мягкая блокировка: нет Жесткая блокировка: нет $ лсусб .. . Шина 003 Устройство 004: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (режим HCI) ... $ лсусб -т ... /: Шина 03.Порт 1: Dev 1, Class=root_hub, Driver=vhci_hcd/8p, 480M |__ Порт 3: Dev 4, если 0, класс=беспроводной, драйвер=btusb, 12M |__ Порт 3: Dev 4, если 1, класс=беспроводной, драйвер=btusb, 12M ... $
И мы можем выключить и включить эмулированное устройство Bluetooth, обнаружив несколько поддельных устройств Bluetooth:
(На данный момент поддельные устройства Bluetooth не эмулируются/симулируются, поэтому мы не можем настроить)
Выключить Bluetooth Включите Bluetooth
Для освобождения ресурсов:
$ sudo usbip port Импортированные USB-устройства ===================== ... Порт 02: <используемый порт> на полной скорости (12 Мбит/с) Cambridge Silicon Radio, Ltd: Bluetooth Dongle (режим HCI) (0a12:0001) 3-3 -> usbip://127.0.0.1:3243/1-1 -> удаленная шина/dev 001/002 $ sudo usbip отсоединить -p 02 usbip: информация: порт 2 теперь отключен! $
И можем проверить, что устройство выпущено:
$ hciconfig $ rfkill список . .. $ лсусб ... $
И, конечно же, устройство не обнаружено (как и до эмуляции):
Bluetooth не найден
После этого мы можем снова эмулировать или остановить эмулируемое устройство с первого терминала (т.е. с помощью Ctrl-C).
Эмулированные и настоящие USB-устройства
Когда реальное оборудование и/или конечное устройство не используется для тестирования, мы всегда можем чувствовать себя неуверенно в отношении результатов, и это самое большое препятствие, которое нам придется преодолеть, чтобы проверить корректная работа устройств с помощью эмуляции.
Итак, чтобы быть уверенным, эмуляция должна быть как можно ближе к реальному оборудованию, а для получения максимально реальной эмуляции должен быть охвачен каждый аспект устройства (или, по крайней мере, необходимые, если они не связаны с другими аспектами). На самом деле, для правильного теста мы не должны модифицировать драйвер, то есть мы должны только эмулировать физический уровень, чтобы драйвер не мог знать, настоящее устройство или эмулируемое.
Начать тестирование на реальном аппаратном устройстве — очень хорошая идея, чтобы получить ссылку на создание эмулятора с теми же функциями. В случае USB-устройств создание эмулятора устройства проще из-за существующей процедуры получения удаленного управления, которая соответствует всем упомянутым выше характеристикам.
Заключение
Эмуляция USB-устройства — лучший способ интеграции и тестирования соответствующих функций эффективным, автоматическим и простым способом. Но чтобы быть уверенным в процедуре эмуляции, эмуляторы устройств должны быть предварительно проверены, чтобы подтвердить, что они работают так же, как реальное оборудование.
Конечно, эмулятор USB-устройства — это не то же самое, что реальное аппаратное устройство, но прокомментированный метод, благодаря проверенной процедуре получения дистанционного управления устройством, очень близок к реальному сценарию и может очень помочь улучшить наши процессы выпуска и тестирования.
Наконец, я хотел бы отметить, что одно из лучших преимуществ использования программных эмуляторов заключается в том, что мы сможем простым способом вызвать определенное поведение, которое было бы очень трудно воспроизвести на реальном оборудовании, и это могло бы помочь чтобы найти проблемы и быть более надежным.
Нравится:
Нравится Загрузка…
Настройка виртуальных COM-портов Windows USB
Различные интерфейсные модули USB, производимые Technological Arts, основаны на популярном чипе FTDI FT232RL. Обычно Windows распознает их, когда вы подключаете их к USB-порту на вашем компьютере. Если этого не произойдет, вам потребуется загрузить и установить соответствующий драйвер с веб-сайта FTDI (www.ftdichip.com). Драйвера предоставляются для различных версий Windows. Загрузите и установите правильную версию для конфигурации вашего компьютера, прежде чем продолжить.
Теперь подключите USB-кабель к USB-порту вашего ПК и используемому интерфейсному модулю USB. Windows должна сообщить, что новое устройство найдено, и приступить к его инициализации. Чтобы определить, какому виртуальному COM-порту он назначен, щелкните правой кнопкой мыши значок MyComputer на рабочем столе Windows и выберите Properties во всплывающем меню. Затем щелкните вкладку Hardware и нажмите кнопку Device Manager .
Щелкните значок + рядом с Порты (COM и LPT) . Откроется список доступных портов. Вы увидите один из них под названием USB Serial Port с назначенным номером COM-порта, указанным в скобках.
Для работы с большинством инструментов, которые вы, вероятно, будете использовать с микроконтроллерами, COM-порт должен быть 1, 2, 3 или 4. Если он выше, чем COM4, вы, вероятно, захотите его изменить. . Сделайте это, щелкнув правой кнопкой мыши строку « Последовательный порт USB ” и выберите Свойства во всплывающем меню
Щелкните вкладку Настройки порта , а затем нажмите кнопку Дополнительно. .. .
В раскрывающемся списке Номер COM-порта выберите номер COM-порта 2, 3 или 4 (обычно COM1 уже используется).
Номер порта может быть указан как «используемый», но на данном этапе вы можете игнорировать это, если знаете, что в настоящее время он ничем не используется.
Нажмите OK , и если Windows предупредит вас о дублировании, проигнорируйте предупреждение и нажмите Да . Нажмите OK , а затем OK для настройки порта. Затем закройте окно диспетчера устройств . Если вы хотите подтвердить, что изменение порта действительно было сделано, снова нажмите Диспетчер устройств и проверьте перечисленные порты. Теперь закройте окно Свойства системы .
Теперь вы готовы использовать виртуальный COM-порт в любом приложении!
Обратите внимание, что если вы отсоедините USB-устройство и снова подключите его позже, Windows все равно запомнит назначение COM-порта, поэтому вам не нужно будет повторять эту процедуру снова.