Официальный форум СВД Встраиваемые Системы
03 Декабря, 2016, 05:23:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: Драйвер преобразователя USB-COM для ОСРВ QNX4.25 и ЗОСРВ КПДА.00002-01  (Прочитано 8281 раз)
Андрей Сеньков
Администратор
Опытный пользователь

Сообщений: 262



WWW
« : 13 Ноября, 2009, 16:08:04 »

Драйвер преобразователя USB-COM для ОСРВ QNX4.25 и ЗОСРВ КПДА.00002-01

Оставаясь популярным промышленным стандартом, интерфейс RS232 практически полностью вытеснен шиной USB в нише ноутбуков и персональных компьютеров. Тем не менее, часто требуется организовать взаимодействие с оборудованием именно через COM порт. Выходом из ситуации является использование преобразователя USB-COM.

Для поддержки преобразователей USB-COM для ОСРВ  QNX4.25/КПДА.00002-01 был разработан универсальный драйвер конвертера USB-COM. В настоящее время драйвер поддерживает 3 типа чипов:
- Prolific PL2303x
- FTDI2232x
- Silicon Labs CP210x

Тестирование производилось для следующих устройств:
1) На базе Prolific PL2303x:
- ADAM-4561 (Advantech)
- i7561 (ICP)
- Defender USR130 (Omega)
- STLab USB-Serial-4
- Преобразователи от Gembird, Expert
2) На базе FTDI2232x:
- Меркурий-221 (Инкотекс)
- ПИ-2 (НЗиФ)
3) На базе Silicon Labs CP210x:
- АС4 (Овен)

Драйвер разработан для стека USB 2.0 QNX 4.25 и доступен для свободного скачивания.

Содержание архива usbcom_bin.tar.gz:
usbcom - драйвер преобразователя USB-COM.

Запуск драйвера:
#usbcom &

Замечания для текущей версии:
1. Драйвер поддерживает устройства с именами : /dev/comusbXXX, где XXX определяет гнездо USB в которое вставлен преобразователь
2. Поддерживается один уровень вложенности, то есть один hub между конвертером и хостом.
3. Динамическое подключение и удаление устройства не реализовано.

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

Королёв Е.В.
Интересующийся

Сообщений: 2


« Ответ #1 : 16 Ноября, 2009, 20:18:09 »

Здравствуйте Андрей !

При тестировании драйвера comusb с преобразователем на базе prolific 2303 выявились следующие особенности:

1) Для успешного выполнения команды "cp file /dev/comusb200"  необходимо, чтобы длина файла не превышала 511 байт. Иначе возникает ошибка ввода вывода.
2) Приложения, использующие функцию dev_arm(), не получают уведомления о приеме. 

Королёв Е.В.
Записан
Al
Пользователь

Сообщений: 87


« Ответ #2 : 17 Ноября, 2009, 15:23:46 »

...Драйвер разработан для стека USB 2.0 QNX 4.25...
Позвольте полюбопытствовать, а где удалось взять SDK для стека USB2.0?? А то официально SDK был только под первую версию... Не поделитесь случаем? Smiley

По теме:
Попробовал этот драйвер на нативном CP2102 (VID: 0x10C4, PID: 0xEA60), драйвер его к сожалению не увидел Sad
На NoName преобразователе на базе FT232 драйвер завелся, байтики ходят.
Записан

Андрей Сеньков
Администратор
Опытный пользователь

Сообщений: 262



WWW
« Ответ #3 : 17 Ноября, 2009, 17:29:56 »

Здравствуйте Андрей !

При тестировании драйвера comusb с преобразователем на базе prolific 2303 выявились следующие особенности:

1) Для успешного выполнения команды "cp file /dev/comusb200"  необходимо, чтобы длина файла не превышала 511 байт. Иначе возникает ошибка ввода вывода.
2) Приложения, использующие функцию dev_arm(), не получают уведомления о приеме. 

Королёв Е.В.

Здравствуйте, Евгений!

Проверьте, пожалуйста, работоспособность следующей версии драйвера при копировании файла с длиной более 511 байт.

