Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Драйвера и все такое...

28K
03 марта 2010 года
MadGest
45 / / 04.04.2009
Доброго времени суток, долго думал куда отнести вопрос. В конце концов пишу здесь если что перенаправьте.

Суть вопроса такова. Пишу приложение для работы с устройством (Устройство не от производителя любительская сборка) Это устройство имеет USB интерфейс. Написал к нему программулину которая общается с ним по средствам libusb. Но когда начал замерять скорость то увидел что цикл посылка/прием занимает слишком много времени (1 мс ). Ну я дабы не торопиться с вопросами, решил скачать исходники данной библиотечки (libusb). Изучив их понял что все что там есть лишь надстройка над обычными функциями языка (DeviceioControl, CreateFile и т.д.) Умные люди подсказали мол все это виндусовские штучки и тебе мол нужно в режим ядра переходить так как этот самый переход занимает слишком много времени. И вот собственно вопрос. Как мне разогнать скорость работы моего приборчика. А скорость то не малая нужна ну хотябы добиться что то около 1 мкс. Кто может подскажите решение. и вообще можно провернуть данное действие или нет..... Может кто что либо подобное писал и поделится примером.... Работу пишу для диплома.

Заранее спасибо всем поддержавшим. PS. не серчайте если обшибся с разделом.
19K
04 марта 2010 года
Mhael
54 / / 20.03.2008
Разделом и правда ошиблись. Это в win api или в низкоуровневое.
Умные люди скорее всего не очень умные.
Опишите проблему, пока ничего не понятно. Что за устройство и что в нем реализовано? Как вы хотите с ним общаться?
Например я общаюсь с устройствами usb hid , usb mass storage removable , usb mass storage disk . И пока мне не приходилось писать драйвер, поскольку :
- с hid я общаюсь через CreateFile - ReadFile - WriteFile , посылая специальные (заданые нами же) команды;
- с usb mass storage я общаюсь через CreateFile - DeviceIoControl используя SPTI и специальные (заданые нами же) команды;
Драйвер пишется в крайнем случае, когда никак не выручают уже существующие. Да и то, может быть можно обойтись службой..
28K
04 марта 2010 года
MadGest
45 / / 04.04.2009
Суть устройства в оцифровке и распределения сигнала. После оцифровки 12 бит из АЦП пересылаются на USB порт где дальше на компьютер. Пока реализован control режим передачи данных. И в прошивре и в проге. Общаются по средствам реквестов. Я не то что бы выбираю между типами реализации, у меня главный критерий скорость и время за которое передадутся эти 12 бит. Прошу совета. Стоит задача за 1 мкс провести цикл read/write.
261
08 марта 2010 года
ahilles
1.5K / / 03.11.2005
Отвечает ли само устройство требованиям USB 2.0. Чтобы была высокая скорость устройство должно отвечать стандарту USB 2.0 (Full Speed или High Speed), всё описано в официальной документации по USB.
[OFFTOP]
Посмотри какие устройства делают на этом сайте _http://www.kernelchip.ru/, работа ними описана на вот тут _http://www.pcports.ru/Articles.php
19K
09 марта 2010 года
Mhael
54 / / 20.03.2008
Тогда наверное все-таки драйвер.
Хотя я бы советовал для начала попробовать все-таки самому через DeviceIoControl покидать юсб-команды в устройство. Аккуратненько так, вдумчиво читая документацию на интерфейс и описание функций. Может вас и устроит результат..
Драйвера сам не писал, так что тут не подскажу. Надеюсь ответят более опытные товарищи.
252
10 марта 2010 года
koderAlex
1.4K / / 07.09.2005
а вы считать умеете ? ацп выдаёт данные блоками . предположим ваш ацп даёт 30 точек по восемь бит на точку , для 1мкс частота передачи 1 мегагерц - итого требуемая минимальная пропускная способность шины должна быть 30 мбайт/сек .
28K
11 марта 2010 года
MadGest
45 / / 04.04.2009
немного непонятен намек? Возможно вы имели ввиду, то что реализовать такую скорость в теории можно. Но вот в чем именно и беда, что на чем реализавать такую связь с компьютером так как скорости стандартных типов передачи данных по usb не реализуют данной возможности!
252
12 марта 2010 года
koderAlex
1.4K / / 07.09.2005
вы бы почитали про usb что-нибудь кроме рекламы .
при изохронных передачах максимальная скорость 24мбайт/сек , но надёжность доставки не гарантируется .
передача прерываний гарантируется , но латентность 10-255мс для низкой , 1-255мс для полной скорости . для высокой от 125мкс .
1 мкс тут и не пахнет .
28K
12 марта 2010 года
MadGest
45 / / 04.04.2009
Когда писал вопрос еще не слишком подробно разобрался с режимами передачи. Из всех типов передачи данных больше всего мне подходит режим interrupt. В libusb есть реализация и работа с этим типом. Но вот ни как не могу найти пример прошивки для организации такого обмена данными. Если есть у вас возможности и знания по данной теме помогите плиз. Может где надыбать пример, во всем что я смог найти это только control.

Заранее спасибо!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог