Jump to content

    

Организовать взаимодействие по USB между платой и компьютером

Добрый день,

 

Возникла задача организовать взаимодействие между платой (с usb разъемом и linux(2.6) на борту) и PC. Взаимодействие в плане посылка команд на плату и получение ответа. Это нужно для отладки ПО, которое крутится на плате.

 

Изначально команды посылались по сети. На плате запущен http сервер и принимал запросы от PC. Но понадобилось отлаживать и сеть. И хочу найти способ отладки через usb. Но в то же время не переписывать ПО на плате по приему через http сервер этих команд.

 

В голове крутится мост: по usb приходит команда на плату-> там как то это ловится и в user space открывается сокет и пишет на тот http сервер. По этому usb предполагается использоваение и других устройств через хаб. Сможно ли черещ один usb скоммутировать и отсылку команд и работу других устройств?

 

Не могли вы подсказать как это организовать и с названием ПО для этой организации?

 

libusb я как то работал, но тонкостей usb протокола и самой библиотеки мало знал и уже забыл.

 

Помогите с решением и какими то подсказками.

 

Спасибо.

Edited by Kirill_Good

Share this post


Link to post
Share on other sites

Если для отладки у вас уже всё есть и заточено для работы по сети + есть физический USB, можете попробовать использовать usbnet. очень удобно - подключил девайс к компьютеру по USB, определилась сетевая карта. На устройстве можно запускать вебсервер, телнет, фтп, не задумываясь, что на физическом уровне используется USB.

Share this post


Link to post
Share on other sites

Еще подумал, что usb вроде имеет режимы работы типа "master slave". Получается PC работает в master и плата тоже. Или контроллер может работать и так и так, если подхимичить. И на какой стороне химичить? Или какой то брелок нужен между ними

 

Если для отладки у вас уже всё есть и заточено для работы по сети + есть физический USB, можете попробовать использовать usbnet. очень удобно - подключил девайс к компьютеру по USB, определилась сетевая карта. На устройстве можно запускать вебсервер, телнет, фтп, не задумываясь, что на физическом уровне используется USB.

 

На плате usb мама. Это имеет значение? И нужно будет обязательно подключать к плате хаб для отладки usb устройств.

Edited by Kirill_Good

Share this post


Link to post
Share on other sites

Компьютер - мастер. А плата у вас мастер или слейв? Если мастер - смотрите моё предыдущее сообщение. Если слейв - то можно использовать gadget. Например http://wiki.virt2real.ru/wiki/USB_gadget

 

Share this post


Link to post
Share on other sites
Компьютер - мастер. А плата у вас мастер или слейв? Если мастер - смотрите моё предыдущее сообщение. Если слейв - то можно использовать gadget. Например http://wiki.virt2real.ru/wiki/USB_gadget

 

Если использовать usbnet нужен ли какой нибудь кабель? usb bridge?

Share this post


Link to post
Share on other sites

Пока надумываю организовать это дело через usb ethernet брелок. На тек момент по моим знаниям хост-хост соединить нельзя два usb устройства. Нужен usb-usb bridge, которые по моим поискам в меньшей доступности в России чем usb ethernet. С последним брелком тогда вообще менять ничего не надо, только http сервер заставить слушать на usb network interface'е.

Edited by Kirill_Good

Share this post


Link to post
Share on other sites

Если кто озадачится таким же вопросом, то решил сделать с помощью ethernet usb адаптера на базе чипа типа ASIX AX88XXX. Драйверы идут на >= 2.6.14. Я взял apple брелок с ASIX AX88772. Встал на 2.6.32 ровно, без каких либо проблем. Драйвер идет на основе usbnet прослойки, упомянутой выше.

Edited by Kirill_Good

Share this post


Link to post
Share on other sites
Еще подумал, что usb вроде имеет режимы работы типа "master slave". Получается PC работает в master и плата тоже. Или контроллер может работать и так и так, если подхимичить. И на какой стороне химичить? Или какой то брелок нужен между ними

 

 

 

На плате usb мама. Это имеет значение? И нужно будет обязательно подключать к плате хаб для отладки usb устройств.

 

USB имеет режимы работы host/device. Но только если у вас OTG. USB мама это непонятно. USB A -- host, USB B -- device. OTG используют мини или микро USB коннектор. Там есть пятый пин, который используется для переключения режима работы.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this