Что касается использования функции dev_arm(), то разработчик сообщил, что эта функция проверялась. Приведите, пожалуйста, пример кода с dev_arm(), который не выполняется должным образом.



Записан

Андрей Сеньков
Администратор
Опытный пользователь

Сообщений: 262



WWW
« Ответ #4 : 17 Ноября, 2009, 18:24:00 »


Позвольте полюбопытствовать, а где удалось взять SDK для стека USB2.0?? А то официально SDK был только под первую версию... Не поделитесь случаем? Smiley

По теме:
Попробовал этот драйвер на нативном CP2102 (VID: 0x10C4, PID: 0xEA60), драйвер его к сожалению не увидел Sad
На NoName преобразователе на базе FT232 драйвер завелся, байтики ходят.


У нашей компании существует доступ к некоторым закрытым исходным текстам Smiley. В частности, такая возможность нами использовалась при подготовке QNX4 CD 2009
http://forum.kpda.ru/index.php/topic,3.0.html
Часть этих исходных текстов получено нами на условиях NDA.

Устройство CP2102 (VID: 0x10C4, PID: 0xEA60) в этой версии драйвера не поддерживается.

Записан

Al
Пользователь

Сообщений: 87


« Ответ #5 : 17 Ноября, 2009, 20:01:43 »

...Устройство CP2102 (VID: 0x10C4, PID: 0xEA60) в этой версии драйвера не поддерживается.

Очень жаль, а почему оно тогда заявлено в списке поддерживаемых??

Цитировать
В настоящее время драйвер поддерживает 3 типа чипов:
- Prolific PL2303x
- FTDI2232x
- Silicon Labs CP210x
Записан

Олег Большаков
Администратор
Житель форума

Сообщений: 2929



WWW
« Ответ #6 : 17 Ноября, 2009, 22:54:22 »

Кстати, стек USB 2.0 для QNX 4 планируется обновить. За основу взята версия из QNX6 и в настоящее время ведутся работы по переносу в QNX4. Обновлённый USB стек планируется включить в следующий диск QNX4. Скорее всего предварительная версия этого нового стека будет доступна на Foundry27 в проекте QNX4.
Записан

Андрей Сеньков
Администратор
Опытный пользователь

Сообщений: 262



WWW
« Ответ #7 : 18 Ноября, 2009, 16:04:28 »

Очень жаль, а почему оно тогда заявлено в списке поддерживаемых??
Разработчик планирует внести соответствующие изменения в драйвер и выложить новую версию для скачивания и тестирования.
Записан

Al
Пользователь

Сообщений: 87


« Ответ #8 : 18 Ноября, 2009, 17:17:41 »

Разработчик планирует внести соответствующие изменения в драйвер и выложить новую версию для скачивания и тестирования.
Попробовал пойти по иному пути, сменил VID/PID CP2102 на VID/PID устройства на его базе (АС4 (Овен), VID: 0x1555, PID: 0x0004), драйвер увидел моё устройство, все работает нормально. Странно, почему разработчик сразу не добавил дефолтные ID....
Записан

Королёв Е.В.
Интересующийся

Сообщений: 2


« Ответ #9 : 18 Ноября, 2009, 19:54:13 »

1. В новой версии драйвера передача больших файлов (>511 байт) выполняется, но не корректно.
    Выполнение соманды "cp /dev/ser1 cd.bin.ser" на одной консоли с последующим выполнением команды "cp cd.bin /dev/comusb200" приводит
    к появлению файла "cd.bin.ser", не совпадающего с "cd.bin". Длина файла "cd.bin" 2048 байт.
2. Передача файла длиной к примеру 100 Кбайт приводит к появлению ошибки ввода-вывода.
3. Что касается функции dev_arm(), то она действительно работает, но только при использовании события _DEV_EVENT_INPUT вместо   _DEV_EVENT_RXRDY .
4. Выполнение команды "cp /dev/comusb200 file" не приводит к блокировке команды cp на ожидании принимаемых данных, как это происходит в случае с "/dev/ser".
Записан
mgb
Пользователь

