реклама на сайте
подробности

 
 
> Эмуляция COM через USB
sergeeff
сообщение Jan 22 2006, 11:42
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Господа!

Нет ли у кого примеров (если это вообще возможно) реализации в USB CDC устройстве эмуляции сигналов RTS/CTS и DSR/DCS?

Заранее благодарю
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
prottoss
сообщение Jan 23 2007, 20:46
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Чтоб не поднимать новую тему продолжу здесь ибо все равно она касается заголовка темы:
решил я пойти дальше, а именно сделать два девайса в одном, то бишь два моста USB - RS232...
Составил дескрипторы как положено - ОС определила составное устройство - далее потребовало дрова для устройств в него входящих, подсунул ей свой инф где прописанны оба интерфейса - взяла - установила дрова, но вот для второго устройста пожаловалось, что:
"Запуск этого устройства невозможен. (Код 10)" sad.gif ...

Кроме того, после инсталяции в setupapi.log появилась запись для второго интерфейса вида:
"Устройство не запущено: обнаружена проблема: 0x0a: CM_PROB_FAILED_START".

Может быть кто знает, куда копать. Неохота самому писать собственный драйвер smile.gif
Спасибо


--------------------
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 23 2007, 21:41
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(prottoss @ Jan 23 2007, 22:46) *
Кроме того, после инсталяции в setupapi.log появилась запись для второго интерфейса вида:
"Устройство не запущено: обнаружена проблема: 0x0a: CM_PROB_FAILED_START".

Может быть кто знает, куда копать. Неохота самому писать собственный драйвер smile.gif
Спасибо

Недавно где-то здесь же на форуме промелькнула информация о схожей проблеме и о том, сколько реально нужно endpoints для реализации двух CDC в одном устройстве. Поищите.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Jan 23 2007, 22:00
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(rezident @ Jan 24 2007, 01:41) *
Цитата(prottoss @ Jan 23 2007, 22:46) *

Кроме того, после инсталяции в setupapi.log появилась запись для второго интерфейса вида:
"Устройство не запущено: обнаружена проблема: 0x0a: CM_PROB_FAILED_START".

Может быть кто знает, куда копать. Неохота самому писать собственный драйвер smile.gif
Спасибо

Недавно где-то здесь же на форуме промелькнула информация о схожей проблеме и о том, сколько реально нужно endpoints для реализации двух CDC в одном устройстве. Поищите.
Да этоя и создавал тему в форуме AVR про PDIUSBD12 + ATmega16... Дело то вот в чем: У PDIUSBD12 шесть ендпоинтов - одна пара используется под Control IN/OUT endpoint и остаются еще две пары ендпоинтов. НО, так как в USB CDC ACM классе необходимо иметь три точки, то, как бы не реально сделать два устройства на данной связке. С помощью гугль и такой то матери обнаружил, что все таки можно не портить одну пару ендпоинтов, так как одна точка как бы не действительная, то бишь она нужна только для стандарта, а реально не используется. Подправил я дескрипторы, сдела пару одну на реальные точки, а одну сделал с нереальным номером - РАБОТАЕТ!!!. Попробовал под 98, 2000, МЕ, XP - все замечательно. Добавляю второй интерфейс - все ставится, видится НО второй девайс ни в какую - код ошибки 10 и в 2000 и в XP. 98 и МЕ смысла мучить пока не вижу, так как предполагаю, что там вообще после таких выкрутастов BSOD будет smile.gif . Счас перепахиваю MSDN...безрезультатно...Но ИМХО, что то я не совсе мправильно либо с дескрипторами делаю, либо в INF что то не дописываю sad.gif


--------------------
Go to the top of the page
 
+Quote Post
mtx
сообщение Jan 28 2007, 19:05
Сообщение #5





Группа: Новичок
Сообщений: 5
Регистрация: 19-07-06
Пользователь №: 18 930



