реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Перехват LPT-порта
Edev
сообщение Jul 27 2007, 07:00
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 27-07-07
Пользователь №: 29 395



Встала такая задача: Стороннее устройство передает данный на принтер по LPT- порту. Необходимо "врезаться" между устройством и принтером и снять необходимую информацию для обработки на компьютере. С какой стороны возможно подойти к задаче? Есть у кого-нибудь идеи?
Go to the top of the page
 
+Quote Post
ALexx
сообщение Jul 27 2007, 08:02
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 22-09-04
Из: Burbach, Germany
Пользователь №: 704



Цитата(Edev @ Jul 27 2007, 10:00) *
Встала такая задача: Стороннее устройство передает данный на принтер по LPT- порту. Необходимо "врезаться" между устройством и принтером и снять необходимую информацию для обработки на компьютере. С какой стороны возможно подойти к задаче? Есть у кого-нибудь идеи?


Можно найти много чего wink.gif
http://www.google.com.ua/search?hl=ru&...nitor&meta=
Go to the top of the page
 
+Quote Post
Edev
сообщение Jul 27 2007, 09:16
Сообщение #3





Группа: Новичок
Сообщений: 4
Регистрация: 27-07-07
Пользователь №: 29 395



Я посмотрел на ссылки и пока увидел только программы. А каким образом и где мне подключиться к в "разрез" цепочки (стороннее устройство с lpt-портом)->(кабель)->(принтер)?
Go to the top of the page
 
+Quote Post
Mirabella
сообщение Jul 27 2007, 09:42
Сообщение #4


старушка-процентщица
****

Группа: Свой
Сообщений: 817
Регистрация: 8-03-06
Пользователь №: 15 067



Цитата(Edev @ Jul 27 2007, 11:00) *
Встала такая задача: Стороннее устройство передает данный на принтер по LPT- порту. Необходимо "врезаться" между устройством и принтером и снять необходимую информацию для обработки на компьютере. С какой стороны возможно подойти к задаче? Есть у кого-нибудь идеи?


