Программист мобильных приложений (Android, iOS)
0,1
рейтинг
26 июня 2013 в 22:06

Old-Hard коммуникации, или “передача файлов через COM и LPT-порты”

Давненько не кидали на старые компьютеры данные через дискеты, COM или LPT порты? А вот мне недавно пришлось этим заняться, и подробности этого опыта – под катом. Там же несколько графиков, табличка сравнения и пара десятков фото под вторым катом.

Итак, задача: передать данные на ноутбук, у которого есть исключительно COM и LPT порты, слот расширения PCMCIA, флоппик, модем. Ноутбук – IBM ThinkPad 760EL в отличном состоянии, подарен замечательным хабраюзером green_hippo. О нём (ноутбуке!) вскоре будет сделана отдельная статья.

Слот отпал сразу. Карточку в короткие сроки найти не удалось, а вот c COM и LPT-шнурками получилось лучше. COM-шнурок был подарен worst’ом, LPTшный – найден на городском форуме.

Файл: WOLF3D.zip.

Содержимое: Wolfenstein 3D от id Software. И даже не пытайтесь спросить, что же это такое.
Объем: 1101563 байта (1.04 мб.)

  • Для начала попробуем кидать данные дискетами. Время копирования – 43.5 сек., далее за 5-7 секунд перетыкаем её в ноутбук, ещё 43.2 секунды на копирования… Сумма – 1 минута 33.7 секунды. Средняя скорость – 11.4 килобайта в секунду. Ну ок, а если нам нужно передать бОльший файл? Ну скажем, архив quake 1 будет весить 21.7 мб.
    Представляете, разбивать её на полтора десятка дискет, перетыкать эти дискеты… Мдааа. Процесс сомнительной радости.

  • Попробуем копировать данные по COM-порту с компьютера под Windows XP (core 2 duo, и т.п. – относительно современная железяка). Были испробованы различные утилиты, вот результаты:
    Norton Commander 4 – связь не удалась. Ошибка приложения, прямой доступ к аппаратуре, все дела. Окээй.
    Norton Commander 3 – связь установлена! Скорость передачи – около 5 кб. в секунду. Не густо, но тем не менее.
    FileMaven 3.5a – связь устанавливается, но скорость передачи совершенно убийственная, менее 1 килобайта в секунду.
    Fastwire 2.0 – аналогично NC4. Fail.
    DOS InterLink – аналогично NC4. Fail.
    LapLink Pro 4 – аналогично NC4. Fail.

    Проверить, как на том же железе работается из под DOSом помешала моя лень, а точнее – ограничение времени – все диски компьютера отформатированы под NTFS, т.е. для теста нужно было подготовить загрузочный CD или дискету, причем с драйверами для чтения с NTFS, причем надежность того драйвера… позже проверю таки.

  • Тот же ПК, та же ОС – связываемся по LPT.
    NC3 не умеет связь по LPT, так что берём сразу NC4 – и о чудо, связь есть! 12 с копейками килобайт в секунду. С одной стороны, в 2 с лишним раза быстрее, с другой – от LPT я ожидал заметно лучшего результата.
    С остальными утилитами – та же история, что с COM-портами.

  • Берём второй компьютер, Pentium-MMX на 233 Мгц. Правда, с ним то же не слава Ктулху – COM-порты выгорели, даже мышь не подключить. Зато LPT вполне рабочий. Поехали:
    NC4 – скорость обмена — 76.3 килобайта/с. Свяяязь! Вот она, скорость моей мечты! Передача вольфа занимает менее полутора десятка секунд. Более чем приемлемый результат.
    File Maven – не удалось связаться – коннект устанавливается, но содержимое диска не отображается. Т.е., связь есть, но утилитка утверждает, что файлов на диске нет. Лепота.
    Fastwire – скорость 87 с копейками килобайт в секунду. Это победа! Рекорд!
    INTERLNK – аналогично File Maven. Печалька без печеньки.
    LapLink Pro – скорость порядка 80 килобайт в секунду. Быстрее нортона, медленнее Maven’а.


Да, разница между вариантами передачи по LPT кажется небольшой, но давайте перекинем ещё один файлик.

Файл 2: Quake.zip
Объем: 22809007 (21.7 мб.)

И что бы не тратить время — соберём результаты в табличку и симпатишные графики.

 
Порт
ОС
Время копирования Wolf’а
Скорость, килобайт в секунду
Время копирования Quake’а
Флоппик
Флоппи-дисковод
Любая
Копирование на диск: 43.5 сек.
 
Копирование с диска: 43.2 сек.
 
Перетыкание дискеты: 7 сек.
 
Сумма: 1 минута 33.7 сек.
11.4
32 минуты 36 секунд
Norton Commander 3.0
COM
WinXP
3 мин. 15 сек. – обычный режим
5.51
 
1 час 7 минут 27 секунд
 
 
3 мин. 11 сек. – turbo-режим
5.63
1 час 5 минут 27 секунд
Norton Commander 4.0
LPT
WinXP
1 мин. 25 сек.
12.65
29 минут 23 секунды
 
LPT
DOS
14.1 сек.
76.29
4 минуты 51 секунда
COM
WinXP
Не удалось установить связь.
File Maven
LPT порт
DOS
Коннект устанавливается, но содержимое диска не отображается.
Fastwire
LPT порт
DOS
12.3 с.
87.45
4 минуты 15 секунд
INTERLNK
LPT порт
DOS
Коннект устанавливается, но содержимое диска не отображается.
LapLink Pro
LPT порт
DOS
13.4 с.
80.27
4 минуты 38 секунд

На графиках представлено время передачи. Чем оно меньше — тем, соответственно, ситуация лучше.

Передача Wolf3D


Передача Quake 1


Передача Wolf3D, исключительно LPT-передача под DOS


Передача Quake 1, исключительно LPT-передача под DOS


Обещанные фото.
1) Norton Commander, передача файла со стороны master'а


2) Norton Commander, прием файла, вид со стороны slave'а


3) FastWire, вид со стороны master'а


4) FastWire, вид со стороны slave'а


5) FileMaven, со стороны клиента


6) FileMaven со стороны сервера:


7) LapLink Pro 4


8) Коннект через Interlink — на сервере


9) Interlink — на клиенте



