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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Vybrid Ethernet to UART bridge, Драйвера для компа
mantech
сообщение Jan 16 2015, 16:52
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Приветствую.

Появилась задачка добавить функционал контроллера модулем uart-ethernet, раньше использовали отдельные модули "тиббо", сам модуль и драйвер ком-порта под винду.

Контроллер - vybrid mvf61nn
стек - LWIP
в данный момент используется как web-сервер. В сети есть несколько проектов, как "прикрутить" к стеку функционал посл. порта, НО не смог найти к ним "вторую часть" - программный драйвер под винду(не важно какую, хрюшу или семерку), написанием драйверов под винду никогда не занимался, и честно говоря, нет большого желания и времени, а пытаться использовать тот-же драйвер от тиббо - нет документации.
Может кто знает, где посмотреть или поискать эти творения??
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jan 16 2015, 17:06
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Не очень понятно чего вы хотите найти за драйверsm.gif

Ethernet -ТСP/UDP поддерживается виндой нативно. Задача обмена по ним заключается в создании сокета и чтения-записи данных через него. Для данного действа есть уже написанные классы С++, и С#. Для С# класс входит в комплект и весьма удобен. Или вы хотите чтобы у вас был виртуальный ком порт? ну тогда ручками ручками, стандарта на формат такого рода данных нет.

Go to the top of the page
 
+Quote Post
mantech
сообщение Jan 16 2015, 20:04
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Golikov A. @ Jan 16 2015, 20:06) *
Не очень понятно чего вы хотите найти за драйверsm.gif

Или вы хотите чтобы у вас был виртуальный ком порт? ну тогда ручками ручками, стандарта на формат такого рода данных нет.


Я знаю, что стандарта нет, в том-то и дело. Решил узнать, может кто уже занимался подобным, есть ссылки на проекты, а то в инете ищешь исходники - часть самого устройства на контроллере есть, а для компа драйвера нет... Кому нужна половина комплекта?? Разве, что просто удлинитель ком-порта по сети laughing.gif
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jan 16 2015, 21:21
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



А как вы хотите его использовать? Если у вас не просто удлинитель ком порта, то наверное есть ваше приложение управления всей этой байдой, так может в нем реализовать нормальный режим через сокеты?

Можно попробовать шарком послушать как выглядит обмен, но нудно это все...
Go to the top of the page
 
+Quote Post
scifi
сообщение Jan 16 2015, 21:25
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Golikov A. @ Jan 17 2015, 00:21) *
Можно попробовать шарком послушать как выглядит обмен, но нудно это все...

Ага, а потом заменить логотип Tibbo на "Вася Пупкин и Ко" biggrin.gif
Go to the top of the page
 
+Quote Post
mantech
сообщение Jan 16 2015, 21:33
Сообщение #6


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Golikov A. @ Jan 17 2015, 00:21) *
Если у вас не просто удлинитель ком порта, то наверное есть ваше приложение управления всей этой байдой, так может в нем реализовать нормальный режим через сокеты?


Ну тогда я бы не задавал этих глупых вопросов, логично biggrin.gif

Все дело в том, что софтина сложная и специфичная, писана х.з кем, работает только по rs232. Вот дело-то в чем...
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Jan 16 2015, 23:35
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



А ничего там хитрого нет: берете UDP порт и гоните/принимаете данные.
На компьютере ставите программу что-то типа "Virtual COM UDP TCP Port" (это ключ для гугления, их много разных в интернете), настраиваете ее не Ваш UDP порт и у Вас в системе появляется виртуальный порт, привязанный к данному UDP.
Я не помню что именно мы использовали для экспериментов, так как в результате отказались от идеи виртуальных портов и я просто в исходники добавил все нужное напрямую (поддержку канала связи через Езернет). Но оно работало и через такой виртуальный порт тоже.
Помню что искал пару часов что-то приличное, нашлось не сразу и не уверен что оно бесплатное было (но стоит дешево)

Upd: нашел, это пользовали
http://www.hw-group.com/products/hw_vsp/index_en.html
там есть фриварная VSP3, кажется ее и использовали.
Go to the top of the page
 
+Quote Post
Aner
сообщение Jan 16 2015, 23:42
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



