Перейти к содержанию
    

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

 

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

 

Контроллер - vybrid mvf61nn

стек - LWIP

в данный момент используется как web-сервер. В сети есть несколько проектов, как "прикрутить" к стеку функционал посл. порта, НО не смог найти к ним "вторую часть" - программный драйвер под винду(не важно какую, хрюшу или семерку), написанием драйверов под винду никогда не занимался, и честно говоря, нет большого желания и времени, а пытаться использовать тот-же драйвер от тиббо - нет документации.

Может кто знает, где посмотреть или поискать эти творения??

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не очень понятно чего вы хотите найти за драйвер:)

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не очень понятно чего вы хотите найти за драйвер:)

 

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

 

Я знаю, что стандарта нет, в том-то и дело. Решил узнать, может кто уже занимался подобным, есть ссылки на проекты, а то в инете ищешь исходники - часть самого устройства на контроллере есть, а для компа драйвера нет... Кому нужна половина комплекта?? Разве, что просто удлинитель ком-порта по сети :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Можно попробовать шарком послушать как выглядит обмен, но нудно это все...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно попробовать шарком послушать как выглядит обмен, но нудно это все...

Ага, а потом заменить логотип Tibbo на "Вася Пупкин и Ко" :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

Все дело в том, что софтина сложная и специфичная, писана х.з кем, работает только по rs232. Вот дело-то в чем...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А ничего там хитрого нет: берете UDP порт и гоните/принимаете данные.

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

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

Помню что искал пару часов что-то приличное, нашлось не сразу и не уверен что оно бесплатное было (но стоит дешево)

 

Upd: нашел, это пользовали

http://www.hw-group.com/products/hw_vsp/index_en.html

там есть фриварная VSP3, кажется ее и использовали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

"прикрутить" к стеку функционал посл. порта только через сокеты, порты и проброс. Golikov пояснил как. А какого драйвера компа тебе нужно? А вот и не так просто удлинитель ком-порта по сети. Обычно все через виртуальные работают, а там свои заморочки.

 

UDP порт в LWIP еще поднять нужно правильно, и то я по UDP делал, понимая что потеря данных обеспечивается. Не все данные погонишь таким каналом. По TCP/IP предпочтительнее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

UDP порт в LWIP еще поднять нужно правильно, и то я по UDP делал, понимая что потеря данных обеспечивается. Не все данные погонишь таким каналом. По TCP/IP предпочтительнее.

 

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

 

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

 

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

 

А ничего там хитрого нет: берете UDP порт и гоните/принимаете данные.

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Извините, но я сомневаюсь что вы "В теме". Дело в том, что не существует исходников того "что должен ответить мой контроллер на запрос драйвера". Почитайте хоть что такое 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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

Если честно, Вы сами писали подобные драйвера?? Если да, тогда вопрос, каким образом передаете конфиг порта, скорости и пр...?? Причем "котором никаких надежных передач и переповторов не предусмотрено" в этом случае?? И второе, как драйвер порта вообще узнает, что подключен именно мост уарт-эзернет, а не просто любяа шняга, которая слушает и устанавливает соединение по порту хххх udp??

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня есть решение.

Берете проц и делаете USB - CDC -> Ethernet

А на своей плате делаете Ethernet -> UART

 

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

а езернет будет ваш.

 

 

Я так понимаю если использовать уже показанный выше hw-group что Руслан показал, то там скорее всего описано что по UDP к вам придет. То есть они написали драйвер который виден как виртуальный ком порт и шлет понятные данные по UDP.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Берете проц и делаете USB - CDC -> Ethernet

А на своей плате делаете Ethernet -> UART

 

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

 

Я так понимаю если использовать уже показанный выше hw-group что Руслан показал, то там скорее всего описано что по UDP к вам придет. То есть они написали драйвер который виден как виртуальный ком порт и шлет понятные данные по UDP.

 

Дак это я понял, он создаст вирт. ком, но я не знаю "внутренний" протокол взаимодействия и настройки их железки компом(драйвером). Транспорт понятно - udp, но нужно иметь и драйвер и железку, и потом прослушивать канал и смотреть, что куда передается, а железки у меня нет. И навряд-ли они будут все это описывать - пользователям-то зачем это знать :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

 

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

 

ЗЫ. Поищем еще, уж больно с всякими ддк масдайными не охота связываться :crying:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...