Обмен файлами между компьютерами через USB

Скачать статью в PDF.

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

Суть такова, соединяем два переходника USB-UART и передаем файлы по протоколу ZMODEM.

 

Кабель

Для начала соорудим кабель из двух переходников USB-UART и USB-удлинителя.

IMG_20170225_234306.jpg

Переходник можно купить на Ибее или Алиэкпрессе за 50–100 рублей. Ищется по запросу «usb uart».

IMG_20170226_000134.jpg

Переходники следует соединить друг с другом по следующей схеме.

Схема соединения.png

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

После соединения компьютеров и появления виртуальных COM-портов, понадобится терминальная программа поддерживающая один из протоколов: XMODEM, YMODEM или ZMODEM. Рекомендуется использовать протокол ZMODEM, как наиболее совершенный.

Виндовс

В Виндовс можно воспользоваться терминальной программой TeraTerm. Далее описывается работа с этой программой.

Запускаем программу на обоих компьютерах и выбираем COM-порт.

VirtualBox_Win10_64_26_02_2017_02_08_40.png

Идем в настройки COM-порта (Настройка → COM-порт).

VirtualBox_Win10_64_26_02_2017_02_16_13.png

И вводим максимальную скорость, которую поддерживает микросхема переходника. Например, максимальная скорость микросхемы CP2102 составляет 921 600 Бод, а FT232R — 3 000 000 Бод.

Если между переходниками длинный кабель, то скорость нужно выбирать осторожно, так как от нее зависит качество сигналов. Скорость не зависит от длины USB-кабеля.

Скорость (и настройки в целом) на обоих компьютерах должны быть одинаковые.

Если переходники сделаны на разных микросхемах, то следует выбрать максимальную скорость того переходника, у которого она ниже.

VirtualBox_Win10_64_26_02_2017_02_17_01.png

На принимающем компьютере нужно выбрать папку, в которую будут сохраняться файлы (Файл → Изменить путь…).

VirtualBox_Win10_64_26_02_2017_02_17_46.png

На принимающем компьютере нужно запустить прием файла (Файл → Трансфер → ZMODEM → Прием).

VirtualBox_Win10_64_26_02_2017_02_18_30.png

На передающем компьютере нужно запустить передачу файла (Файл → Трансфер → ZMODEM → Передача…). Откроется диалоговое окно выбора файла. Здесь можно выбрать несколько файлов.

VirtualBox_Win10_64_26_02_2017_02_19_24.png

После запуска передачи отобразится окно с индикатором выполнения.

VirtualBox_Win10_64_26_02_2017_02_21_51.png

Выше изображена передача файла размером чуть больше 2 МБ на скорости 921 600 Бод. Файл был передан за 40 секунд по протоколу ZMODEM на эффективной скорости 55 КБ/с.

Линукс

В Линукс виртуальным COM-портам (последовательным портам) соответствуют файлы /dev/ttyUSBx или /dev/ttyACMx, где x — целое число 0, 1, 2 и так далее.

Последующие действия будут выполняться в терминале. Если у текущего пользователя нет прав для работы с файлами /dev/ttyUSBx и /dev/ttyACMx, то можно запустить терминал с правами суперпользователя следующей командой.

1
sudo bash

Для настройки последовательного порта можно использовать программу stty.

Следующая команда настраивает порт /dev/ttyUSB0 на работу со скоростью 921 600 Бод, с 8 битами данных (cs8), без бита четности (-parenb), с 1 стоповым битом (-cstopb), без управления потоком (clocal -crtscts).

1
stty -F /dev/ttyUSB0 921600 cs8 -parenb -cstopb clocal -crtscts

Принять файл можно с помощью программы rz, а передать с помощью sz. Программы входят в пакет lrzsz, который можно установить в Убунту следующей командой.

1
sudo apt-get install lrzsz

Прием данных запускается следующей командой.

1
rz < /dev/ttyUSB0 > /dev/ttyUSB0

Файл принимается в текущую папку.

Следующая команда отправляет файл «example.png».

1
sz --zmodem -b example.png < /dev/ttyUSB1 > /dev/ttyUSB1
-->
X
Обратный звонок