Еthernet, стек за присест не изучишь и за десяток тоже. Такой модуль uart-ethernet сам посебе не имеет смысла. Смысл в структуре и софте с обоих сторон. Сначала с этим нужно разобратся. Выражение: "... добавить функционал контроллера модулем uart-ethernet" переводится знающими как - масло масленое.
"прикрутить" к стеку функционал посл. порта только через сокеты, порты и проброс. Golikov пояснил как. А какого драйвера компа тебе нужно? А вот и не так просто удлинитель ком-порта по сети. Обычно все через виртуальные работают, а там свои заморочки.

UDP порт в LWIP еще поднять нужно правильно, и то я по UDP делал, понимая что потеря данных обеспечивается. Не все данные погонишь таким каналом. По TCP/IP предпочтительнее.
Go to the top of the page
 
+Quote Post
mantech
сообщение Jan 17 2015, 08:05
Сообщение #9


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Aner @ Jan 17 2015, 02:42) *
UDP порт в LWIP еще поднять нужно правильно, и то я по UDP делал, понимая что потеря данных обеспечивается. Не все данные погонишь таким каналом. По TCP/IP предпочтительнее.


Ну вообще-то это само сабой разумеется, и я не первый год в "теме"... rolleyes.gif Писал, что не делал драйверов под винду.

Цитата(Ruslan1 @ Jan 17 2015, 02:35) *
Я не помню что именно мы использовали для экспериментов, так как в результате отказались от идеи виртуальных портов и я просто в исходники добавил все нужное напрямую (поддержку канала связи через Езернет). Но оно работало и через такой виртуальный порт тоже.


Я полностью согласен, что в самописной программе использовать эти рудименты, как VCP - глупо, но если софт без исходников и работает только с комом, то что тут поделаешь?...

Цитата(Ruslan1 @ Jan 17 2015, 02:35) *
А ничего там хитрого нет: берете UDP порт и гоните/принимаете данные.
На компьютере ставите программу что-то типа "Virtual COM UDP TCP Port" (это ключ для гугления, их много разных в интернете), настраиваете ее не Ваш UDP порт и у Вас в системе появляется виртуальный порт, привязанный к данному UDP.


Хитрого там ничего нет, это понятно, но исходники-то очень желательны, и не потому, что я решил их пересобрать и отредактировать, а просто, чтобы знать, что должен ответить мой контроллер на запрос драйвера...
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Jan 17 2015, 10:16
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(mantech @ Jan 17 2015, 10:05) *
Хитрого там ничего нет, это понятно, но исходники-то очень желательны, и не потому, что я решил их пересобрать и отредактировать, а просто, чтобы знать, что должен ответить мой контроллер на запрос драйвера...

Извините, но я сомневаюсь что вы "В теме". Дело в том, что не существует исходников того "что должен ответить мой контроллер на запрос драйвера". Почитайте хоть что такое UDP, что ли. И, заодно, что такое TCP. Иначе следующим будет вопрос "исходники драйвера чтобы понять как установить TCP соединение". TCP тоже, кстати, с полпинка поднимается в LwIP (telnet, например).

2Aner: А что именно сложного в LwIP с "поднятием" UDP?
вот выдрал из своего проекта пару строк, где упоминаются нужные функции LwIP, это передача.
Код
    xUdpConn = netconn_new ( NETCONN_UDP ); // could be NULL
    netbuf_ref(xNetBuf, (const void*)(&udpPktArray[0]), UDP_HEADER_LEN+UDB_DATA_LEN);
    xRes = netconn_send ( xUdpConn, xNetBuf );

Или Вы про сложность реализации в PC? там тоже ничего хитрого. А если нужен именно честный видимый операционкой виртуальный порт- вообще не вижу смысла писать то что уже написано и отлажено другими.

И про необходимость надежной передачи: вы вообще-то эмулируете компорт, в котором никаких надежных передач и переповторов не предусмотрено, поэтому не вздумайте отсебятиной заниматься. Контролем целостности и валидности данных уже следующий уровень занимается, который и так должен быть реализован в софте, ориентированном на RS232.
Go to the top of the page
 
+Quote Post
mantech
сообщение Jan 17 2015, 12:30
Сообщение #11


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Ruslan1 @ Jan 17 2015, 13:16) *
Или Вы про сложность реализации в PC? там тоже ничего хитрого. А если нужен именно честный видимый операционкой виртуальный порт- вообще не вижу смысла писать то что уже написано и отлажено другими.

