|
Vybrid Ethernet to UART bridge, Драйвера для компа |
|
|
|
Jan 16 2015, 16:52
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Приветствую.
Появилась задачка добавить функционал контроллера модулем uart-ethernet, раньше использовали отдельные модули "тиббо", сам модуль и драйвер ком-порта под винду.
Контроллер - vybrid mvf61nn стек - LWIP в данный момент используется как web-сервер. В сети есть несколько проектов, как "прикрутить" к стеку функционал посл. порта, НО не смог найти к ним "вторую часть" - программный драйвер под винду(не важно какую, хрюшу или семерку), написанием драйверов под винду никогда не занимался, и честно говоря, нет большого желания и времени, а пытаться использовать тот-же драйвер от тиббо - нет документации. Может кто знает, где посмотреть или поискать эти творения??
|
|
|
|
|
Jan 16 2015, 20:04
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(Golikov A. @ Jan 16 2015, 20:06)  Не очень понятно чего вы хотите найти за драйвер  Или вы хотите чтобы у вас был виртуальный ком порт? ну тогда ручками ручками, стандарта на формат такого рода данных нет. Я знаю, что стандарта нет, в том-то и дело. Решил узнать, может кто уже занимался подобным, есть ссылки на проекты, а то в инете ищешь исходники - часть самого устройства на контроллере есть, а для компа драйвера нет... Кому нужна половина комплекта?? Разве, что просто удлинитель ком-порта по сети
|
|
|
|
|
Jan 16 2015, 23:35
|
Гуру
     
Группа: Свой
Сообщений: 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, кажется ее и использовали.
|
|
|
|
|
Jan 17 2015, 08:05
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(Aner @ Jan 17 2015, 02:42)  UDP порт в LWIP еще поднять нужно правильно, и то я по UDP делал, понимая что потеря данных обеспечивается. Не все данные погонишь таким каналом. По TCP/IP предпочтительнее. Ну вообще-то это само сабой разумеется, и я не первый год в "теме"...  Писал, что не делал драйверов под винду. Цитата(Ruslan1 @ Jan 17 2015, 02:35)  Я не помню что именно мы использовали для экспериментов, так как в результате отказались от идеи виртуальных портов и я просто в исходники добавил все нужное напрямую (поддержку канала связи через Езернет). Но оно работало и через такой виртуальный порт тоже. Я полностью согласен, что в самописной программе использовать эти рудименты, как VCP - глупо, но если софт без исходников и работает только с комом, то что тут поделаешь?... Цитата(Ruslan1 @ Jan 17 2015, 02:35)  А ничего там хитрого нет: берете UDP порт и гоните/принимаете данные. На компьютере ставите программу что-то типа "Virtual COM UDP TCP Port" (это ключ для гугления, их много разных в интернете), настраиваете ее не Ваш UDP порт и у Вас в системе появляется виртуальный порт, привязанный к данному UDP. Хитрого там ничего нет, это понятно, но исходники-то очень желательны, и не потому, что я решил их пересобрать и отредактировать, а просто, чтобы знать, что должен ответить мой контроллер на запрос драйвера...
|
|
|
|
|
Jan 17 2015, 10:16
|
Гуру
     
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Jan 17 2015, 12:30
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(Ruslan1 @ Jan 17 2015, 13:16)  Или Вы про сложность реализации в PC? там тоже ничего хитрого. А если нужен именно честный видимый операционкой виртуальный порт- вообще не вижу смысла писать то что уже написано и отлажено другими.
И про необходимость надежной передачи: вы вообще-то эмулируете компорт, в котором никаких надежных передач и переповторов не предусмотрено, поэтому не вздумайте отсебятиной заниматься. Контролем целостности и валидности данных уже следующий уровень занимается, который и так должен быть реализован в софте, ориентированном на RS232. Если честно, Вы сами писали подобные драйвера?? Если да, тогда вопрос, каким образом передаете конфиг порта, скорости и пр...?? Причем "котором никаких надежных передач и переповторов не предусмотрено" в этом случае?? И второе, как драйвер порта вообще узнает, что подключен именно мост уарт-эзернет, а не просто любяа шняга, которая слушает и устанавливает соединение по порту хххх udp??
|
|
|
|
|
Jan 17 2015, 19:06
|
Гуру
     
Группа: Участник
Сообщений: 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, но нужно иметь и драйвер и железку, и потом прослушивать канал и смотреть, что куда передается, а железки у меня нет. И навряд-ли они будут все это описывать - пользователям-то зачем это знать
|
|
|
|
|
Jan 17 2015, 20:14
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
я бегло смотрел, но я так понял что это как-бы порт двойного назначения под их железку, и под пользовательскую. С их железкой много фичь, с пользовательской мало, но из этого следует что все-таки как-то ее можно сделать. Значит они либо раскрывают протокол, либо он туп до безобразия и в пакете UDP просто передаются данные.
Скорость обмена, биты четности и прочая байда - не имеет смысла для Ethernet, там ведь нет асинхронщины с необходимой времянкой, как и стоповых бит. А контроль четности перекрывается контрольными суммами. Потому есть мнение что они просто данные херачат и все, а настройки не передают. Правда управление потоком не понятно как сделано, но может так оказаться что поскольку скорость езернета сильно больше всех разумных уартов, то управления потоком просто нет...
надо связываться с ребятами, скачивать что они дают, писать письма, изучать вопрос так сказать... думаю это самое близкое к тому что вам надо из того что вообще может быть.
|
|
|
|
|
Jan 17 2015, 20:50
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(Golikov A. @ Jan 17 2015, 23:14)  я бегло смотрел, но я так понял что это как-бы порт двойного назначения под их железку, и под пользовательскую. надо связываться с ребятами, скачивать что они дают, писать письма, изучать вопрос так сказать... думаю это самое близкое к тому что вам надо из того что вообще может быть. А я понял, что у них есть 2 проги под 1 порт - свободно распространяемая и мультипортовая - с лицензией. Мне хватило б и однопортовой, но док по протоколу я не нашел, а может плохо искал - глаза устали... Писать им, думаю пустая затея - они же не опенсорсом занимаются, а продают железки, спрашивается, зачем рассказывать конкуренту? Может я продавать потом захочу все это ЗЫ. Поищем еще, уж больно с всякими ддк масдайными не охота связываться
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|