Если стороннее устройство действительно только передает данные, вопросов никаких быть не должно: физически можно подключиться через какую-нибудь буферную м\схему, ЛН или АП (с 1-го по 18 выв. (шина данных со 2 по 9 выв., если мне не изменяет память).
Но на самом деле LPT порт двунаправленный, поэтому без соответствующей программы не обойтись.
Go to the top of the page
 
+Quote Post
Edev
сообщение Jul 27 2007, 09:57
Сообщение #5





Группа: Новичок
Сообщений: 4
Регистрация: 27-07-07
Пользователь №: 29 395



Думаю при общении с принтером наверное все-таки передает/получает. Я не совсем пока уверен. Насколько я понимаю можно подклюсить мой компьтер по LPT физически через буферную м\схему и поставить программу анализатор LPT-траффика уже на моем компьютере?
Go to the top of the page
 
+Quote Post
MariSev
сообщение Jul 27 2007, 10:00
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 37
Регистрация: 10-11-06
Из: Питер
Пользователь №: 22 178



Цитата(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 в последовательный и параллельный порт

Сообщение отредактировал MariSev - Jul 27 2007, 10:02


--------------------
Даешь Xmultiple России!!! :)
Go to the top of the page
 
+Quote Post
Edev
сообщение Jul 27 2007, 10:36
Сообщение #7





Группа: Новичок
Сообщений: 4
Регистрация: 27-07-07
Пользователь №: 29 395



Цитата(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 есть, который в свою очередь к принтеру подклюсен. Раскрутить устройство, чтобы посмотреть, что там внутри неполучится.
Go to the top of the page
 
+Quote Post
rezident
сообщение Jul 27 2007, 11:00
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



ИМХО вам нужно симмитировать входной порт принтера. Только выходные сигналы вам не нужны. Все сигналы вашего логгера должны быть входными. В худшем случае придется реализовать чтение не только стандартного LPT-порта (однонаправленного), а LPT в EPP и/или ECP режимах. Какой хоть принтер-то используется в качестве оконечного устройства?
Go to the top of the page
 
+Quote Post
ssn2000
сообщение Aug 31 2007, 05:11
Сообщение #9





Группа: Новичок
Сообщений: 4
Регистрация: 31-08-07
Пользователь №: 30 179



Поднимаю тему! Возникла подобная ситуация - управлящая панель HAKKO V710ISD выводит информацию в текстовом режиме на EPSON LX-300. Пытаюсь эту информацию писать в файл. Шнур сделал подключив d1-d8 к соответсвующим входам d1-d8 компа. Данные считываются с порта и пишутся в файл - программка на делфи с использованием библиотеки lptwdmio.sys. Запись идет, но есть проблема с задвоением, затроением и т.д. считываемой информацииsad.gif. Т.е. не могу определить смену символа в порту. Прошу помощи знающих людей - с использованием каких сигналов устройство общается с принтером для отправки данных на печать? - у меня такое подозрение что ask и busy не используется - писал вариант программы с реализацией режима spp (через ask и bysy) и просто чтение из порта без смены статуса занятости принтера - без разницы - такое впечатление что управляющую панель не волнует готов принтер или нет - отправляет данные и все...
Go to the top of the page
 
+Quote Post
-Al-
сообщение Aug 31 2007, 08:42
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 330
Регистрация: 10-06-05
Из: Россия, Москва
Пользователь №: 5 894



Цитата(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 учитываете??
Go to the top of the page
 
+Quote Post
ssn2000
сообщение Aug 31 2007, 09:02
Сообщение #11





Группа: Новичок
Сообщений: 4
Регистрация: 31-08-07
Пользователь №: 30 179



Цитата(-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 - следущий цикл. Сегодня поеду проверять.
Go to the top of the page
 
+Quote Post
vvs157
сообщение Aug 31 2007, 09:43
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(ssn2000 @ Aug 31 2007, 13:02) *
пытался - но о появляется только 1 раз и то почему то не всегда или я не успеваю последущие

Ловить стробирующие импульсы чисто программным способом довольно сложно - высока вероятность пропуска - особенно под Windows. Попробуйте подключив какой-нибудь цифровой осциллограф посмотреть не пропускаете ли вы стробы.
Go to the top of the page
 
+Quote Post
AlexanderX
сообщение Aug 31 2007, 12:15
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 21-07-05
Из: Киев
Пользователь №: 6 977



Вы практически однозначно пропускаете стробы, а сами данные могут присутсвовать на линии различное время. Поэтому для надежного приема всех данных нужно сделать специфический девайс, с внутренней памятью.
В память данные будут записываться по протоколу LPT порта, а вычитываться через любой доступный интерфейс Вашей программой. Если интерфейс чтения окажется медленнее, чем интерфейс записи, то объем памяти должен обеспечивать накопление максимально возможного количества данных, идущих на принтер.
Go to the top of the page
 
+Quote Post
ssn2000
сообщение Aug 31 2007, 12:36
Сообщение #14





Группа: Новичок
Сообщений: 4
Регистрация: 31-08-07
Пользователь №: 30 179



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

Проверил работу новой версии программы - пишет информацию и дублей нет. Зато есть пропуски(их мало - но они естьsad.gif) - вероятно не все стробы получается обнаружить. Оптимизировать программу уже некуда - поэтому быстрее крутить опрос входа для обнаружения стробов вряд ли получится... А что за специфический девайс?
Go to the top of the page
 
+Quote Post
vvs157
сообщение Aug 31 2007, 21:19
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



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

Как умозрительный пример - берете второй LPT порт, на стробы ставите RS-триггеры и отлавливаете изменение состояний этих триггеров вторым портом. Им же сбрасываете при необходимости эти триггеры. Можно также организовать прерывания по этому порту по срабатыванию триггеров. Правда не на всяком втором LPT можно сгенерить прерывание
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 13th July 2025 - 20:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01522 секунд с 7
ELECTRONIX ©2004-2016