Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Перехват LPT-порта
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
Edev
Встала такая задача: Стороннее устройство передает данный на принтер по LPT- порту. Необходимо "врезаться" между устройством и принтером и снять необходимую информацию для обработки на компьютере. С какой стороны возможно подойти к задаче? Есть у кого-нибудь идеи?
ALexx
Цитата(Edev @ Jul 27 2007, 10:00) *
Встала такая задача: Стороннее устройство передает данный на принтер по LPT- порту. Необходимо "врезаться" между устройством и принтером и снять необходимую информацию для обработки на компьютере. С какой стороны возможно подойти к задаче? Есть у кого-нибудь идеи?


Можно найти много чего wink.gif
http://www.google.com.ua/search?hl=ru&...nitor&meta=
Edev
Я посмотрел на ссылки и пока увидел только программы. А каким образом и где мне подключиться к в "разрез" цепочки (стороннее устройство с lpt-портом)->(кабель)->(принтер)?
Mirabella
Цитата(Edev @ Jul 27 2007, 11:00) *
Встала такая задача: Стороннее устройство передает данный на принтер по LPT- порту. Необходимо "врезаться" между устройством и принтером и снять необходимую информацию для обработки на компьютере. С какой стороны возможно подойти к задаче? Есть у кого-нибудь идеи?


