![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить данные через USB порт
Василий © (2003-08-28 14:16:00)
Подскажите пожалуйста!
Как получить данные с внешнего устройства (данные в виде параллельного 12 разрядного кода) в свою программу написанную на Delphi?
N169 (2003-08-29 14:22:00) [1]
$20 это про бит. Вот записать $20 в регистр управления, и выходы заработают как входы.
Через USB работать не будет, т.к. порт в этом случае поддерживает станд. протокол 1284 и недоступен через адресное пространство устройств - не можем обращаться напрямую.
Василий (2003-08-29 14:08:00) [2]
Спасибо!
А 20$ - это о чём?
Кстати, а такая тема через адаптеры USB=>LPT будет работать?
N169 (2003-08-29 13:27:00) [3]
Шина данных двунаправленная, там бит есть в регистре управления - DCR_DIRECTION, $20. Ставим в 1 - и выходы превращаются во входы. Читать можно из регистра данных.
Оставшиеся 4 бита - из регистра состояния.
Василий (2003-08-29 12:23:00) [4]
To N169:
ОТЛИЧНО! Я просто в восторге если это всё так просто!
Значит, если я всё правильно понял, делаем так: берём 12 разрядов с ТТЛ регистра и подаём восемь на выходнуюшину данных а остальные на вышеперечисленные контакты. А тогда ведь надо перевести LPT в режим приёма информации, так? Или он по умолчании отрублен от шины а там по команде или читает или пишет?
Василий (2003-08-29 11:46:00) [5]
To Jeer:
Ты имеешь в виду что получать даные сразу с двух или трёх LPT портов? Это мысль! А с LPT можно просто сигнал снимать без всяких наворотов со стороны внешнего железа?
N169 (2003-08-29 11:41:00) [6]
Проще всего, IMHO, через LPT порт.
Если 12 линий, то 8 линий можно передавать через D0-D7, остальные через сигналы ACK. BUSY,SELECT и ERROR.
Как раз все вх. линии будут заняты.
Потребуются всего лишь кусок шнура и разъём. На D0-D7 потребуется поставить 8 резисторов по 330 Ом, чтобы не пожечь ничего (Эти линии двунаправленные и по умолчанию работают на выход).
"Конструкция выходного дня" :)
Если все ваши линии в уровнях TTЛ, разумеется. Если нет - придётся паять формирователи.
А по программному управлению - просто. Берём компонент DLPortIo или LPTVAMP, или GIVEIO и работаем с регистрами порта напрямую, читая данные. Это, как говорится, общее место.
Jeer (2003-08-29 11:19:00) [7]
Купить PCI-карту ввода-вывода.
Сделать свою железку на LPT и данные пар-последовательно передавать
Василий (2003-08-29 11:12:00) [8]
To N169:
Тоесть практически человеку без опыта в этом деле ничего не сделать?
А что за MasterKit подразумевается?
Может быть пока на LPT остановиться? Но там насколько я понимаю всего 4 входные линии данных... А я могу сжать хотябы в 8 бит (6 число и 2 умножения или сдвиги) хотя это нагромождает схему.
Подскажи пожалуйста, как мне это хозяйство (12ти разрядный бинарный код) проще всего на компьютере получать? Что бы графики всякие строить и т.п.
Jeer (2003-08-29 10:38:00) [9]
http://www.lvr.com/usb.htm
N169 (2003-08-29 10:34:00) [10]
Ну выбираем типа контроллер, делаем на нём хардварину, пишем системную поддержку (драйверы, поддержка юзерового уровня) и все дела.
Самый простой вар/т - использовать переходники USB-COM или USB-LPT в готовом виде или с теми же чипами (FT232, FT245) - такие устройства в системы выглядят как COM или LPT порт, не требуют драйверописательства. Однако внешнее устройство должно при этом поддерживать протокол обмена RS232 или IEEE1284 + проблемы с динамикой.
Крутой вариант - разрабатываем свой контроллер на чипе с USB интерфейсом. Сойдёт, например, Atmel USB355, (USB320 - дрянь),
проч. У Cupress semiconductor тоже есть подобная линейка чипов (на них, к примеру, мышки делают).
Человечный вариант - Любой-доступный-контроллер + чип-адаптер, напр., USBN9601, -02, -03
То есть, сначала надо определиться с хардом - USB устройство обязательно должно содержать некий процессор, который будет реализовывать протоколы обмена с шиной и с внешними девайсами (ваши 12 линий). Плюс требования к потокам данных, ко времени реакции и т.д --> выбор. Плюс денежная сторона. Надо будет всё тщательно просчитать.
Вообще, чем плох USB - большими начальными затратами. И материальными, и трудовыми. Элементарный девайс типа мышки, сделанный с нуля - это минимум $300, выброшенные на железо (Master kit, soft, программатор, чипы, материалы). Плюс до 2 месяцев напряжённой работы. Так что вещь "на коленке" сделать достаточно трудно.
Василий (2003-08-29 09:52:00) [11]
Совершенно верно!!! А USB хочу использовать чтобы в будущем можно было прибором с наладонником пользоваться.
Подскажи пожалуйста если знаешь...
N169 (2003-08-28 14:51:00) [12]
А куда он идёт, этот 12-тиразрядный параллельный код?
Просто есть 12 концов с бинарными сигналами, так, что ли?