Выводы:
  • Если вам понадобится что-то передать по COM-порту – just do it! Но запаситесь терпением.
  • Флоппик — быстрее COM-порта, если вы кидайте файлы из-под WinXP (в чистом DOSе скорость передачи может быть и повыше...).
  • Если будете передавать данные по LPT – крайне рекомендую Fastwire, экономия времени того стоит.
  • Если будет выбор из этих двух вариантов – таки выбирайте LPT (здесь был Кэп).
  • В Windows XP dos-режим эмулируется не идеально, так что скорости будут печальные даже с LPT. Возможно, нужно что-то донастроить — надо разобраться.
  • Выгоревшие порты – это печально :(

P.S. Выяснено уже после подготовки статьи
  • Проблема с File Maven и INTERLNK – в ноутбуке. Мне встретилась ещё одна утилита, которая при запуске под DOS не видит диска, но при запуске под Windows – диск в наличии. Надо будет повторить тестирование этих утилит.
  • Была найдена подходящая сетевая карточка, но настроить её пока что не удалось. Под Windows ей не хватает прерывания (просит IRQ 29 о_О), плюс если не вручную драйвер выбирать – сообщает, что драйвера сайта не соответствуют железяке, под DOS – не могу подобрать настройки, хотя драйвера наличие карты и определяет. Карточку зовут Trendnet TE100-PCBUSR. Настроек в биосе ноутбука почти нет, настроечная утилита от IBM под windows/dos тоже не позволяет ничего критичного поменять. Разбор проблемы продолжается.
  • Была озвучена идея – соединить модем-в-модем, без телефонной линии, кусок телефонной лапши воткнув напрямую – пока не продумывал и не проверял, как оно работать будет, как поведёт себя софт и железо, особенности настройки и вообще адекватность такого решения.

Утилиты (кроме Norton Commander) я скачивал отсюда – не реклама, просто коли уж собраны они в одном месте – почему бы не воспользоваться этим? Там же есть распиновка кабелей и loopbacks’ков для тестирования портов.
Дмитрий Моисеев @Newbilius
карма
92,0
рейтинг 0,1
Программист мобильных приложений (Android, iOS)
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (65)

  • +1
    Помнится носил в школе софт на 40+ дискетах и ничего.
    0-модем это удобно, но не быстро, его мы использовали для сетевых игр (2 игрока).
    Большие объемы данных быстрее перекачать переткнув винт, в thinkpad'ах он обычно очень легко вынимается.
    • +3
      А ноут, кстати, весьма мощный, на нем нормально пошли бы: doom-2, quake-1, HOMM-2, M&M-6, Civ-1, Civ-2, AoE-1 и многое другое. Эх, ностальгия, сколько нового тогда было, тех ощущений уже не пережить, а жаль. Сегодня новые игры уже не дают ощущения попадания в новый мир. Второй раз в первый раз с парашютом не прыгнуть.
      • 0
        третьи герои тоже на отличненько будут.
        • +1
          И еще Witch Heaven. Клевая игрушка была, «кирпичная». Особенно если звуковуха хорошая.
          • 0
            Witcheaven же! Да, обалденная игрушка была, когда вышла, казалась прорывом, что столько мечей разных вместо стрелялок.
            • 0
              А как щит покрывался трещинами! А еще драконы, которых приходилось валить мечом. А в конце какую орду пришлось завалить.
              • 0
                Witchaven? Он?
                • 0
                  Да.
                • 0
                  Ну как, заценили игруху?
                  • 0
                    Пока что нет, со временем беда, но глянув скрины и обзоры — определённо, придётся попробовать, ибо Heretic я любил не меньше Doom'а, и шутеров в таком жанре и сейчас то мало.
      • 0
        А ещё на нём отлично идёт Windows 98 (хотя из коробки была Windows 95) и Lines :) Вообще, интерфейс поражает своей отзывчивостью. Хотя это уже похоже на спойлер обещанной статьи про ноутбук :)
    • 0
      Большие да, но там сейчас винт на 2 Гб, плюс есть шанс, что внутри винт не стандартный. Надо будет заглянуть, если там более-менее стандартный 2.5 IDE — можно сделать компу апгрейд! :)

      «Флоппи-нет» рассматривался, но это уж очень нудно.
      • 0
        Апгрейд не советую. Старые винты очень надежные, и уж точно совместимые. Кроме того 2Гb хватит на все. А если очень нужно, то можно и usb или сетевуху через pcmcia вставить.
        • 0
          Блин. Вот сетевуху сейчас пытаюсь настроить. Блин. Но. Ведь реально, самое логичное решение — надо ещё USB-плашку найти аналогичную же, гораздо ведь быстрее будет даже сетки…
  • +2
    >Там же пара десятков фото.
    И вместо обещанных фото мы наблюдаем несколько графиков.
    Обманули, да?
    Фу таким быть:)
    • +1
      Под катом второй кат, а под ним уже фото ;) Но надо наверное поправить вступление…
  • –4
    но те менее
    — этчетакое?
    • 0
      Это очепятка, поправлена! Но лучше бы её в личку, да.
      • –2
        это не очепятка — это неуважение.
        • +1
          Пусть кинет в меня спамом тот, кто никогда не делал опечаток в текстах (при этом вариант «я ничего не пишу — поэтому и нет ошибок» не в счет ;-) )
          • –1
            Для того, чтобы не делать опечаток, достаточно приложить чуть больше усилий или воспользоваться любым доступным спеллчекером. Просто всем же лень. Надо ж побыстрее на хабр что-то запилить.
            В этом посте, вообще, куча ошибок. Просто я ухватился за самую явную.
            Вот минусующим лень (страшно) комментировать поставленные минусы. Потому, что они боятся, что их аргументы по минусованию могут обернуться против них же самих.
            • 0
              А вам — лень перечислить всю эту кучу ошибок мне в личку? Ведь это бы сделало мир гораздо лучше. Даже при нескольких пересмотрах глаз в конце концов замыливается.

              А что до спеллчекера — периодически правлю ошибки, пересматриваю, может ещё найду — их тоже все выправлю, не сомневайтесь.

              И я вас не минусовал, если вам это важно.
              • –1
                А почему я должен выискивать ваши ошибки и как-то по-особенному куда-то там писать. Нашел написал, где удобно мне. Вам же было удобно «набросать» ваш текст так как есть.
                Тем более, как показывает практика, что сюда писать — заминусуют, что в личку (что несравненно геморройнее) — не поблагодарят. Я не имею ввиду конкретно вас, но в среднем по больнице.
                • 0
                  О, вы мне ничего не должны, это определённо, как и вам кстати. :) Но если чуточку подумать, то:

                  1) вам по ходу статьи встретились опечатки? Просто копипастить их в открытый текстовой файл — не трудно. Как и кинуть их потом в личку. Вам же действительно режут эти ошибки глаза?
                  2) отправить в личку не сильно геморройнее, чем сюда. Думаю, разница всего в 1 клик.
                  3) ни единого раза не помню, что бы меня кто-то послал или обиделся на то, что я ему в личку отправил ошибки. Наоборот, благодарили и правили ошибки.
                  4) сообщил об ошибке или баге в личку автору — сделал мир капельку лучше. Так давайте реально мир улучшать что ли, а не просто разводить флуд вне темы.
  • +2
    Негодую! Не озвучен способ с переписыванием байтиков на салфетку и вводу их вручную на целевом компьютере. Требую протестировать скорость передачи данных при представлении байтиков в двоичной, восьмеричной и шестнадцатеричной системах счисления!
  • +1
    Месье знает толк…
    • +1
      Это еще что. В свое время с братишкой поднимали сеть по IRDA между компом и ноутом и играли command and conquer generals 3. Скорости хватало до определенного количества юнитов. Потом появился интернет и мы научились обжимать сетевые кабели.
      • 0
        Хммм, я кстати вспомнил сейчас, после вашей фразы, что в характеристиках ноутбука указан инфракрасный порт…
  • +1
    По поводу решения «соединить модем-в-модем, без телефонной линии» — нужно использовать такую схему. Просто соединить модемы проводом, скорее всего, не получится.
    • 0
      А токовая петля не длинее будет? Я к тому, что все равно COM-порты…
      И еще помнится был некий файл-менеджер (не Нортон), который умел гнать поток и через петлю, и через RS232 и через LPT, разница только в скорости и дальности. Всё работало и вполне себе применялось во времена, когда ethernet-а просто еще не было.
  • +2
    А как такой метод?
    www.ghisler.com/efaqport.htm
    • +1
      А собственно, можно попробовать, благо и там и там Windows. Спасибо!
      • +1
        у него есть сервер даже для DOS. Т.е. можно спокойно снюхать DOS и современный Win.
        Удачи!
        • +1
          Год с копейками спустя попробовал. Работает!
          Причем ничто не мешает на старый комп ставить DOS-сервер или 5ю версию например, а на клиент с Win 7 x64 — 8ю 64битную версию, и всё вместе заводится.
          Спасибо, ipswitch!
          • +1
            Успехов, дружище! Отличный метод!
  • 0
    Не так уж все это далеко ушло. Например в/на Окраине газоснабжающине организации опрашивают свои счетчики через телефонную линию и USRobotics-модемы. В промышленных масштабах.
    • 0
      Вполне логично. Просто и надёжно.
    • 0
      Я лет 5 назад сталкивался с системой сбора данных: 386 системник, внутренний USRobotics, самодельная ISA карточка для подключения счетчиков и самодельный же софт под досом. И даже (привет фидошникам!) вотчдог — схема сброса, если все это дело подвиснет. Опрашивалось раз в сутки из областного центра. Хозяева говорили, что 10 лет работало и есть не просило.
  • +1
    Иногда приходится передавать файлы по RS232 в устройство на микроконтроллере. Использую со стороны компьютера программу TeraTerm, а со стороны устройства — реализацию протокола Kermit, который и отвечает за приём файла. Втыкается в COM-порт компьютера, если на компьютере нет COM-порта, используется адаптер USB-to-COM.
  • +1
    А вариант с COPY /b FILE COM1 не пробовали? Это самое простое, что приходит в голову.
    • 0
      В чистом DOSе работает, с WinXP — не срабатывает, падет почему-то.
      • +1
        Возможно, не согласованы параметры передачи. В настройках винды в диспетчере устройств можно выбрать параметры, и по-моему как раз они и будут применяться, когда порт таким вот образом используется.
        • 0
          Идею понял, посмотрю.
  • +1
    Я таскаю файлы на XT по COM. Со стороны XT telemax.exe (из комплекта NC 5.0), со стороны домашнего компа великий и ужасный HyperTerminal от висты вроде. По ZModem'у скорость 9600 есть.
    • 0
      С одной стороны, Doom так не передашь (задолбаешься), с второй — на XTшке он и не нужен… :)
      • +1
        Дум да, ему протект мод подовай и памяти метра 4 свободной. Так просто на XT не завести (без серьезных изменений в движке). А вот Wolf3d вполне себе собирается и под XT, хотя на 4,7Mhz конечно тормозит адски, а вот на NEC V20 в турбо моде вполне себе уже становится играбельно. Качнуть тут можно: dl.dropboxusercontent.com/u/33189328/wolf3d.rar

        image
        • 0
          Похожее фото — запускали quake 1 на 486-не-помню-каком.
          Quake 1 идёт без тормозов! Вот на таком размере экрана…

        • 0
          Я клин словил от фотографии, в плате два мультика стоит, или мне кажется? Или один из них звуковуха?
          • 0
            Ближняя к зрителю EGA/VGA Paradise, за ней контроллер MFM жесткого диска (в которую шлейфы воткнуты). За ней ISA 16 мультипортовка с отрубленным HDD. Выступает в качестве контроллера флопа и COM-порта для связи с внешним миром. Ну и LTP, правда не используется.
  • 0
    Где сейчас можно достать LPT-кабель? В Киеве, например.
  • +1
    Ещё, кстати, Total Commander умеет передавать файлы, причем довольно неплохую скорость выдавал когда-то.
  • 0
    Помнится, передавала файлы через нульмодемный COM-COM, но baud rate 115200 это не весело. Спаяла LPT-LPT, у него предел 2Мбит — но нужно иметь ввиду, что у него несколько режимов работы с разной производительностью.
    Вообще, будь на старом ПК более современная ось — лучшим был бы вариант сетевой карты или контроллера USB для PCMCIA. Если есть желание настроить сеть под DOS, следует искать NE2000-совместимую карточку — тогда это был стандарт.
    • 0
      115200 bps еще ничего, вот 2400 точно не весело -)
      • 0
        Вряд ли получится такой дохлый UART найти — большинство все ж 115к держали.
        • 0
          3х жильный кабель, я полагаю?
          • 0
            Не такая большая проблема. Играли с соседкой в «Аллодов», кажется, через десятиметровый трехжильный COM-COM из телефонной «лапши» со скрутками. На 33600 устойчивая связь была, 56к уже с ошибками. (Сейчас ужасаюсь — как в грозу нафиг все порты не сожгли)
    • +1
      Под DOS (на полноценном системнике) сейчас очень хорошо идут современные самые дешевые карточки от D-Link — у них есть пакетные драйвера под DOS (CD в комплекте!), а так же драйвера, позволяющие стучаться на расшаренные через samba папки.

      D-Link молодцы, заботятся о совместимости… :)
      • 0
        Можно ещё TP-Link брать, потому что они часто основаны на старых реалтековских чипах, и дрова на них ищутся легко)
  • 0
    А у нас есть промышленное решение — один LPT порт стаааренького компа управляет восемью светофорами. Что будет, если добавят заездов-выездов, ума не приложу)
    • 0
      В институте помогал другу с написанием проги под диплом, управляющей через COM-порт каким-то простеньким станком. А было это лишь чуть более 5 лет назад. Так что LPT/COM — оно забыто только на бытовом уровне, а во всяких спец.решениях они ещё ой как живут :)

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