Может быть кто знает, куда копать. Неохота самому писать собственный драйвер :)
Спасибо
[/quote]
Счас перепахиваю MSDN...безрезультатно...Но ИМХО, что то я не совсе мправильно либо с дескрипторами делаю, либо в INF что то не дописываю :(
[/quote]

Если не секрет, можно на дескртиптор взглянуть и на inf за одно?
Go to the top of the page
 
+Quote Post
prottoss
сообщение Jan 28 2007, 19:36
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Код
/**************************************************************************
Device Descriptor
**************************************************************************/
PROGMEM USB_DEVICE_DESCRIPTOR USB_DeviceDescriptor =
{
sizeof(USB_DEVICE_DESCRIPTOR), /* length of descriptor in bytes */
    USB_DEVICE_DESCRIPTOR_TYPE, /* descriptor type */
    0x0110,  /* USB version supported */
    0,//USB_CFG_DEVICE_CLASS, /* device class */
    0,//USB_CFG_DEVICE_SUBCLASS, /* device subclass */
    0,//USB_CFG_DEVICE_PROTOCOL, /* device protocol */
    D12_EP0_PACKET_SIZE, /* max packet size for control endpoint */
    USB_CFG_VENDOR_ID,  /* vendor ID (VID) */
    USB_CFG_DEVICE_ID,  /* device ID (PID) */
    USB_CFG_DEVICE_VERSION, /* version */
    USB_CFG_VENDOR_STRING_INDEX,  /* manufacturer string index */
    USB_CFG_DEVICE_STRING_INDEX,  /* product string index */
USB_CFG_SERIAL_STRING_INDEX, /* serial number string index */
1, /* number of configurations */
};

/**************************************************************************
CDC Config Descriptors Packet for Communication Port Emulation
**************************************************************************/
PROGMEM USB_CONFIG_DESCRIPTOR_PACKET USB_ConfigDescriptorPacket =
{

/**************************************************************************
Configuration Descriptor
**************************************************************************/
{
    sizeof(USB_CONFIGURATION_DESCRIPTOR), /* length of descriptor in bytes */
    USB_CONFIGURATION_DESCRIPTOR_TYPE,    /* descriptor type */
    sizeof(USB_CONFIG_DESCRIPTOR_PACKET), /* total packet length */
    2,          /* number of interfaces in this configuration */
    1,          /* index of this configuration */
    0,          /* configuration name string index */
USB_CONFIG_SELF_POWERED,
    USB_CFG_MAX_BUS_POWER / 2,
},

/**************************************************************************
ACM Interface Descriptor 0
**************************************************************************/
{
   sizeof(USB_INTERFACE_DESCRIPTOR), /* length of descriptor in bytes */
    USB_INTERFACE_DESCRIPTOR_TYPE, /* descriptor type */
    0,          /* index of this interface */
    0,          /* alternate setting for this interface */
    3,     /* 1 - control? 2 - data */
    USB_CFG_INTERFACE_CLASS, /* USB_DEVICE_CLASS_COMMUNICATIONS */
    USB_CFG_INTERFACE_SUBCLASS, /* USB_CDC_SUBCLASS_ACM */
    USB_CFG_INTERFACE_PROTOCOL, /* 0 */
    0,
},

/**************************************************************************
CDC Header Functional Descriptor
**************************************************************************/
{
   sizeof(USB_CDC_HEADER_FUNCTIONAL_DESCRIPTOR),
    0x24, /* descriptor type */
    0,  /* header functional descriptor */
    0x0110, /* USB version */
},

/**************************************************************************
CDC Abstract Control Management Functional Descriptor
**************************************************************************/
{
   sizeof(USB_CDC_ABSTRACT_CONTROL_MANAGEMENT_FUNCTIONAL_DESCRIPTOR),
    0x24, /* descriptor type */
    2,  /* abstract control management functional descriptor */
    0x02,   /* SET_LINE_CODING,    GET_LINE_CODING, SET_CONTROL_LINE_STATE */
},

/**************************************************************************
In Endpoint #3 Descriptor (Control in) not real!!!
**************************************************************************/
{
   sizeof(USB_ENDPOINT_DESCRIPTOR),
    USB_ENDPOINT_DESCRIPTOR_TYPE,
    0x83, /* In endpoint number 3 */
    0x03, /* attrib: Interrupt endpoint */
    D12_EP1_PACKET_SIZE,  /* maximum packet size */
    10, /* in ms */
},

/**************************************************************************
Out Endpoint #1 Descriptor (Data out)
**************************************************************************/
{
   sizeof(USB_ENDPOINT_DESCRIPTOR),
    USB_ENDPOINT_DESCRIPTOR_TYPE,
    0x01,        /* OUT endpoint number 1 */
    0x02,        /* attrib: Bulk endpoint */
    D12_EP1_PACKET_SIZE,      /* maximum packet size */
    0,         /* in ms */
},

/**************************************************************************
In Endpoint #1 Descriptor (Data in)
**************************************************************************/
{
   sizeof(USB_ENDPOINT_DESCRIPTOR),
    USB_ENDPOINT_DESCRIPTOR_TYPE,
    0x81,        /* IN endpoint number 1 */
    0x02,        /* attrib: Bulk endpoint */
    D12_EP1_PACKET_SIZE,      /* maximum packet size */
    0,         /* in ms */
},

/**************************************************************************
ACM Interface Descriptor 1
**************************************************************************/
{
   sizeof(USB_INTERFACE_DESCRIPTOR), /* length of descriptor in bytes */
    USB_INTERFACE_DESCRIPTOR_TYPE, /* descriptor type */
    1,          /* index of this interface */
    0,          /* alternate setting for this interface */
    3,     /* 1 - control? 2 - data */
    USB_CFG_INTERFACE_CLASS, /* USB_DEVICE_CLASS_COMMUNICATIONS */
    USB_CFG_INTERFACE_SUBCLASS, /* USB_CDC_SUBCLASS_ACM */
    USB_CFG_INTERFACE_PROTOCOL, /* 0 */
    0,
},

/**************************************************************************
CDC Header Functional Descriptor
**************************************************************************/
{
   sizeof(USB_CDC_HEADER_FUNCTIONAL_DESCRIPTOR),
    0x24, /* descriptor type */
    0,  /* header functional descriptor */
    0x0110, /* USB version */
},

/**************************************************************************
CDC Abstract Control Management Functional Descriptor
**************************************************************************/
{
   sizeof(USB_CDC_ABSTRACT_CONTROL_MANAGEMENT_FUNCTIONAL_DESCRIPTOR),
    0x24, /* descriptor type */
    2,  /* abstract control management functional descriptor */
    0x02,   /* SET_LINE_CODING,    GET_LINE_CODING, SET_CONTROL_LINE_STATE */
},

/**************************************************************************
In Endpoint #4 Descriptor (Control in) not real !!!
**************************************************************************/
{
   sizeof(USB_ENDPOINT_DESCRIPTOR),
    USB_ENDPOINT_DESCRIPTOR_TYPE,
    0x84, /* In endpoint number 4 */
    0x03, /* attrib: Interrupt endpoint */
    D12_EP1_PACKET_SIZE,  /* maximum packet size */
    10, /* in ms */
},

/**************************************************************************
Out Endpoint #2 Descriptor (Data out)
**************************************************************************/
{
   sizeof(USB_ENDPOINT_DESCRIPTOR),
    USB_ENDPOINT_DESCRIPTOR_TYPE,
    0x02,        /* OUT endpoint number 2 */
    0x02,        /* attrib: Bulk endpoint */
    D12_EP2_PACKET_SIZE,      /* maximum packet size */
    0,         /* in ms */
},

/**************************************************************************
In Endpoint #2 Descriptor (Data in)
**************************************************************************/
{
   sizeof(USB_ENDPOINT_DESCRIPTOR),
    USB_ENDPOINT_DESCRIPTOR_TYPE,
    0x82,        /* IN endpoint number 2 */
    0x02,        /* attrib: Bulk endpoint */
    D12_EP2_PACKET_SIZE,      /* maximum packet size */
    0,         /* in ms */
},

}; /* enf of config descriptor packet */


--------------------
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sergeeff   Эмуляция COM через USB   Jan 22 2006, 11:42
- - san822   Я сам пока не сталкивался с такой задачей, но знаю...   Mar 1 2006, 10:52
- - BVU   По большому счету это работа специально написанног...   Mar 1 2006, 12:01
- - san822   Есть ещё вариант - мост USB - UART CP2101. Судя ...   Mar 2 2006, 08:50
- - rezident   CP2101 не рекомендована производителем для новых р...   Mar 2 2006, 10:41
- - sergeeff   Насчет применения специализированных USB контролле...   Mar 3 2006, 10:54
- - aaarrr   Цитата(sergeeff @ Mar 3 2006, 13:54) Хоте...   Mar 4 2006, 16:19
|- - prottoss   Цитата(aaarrr @ Mar 4 2006, 20:19) Я дела...   Jan 9 2007, 09:20
|- - Genadi Zawidowski   Цитата(aaarrr @ Mar 4 2006, 19:19) Я дела...   Feb 10 2008, 14:10
|- - Genadi Zawidowski   Отбой.... Нашел у китайских ембеддеров проект, дес...   Feb 10 2008, 21:49
- - sergeeff   Очень даже интересно. Можно на e-mail : nik_ef@mai...   Mar 4 2006, 17:07
- - aaarrr   Ушло почтой.   Mar 4 2006, 17:52
- - alekseykoj   Используешь так же как и на обычном порте. Только ...   Mar 17 2006, 08:53
- - sergeeff   На сайте Atmel есть новый проект - AT91 USB Framew...   Jan 9 2007, 09:31
- - prottoss   Все разобрался.... Для начала: я не правильн...   Jan 10 2007, 10:06
|- - mtx   Цитата/*******************************************...   Jan 28 2007, 20:31
|- - prottoss   Цитата(mtx @ Jan 29 2007, 00:31) Кажется,...   Jan 28 2007, 20:45
|- - mtx   Возникла похожая задача, 2 СОМа. Удалось ли докопа...   Jun 18 2007, 17:15
|- - prottoss   Цитата(mtx @ Jun 19 2007, 01:15) Возникла...   Jun 18 2007, 17:34
|- - arizona   Цитата(mtx @ Jun 18 2007, 20:15) Возникла...   Jan 16 2008, 11:03
- - prottoss   забыл про инф Код;*****************************...   Jan 28 2007, 20:21
- - peotr   Цитата(sergeeff @ Jan 22 2006, 14:42) Гос...   Mar 4 2008, 13:37


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 18:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01464 секунд с 7
ELECTRONIX ©2004-2016