Как com порт перевести на usb

Обновлено: 03.07.2024

Продолжение. Посмотреть начало - Космос и ходиболтайки
Вот уже есть первые вопросы по использованию COM портов преобразованых из USB соединения. Это радует. И не ругайте меня слишком строго за то что не всё описываю детально. Ведь многие то, о чём я пишу, знают хорошо. Ну, ближе к делу. В любом магазине можно купить преобразователи USB - COM. Они могут быть на один COM порт, на два, на четыре, восемь и т.д. Ограничения в скорости работы при обслуживании многопортового преобразователя вряд ли наступит. Особенно если у вас современный скоростной USB2. Конструктивно они тоже разные, одни выполнены прямо в разъёме USB, некоторые с проводами, а также другие комбинации. Я, например, не люблю, когда ноутбук весь в разъёмах выглядит как ощетинившийся ёжик, поэтому выбираю разъём с длинным проводом и все "прячу" за ноутбук. Ближе к стенке :-)

Изначально, пока мы не подключим этот девайс в разъём, в "Диспетчере Устройств" его нет. Но пусть вас это не вводит в заблуждение. Откройте "Мой компьютер-Свойста-Оборудование-Диспетчер устройств" после чего вставьте ваш преобразователь в USB разъём. Компьютер тут же покажет вам, что система обнаружила USB Serial Port (COM1) Этих портов может быть несколько, например у меня три: два на обслуживание моего КВ логгера, один на VHF. ВЫбираете нужный, Свойства и в разделе Port Setting скорость порта, Data Bits (8) длительность стопового бита (1) и способ управления потоком Flow Control. Из перевода английского названия становиться понятным, что это способ обнаружить "переполнение" буфера приёмного устройства (в случае когда оно медленное). Для современных компьютеров и периферийных устройств это уже излишняя предосторожность. Но мало ли. Всегда лучше иметь возможность выбора.
На самом деле я порекомендую решать задачу с конца. при возможности определить параметры оконечного устройства и в каких диапазонах оно позволяет изменять настройки. В нашем случае, например, оконечное устройство не может обслуживать более чем COM4 и скорость не выше чем, например 9600. Тогда мы должны выставить в настройках преобразователя USB-COM скорость 9600 и назначить этому порту идентификатор COM4.
Делается это так. В меню свойства USB Serial Port (COM(X)) нажимаем кнопочку Advanced, то бишь "продвинутые" настройки. Ставим галочку Serial Enumerator, после чего в выпадающем окне COM Port Number выбираем нужный нам номер порта. Потом ОК-ОК-ОК. Должно работать.
P.S. Поступил комментарий от Евгения R8MM, мне кажется по делу. Он предлагает использовать дополнительные установки для того, чтобы интерфейс не "дёргал" трансивер в момент включения-выключения или, не дай бог, зависания компьютера. Для этого Евгений рекомендует поставить галочку Disable Modem Сontrol At Startup. То есть все предустановки виртуального порта будут переданы с USB в режиме отключенных действий (изменения напряжений) на коннекторе COM
Продолжение следует МКС. BBS и APRS

You have no rights to post comments Недостаточно прав для комментирования

Школа радиста

Урок третий+. Учимся разбирать электрические схемы.

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

В подборе материала я решил не "изобретать велосипед" и воспользоваться готовыми материалами от сайта "Практическая электроника".

Как создавать материалы в JCE редакторе

Урок второй. Электричество - подробнее

В наше повседневной жизни мы часто сталкиваемся с таким понятием как «электрический ток». Что же это такое и всегда ли люди знали о его существовании?

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

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

Перечень знаний и умений на ECC Report 089 CEPT (ENTRY LEVEL)

Тематический перечень для экзаменационных вопросов для присвоения категории

согласно положениям рекомендации ECC Report 089 CEPT (ENTRY LEVEL)

1. Практические рабочие аспекты

1.1. Знакомство с управлением передатчика или трансивера

1.1.1. Включение/выключение питания, переключатель диапазонов, настройка и индикация частоты, громкость, уровень мощности и дисплей, усиление звукового сигнала с микрофона.

1.2. Работа на коротких волнах

1.2.1. Настройка в режиме SSB с верхней и нижней боковой полосой,

1.2.2. Вызов корреспондента, общий вызов,

1.2.3. Способность проведения радиосвязи в приемлемом формате, рапорта, обмен информации об имени оператора, информации о станции. Демонстрация использования аппаратуры

Как мы будем учить