Если стороннее устройство действительно только передает данные, вопросов никаких быть не должно: физически можно подключиться через какую-нибудь буферную м\схему, ЛН или АП (с 1-го по 18 выв. (шина данных со 2 по 9 выв., если мне не изменяет память).
Но на самом деле LPT порт двунаправленный, поэтому без соответствующей программы не обойтись.
Edev
Думаю при общении с принтером наверное все-таки передает/получает. Я не совсем пока уверен. Насколько я понимаю можно подклюсить мой компьтер по LPT физически через буферную м\схему и поставить программу анализатор LPT-траффика уже на моем компьютере?
MariSev
Цитата(Mirabella @ Jul 27 2007, 13:42) *
Если стороннее устройство действительно только передает данные, вопросов никаких быть не должно: физически можно подключиться через какую-нибудь буферную м\схему, ЛН или АП (с 1-го по 18 выв. (шина данных со 2 по 9 выв., если мне не изменяет память).
Но на самом деле LPT порт двунаправленный, поэтому без соответствующей программы не обойтись.


используются Мосты
У стороннего устройства интерфейс какой, если PCI можно (производитель OXford Semiconductor)
Мосты PCI – LPT
OX12PCI840 Мост из шины PCI в параллельный порт
OX16PCI952 Мост из шины PCI в последовательный и параллельный порт
OX16PCI954 Мост из шины PCI в последовательный и параллельный порт
OXmPCI952 Мост из miniPCI в последовательный и параллельный порт
OXmPCI954 Мост из miniPCI в последовательный и параллельный порт
Либо
с интерфейсом PCI
OX16PCI952 Мост из шины PCI в последовательный и параллельный порт
OX16PCI954 Мост из шины PCI в последовательный и параллельный порт
OXmPCI952 Мост из miniPCI в последовательный и параллельный порт
OXmPCI954 Мост из miniPCI в последовательный и параллельный порт
Edev
Цитата(MariSev @ Jul 27 2007, 14:00) *
используются Мосты
У стороннего устройства интерфейс какой, если PCI можно (производитель OXford Semiconductor)
Мосты PCI – LPT
OX12PCI840 Мост из шины PCI в параллельный порт
OX16PCI952 Мост из шины PCI в последовательный и параллельный порт
OX16PCI954 Мост из шины PCI в последовательный и параллельный порт
OXmPCI952 Мост из miniPCI в последовательный и параллельный порт
OXmPCI954 Мост из miniPCI в последовательный и параллельный порт
Либо
с интерфейсом PCI
OX16PCI952 Мост из шины PCI в последовательный и параллельный порт
OX16PCI954 Мост из шины PCI в последовательный и параллельный порт
OXmPCI952 Мост из miniPCI в последовательный и параллельный порт
OXmPCI954 Мост из miniPCI в последовательный и параллельный порт



У стороннего устройства только доступ к LPT есть, который в свою очередь к принтеру подклюсен. Раскрутить устройство, чтобы посмотреть, что там внутри неполучится.
rezident
ИМХО вам нужно симмитировать входной порт принтера. Только выходные сигналы вам не нужны. Все сигналы вашего логгера должны быть входными. В худшем случае придется реализовать чтение не только стандартного LPT-порта (однонаправленного), а LPT в EPP и/или ECP режимах. Какой хоть принтер-то используется в качестве оконечного устройства?
ssn2000
Поднимаю тему! Возникла подобная ситуация - управлящая панель HAKKO V710ISD выводит информацию в текстовом режиме на EPSON LX-300. Пытаюсь эту информацию писать в файл. Шнур сделал подключив d1-d8 к соответсвующим входам d1-d8 компа. Данные считываются с порта и пишутся в файл - программка на делфи с использованием библиотеки lptwdmio.sys. Запись идет, но есть проблема с задвоением, затроением и т.д. считываемой информацииsad.gif. Т.е. не могу определить смену символа в порту. Прошу помощи знающих людей - с использованием каких сигналов устройство общается с принтером для отправки данных на печать? - у меня такое подозрение что ask и busy не используется - писал вариант программы с реализацией режима spp (через ask и bysy) и просто чтение из порта без смены статуса занятости принтера - без разницы - такое впечатление что управляющую панель не волнует готов принтер или нет - отправляет данные и все...
-Al-
Цитата(ssn2000 @ Aug 31 2007, 09:11) *
Поднимаю тему! Возникла подобная ситуация - управлящая панель HAKKO V710ISD выводит информацию в текстовом режиме на EPSON LX-300. Пытаюсь эту информацию писать в файл. Шнур сделал подключив d1-d8 к соответсвующим входам d1-d8 компа. Данные считываются с порта и пишутся в файл - программка на делфи с использованием библиотеки lptwdmio.sys. Запись идет, но есть проблема с задвоением, затроением и т.д. считываемой информацииsad.gif. Т.е. не могу определить смену символа в порту. Прошу помощи знающих людей - с использованием каких сигналов устройство общается с принтером для отправки данных на печать? - у меня такое подозрение что ask и busy не используется - писал вариант программы с реализацией режима spp (через ask и bysy) и просто чтение из порта без смены статуса занятости принтера - без разницы - такое впечатление что управляющую панель не волнует готов принтер или нет - отправляет данные и все...

А сигнал STROBE учитываете??
ssn2000
Цитата(-Al- @ Aug 31 2007, 15:42) *
А сигнал STROBE учитываете??

пытался - но о появляется только 1 раз и то почему то не всегда или я не успеваю последущие обнаружить... пользовался LPT 3D анализатором. И строб должен появлятся только после busy 0 и ask 1? - дело в том что я писал версию программы без измениния статусов busy и ask - и все равно данные в порт выдавались. Вообще ничего не понимаюsad.gif
Сейчас вообще написал программу строго по диаграмме:
начальные установки ask1, busy0
появление строба - уставление busy 1 - чтение данных до окончания строба - установка ask0 - установка busy 0, ask1 - следущий цикл. Сегодня поеду проверять.
vvs157
Цитата(ssn2000 @ Aug 31 2007, 13:02) *
пытался - но о появляется только 1 раз и то почему то не всегда или я не успеваю последущие

Ловить стробирующие импульсы чисто программным способом довольно сложно - высока вероятность пропуска - особенно под Windows. Попробуйте подключив какой-нибудь цифровой осциллограф посмотреть не пропускаете ли вы стробы.
AlexanderX
Вы практически однозначно пропускаете стробы, а сами данные могут присутсвовать на линии различное время. Поэтому для надежного приема всех данных нужно сделать специфический девайс, с внутренней памятью.
В память данные будут записываться по протоколу LPT порта, а вычитываться через любой доступный интерфейс Вашей программой. Если интерфейс чтения окажется медленнее, чем интерфейс записи, то объем памяти должен обеспечивать накопление максимально возможного количества данных, идущих на принтер.
ssn2000
Цитата(AlexanderX @ Aug 31 2007, 19:15) *
Вы практически однозначно пропускаете стробы, а сами данные могут присутсвовать на линии различное время. Поэтому для надежного приема всех данных нужно сделать специфический девайс, с внутренней памятью.
В память данные будут записываться по протоколу LPT порта, а вычитываться через любой доступный интерфейс Вашей программой. Если интерфейс чтения окажется медленнее, чем интерфейс записи, то объем памяти должен обеспечивать накопление максимально возможного количества данных, идущих на принтер.

Проверил работу новой версии программы - пишет информацию и дублей нет. Зато есть пропуски(их мало - но они естьsad.gif) - вероятно не все стробы получается обнаружить. Оптимизировать программу уже некуда - поэтому быстрее крутить опрос входа для обнаружения стробов вряд ли получится... А что за специфический девайс?
vvs157
Цитата(ssn2000 @ Aug 31 2007, 16:36) *
Проверил работу новой версии программы - пишет информацию и дублей нет. Зато есть пропуски(их мало - но они естьsad.gif) - вероятно не все стробы получается обнаружить. Оптимизировать программу уже некуда - поэтому быстрее крутить опрос входа для обнаружения стробов вряд ли получится... А что за специфический девайс?

Как умозрительный пример - берете второй LPT порт, на стробы ставите RS-триггеры и отлавливаете изменение состояний этих триггеров вторым портом. Им же сбрасываете при необходимости эти триггеры. Можно также организовать прерывания по этому порту по срабатыванию триггеров. Правда не на всяком втором LPT можно сгенерить прерывание
AlexanderX
Я же написал девайс нужно сделать, а точнее РАЗРАБОТАТЬ. Сложность данного девайса не велика, так что или сами копайте, или предложите кому-нибудь. За пару недель Вам его сделают.
Dogmatik
Для начала найдите в инете спецификацию работы LPT порта.
Там расписаны все сигналы порта.
Программно перехватить можно только на уровне драйвера Windows.
Все остальное только при помощи железа. Причем достаточно быстрое
железо, длительность STROBE 10 мкс.
AlexanderX
На самом деле длительность строба обычно гораздо меньше, около 0.5мкс но это не самая большая проблема. Для современных ПЛИС и даже микроконтроллеров - это не проблема.
ssn2000
Цитата(AlexanderX @ Sep 3 2007, 19:18) *
На самом деле длительность строба обычно гораздо меньше, около 0.5мкс но это не самая большая проблема. Для современных ПЛИС и даже микроконтроллеров - это не проблема.


Отключил все ненужные службы. Комп, к которому подключена управляющая панель - будет заниматься только записью с LPT. Запустил программу в тестовом режиме - посмотрю за день что назаписывает - пока претензий нет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.