vik362 0 15 февраля, 2010 Опубликовано 15 февраля, 2010 · Жалоба Здравствуйте. В теме http://electronix.ru/forum/index.php?showtopic=72546 у нас поднята проблема по встраиваемой системе :). Итак, задача. Нужно для некоего дивайса с usb сделать туннель. Подразумевается встраиваемая система, минимальной стоимости и сложности, в которую с одной стороны в интерфейс usb втыкается оный дивайс, а с другой - Ethernet кабель (с питанием). Все это должно подключаться к серверу. Предположительно ориентация была на платформу EKI-LM3S8962 от TI, как базовое устройство. В урезанном виде. Но возможны варианты. Стоимость системы по комплектации - менее $30-$40. Поскольку у нас специалистов по данной тематике у нас нет, ждем Ваши предложения. Работа - Москва, м. Преображенская площадь. Возможен удаленный вариант работы (успешный опыт сотрудничества с людьми у нас такой есть). Работа расчитана на до конца мая. Что должно быть в результате работы: 1). Согласована схема устройства минимальной конфигурации. 2). Тестовая платформа программируется с получением моста сервер - Ethernet - usb - дивайс. 3). В это время разводится нами усеченный вариант тестовой платформы (с необходимыми нам дополнительными компонентами). 4). Завершение работы - встраиваемая система работает на разведенной нами плате. 5). Проводится тренинг наших сотрудников для доработки ПО под наши задачи. Ваши предложения - в личку. Виктор Иванович. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mirr 0 15 февраля, 2010 Опубликовано 15 февраля, 2010 · Жалоба Здравствуйте, предложение отправил в личку. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sibyl Vane 0 16 февраля, 2010 Опубликовано 16 февраля, 2010 · Жалоба Добрый день! У нас есть библиотека для похожего устройства. За подробностями в личку или по почте [email protected] Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vik362 0 17 февраля, 2010 Опубликовано 17 февраля, 2010 (изменено) · Жалоба Спасибо всем ответившим. Поступившая информация требует осмысления. В выходные со всеми свяжусь. PS. До сих пор не понятно, как правильно реализовывать систему и как правильно сформулировать ТЗ, и, соответственно, определить объем работы. 5). Проводится тренинг наших сотрудников для доработки ПО под наши задачи.Здесь подразумевается, объяснить нам, как запустить систему, и ответить на десяток вопросов по почте и/или телефону. Изменено 17 февраля, 2010 пользователем vik362 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sibyl Vane 0 17 февраля, 2010 Опубликовано 17 февраля, 2010 · Жалоба PS. До сих пор не понятно, как правильно реализовывать систему и как правильно сформулировать ТЗ, и, соответственно, определить объем работы. Думаю, каждый здесь предложит какой-то свой вариант исходя из своего опыта. Безусловно, чтобы предложить оптимальный вариант, нужно знать более конкретно, что у Вас за устройство, как передаются данные и какое ПО уже есть. Сама по себе идея не нова, у нас есть библиотека и собрано устройство "типа" "TCP/IP Over USB" на ARM Cortex M3. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NickS 0 18 февраля, 2010 Опубликовано 18 февраля, 2010 · Жалоба Я думаю вы не очень адекватно понимаете сложность того, что просите. И не надо путать с контроллером Ethernet подключаемом по USB. Это стандартное решение, как впрочем и TCP/IP через USB. У вас же надо пропустить USB через Ethernet, что крайне сомнительно. Начальные условия: И устройство подключаемое по USB и программа обслуживающея ее по USB суть черный ящик и не должно быть изменено. Видится по крайней мере одно устройство:мост Ethernet<->USB но в котором USB будет хостом. далее надо будет придумать (разработать протокол который будет преносить USB пкеты, информацию енумерации, и сходу не ясно, что еще. Ясно только, что просто перегносом пакетов не обойтись) Далее есть два варианта: Либо разработать драйвер на ПК который будет соединение по Ethernet видеть как USB порт. И будет работать с разработанным протоколом. Не уверен, что такое вообще возможно, но не тривиальная задача. Либо еще одно устройство мост Ethernet<->USB но в котором USB будет функция, однаке не путать с Ethernet контроллерам на USB. Оно должно работать с разработанным протоколом и прикидываться вашим устройством для USB. Я еще могу представить как будет происходить енумерация устройства. (вначале Ваше устройство подключается к удаленному девайсу, оно проводит енумерацию, читает все дескрипторы и далее через Ethernet передает их на ближний конец, который эмулирует подключение устройства и сам проводит енумерацию.) Не у верен, что и здесь не будет каких нибудь подводных камней. Я еще могу представить передачу и перетрарастяцию пакетов на передачу. Однако я совсем не могу представить чтение из Endpoint-а. Ведь как только пройдет заголовок на чтение устройство немедлено должно отдать пакет. И существенные задержки здесь недопустимы. И я не верю, что это возможно. По крайней мере с микроконтроллерной реализацией мостов. На FPGA Наверное что то можно, но только под 1.1 спецификацией. т.е со скоростью обмена 12М На 480М не верю и на FPGAпо крайней мере очень не тривиально. У вас же как вами сказано весь этот геморой нужен для поддержки довольно старого оборудования, а не для серийного изготовления. Предложения удлинить USB через оптику (такие устройства есть и они позволяют отнести USB устройство на несколько километров от компьютера вас не устрайвает ценой решения. Однако, данная разработка тяне на несколько тесятков дысяч УЕ. И не гарантировано, что закончится успехом. Что могу посоветовать. Ранее вы писаль, что такое устройство подключается к выделенномукомпьютеру , а далее со всех них идет сбор информации на общий сервер. Так и сделать. Подключить каждое устройство к маленькому промышленному контроллеру, на котором запустить обслуживающую программу, а далее их всех соеденить сетью с сервером. Дешево исердито. И ничего городить не надо. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
baken 0 19 февраля, 2010 Опубликовано 19 февраля, 2010 · Жалоба "Да, нет, автору не нужна удаленная ренумерация устройства..." Написал чушь, согласен, с последующим постом, на соседнюю тему не ходил. Поспешил. Ну извините. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_3m 7 19 февраля, 2010 Опубликовано 19 февраля, 2010 · Жалоба Да, нет, автору не нужна удаленная ренумерация устройства ... Я всегда поражаюсь ответам в конференциях. Что нужно автору никто и никогда не вникает. В исходном посте приведена ссылка на соседнюю ветку. Там написано: Есть маленький, но недешевый дивайс адной фирмы, который имеет засекреченную структыру (заказная ПЛИС внутри). Под USB. Соответственно: драйверы, прикладная программа, ets. Все на PC Win (будем считать, это сервер). ... К ейному дивайсу есть какое-то ПО ...И, похоже, используется криптостойкое шифрование для обмена (передают за одно измерение 300 К). ... нужна встраиваемая система, которая является транслятором между сервером и дивайсом. Таким образом автору нужно обеспечить ПРОЗРАЧНОЕ подключение usb девайса по ethernet со ШТАТНЫМИ дровами и софтом на стороне PC. Расстояния у него порядка 100м, индустриальное окружение. А теперь кто возьмется за такую задачу поднимите руки и назовите количество нулей в бюджете разработки. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 26 19 февраля, 2010 Опубликовано 19 февраля, 2010 · Жалоба А теперь кто возьмется за такую задачу поднимите руки и назовите количество нулей в бюджете разработки. Дык, те кто уже писали filter-driver для USB и NDIS, те и могут взяться.. :rolleyes: Кол-во $-ых нулей - где-то в районе пяти.. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetal 0 19 февраля, 2010 Опубликовано 19 февраля, 2010 · Жалоба По моему тут ничего разрабатывать не надо. Ставится пром. PC с установленным на ней софтом и используется по RDP. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vik362 0 19 февраля, 2010 Опубликовано 19 февраля, 2010 (изменено) · Жалоба Спасибо еще раз всем ответившим и принявшим сложность проблемы :) (или, наоборот, простоту :)). Итак, что удалось установить в последнее время: К компу возможно подключение до 8 дивайсов, что нас вполне устраивает. Но: в .pdf сие есть, а вот программы для этого нет. В SDK разработчика, за которое, между прочем, уплачены приличные деньги, нет ничего, окромя каких-то невнятных описаний и упоминания сего факта. И они рекомендуют написать эту программу самостоятельно :blink: :w00t: :crying: Единственное послабление - есть функции непосредственного обращения к дивайсу по его #, написанному на шильдике. Естественно, все это написано под студией типа 96 года издания, так что на интерфейс без слез не глянешь. И постоянный вызов библиотек и драйвера, которые, есс-но поставляются как есть (вот поэтому я и написал as if :)) Изменено 19 февраля, 2010 пользователем vik362 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vik362 0 19 февраля, 2010 Опубликовано 19 февраля, 2010 (изменено) · Жалоба ?... По моему тут ничего разрабатывать не надо. Ставится пром. PC с установленным на ней софтом и используется по RDP.Ценой по комплектации до $40... Таким образом автору нужно обеспечить ПРОЗРАЧНОЕ подключение usb девайса по ethernet со ШТАТНЫМИ дровами и софтом на стороне PC. Расстояния у него порядка 100м, индустриальное окружение. Таким образом, задача имеет решение в объеме немерянных ресурсов? Тогда, господа, кто сделает мне подарок к празднику? Ну, там два метра хорошей веревки и обмылок :)? Изменено 19 февраля, 2010 пользователем vik362 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NickS 0 19 февраля, 2010 Опубликовано 19 февраля, 2010 · Жалоба ?... Ценой по комплектации до $40... О цене по комплектации в $40 можете забыть. Как и о разработке моста, если не готовы заплатить за нее десятки, (не один десяток) тысяч УЕ. Полюбому дороже готового компьютера. Там можно обойтись ценой в $200-$300. Что для промышленных целей вполне оправданная цена. Если только у Вас не несколько сотен таких Устройств. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vik362 0 19 февраля, 2010 Опубликовано 19 февраля, 2010 (изменено) · Жалоба О цене по комплектации в $40 можете забыть. Как и о разработке моста, если не готовы заплатить за нее десятки, (не один десяток) тысяч УЕ. Объясните тогда неспециалисту: почему? Из поста уважаемого NickS видно, что это действительно нетривиальная задача. Но я полагал, что сие устройство уже должно быть стандартным, т.к. потребность в нем есть не только у меня. Хорошо, возможно ли такое инженерное решение: встраиваемое устройство - Linux - wine - программа внутри - далее как выше? (программа и драйверы требуют незначительных ресурсов...) До $100? Изменено 19 февраля, 2010 пользователем vik362 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VslavX 0 19 февраля, 2010 Опубликовано 19 февраля, 2010 · Жалоба Дык, те кто уже писали filter-driver для USB и NDIS, те и могут взяться.. :rolleyes: +1, любое обращение к девайсу никак не минует USBD - драйвер хоста USB (OHCI или EHCI). Формат запросов к нему неизменен и документирован полностью в DDK. Поэтому сверху на USBD ставится драйвер-фильтр и все запросы к конкрентному усторйству аккуратненько забираются и отправляются на удаленное выполнение по сети, до локального USBDF даже не доходят. Могут быть сложности с изохронными передачами, но это обычно только для мультимедии встречается. С сеткой в ядре с NDIS лучше не возиться, лучше пользовать TDI. При наличии опыта такое вполне за два-три месяца пишется, и пять нулей за такой драйвер, ИМХО, немного нескромно. Еще есть сложность - эмуляцию энумерации все равно придется делать - чтобы Windows загрузила специфический драйвер устройства. Такое можно сделать через физический драйвер (тот который PDO создает и обслуживает, это уже сурьезно - это последний в цепочке device objects - там ВСЕ запросы обрабатывать надо, а не просто радостно вниз пробрасывать, в отличие от драйвера фильтра или FDO), поэтому, возможно, следует писать не фильтр-драйвер, а собственно драйвер виртуального USBD - он сможет сообщить о появлении удаленного устройства, которое якобы появилось локально на этом виртуальном USBD. Тут полезно смотреть пример "toaster" из DDK - там этот механизм разжеван неплохо, за пару месяцев разобраться тоже реально ( был и такой опыт). А на удаленной стороне ставиться платка на LPC17xx, принимает запросы по ethernet и выполняет их на USB OTG в режиме хоста, тут$40 в самый раз будут. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться