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

Временная работа

Здравствуйте.

 

В теме http://electronix.ru/forum/index.php?showtopic=72546 у нас поднята проблема по встраиваемой системе :).

 

Итак, задача. Нужно для некоего дивайса с usb сделать туннель.

Подразумевается встраиваемая система, минимальной стоимости и сложности, в которую с одной стороны в интерфейс usb втыкается оный дивайс, а с другой - Ethernet кабель (с питанием). Все это должно подключаться к серверу.

 

Предположительно ориентация была на платформу EKI-LM3S8962 от TI, как базовое устройство. В урезанном виде. Но возможны варианты. Стоимость системы по комплектации - менее $30-$40.

 

Поскольку у нас специалистов по данной тематике у нас нет, ждем Ваши предложения.

 

Работа - Москва, м. Преображенская площадь. Возможен удаленный вариант работы (успешный опыт сотрудничества с людьми у нас такой есть).

 

Работа расчитана на до конца мая.

 

Что должно быть в результате работы:

1). Согласована схема устройства минимальной конфигурации.

2). Тестовая платформа программируется с получением моста сервер - Ethernet - usb - дивайс.

3). В это время разводится нами усеченный вариант тестовой платформы (с необходимыми нам дополнительными компонентами).

4). Завершение работы - встраиваемая система работает на разведенной нами плате.

5). Проводится тренинг наших сотрудников для доработки ПО под наши задачи.

 

Ваши предложения - в личку.

Виктор Иванович.

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


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

Добрый день!

 

У нас есть библиотека для похожего устройства. За подробностями в личку или по почте [email protected]

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


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

Спасибо всем ответившим.

 

Поступившая информация требует осмысления.

 

В выходные со всеми свяжусь.

 

PS. До сих пор не понятно, как правильно реализовывать систему и как правильно сформулировать ТЗ, и, соответственно, определить объем работы.

5). Проводится тренинг наших сотрудников для доработки ПО под наши задачи.
Здесь подразумевается, объяснить нам, как запустить систему, и ответить на десяток вопросов по почте и/или телефону.
Изменено пользователем vik362

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


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

PS. До сих пор не понятно, как правильно реализовывать систему и как правильно сформулировать ТЗ, и, соответственно, определить объем работы.

 

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

 

Сама по себе идея не нова, у нас есть библиотека и собрано устройство "типа" "TCP/IP Over USB" на ARM Cortex M3.

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


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

Я думаю вы не очень адекватно понимаете сложность того,

что просите.

 

И не надо путать с контроллером 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 устройство на несколько километров от компьютера

вас не устрайвает ценой решения.

Однако, данная разработка тяне на несколько тесятков дысяч УЕ.

И не гарантировано, что закончится успехом.

 

Что могу посоветовать.

Ранее вы писаль, что такое устройство подключается к выделенномукомпьютеру , а далее со всех них идет сбор информации на общий сервер.

Так и сделать.

Подключить каждое устройство к маленькому промышленному контроллеру,

на котором запустить обслуживающую программу,

а далее их всех соеденить сетью с сервером.

Дешево исердито.

И ничего городить не надо.

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


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

"Да, нет, автору не нужна удаленная ренумерация устройства..."

Написал чушь, согласен, с последующим постом, на соседнюю тему не ходил. Поспешил. Ну извините.

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


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

Да, нет, автору не нужна удаленная ренумерация устройства

...

Я всегда поражаюсь ответам в конференциях. Что нужно автору никто и никогда не вникает.

В исходном посте приведена ссылка на соседнюю ветку.

Там написано:

Есть маленький, но недешевый дивайс адной фирмы, который имеет засекреченную структыру (заказная ПЛИС внутри). Под USB.

Соответственно: драйверы, прикладная программа, ets. Все на PC Win (будем считать, это сервер).

...

К ейному дивайсу есть какое-то ПО ...И, похоже, используется криптостойкое шифрование для обмена (передают за одно измерение 300 К).

...

нужна встраиваемая система, которая является транслятором между сервером и дивайсом.

Таким образом автору нужно обеспечить ПРОЗРАЧНОЕ подключение usb девайса по ethernet со ШТАТНЫМИ дровами и софтом на стороне PC.

Расстояния у него порядка 100м, индустриальное окружение.

 

А теперь кто возьмется за такую задачу поднимите руки и назовите количество нулей в бюджете разработки.

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


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

А теперь кто возьмется за такую задачу поднимите руки и назовите количество нулей в бюджете разработки.

Дык, те кто уже писали filter-driver для USB и NDIS, те и могут взяться.. :rolleyes:

 

Кол-во $-ых нулей - где-то в районе пяти.. :biggrin:

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


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

По моему тут ничего разрабатывать не надо. Ставится пром. PC с установленным на ней софтом и используется по RDP.

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


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

Спасибо еще раз всем ответившим и принявшим сложность проблемы :) (или, наоборот, простоту :)).

 

Итак, что удалось установить в последнее время:

 

К компу возможно подключение до 8 дивайсов, что нас вполне устраивает.

 

Но: в .pdf сие есть, а вот программы для этого нет.

В SDK разработчика, за которое, между прочем, уплачены приличные деньги, нет ничего, окромя каких-то невнятных описаний и упоминания сего факта. И они рекомендуют написать эту программу самостоятельно :blink: :w00t: :crying:

 

Единственное послабление - есть функции непосредственного обращения к дивайсу по его #, написанному на шильдике.

Естественно, все это написано под студией типа 96 года издания, так что на интерфейс без слез не глянешь. И постоянный вызов библиотек и драйвера, которые, есс-но поставляются как есть (вот поэтому я и написал as if :))

Изменено пользователем vik362

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


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

?...

По моему тут ничего разрабатывать не надо. Ставится пром. PC с установленным на ней софтом и используется по RDP.
Ценой по комплектации до $40...

Таким образом автору нужно обеспечить ПРОЗРАЧНОЕ подключение usb девайса по ethernet со ШТАТНЫМИ дровами и софтом на стороне PC.

Расстояния у него порядка 100м, индустриальное окружение.

Таким образом, задача имеет решение в объеме немерянных ресурсов?

 

Тогда, господа, кто сделает мне подарок к празднику?

Ну, там два метра хорошей веревки и обмылок :)?

Изменено пользователем vik362

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


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

?...

Ценой по комплектации до $40...

 

О цене по комплектации в $40 можете забыть.

Как и о разработке моста, если не готовы заплатить за нее десятки, (не один десяток) тысяч УЕ.

Полюбому дороже готового компьютера.

Там можно обойтись ценой в $200-$300.

Что для промышленных целей вполне оправданная цена.

Если только у Вас не несколько сотен таких Устройств.

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


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

О цене по комплектации в $40 можете забыть.

Как и о разработке моста, если не готовы заплатить за нее десятки, (не один десяток) тысяч УЕ.

Объясните тогда неспециалисту: почему?

 

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

 

Хорошо, возможно ли такое инженерное решение:

встраиваемое устройство - Linux - wine - программа внутри - далее как выше?

(программа и драйверы требуют незначительных ресурсов...)

До $100?

Изменено пользователем vik362

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


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

Дык, те кто уже писали 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 в самый раз будут.

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


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

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...