Урок первый. Электричество.

Начнём с простого. Батарейка. Это "законсервированное" электричество. Оно находится внутри и по команде (замыканию выключателя) может делать какую-то работу: светить, вращать моторчик ручного вентилятора, когда жарко, обеспечивать вас звуком от работающего радиоприёмника на пляже. Пока контакты не замкнуты, электричество есть, но работу не делает. Спит. Это называется напряжение. Или потенциал. Типа может делать, но пока не делает. Напряжение всегда подают по ДВУМ проводам: плюс и минус. Вообще-то бывает еще и переменное напряжение, но о нём позже.

В данной статье приведена подборка схем, позволяющая собрать несложное, но крайне полезное устройство: переходник Com USB.

Последовательный порт (RS-232), или как еще его называют COM-порт, предназначен для обмена информацией между компьютером и периферийными устройствами. Последовательным его назвали потому, что обмен данными по нему происходит бит за битом по одному.

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

На сегодняшний день подавляющее большинство компьютеров не оснащаются RS-232 разъемом, поскольку широкое распространение получил стандарт USB. Но еще существуют многого внешних устройств работающих только с COM портом (различные программаторы, диагностическое оборудование, ресиверы и пр.). Выходом из данной ситуации является использование устройства переходник COM-USB. Ниже приведем несколько вариантов наиболее популярных схем данного переходника.

на микросхеме FT8U232BM

Для согласования TTL уровней RS232 интерфейса с уровнями микросхемы FT8U232BM используются две микросхемы 74НС00. Микросхема памяти 93С46 предназначена для хранения персонального номера (PID), код изготовителя (VID), а так же заводской номер устройства. Данную микросхему можно и не устанавливать. В этом случае к компьютеру возможно будет подключить всего лишь 1 создающее виртуальный COM-порт устройство. Микросхему памяти AT93С46 возможно заменить на AT93C66, AT93C56. Прошивается 93С46 непосредственно на плате при помощи фирменной утилиты производителя FTDI.

Упрощенный вариант на FT8U232BM

Это схема упрощенного USB-COM адаптера, который поддерживает только сигнальные линии RX, TX, RTS, CTS RS232 интерфейса. Для согласования уровней com порта с цифровыми уровнями FT8U232BM в схему добавлена микросхема MAX232.


Многофункциональный прибор для проверки транзисторов, диодов, тиристоров.

Схема переходника для COM с USB на PL2303

Для правильной работы необходимо установить драйвер для виртуального COM-порта. Для этого скачиваем и устанавливаем драйвер по нижеприведенной ссылке.

Питание микроконтроллера Attiny2313 осуществляется непосредственно от шины питания USB. Вся схема собрана на односторонней плате (SMD и ТН варианты). Устройство поддерживает только сигналы Rx и Tx.

Прошивку к переходнику, рисунок печатной платы (SMD и TH), а также программу терминал для проверки адаптера можно скачать по ниже приведенной ссылке:

При программировании Attiny2313, фьюзы необходимо выставить следующим образом:

Для работы устройства необходимо установить драйвер виртуального COM порта. Для этого скачиваем его:

Переходник COM-USB на микроконтроллере Atmega8

Еще одна схема COM-USB адаптера теперь уже на микроконтроллере Atmega8 (Atmega48, Atmega88). Схема обеспечивает обработку Rx, Tx, DTR, RTS, CTS сигналов RS232 интерфейса. Драйвер виртуального порта для этой схемы такой же как и для переходника на attiny2313.

Прошивку для atmega8/48/88 и рисунок печатной платы можно скачать по следующей ссылке:

Многие приложения используют коммуникационный порт RS-232 для связи между компьютером и внешним устройством.



Рисунок 1 – Исходное приложение

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

Многие из этих преимуществ станут доступными при переключении с RS-232 на USB. Но при этом также целью выполнения данного переключения являются минимальные затраты времени и сил.

Архитектура программного обеспечения

Целью реализации виртуального COM-порта является переход с реальной УАПП-системы к УАПП/USB-системе:

Данная архитектура требует очень немного модификаций.

Со стороны ПК не требуется выполнение каких-либо изменений! Доступ к USB-порту происходит через драйвер COM-порта, поэтому, нет необходимости изменять имеющуюся управляющую программу для компьютера.

Со стороны приложения драйвер УАПП необходимо заменить на драйверы УАПП USB. В этом случае вместо вызова функций УАПП необходимо вызывать УАПП-USB функции.