Сообщений: 15


« Ответ #10 : 18 Ноября, 2009, 20:13:53 »

Цитировать
Странно, почему разработчик сразу не добавил дефолтные ID....
Просто было принято решение не добавлять в списки поддерживаемых сочетаний VendorID - ProductID сочетания не опробованных нами или кем-нибудь устройств. То есть предлагаемый путь движения вперед следующий:
Если Ваше устройство не определилось драйвером выполните:
#usb -vvv > name_file - прикрепите данный файл к Вашему сообщению о проблеме, если к компьютеру было подключено более одного преобразователя - сообщите VendorID - ProductID проблемного устройства, желательно (если Вы знаете или можете посмотреть) сообщить на каком чипе реализовано устройство.
Также, просьба, для формирования списка поддерживаемых (и неподдерживаемых  Roll Eyes) устройств сообщать тип устройства (если не NoName )
Во вложенном файле - вариант драйвера с определением устройства на базе CP2102 с VID: 0x10C4, PID: 0xEA60
(Не забудьте разархивировать и поставить права доступа и флаг исполняемый - положил через Win  Roll Eyes )
Записан
mgb
Пользователь

Сообщений: 15


« Ответ #11 : 18 Ноября, 2009, 20:23:52 »

Цитировать
1. В новой версии драйвера передача больших файлов (>511 байт) выполняется, но не корректно.
    Выполнение соманды "cp /dev/ser1 cd.bin.ser" на одной консоли с последующим выполнением команды "cp cd.bin /dev/comusb200" приводит  к появлению файла "cd.bin.ser", не совпадающего с "cd.bin". Длина файла "cd.bin" 2048 байт.
Если не затруднит - прикрепите файлы cd.bin.ser и cd.bin
Цитировать
Передача файла длиной к примеру 100 Кбайт приводит к появлению ошибки ввода-вывода.
Как конкретно выглядит сообщение об ошибке (лучше скриншот)
Записан
Олег Большаков
Администратор
Житель форума

Сообщений: 2929



WWW
« Ответ #12 : 18 Ноября, 2009, 20:39:52 »

Просто было принято решение не добавлять в списки поддерживаемых сочетаний VendorID - ProductID сочетания не опробованных нами или кем-нибудь устройств.

Возможно стоит реализовать возможность задания VID и PID из командной строки? После проверки работоспособности новых устройств их идентификаторы было бы можно добавить к списку автоматически определяемых. Smiley
Записан

mgb
Пользователь

Сообщений: 15


« Ответ #13 : 18 Ноября, 2009, 20:58:07 »

Цитировать
Возможно стоит реализовать возможность задания VID и PID из командной строки? После проверки работоспособности новых устройств их идентификаторы было бы можно добавить к списку автоматически определяемых.
Кроме VID и PID требуется определять и тип чипа - данные опции не были введены, так как тогда необходимо усложнение обработки и запрещение работы этих опций при наличии более одного подсоединенного преобразователя (или наличие какой-то логики что делать в этом случае). Как показывает пример аналогичных драйверов Linux/xxxBSD на чип обычно не более десятка комбинаций. Посмотрим на реакцию пользователей - если новых сочетаний будет много и их простая подстановка будет обеспечивать работоспособность, то введем соответствующие опции  Wink
Записан
Al
Пользователь

Сообщений: 87


« Ответ #14 : 19 Ноября, 2009, 13:53:31 »

...Также, просьба, для формирования списка поддерживаемых (и неподдерживаемых  Roll Eyes) устройств сообщать тип устройства (если не NoName )
Во вложенном файле - вариант драйвера с определением устройства на базе CP2102 с VID: 0x10C4, PID: 0xEA60...
По идее, все устройства, построенные на этих чипах должны поддерживаться, поэтому по крайней мере надо добавить дефолтные ID чипов (можно найти в драйверах производителя).

CP2102 теперь определяется и с дефолтными ID Smiley Простенький обмен с GPS-приёмником работает как часы Smiley
Записан

Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2016 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС

В последний раз google посещал эту страницу 02 Декабря, 2016, 12:02:18