И про необходимость надежной передачи: вы вообще-то эмулируете компорт, в котором никаких надежных передач и переповторов не предусмотрено, поэтому не вздумайте отсебятиной заниматься. Контролем целостности и валидности данных уже следующий уровень занимается, который и так должен быть реализован в софте, ориентированном на RS232.


Если честно, Вы сами писали подобные драйвера?? Если да, тогда вопрос, каким образом передаете конфиг порта, скорости и пр...?? Причем "котором никаких надежных передач и переповторов не предусмотрено" в этом случае?? И второе, как драйвер порта вообще узнает, что подключен именно мост уарт-эзернет, а не просто любяа шняга, которая слушает и устанавливает соединение по порту хххх udp??
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jan 17 2015, 15:04
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



У меня есть решение.
Берете проц и делаете USB - CDC -> Ethernet
А на своей плате делаете Ethernet -> UART

USB - CDC - стандартный класс который будет виден в винде как виртуальный ком порт автоматом.
а езернет будет ваш.


Я так понимаю если использовать уже показанный выше hw-group что Руслан показал, то там скорее всего описано что по UDP к вам придет. То есть они написали драйвер который виден как виртуальный ком порт и шлет понятные данные по UDP.
Go to the top of the page
 
+Quote Post
mantech
сообщение Jan 17 2015, 19:06
Сообщение #13


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Golikov A. @ Jan 17 2015, 18:04) *
Берете проц и делаете USB - CDC -> Ethernet
А на своей плате делаете Ethernet -> UART


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

Цитата(Golikov A. @ Jan 17 2015, 18:04) *
Я так понимаю если использовать уже показанный выше hw-group что Руслан показал, то там скорее всего описано что по UDP к вам придет. То есть они написали драйвер который виден как виртуальный ком порт и шлет понятные данные по UDP.


Дак это я понял, он создаст вирт. ком, но я не знаю "внутренний" протокол взаимодействия и настройки их железки компом(драйвером). Транспорт понятно - udp, но нужно иметь и драйвер и железку, и потом прослушивать канал и смотреть, что куда передается, а железки у меня нет. И навряд-ли они будут все это описывать - пользователям-то зачем это знать laughing.gif
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jan 17 2015, 20:14
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



я бегло смотрел, но я так понял что это как-бы порт двойного назначения под их железку, и под пользовательскую. С их железкой много фичь, с пользовательской мало, но из этого следует что все-таки как-то ее можно сделать. Значит они либо раскрывают протокол, либо он туп до безобразия и в пакете UDP просто передаются данные.

Скорость обмена, биты четности и прочая байда - не имеет смысла для Ethernet, там ведь нет асинхронщины с необходимой времянкой, как и стоповых бит. А контроль четности перекрывается контрольными суммами. Потому есть мнение что они просто данные херачат и все, а настройки не передают. Правда управление потоком не понятно как сделано, но может так оказаться что поскольку скорость езернета сильно больше всех разумных уартов, то управления потоком просто нет...

надо связываться с ребятами, скачивать что они дают, писать письма, изучать вопрос так сказать... думаю это самое близкое к тому что вам надо из того что вообще может быть.
Go to the top of the page
 
+Quote Post
mantech
сообщение Jan 17 2015, 20:50
Сообщение #15


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Golikov A. @ Jan 17 2015, 23:14) *
я бегло смотрел, но я так понял что это как-бы порт двойного назначения под их железку, и под пользовательскую.
надо связываться с ребятами, скачивать что они дают, писать письма, изучать вопрос так сказать... думаю это самое близкое к тому что вам надо из того что вообще может быть.


А я понял, что у них есть 2 проги под 1 порт - свободно распространяемая и мультипортовая - с лицензией. Мне хватило б и однопортовой, но док по протоколу я не нашел, а может плохо искал - глаза устали...

Писать им, думаю пустая затея - они же не опенсорсом занимаются, а продают железки, спрашивается, зачем рассказывать конкуренту? Может я продавать потом захочу все это biggrin.gif

ЗЫ. Поищем еще, уж больно с всякими ддк масдайными не охота связываться crying.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 16:12
Рейтинг@Mail.ru


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