Отправить нули и единицы на контакты USB данных? - PullRequest
1 голос
/ 17 января 2012

Пытаюсь понять, как мне сделать какое-нибудь программное обеспечение и USB-оборудование.

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

C ++ / Java или любой другой язык (предпочтительнее работать на Linux).

Ответы [ 5 ]

3 голосов
/ 17 января 2012

USB-порты не похожи на «немые» последовательные порты RS-232.Это шина, требующая довольно сложной обработки, управляемая хостом (обычно компьютером).Операции очень низкого уровня, такие как «отправка нулей и единиц» на выводы данных, более или менее невозможны.

Самым простым способом программирования USB из пользовательского пространства в Linux, вероятно, является использование libusb .

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

V-USB например, программный USB-стек для микроконтроллеров Atmel AVR.

1 голос
/ 17 января 2012

Альтернативой эмуляции последовательного порта является USB HID (Human Input Device), который поддерживается в Linux из коробки.Вы бы использовали «HIDAPI» для связи с вашим устройством.

1 голос
/ 17 января 2012

Если вы хотите подключить устройство ввода-вывода с помощью USB, вы можете подключить к порту USB микросхему FTDI, например FT232 (которая используется во многих USB-последовательных кабелях). На ПК вы можете использовать libFTDI , чтобы побитовать выводы ввода / вывода микросхемы FTDI.

Я думаю, что это самый простой способ управления выводами ввода / вывода через USB.

1 голос
/ 17 января 2012

Как уже отмечали другие, вы должны написать драйвер для устройства USB.

Другой вариант - установить связь с устройством по последовательному протоколу через USB, тогда вашему оборудованию необходим чип USB-последовательный порт.Лучший ответ относительно USB через последовательный порт - вопрос Как заставить C ++ выполнять ввод / вывод через порт USB, например, через последовательный порт , автор Mike DeSimone

0 голосов
/ 17 января 2012

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

Помните, что ОС может назначать устройству другой номер порта при каждом подключении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...