Перейти к содержанию
    

USB-2-RS232: нумерация COM-портов

Есть два переходника USB-2-RS232. Один - на CP210x, другой - на PL-2303. Между ними есть существенная с т.зр. пользователя разница - в какой бы USB-разъем не втыкался тот, что на CP210x, получающийся COM-порт будет иметь один и тот же номер (например, COM6). А тот, который на PL-2303, для каждого разъема создает COM-порт с уникальным номером (например, для 4-х разъемов - от COM7 до COM10). Если есть люди, тесно знакомые с дровами/аппликухами на эти микросхемы - есть ли где "кнопка", чтобы менять способ задания номера порта с одного на другой: всегда один номер порта <=> привязка номера к разъему? Можно ли сделать общий вариант для этих двух микросхем или может есть соображения в пользу "более правильного" варианта?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у CP210x на борту есть уникальный серийный номер к нему и привязывается номер порта и сохраняется в ресетре

а на PL-2303 наверное его нет и поэтому номер порта привязывается к разьему USB

в любом случае можно найти в реестре и поправить

 

я работаю с FTDI, там мкиросхемы у которых есть eeprom привязываются к серийнику а если нет то к разьему и типу. и получаются вообще номера портов больше 10... так что написал программмку которая их меняет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у CP210x на борту есть уникальный серийный номер к нему и привязывается номер порта и сохраняется в ресетре

а на PL-2303 наверное его нет и поэтому номер порта привязывается к разьему USB

в любом случае можно найти в реестре и поправить

 

я работаю с FTDI, там мкиросхемы у которых есть eeprom привязываются к серийнику а если нет то к разьему и типу. и получаются вообще номера портов больше 10... так что написал программмку которая их меняет.

У CP210x нету уникального серийника :blink:, а вот у FTDI наоборот встречается. Здесь скорее в драйверах все зарыто... Тем более ничего не мешает назначить любой номер порта вручную (в WinXP)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По правилам Windows каждое Plug and Play устройство должно иметь уникальный строковый идентификатор Device instance ID

http://msdn.microsoft.com/library/en-us/De....asp?frame=true

 

Формат строки Device instance ID следующий:

 

<device-ID>\<instance-specific-ID>

 

где в случае USB устройства

<device-ID> = USB\VID_XXXX&PID_XXXX&REV_XXXX

а

<instance-specific-ID> = строке, полученной из строкового дескриптора c номером iSerialNumber.

 

Если такой дескриптор не найден или iSerialNumber = 0, то строку <instance-specific-ID> формирует

PnP manager на основе данных USB хаба, к порту которого подключено устройство.

 

 

Что происходит в Вашем случае:

 

Устройство с CP210x имееет серийный номер ( строковый дескриптор с номером iSerialNumber <> 0) SSSS и его идентификатор

Device instance ID = USB\VID_XXXX&PID_XXXX&REV_XXXX\SSSS

независимо от хаба и номера USB порта.

 

Устройство с PL-2303 не имеет серийного номера и его идентификатор в общем случае

Device instance ID = USB\VID_XXXX&PID_XXXX&REV_XXXX\HUBID&PORTN

где HUBID - идентификатор хаба и PORTN - номер USB порта, к которому подключено это устройство.

Т.е. идентификатор устройства с PL-2303 зависит от порта, к которому оно подключается.

Изменено пользователем Седой

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По правилам Windows каждое Plug and Play устройство должно иметь уникальный строковый Устройство с PL-2303 не имеет серийного номера и его идентификатор в общем случае

Device instance ID = USB\VID_XXXX&PID_XXXX&REV_XXXX\HUBID&PORTN

где HUBID - идентификатор хаба и PORTN - номер USB порта, к которому подключено это устройство.

Т.е. идентификатор устройства с PL-2303 зависит от порта, к которому оно подключается.

Можно ли программно изменить N COM порта после подключения прибора на заранее заданный?

Изменено пользователем TED17

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Или в диспетчере устройств-порты СОМ-свойства-параметры порта-дополнительно. При этом в Вашей прикладной программе должно быть обращение именно к этому СОМ порту

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно, если знать где он прописан в реестре.

 

Поиском найти в ветке

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum

 

а здесь

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter

в

ComDB

хранится 256 битная маска использованных COM портов

в ней надо не забывать сбрасывать биты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Т.е. идентификатор устройства с PL-2303 зависит от порта, к которому оно подключается.

И победить это нельзя? А то при перевключении конвертора RS485 I-7561 просит за каждым разом указать драйвер :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...