2010-08-17 3 views
3

Мне поручено написать драйвер USB для нашего встроенного программного обеспечения для отправки необработанных данных в Host. Это будет использоваться для отправки некоторых данных ведения журнала на хост. Мы используем iMX31 litekit для разработки.Программирование USB в встроенной системе для отправки некоторых данных для размещения для печати

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

Так может ли кто-нибудь меня навестить здесь? Любая статья, ссылка или код приветствуются.

+0

Какую хост-систему вы планируете? – cmcginty

+0

Host Windows и целевой ThreadX – binW

ответ

1

Некоторые вещи, чтобы рассмотреть следующие вопросы:

Является ли это высокая пропускная способность устройства, как камеры или записи данных или устройства с низкой пропускной способностью?

Для низкой пропускной способности я настоятельно рекомендую сделать ваше устройство устройством USB HID class. Это класс устройств, который поддерживает клавиатуры, мыши, джойстики, игровые площадки и т. П. Относительно легко отправлять данные практически в любое приложение, и, как правило, не требуется писать пользовательский драйвер устройства на стороне хоста. Эта последняя особенность сама по себе часто стоит затрат на легкое искажение ваших данных в форме, принятой классом HID. Все настольные операционные системы, которые используют USB, могут использовать HID-устройства, поэтому вы легко получаете широкую совместимость.

Для обеспечения высокой пропускной способности вам по-прежнему будет лучше обслуживаться, если ваше устройство подходит к одному из хорошо установленных классов устройств, где можно использовать драйвер накопительного устройства на стороне хоста. Один из подходов, который часто работает, - использовать Mass Storage class и эмулировать дисковод, содержащий один файл. Затем ваше устройство просто монтируется на хост, как если бы это был диск, и вы общаетесь, читая и записывая один (или несколько) файл.

Я ожидаю, что там будет достаточный образец кода для любого серьезного набора микросхем USB-устройств, который реализует оба или оба из HID и Mass Storage.

Если вы действительно должны бродить по полностью настраиваемой территории устройства, вам нужно будет создавать драйверы устройств для каждой платформы хоста. Библиотека с открытым исходным кодом libusb может оказать некоторую помощь, если ее лицензия совместима с вашим проектом. Есть также способы в новых версиях Windows разрабатывать USB-драйверы, которые запускаются в пользовательском режиме, используя User Mode Driver Framework, которые имеют многие из тех же преимуществ libusb, но не переносятся с платформы Windows.

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

Для действительно хорошего обзора я рекомендую USB FAQ и последнее издание книги Яна, USB Complete.