Форум: "Система";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
ВнизКак получить данные через USB порт Найти похожие ветки
← →
Василий (2003-08-28 14:16) [0]Подскажите пожалуйста!
Как получить данные с внешнего устройства (данные в виде параллельного 12 разрядного кода) в свою программу написанную на Delphi?
← →
N169 (2003-08-28 14:51) [1]А куда он идёт, этот 12-тиразрядный параллельный код?
Просто есть 12 концов с бинарными сигналами, так, что ли?
← →
Василий (2003-08-29 09:52) [2]Совершенно верно!!! А USB хочу использовать чтобы в будущем можно было прибором с наладонником пользоваться.
Подскажи пожалуйста если знаешь...
← →
N169 (2003-08-29 10:34) [3]Ну выбираем типа контроллер, делаем на нём хардварину, пишем системную поддержку (драйверы, поддержка юзерового уровня) и все дела.
Самый простой вар/т - использовать переходники 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 месяцев напряжённой работы. Так что вещь "на коленке" сделать достаточно трудно.
← →
Jeer (2003-08-29 10:38) [4]http://www.lvr.com/usb.htm
← →
Василий (2003-08-29 11:12) [5]To N169:
Тоесть практически человеку без опыта в этом деле ничего не сделать?
А что за MasterKit подразумевается?
Может быть пока на LPT остановиться? Но там насколько я понимаю всего 4 входные линии данных... А я могу сжать хотябы в 8 бит (6 число и 2 умножения или сдвиги) хотя это нагромождает схему.
Подскажи пожалуйста, как мне это хозяйство (12ти разрядный бинарный код) проще всего на компьютере получать? Что бы графики всякие строить и т.п.
← →
Jeer (2003-08-29 11:19) [6]Купить PCI-карту ввода-вывода.
Сделать свою железку на LPT и данные пар-последовательно передавать
← →
N169 (2003-08-29 11:41) [7]Проще всего, IMHO, через LPT порт.
Если 12 линий, то 8 линий можно передавать через D0-D7, остальные через сигналы ACK. BUSY,SELECT и ERROR.
Как раз все вх. линии будут заняты.
Потребуются всего лишь кусок шнура и разъём. На D0-D7 потребуется поставить 8 резисторов по 330 Ом, чтобы не пожечь ничего (Эти линии двунаправленные и по умолчанию работают на выход).
"Конструкция выходного дня" :)
Если все ваши линии в уровнях TTЛ, разумеется. Если нет - придётся паять формирователи.
А по программному управлению - просто. Берём компонент DLPortIo или LPTVAMP, или GIVEIO и работаем с регистрами порта напрямую, читая данные. Это, как говорится, общее место.
← →
Василий (2003-08-29 11:46) [8]To Jeer:
Ты имеешь в виду что получать даные сразу с двух или трёх LPT портов? Это мысль! А с LPT можно просто сигнал снимать без всяких наворотов со стороны внешнего железа?
← →
Василий (2003-08-29 12:23) [9]To N169:
ОТЛИЧНО! Я просто в восторге если это всё так просто!
Значит, если я всё правильно понял, делаем так: берём 12 разрядов с ТТЛ регистра и подаём восемь на выходную шину данных а остальные на вышеперечисленные контакты. А тогда ведь надо перевести LPT в режим приёма информации, так? Или он по умолчании отрублен от шины а там по команде или читает или пишет?
← →
N169 (2003-08-29 13:27) [10]Шина данных двунаправленная, там бит есть в регистре управления - DCR_DIRECTION, $20. Ставим в 1 - и выходы превращаются во входы. Читать можно из регистра данных.
Оставшиеся 4 бита - из регистра состояния.
← →
Василий (2003-08-29 14:08) [11]Спасибо!
А 20$ - это о чём?
Кстати, а такая тема через адаптеры USB=>LPT будет работать?
← →
N169 (2003-08-29 14:22) [12]$20 это про бит. Вот записать $20 в регистр управления, и выходы заработают как входы.
Через USB работать не будет, т.к. порт в этом случае поддерживает станд. протокол 1284 и недоступен через адресное пространство устройств - не можем обращаться напрямую.
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.034 c