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

я работаю с FTDI, там мкиросхемы у которых есть eeprom привязываются к серийнику а если нет то к разьему и типу. и получаются вообще номера портов больше 10... так что написал программмку которая их меняет.
-Al-
Цитата(KRS @ Aug 3 2006, 15:48) *
у CP210x на борту есть уникальный серийный номер к нему и привязывается номер порта и сохраняется в ресетре
а на PL-2303 наверное его нет и поэтому номер порта привязывается к разьему USB
в любом случае можно найти в реестре и поправить

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

У CP210x нету уникального серийника blink.gif, а вот у 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 зависит от порта, к которому оно подключается.
TED17
Цитата(Седой @ Aug 5 2006, 17:50) *
По правилам 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 порта после подключения прибора на заранее заданный?
Седой
Можно, если знать где он прописан в реестре.
Adlex
Или в диспетчере устройств-порты СОМ-свойства-параметры порта-дополнительно. При этом в Вашей прикладной программе должно быть обращение именно к этому СОМ порту
KRS
Цитата(Седой @ Aug 6 2006, 20:38) *
Можно, если знать где он прописан в реестре.


Поиском найти в ветке
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum

а здесь
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter
в
ComDB
хранится 256 битная маска использованных COM портов
в ней надо не забывать сбрасывать биты.
Andy Great
Цитата
Т.е. идентификатор устройства с PL-2303 зависит от порта, к которому оно подключается.

И победить это нельзя? А то при перевключении конвертора RS485 I-7561 просит за каждым разом указать драйвер sad.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.