Класс USB CDC

  • Модель связи абстрактного управления с одной входной точкой прерывания
  • Абстрактная модель управления данными с одной поточной входящей и одной поточной выходящей конечными точками

Загрузка драйвера CDC под Windows®

Класс CDC поддерживается всеми версиями Windows, начиная с Windows 98SE до Windows XP.

После подключения нового USB-устройства Windows проверяет все имеющиеся INF-файлы для загрузки соответствующего драйвера. INF-файл содержит идентификационные данные о производителе и продукте или определение класса USB. Если идентификационные данные или определение класса USB подключенного USB-устройства совпадает с одним из INF-файлов, то Windows загрузит драйвер описанный в этом файле.

Т.к. Microsoft не поддерживает стандартный INF-файл для CDC-драйвера, то Atmel предоставляет INF-файл, который позволяет загрузить этот драйвер под ОС Windows 2000 и Windows XP. После первого подключения пользователь должен указать данный INF-файл, чтобы операционная система определила какой драйвер необходимо загрузить.

Производители USB-продукции могут указывать собственные идентификационные данные (VID – код производителя и PID – код продукции). Для этого необходимо отредактировать данные значения в самом USB-устройстве(config.h) и в INF-файле (см. пример ниже).

Пример INF-файла

Библиотека УАПП USB

Элементарные функции

uart_usb_test_hit() bit uart_usb_test_hit (void);
Проверяет принятие хотя бы одной кодовой посылки.
uart_usb_getchar() char uart_usb_getchar (void);
Возвращает принятый байт в буфере FIFO конечной точки (OUT), если в буфере FIFO имеется хотя бы один байт. Если в стеке нет данных, то данная функция ожидает получение новых данных через USB-порт.
uart_usb_putchar() char uart_usb_putchar (char);
Записывает байт в буфер FIFO конечной точки (IN). Если данная конечная точка заполняется, то данная функция отправляет весь буфер FIFO главному.
uart_usb_tx_ready() bit uart_usb_tx_ready (void);
Проверяет возможность записи байта в буфер FIFO конечной точки (IN).
uart_usb_flush() bit uart_usb_flush (void);
Если в буфере FIFO конечной точки (IN) имеются данные, то данная функция отправляет их. Использование этой функции предотвращает ожидание заполнения буфера FIFO конечной точки (IN) перед отправлением главному (хосту).

Пример реализации преобразователя USB в RS232

Целью данного примера является реализация очень простого преобразователя USB RS-232:

Прим.: В данном примере не может быть изменена конфигурация УАПП.

Архитектура программы внешнего устройства:

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

Посылка, отправленная в AT89C5131 через виртуальный COM-порт, отображается на экране.

Типовая схема подключения контроллера Arduino UNO к компьютеру через USB порт показана на Рисунок 1. Со стороны компьютера канал связи виден как стандартный СОМ порт. Но, на самом деле, это виртуальный СОМ порт с которым компьютер обменивается пакетами данных на частоте 12 МГц, а специализированный контроллер, расположенный на плате Arduino UNO, преобразует пакеты USB данных в последовательность бит в формате асинхронного интерфейса UART с уровнями 0/5В, которые и используются основным контроллером Arduino UNO (микросхема ATmega328P) для загрузки программ и обмена данными с компьютером в процессе выполнения программ.

image


Рисунок 1. Типовое подключение контроллера Arduino UNO к компьютеру через USB порт.

Временная диаграмма последовательной передачи данных по правилам UART устройства с уровнем сигналов 0/5В показана на Рисунок 2. Данные передаются байтами. Помимо данных последовательность содержит стартовый и стоповый биты и может включать другие служебные биты, например, бит контроля четности, применение которого задается в настройках СОМ порта, там же устанавливается и одна из стандартных скоростей передачи.

Примечание. В семействе асинхронного интерфейса UART наиболее известен стандарт физического уровня RS-232, применяемый COM-портом компьютера.

СОМ порт не имеет сигналов синхронизации, временные интервалы формируются как передатчиком так и приемником с точностью тактирования не хуже 5%.

image


Рисунок 2. Временная диаграмма UART последовательной передачи данных (01001011) микросхемы ATmega328P контроллера Arduino UNO.

Контроллер Arduino UNO содержит специализированный контроллер для преобразования UART сигналов в USB последовательность и наоборот. Порт USB компьютера осуществляющий связь с виртуальным СОМ портом работает в режиме Full-speed на частоте 12 Мбит/с (Рисунок 3). Этот режим поддерживает как USB 1.0. так и USB 2.0.

image


Рисунок 3. Измеренный 4В сигнал на дифференциальной линии USB–COM контроллера Arduino. Длина USB кабеля 2м. Частота сигналов на USB линии 12 МГц. Для формирования сигналов использовалась запись данных в СОМ порт контроллера. Частота USB данных 12 МГц не изменялась при записи в СОМ порт как на скорости 9600 бит/c так и 115200 бит/c.

Данные по шине USB передаются пакетами (Рисунок 4). Размеры пакета зависят от типа выполняемой передачи. Каждый пакет в режиме Full-speed содержит 8 бит синхронизации тактов приемника и передатчика (Sync), 8 бит идентификатора пакета (PID) и 2 бита конца пакета (EOP). Блок данных может составлять от 0 до 1023 байт.

image


Рисунок 4. Пример передачи пакета по дифференциальной линии USB 1.1 в режиме Full-speed [2]. Изменение состояние дифференциального сигнала соответствует передаче нуля, сохранение уровней — соответствует передаче единицы. Для улучшения синхронизации на единичных последовательностях принудительно вставляют нуль на каждые 6 единиц подряд.

Кроме пакета данных передаются и другие пакеты. Для выполнения всех передач по USB требуется, чтобы 2 или 3 пакета информации были переданы между хост-контроллером и приемником. Если передача оказалась успешной, пункт назначения возвращает пакет квитирования. При обнаружении ошибки во время передачи генерируется пакет отсутствия уведомления.

Дифференциальные сигналы USB передаются по витой паре экранированного 4-проводного кабеля. По стандарту, сечение сигнальных проводников высокоскоростного кабеля USB 2.0 должно быть 28 AWG и от 20 до 28 AWG для жил питания, в зависимости от длины кабеля (см. Таблица 1).

Таблица 1. Примерное соответствие длины и диаметра проводов USB2 кабеля.
Размер провода [3]

image

Для увеличения длины USB кабеля его снабжают встроенными усилителями сигнала.
По требованию спецификации USB 2.0 для режима High-speed (до 480 Мбит/с) задержка распространения сигнала в кабеле не должна превышать 5,2 нс/м и быть не более 26 нс, что и определяет максимальную длину кабеля 5 м.

Задержка на метр длины в коаксиальном кабеле обратно пропорциональна скорости распространения волны в м/c, которая вычисляется как

image

,
где с – скорость света 3*10^8 м/с; е — диэлектрическая проницаемость материала внутреннего изолятора; u — магнитная проницаемость изолятора. Для полиэтилена с u= 1 и е= 2,2 фазовая скорость равна 2*10^8 м/с и, соответственно, задержка 5 нс/м.

Для уменьшения потерь сигнала важно обеспечить однородность волнового сопротивления (в.с.) сигнальной линии. Изменение в.с. может быть связано с некачественной заделкой кабеля, плохим согласованием элементов линии, низким качеством разъёма и др.

Волновое сопротивление кабеля определяется его конструкцией. В.с. коаксиального кабеля в области высоких частот (30 кГц и выше) вычисляется по следующей формуле.

image


где L – продольная индуктивность закороченного кабеля, Гн; C – поперечная ёмкость разомкнутого кабеля, Ф; e — диэлектрическая проницаемость изолятора; D — диаметр изолятора; d – диаметр проводника. Величина в.с. не зависит от длины кабеля.
Диэлектрическая проницаемость изоляторов лежит в диапазоне 1… 7: 1 – воздух, вакуум; 1.3… 2.4 – полиэтилен; 2.5..6 — резина; 5..7 – фарфор; 6..7 – слюда; 7 — стекло.
Величина в.с. витой пары USB 2.0.кабеля составляет 90 ± 15% Ом [5]. Расчет в.с. экранированной витой пары должен учитывать и взаимное расположение проводников.

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

image

,
где rH — сопротивление нагрузки; Z – в.с. кабеля.

Включении несогласованных элементов в USB линию может значительно исказить сигнал. Например, линия оказывается неработоспособной при включение в неё эектровводов из силового кабеля с волновым сопротивлением 10… 40 Ом.

Структура канала USB – RS-232 – плата Arduino UNO

Для обеспечения устойчивой связи удаленного СОМ устройства с компьютером через USB порт длина USB канала сведена к минимуму, на выходе USB линии поставлен USB – RS-232 преобразователь, который через длинную линию подключен к преобразователю уровней +15/-15В == 0/5В, находящегося вблизи контроллера Arduino и подключенного к его UART порту, как показано на Рисунок 5. Скорость обмена данными в этой структуре такая же как и при подключении Arduino к компьютеру через USB кабель, но частота сигнала в протяженной линии почти в 100 раз ниже — как 0,115200 Мбит/с и 12 Мбит/с.

image


Рисунок 5. Схема подключения контроллера Arduino UNO к компьютеру через USB порт и длинные несогласованные линии. Обозначение контактов GND, передатчика Tx и приемника Rx на стандартном разъеме DB-9 СОМ порта компьютера показано вверху слева. Со стороны устройства сигналы TxD и RxD на разъема DB-9 надо поменять местами.

Преобразователь RS232 уровней (Рисунок 5) не меняет последовательность бит. Он изменяет уровни сигнала 0/5 В в +12/-12 В и наоборот (Рисунок 6).

image


Рисунок 6. Временная диаграмма и уровни сигналов преобразователя RS232.

Для преобразования уровней сигналов RS232 могут использоваться микросхемы, например, MAX232 (компании Maxim Integrated Products), SP232 (Sipex), ADM232 (Analog Devices). Эти микросхемы имеют одинаковые характеристики и назначения выводов. Подключение преобразователя MAX232 показано на Рисунок 7 [6].

image


Рисунок 7. Схема подключения преобразователя уровней MAX232. Схема обеспечивает уровень выходного напряжения приблизительно ± 7.5 В соответствующий интерфейсу RS-232.

Рынок предлагает множество модулей преобразователей уровней построенных на базе перечисленных и других микросхем. Внешний вид одного из таких модулей показан на (Рисунок 5).

К компьютеру устройство можно подключить через стандартный COM порт, если он есть, или использовать преобразователь USB-RS232 (другие названия: USB-COM конвертеры, переходники или адаптеры), связанный с USB портом напрямую или через собственный USB кабель. Внешний вид USB преобразователей показан на Рисунок 5.

Вариант реализации макета линии COM устройство – USB порт компьютера без RS-232 линии показан на Рисунок 8.

image


Рисунок 8. Вариант подключения контроллера Arduino UNO к преобразователю USB-COM компьютера.

Для проверки работоспособности канала обмена данными между контроллером Arduino UNO и компьютером через длинную несогласованную линию был собран провод показанный на Рисунок 9 и Рисунок 10. Куски провода соединялись скруткой или удерживались в гнездах разъемов на трении.

image


Рисунок 9. Канал RS232 из составного кабеля 9,5 м.

image


Рисунок 10. Куски провода канала RS232 из составного кабеля 9,5 м.

Передача и прием данных через СОМ порт контроллера Arduino UNO контролировалась утилитой компьютера COM Port Toolkit.

Используемая для тестирования линии программа Arduino UNO, передающая в СОМ порт байты данных и переключающая светодиод контроллера по приходу внешних команд, показана ниже.


Осциллограммы сигналов, снятые на концах состоящей из кусков линии RS-232 показаны на Рисунке 11. Данные передаются на частоте 115200 бит/с.

Прошивка контроллера Arduino UNO

Загрузка программ в контроллер Arduino выполняется при помощи его внутреннего загрузчика, который запускается сразу после включения питания контроллера, или после нажатия на кнопку reset платы, или когда компьютер через линию USB выдаёт сигнал сброса.

При подключении платы Arduino через канал RS-232 с двумя сигнальными линиями Tx и Rx при отсутствии линии сигнала сброса загрузка выполнялась в следующем порядке.

1. Запускалась среда разработки Arduino (как и в режиме загрузки через USB).

2. Загружалась программа (как и в режиме загрузки через USB).
3. Прошивка программы запускалась командой Ctrl+U или через кнопку (как и в режиме загрузки через USB)
4. Дополнительно, после запуска прошивки и заполнения прогресс индикатора нажималась кнопка Reset на плате контроллера Arduino приблизительно на 0,5 секунды.

image

.

Прошивка выполнялась успешно и при кратковременном отключении питания контроллера, вместо нажатия на кнопку Reset.

Запуск загрузчика контроллера Arduino можно выполнять и в автоматическом режиме от компьютера, без нажатия на кнопку Reset или кратковременного отключения питания. Для этого необходимо, например, канал RS-232 с Tx, Rx, и GND дополнить линией RTS и подключить ее через преобразователь уровней ко входу RESET контроллера Arduino.

Читайте также: