sergeeff 1 22 января, 2006 Опубликовано 22 января, 2006 · Жалоба Господа! Нет ли у кого примеров (если это вообще возможно) реализации в USB CDC устройстве эмуляции сигналов RTS/CTS и DSR/DCS? Заранее благодарю Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
san822 2 1 марта, 2006 Опубликовано 1 марта, 2006 · Жалоба Я сам пока не сталкивался с такой задачей, но знаю, что на сегодняшний день для организации виртуального COM-порта через USB в России популярны ИМС фирмы FTDI - FT232BM, FT245BM и др. Сайт производителя www.ftdichip.com Сайт официального поставщика www.efo.ru Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BVU 0 1 марта, 2006 Опубликовано 1 марта, 2006 · Жалоба По большому счету это работа специально написанного драйвера (WDM), который делает преобразование USB протокола в аналог работы COM порта - отсюда и его 'виртуальность'. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
san822 2 2 марта, 2006 Опубликовано 2 марта, 2006 · Жалоба Есть ещё вариант - мост USB - UART CP2101. Судя по документации сигналы RTS/CTS и DSR/DCS поддерживаются. В Питере официальный поставщик Электроснаб - www.electrosnab.ru Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 2 марта, 2006 Опубликовано 2 марта, 2006 · Жалоба CP2101 не рекомендована производителем для новых разработок. Вместо нее выпускается pin-to-pin compatible CP2102. Есть еще CP2103 с 4-ми доп. GPIO, три из которых могут выполнять автоматически функции управления TX_LED, RX_LED и сигнала DE для драйвера RS485. см. раздел USB to UART Bridge на сайте SiLabs. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 3 марта, 2006 Опубликовано 3 марта, 2006 · Жалоба Насчет применения специализированных USB контроллеров – дело понятное. Тем более, если сам пишешь драйвер, то можно там что хочешь придумать и реализовать. Наверное я не очень внятно сначала сформулировал свой вопрос. Хотелось на стандартном USB контроллере (мы сейчас используем PDIUSBD12) реализовать CDC устройство и работать с ним через стандартный usbcomm.sys драйвер из Windows’a. Изучение запросов, которые должено обрабатывать CDC устройство, показало, что там таковые (на установку и сброс сигналов DTR и пр.) отсутствуют. Так что похоже это вариант не проходит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 4 марта, 2006 Опубликовано 4 марта, 2006 · Жалоба Хотелось на стандартном USB контроллере (мы сейчас используем PDIUSBD12) реализовать CDC устройство и работать с ним через стандартный usbcomm.sys драйвер из Windows’a. Изучение запросов, которые должено обрабатывать CDC устройство, показало, что там таковые (на установку и сброс сигналов DTR и пр.) отсутствуют. Так что похоже это вариант не проходит. Я делал CDC устройство на связке ATMega16L + PDIUSBD12. CDC класс поддерживает сигнализацию DTR/DSR, RTS, DCD, RI и Break (т.е. все, кроме CTS). Если есть заинтересованность, могу рассказать подробнее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 4 марта, 2006 Опубликовано 4 марта, 2006 · Жалоба Очень даже интересно. Можно на e-mail : [email protected] Заранее благодарю Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 4 марта, 2006 Опубликовано 4 марта, 2006 · Жалоба Ушло почтой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kojevnikov 0 17 марта, 2006 Опубликовано 17 марта, 2006 · Жалоба Используешь так же как и на обычном порте. Только вот проблемы со скоростью возникают медленно это все((( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prottoss 0 9 января, 2007 Опубликовано 9 января, 2007 · Жалоба Я делал CDC устройство на связке ATMega16L + PDIUSBD12. CDC класс поддерживает сигнализацию DTR/DSR, RTS, DCD, RI и Break (т.е. все, кроме CTS). Если есть заинтересованность, могу рассказать подробнее. Занялся тоже данной связкой. Собрал, подкорректировал Филиповские исходники - мое устройство видится ОСью, все в порядке. Но ни как не могу открыть мой порт ни одной программой. Вот так его видит USBView: Device Descriptor: bcdUSB: 0x0110 bDeviceClass: 0x02 bDeviceSubClass: 0x00 bDeviceProtocol: 0x00 bMaxPacketSize0: 0x10 (16) idVendor: 0x5555 idProduct: 0x7777 bcdDevice: 0x0001 iManufacturer: 0x01 0x0409: "PROTTOSS" iProduct: 0x02 0x0409: "PDIUSBD12 test USB device" iSerialNumber: 0x00 bNumConfigurations: 0x01 ConnectionStatus: DeviceConnected Current Config Value: 0x01 Device Bus Speed: Full Device Address: 0x01 Open Pipes: 3 Endpoint Descriptor: bEndpointAddress: 0x81 IN Transfer Type: Interrupt wMaxPacketSize: 0x0010 (16) bInterval: 0x64 Endpoint Descriptor: bEndpointAddress: 0x02 OUT Transfer Type: Bulk wMaxPacketSize: 0x0010 (16) bInterval: 0x00 Endpoint Descriptor: bEndpointAddress: 0x82 IN Transfer Type: Bulk wMaxPacketSize: 0x0010 (16) bInterval: 0x00 Configuration Descriptor: wTotalLength: 0x0043 bNumInterfaces: 0x02 bConfigurationValue: 0x01 iConfiguration: 0x00 bmAttributes: 0x80 (Bus Powered ) MaxPower: 0x32 (100 Ma) Interface Descriptor: bInterfaceNumber: 0x00 bAlternateSetting: 0x00 bNumEndpoints: 0x01 bInterfaceClass: 0x02 bInterfaceSubClass: 0x02 bInterfaceProtocol: 0x01 iInterface: 0x00 Unknown Descriptor: bDescriptorType: 0x24 bLength: 0x05 05 24 00 10 01 Unknown Descriptor: bDescriptorType: 0x24 bLength: 0x04 04 24 02 02 Unknown Descriptor: bDescriptorType: 0x24 bLength: 0x05 05 24 06 00 01 Unknown Descriptor: bDescriptorType: 0x24 bLength: 0x05 05 24 01 03 01 Endpoint Descriptor: bEndpointAddress: 0x81 IN Transfer Type: Interrupt wMaxPacketSize: 0x0010 (16) bInterval: 0x64 Interface Descriptor: bInterfaceNumber: 0x01 bAlternateSetting: 0x00 bNumEndpoints: 0x02 bInterfaceClass: 0x0A bInterfaceSubClass: 0x00 bInterfaceProtocol: 0x00 iInterface: 0x00 Endpoint Descriptor: bEndpointAddress: 0x02 OUT Transfer Type: Bulk wMaxPacketSize: 0x0010 (16) bInterval: 0x00 Endpoint Descriptor: bEndpointAddress: 0x82 IN Transfer Type: Bulk wMaxPacketSize: 0x0010 (16) bInterval: 0x00 Да еще... После энумерации приходит два запроса специфичных для класса: GET_ENCAPSULATED_RESPONSE и SET_COMM_FEATURE. Но я так понимаю их можно игнорировать, что я и делаю... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 9 января, 2007 Опубликовано 9 января, 2007 · Жалоба На сайте Atmel есть новый проект - AT91 USB Framework - Core 1.01 + CDC 1.0.zip. Сам в нем пока не разбирался - полно другой работы. Погляди как там реализовано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prottoss 0 10 января, 2007 Опубликовано 10 января, 2007 · Жалоба Все разобрался.... :) Для начала: я не правильно декодировал запросы, было не GET_ENCAPSULATED_RESPONSE и SET_COMM_FEATURE, а было GET_LINE_CODING и SET_CONTROL_LINE_STATE А я их не отрабатывал... Как обычно дело было не в бобине... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prottoss 0 23 января, 2007 Опубликовано 23 января, 2007 · Жалоба Чтоб не поднимать новую тему продолжу здесь ибо все равно она касается заголовка темы: решил я пойти дальше, а именно сделать два девайса в одном, то бишь два моста USB - RS232... Составил дескрипторы как положено - ОС определила составное устройство - далее потребовало дрова для устройств в него входящих, подсунул ей свой инф где прописанны оба интерфейса - взяла - установила дрова, но вот для второго устройста пожаловалось, что: "Запуск этого устройства невозможен. (Код 10)" :( ... Кроме того, после инсталяции в setupapi.log появилась запись для второго интерфейса вида: "Устройство не запущено: обнаружена проблема: 0x0a: CM_PROB_FAILED_START". Может быть кто знает, куда копать. Неохота самому писать собственный драйвер :) Спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 23 января, 2007 Опубликовано 23 января, 2007 · Жалоба Кроме того, после инсталяции в setupapi.log появилась запись для второго интерфейса вида: "Устройство не запущено: обнаружена проблема: 0x0a: CM_PROB_FAILED_START". Может быть кто знает, куда копать. Неохота самому писать собственный драйвер :) Спасибо Недавно где-то здесь же на форуме промелькнула информация о схожей проблеме и о том, сколько реально нужно endpoints для реализации двух CDC в одном устройстве. Поищите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться